diff --git a/.coverage b/.coverage
new file mode 100644
index 0000000000000000000000000000000000000000..7bd62455cae2ec79af9cbc60f552afe43fca17d4
Binary files /dev/null and b/.coverage differ
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..13566b81b018ad684f3a35fee301741b2734c8f4
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/bayesvalidrox.iml b/.idea/bayesvalidrox.iml
new file mode 100644
index 0000000000000000000000000000000000000000..fab03b6eca7d238814b681f1f06637c845bcc3f4
--- /dev/null
+++ b/.idea/bayesvalidrox.iml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="PYTHON_MODULE" version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+  <component name="PyDocumentationSettings">
+    <option name="format" value="NUMPY" />
+    <option name="myDocStringFormat" value="NumPy" />
+  </component>
+  <component name="TestRunnerService">
+    <option name="PROJECT_TEST_RUNNER" value="py.test" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..105ce2da2d6447d11dfe32bfb846c3d5b199fc99
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+<component name="InspectionProjectProfileManager">
+  <settings>
+    <option name="USE_PROJECT_PROFILE" value="false" />
+    <version value="1.0" />
+  </settings>
+</component>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a6218fed0aeb0cbb03b46a9064efeeda11861bf6
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Black">
+    <option name="sdkName" value="Python 3.11" />
+  </component>
+  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11" project-jdk-type="Python SDK" />
+</project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..482c611f35883d7c1998edbfac68f5b5b74300db
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/bayesvalidrox.iml" filepath="$PROJECT_DIR$/.idea/bayesvalidrox.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/other.xml b/.idea/other.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2e75c2e2af6fe9ab3294dedf305ebb894bb324d7
--- /dev/null
+++ b/.idea/other.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="PySciProjectComponent">
+    <option name="PY_INTERACTIVE_PLOTS_SUGGESTED" value="true" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..35eb1ddfbbc029bcab630581847471d7f238ec53
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..42c974fb5e5f8e31c58684551c68a4f55a74d621
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,48 @@
+# CHANGELOG
+
+## [Unreleased]
+### Requirements
+* numpy now at 1.23.3
+* ....
+
+### Added
+Features
+* PyLinkForwardModel has new link_type 'umbridge' for UM-Bridge type models
+* class `InputSpace` as parent class to `ExpDesigns`
+* `MetaModel` has option to train with OLS+constraints
+
+Examples
+* Example `umbridge_tsunamitutorial` to show two options of using UM-Bridge type models
+* Example `convergence_tests` for the constraints
+
+### Changed
+General
+* Independent functions moved out of classes
+* Constructors of `PostProcessing`, `BayesInference`, `BayesModelComp` are to be given the engine instead of the metamodel
+* Constructor of `Exploration` to be given `ExpDesigns` instead of `MetaModel`
+
+Engine
+* `MetaModelEngine` renamed to `Engine`
+* Split `run()` into `train_normal()` and `train_sequential()`
+* `opt_SeqDesign()` renamed to `choose_next_sample()`
+
+MetaModel
+* `MetaModel` fully independent of model
+* `MetaModel` uses `InputSpace` instead of `ExpDesigns`
+* `create_metamodel()` split into `build_metamodel()` and `fit()`
+* `fit()` renamed to `regression()`
+* `eval_metamodel()` only runs on given samples, full functionality retained in `Engine.eval_metamodel()`
+* Polynomial related functions moved from `MetaModelEngine` to `MetaModel`
+
+PyLinkForwardModel
+* Read-in of MC-references now performed by `PyLinkForwardModel.read_observation()`
+
+ExpDesigns
+* Parameters related to sequential training were moved from `MetaModel` to `ExpDesigns` (`Seq*`, `valid_model_runs`)
+ 
+### Removed
+* Class `SequentialDesign`
+* `ExpDesigns.method` 
+* `MetaModel.create_basis_indices()`
+
+
diff --git a/docs/diagrams/.$Structure_BayesInf.drawio.bkp b/docs/diagrams/.$Structure_BayesInf.drawio.bkp
new file mode 100644
index 0000000000000000000000000000000000000000..3ba4ed26362c9fa2ea955f14d7ad3f05a15ab00a
--- /dev/null
+++ b/docs/diagrams/.$Structure_BayesInf.drawio.bkp
@@ -0,0 +1,908 @@
+<mxfile host="Electron" modified="2024-04-19T15:13:43.060Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.1.11 Chrome/114.0.5735.289 Electron/25.9.8 Safari/537.36" etag="DE_l5njUGrsyMG_jufaX" version="22.1.11" type="device" pages="3">
+  <diagram name="Class and function structure" id="efOe0Jku58RX-i1bv-3b">
+    <mxGraphModel dx="2718" dy="686" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-22" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;MCMC&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;div style=&quot;height:2px;&quot;&gt;&lt;/div&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1270" y="360" width="770" height="380" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-1" value="_kernel_rbf" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1020" y="200" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-2" value="_logpdf" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="820" y="140" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-10" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;BayesInf&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;div style=&quot;height:2px;&quot;&gt;&lt;/div&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-120" y="290" width="1310" height="680" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-24" value="if self.bootstrap &lt;br&gt;or self.bayes_loocv &lt;br&gt;or self.just_analysis" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=#ffae00;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-13">
+          <mxGeometry x="0.2902" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-18">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-42" value="if self.name != &#39;valid&#39;&lt;br&gt;and self.inference_method != &#39;rejection&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=default;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-31">
+          <mxGeometry x="0.5646" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="HiMKSJFquRK0mIlwyRFI-5">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-43" value="if self.inference_method == &#39;mcmc&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-32">
+          <mxGeometry x="-0.0958" y="-1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-19">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-52" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#C2C2C2;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-33">
+          <mxGeometry x="-0.112" y="1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-21">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-47" value="if self.plot_post_pred" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-34">
+          <mxGeometry x="0.2399" y="-1" relative="1" as="geometry">
+            <mxPoint y="1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-20">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-46" value="if self.plot_map_pred" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-35">
+          <mxGeometry x="0.4183" y="-1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-55" value="if self.bootstrap" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#FF9A03;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-54">
+          <mxGeometry x="0.1816" y="3" relative="1" as="geometry">
+            <mxPoint x="1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-57" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-56">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-58" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#FF9A03;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-57">
+          <mxGeometry x="0.7182" y="2" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-60" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-59">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-61" value="if self.error_model&lt;br&gt;and self.name == &#39;calib&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-60">
+          <mxGeometry x="0.3024" y="2" relative="1" as="geometry">
+            <mxPoint x="67" y="1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="HiMKSJFquRK0mIlwyRFI-51">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-55" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#FF9A03;" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-54">
+          <mxGeometry x="0.8253" y="3" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-9" value="create_inference" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="405" y="539" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-25" value="if len(self.perturbed_data) == 0" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-13" target="xary-zVek9Bg-A1b1ZmA-14">
+          <mxGeometry x="0.3402" relative="1" as="geometry">
+            <mxPoint y="1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-27" value="if not self.emulator" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-13" target="xary-zVek9Bg-A1b1ZmA-15">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-13" target="xary-zVek9Bg-A1b1ZmA-16">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-44" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#cdcbcb;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-29">
+          <mxGeometry x="0.4722" y="1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-13" target="xary-zVek9Bg-A1b1ZmA-17">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-41" value="if self.emulator" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-30">
+          <mxGeometry x="0.6143" y="-3" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-62" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-13" target="xary-zVek9Bg-A1b1ZmA-59">
+          <mxGeometry relative="1" as="geometry">
+            <mxPoint x="340" y="680" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-63" value="if self.error_model&lt;br&gt;and self.name == &#39;valid&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=default;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-62">
+          <mxGeometry x="-0.3906" relative="1" as="geometry">
+            <mxPoint y="121" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-13" value="perform_bootstrap" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="50" y="335" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-14" value="_perturb_data" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-75" y="460" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-15" value="_eval_model" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1050" y="660" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-16" target="xary-zVek9Bg-A1b1ZmA-1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-49" value="if hasattr bias_inputs&amp;nbsp;&lt;br&gt;and not hasattr error_model" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#ffae00;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-38">
+          <mxGeometry x="0.3126" y="-3" relative="1" as="geometry">
+            <mxPoint x="-103" y="31" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-16" target="xary-zVek9Bg-A1b1ZmA-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-16" value="normpdf" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="650" y="455" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-17" target="xary-zVek9Bg-A1b1ZmA-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-50" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#cdcbcb;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-40">
+          <mxGeometry x="-0.6073" y="-5" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-17" value="_corr_factor_BME" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="650" y="385" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-18" value="_rejection_sampling" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="280" y="890" width="120" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-26" value="if not self.emulator&amp;nbsp;&lt;br&gt;and not self.inference_method == &#39;rejection&#39;&amp;nbsp;&lt;br&gt;and self.name == &#39;calib" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-19" target="xary-zVek9Bg-A1b1ZmA-15">
+          <mxGeometry x="-0.0559" y="15" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-19" target="xary-zVek9Bg-A1b1ZmA-1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-48" value="if sigma2_prior is not None&lt;br&gt;and if hasattr bias_inputs&lt;br&gt;and if not hasattr error_model" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#ffae00;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-37">
+          <mxGeometry x="-0.5544" y="-1" relative="1" as="geometry">
+            <mxPoint x="1" y="-5" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-19" value="_posterior_predictive" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="690" y="589" width="130" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-20" target="xary-zVek9Bg-A1b1ZmA-15">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-45" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#cdcbcb;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-28">
+          <mxGeometry x="0.0517" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-20" value="_plot_max_a_posteriori" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="495" y="790" width="140" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-21" value="plot_post_predictive" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="630" y="720" width="120" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-36" value="Note: Arrows indicate function calls, beginning calls the end" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="10" y="10" width="190" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-51" value="Color meanings:&lt;br&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;red: wrong, change&lt;br&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;orange: seems off, look at again&lt;br&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;light beige: has been removed" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="20" y="70" width="220" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-53" value="plot_log_BME" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="150" y="820" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-56" value="plot_post_params" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="660" y="840" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-59" value="create_error_model" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="45" y="740" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-1" value="_check_ranges" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1595" y="280" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-2" value="gelman_rubin" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1350" y="250" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-3" value="_iterative_scheme" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" vertex="1" parent="1">
+          <mxGeometry x="2055" y="620" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-4" target="HiMKSJFquRK0mIlwyRFI-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-4" target="HiMKSJFquRK0mIlwyRFI-11">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-4" value="_my_ESS" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" vertex="1" parent="1">
+          <mxGeometry x="1350" y="100" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-5" target="HiMKSJFquRK0mIlwyRFI-8">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-5" target="HiMKSJFquRK0mIlwyRFI-10">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-5" target="HiMKSJFquRK0mIlwyRFI-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-53" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-5" target="HiMKSJFquRK0mIlwyRFI-52">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-56" value="if opts_sigma != &#39;B&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#FF9A03;" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-53">
+          <mxGeometry x="0.7377" y="1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-5" value="run_sampler" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="1350" y="534" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-6" target="HiMKSJFquRK0mIlwyRFI-1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-6" value="log_prior" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1595" y="510" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-7" target="HiMKSJFquRK0mIlwyRFI-9">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-16" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-15">
+          <mxGeometry x="0.0246" y="2" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-7" value="log_likelihood" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1760" y="539" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-8" target="HiMKSJFquRK0mIlwyRFI-6">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-17" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-12">
+          <mxGeometry x="0.4587" y="4" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-8" target="HiMKSJFquRK0mIlwyRFI-7">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-18" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-13">
+          <mxGeometry x="0.6826" y="4" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-8" value="log_posterior" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1480" y="610" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-9" value="eval_model" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1760" y="400" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-10" value="train_error_model" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1450" y="420" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-11" target="HiMKSJFquRK0mIlwyRFI-3">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-11" value="marginal_llk_emcee" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" vertex="1" parent="1">
+          <mxGeometry x="1870" y="620" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-25" value="Never used!" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#CCC1AA;" vertex="1" parent="1">
+          <mxGeometry x="1880" y="680" width="100" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-26" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;BayesModelComp&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;div style=&quot;height:2px;&quot;&gt;&lt;/div&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-1060" y="380" width="840" height="420" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-27" target="HC1H8j6nMwEtLoyIrXXk-3">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-27" target="HC1H8j6nMwEtLoyIrXXk-1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-27" target="HiMKSJFquRK0mIlwyRFI-31">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-27" value="model_comparison_all" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="-860" y="566" width="160" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-1" target="xary-zVek9Bg-A1b1ZmA-9">
+          <mxGeometry relative="1" as="geometry">
+            <mxPoint x="-630" y="564" as="sourcePoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-47" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-42">
+          <mxGeometry x="-0.4883" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-29" target="HiMKSJFquRK0mIlwyRFI-30">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-49" value="if perturbed_data is None" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-37">
+          <mxGeometry x="-0.0507" y="4" relative="1" as="geometry">
+            <mxPoint x="-1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-29" value="generate_dataset" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-510" y="566" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-30" value="_perturb_data" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-340" y="636" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-31" target="HC1H8j6nMwEtLoyIrXXk-1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-31" target="HiMKSJFquRK0mIlwyRFI-33">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-31" target="HC1H8j6nMwEtLoyIrXXk-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-31" value="cal_model_weight" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-835" y="466" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-32" value="plot_just_analysis" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-835" y="736" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-33" value="plot_model_weights" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-980" y="416" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-34" value="plot_bayes_factor" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-410" y="431" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-51" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Discrepancy&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;div style=&quot;height:2px;&quot;&gt;&lt;/div&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="360" y="1039.82" width="200" height="130" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-52" value="get_sample" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="400" y="1079.82" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-1" target="HiMKSJFquRK0mIlwyRFI-34">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-1" target="HC1H8j6nMwEtLoyIrXXk-17">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-1" target="HiMKSJFquRK0mIlwyRFI-29">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-1" value="calc_bayes_factors" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-630" y="466" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-2" value="calc_model_weights" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-1030" y="566" width="130" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-3" target="HiMKSJFquRK0mIlwyRFI-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-3" target="HC1H8j6nMwEtLoyIrXXk-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-3" target="xary-zVek9Bg-A1b1ZmA-9">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-23" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HC1H8j6nMwEtLoyIrXXk-16">
+          <mxGeometry x="-0.5478" y="3" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-3" target="HC1H8j6nMwEtLoyIrXXk-17">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-3" target="HiMKSJFquRK0mIlwyRFI-29">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-3" value="calc_justifiability_analysis" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-860" y="666" width="160" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-17" value="setup" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-630" y="566" width="110" height="50" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+  <diagram id="sQf09xvhinkT827TE7Va" name="Function structure Engine">
+    <mxGraphModel dx="1436" dy="968" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Engine&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;div style=&quot;height:2px;&quot;&gt;&lt;/div&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="130" y="140" width="1390" height="690" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-2" value="hellinger_distance" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1340" y="50" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-3" value="logpdf" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1050" y="50" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-4" value="subdomain" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="625" y="50" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-5" value="start_engine" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="250" y="680" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-6" target="JXjM7l_erEiZMkSmYBvl-5">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-6" value="train_normal" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="170" y="420" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-7" target="JXjM7l_erEiZMkSmYBvl-9">
+          <mxGeometry relative="1" as="geometry">
+            <mxPoint x="335" y="335" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-7" target="JXjM7l_erEiZMkSmYBvl-6">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-7" value="train_sequential" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="170" y="310" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-8" value="eval_metamodel" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="190" y="210" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-9" target="JXjM7l_erEiZMkSmYBvl-18">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-9" target="JXjM7l_erEiZMkSmYBvl-23">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-20" value="if len(obs_data) != 0" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-19">
+          <mxGeometry x="0.8137" relative="1" as="geometry">
+            <mxPoint x="-57" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-9" target="JXjM7l_erEiZMkSmYBvl-24">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-22" value="if len(obs_data) != 0" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-21">
+          <mxGeometry x="0.7684" y="3" relative="1" as="geometry">
+            <mxPoint x="1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-9" target="JXjM7l_erEiZMkSmYBvl-25">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-24" value="if expdes.valid_model_runs" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-23">
+          <mxGeometry x="0.606" y="3" relative="1" as="geometry">
+            <mxPoint x="-16" y="3" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-9" target="JXjM7l_erEiZMkSmYBvl-26">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-26" value="if mc_ref and pce" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-25">
+          <mxGeometry x="0.7094" y="-3" relative="1" as="geometry">
+            <mxPoint x="-31" y="-3" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-9" value="train_seq_design" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="315" y="310" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-12" value="util_VarBasedDesign" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="670" y="648" width="130" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-13" target="JXjM7l_erEiZMkSmYBvl-3">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-13" target="JXjM7l_erEiZMkSmYBvl-5">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-15" target="JXjM7l_erEiZMkSmYBvl-13">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-39" value="if method == &#39;bayesactdesign&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=default;" vertex="1" connectable="0" parent="JXjM7l_erEiZMkSmYBvl-38">
+          <mxGeometry x="-0.6235" y="2" relative="1" as="geometry">
+            <mxPoint x="289" y="2" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-13" target="JXjM7l_erEiZMkSmYBvl-21">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-15" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-12">
+          <mxGeometry x="0.7865" y="4" relative="1" as="geometry">
+            <mxPoint x="-91" y="185" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-13" value="util_BayesianActiveDesign" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1020" y="680" width="150" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-14" target="JXjM7l_erEiZMkSmYBvl-6">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-14" target="JXjM7l_erEiZMkSmYBvl-21">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-16" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-13">
+          <mxGeometry x="0.197" y="-3" relative="1" as="geometry">
+            <mxPoint x="-1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-14" value="utilBayesianDesign" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="880" y="730" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-15" target="JXjM7l_erEiZMkSmYBvl-12">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-15" target="JXjM7l_erEiZMkSmYBvl-14">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-43" value="if method == &#39;bayesoptdesign&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="JXjM7l_erEiZMkSmYBvl-42">
+          <mxGeometry x="0.6143" y="-3" relative="1" as="geometry">
+            <mxPoint x="3" y="29" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-15" value="run_util_func" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="660" y="450" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-16" target="JXjM7l_erEiZMkSmYBvl-12">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-41" value="if method == &#39;varoptdesign&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="JXjM7l_erEiZMkSmYBvl-36">
+          <mxGeometry x="-0.5992" relative="1" as="geometry">
+            <mxPoint x="-197" y="62" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-16" target="JXjM7l_erEiZMkSmYBvl-13">
+          <mxGeometry relative="1" as="geometry">
+            <Array as="points">
+              <mxPoint x="965" y="590" />
+              <mxPoint x="1095" y="590" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-16" target="JXjM7l_erEiZMkSmYBvl-14">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-16" value="dual_annealing" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="910" y="450" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-17" target="JXjM7l_erEiZMkSmYBvl-18">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-6" value="if exploit _method is &#39;bayesoptdesign&#39;,&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;&#39;bayesactdesign&#39; or &#39;varoptdesign&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-5">
+          <mxGeometry x="0.1312" y="2" relative="1" as="geometry">
+            <mxPoint x="17" y="-2" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-17" value="tradeoff_weights" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="980" y="210" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-18" target="JXjM7l_erEiZMkSmYBvl-4">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-18" target="JXjM7l_erEiZMkSmYBvl-15">
+          <mxGeometry relative="1" as="geometry">
+            <mxPoint x="790" y="280.0000000000002" as="sourcePoint" />
+            <mxPoint x="690" y="499.9999999999998" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-2" value="if exploit _method is &#39;bayesoptdesign&#39;,&lt;br&gt;&#39;bayesactdesign&#39; or &#39;varoptdesign&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-1">
+          <mxGeometry x="0.1579" relative="1" as="geometry">
+            <mxPoint x="-15" y="49" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-18" target="JXjM7l_erEiZMkSmYBvl-16">
+          <mxGeometry relative="1" as="geometry">
+            <mxPoint x="680" y="205.05882352941194" as="sourcePoint" />
+            <mxPoint x="805" y="779.9999999999998" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-4" value="if explore_method == &#39;dual annealing&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-3">
+          <mxGeometry x="-0.6061" relative="1" as="geometry">
+            <mxPoint x="270" y="46" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-18" target="JXjM7l_erEiZMkSmYBvl-20">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-10" value="if exploit_method == &#39;alphabetic&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-9">
+          <mxGeometry x="0.8144" y="1" relative="1" as="geometry">
+            <mxPoint x="74" y="-1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-18" value="choose_next_sample" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="610" y="210" width="140" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-20" value="util_AlphOptDesign" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="330" y="210" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-21" value="_normpdf" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1340" y="430" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-22" target="JXjM7l_erEiZMkSmYBvl-3">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-22" value="_corr_factor_BME" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1130" y="220" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-23" value="_posteriorPlot" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="520" y="440" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-24" target="JXjM7l_erEiZMkSmYBvl-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-24" target="JXjM7l_erEiZMkSmYBvl-21">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-14" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-11">
+          <mxGeometry x="0.0929" y="-1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-24" target="JXjM7l_erEiZMkSmYBvl-22">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-18" value="commented out?" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-17">
+          <mxGeometry x="-0.1477" y="3" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-24" value="_BME_Calculator" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1340" y="220" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-25" value="_validError" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="520" y="510" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-26" value="_error_Mean_Std" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="520" y="580" width="110" height="50" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+  <diagram id="ME5gyYpVqUByTnAIOcMV" name="Parameter and function interaction">
+    <mxGraphModel dx="2049" dy="1366" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-1" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-1" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-61" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-1" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-1" value="engine" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="160" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-3" value="Discrepancy" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="240" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-71" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-4" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-4" value="emulator" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="320" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-5" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-57" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-5" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-65" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-5" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-5" value="name" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="400" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-47" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-6" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-6" value="bootstrap" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="480" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-7" value="req_outputs" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="560" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-79" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-8" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-8" value="selected_indices" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="640" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-9" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-55" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-9" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-67" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-9" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-9" value="prior_samples" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="720" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-11" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-68" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-11" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-11" value="n_prior_samples" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="800" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-12" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-80" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-12" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-12" value="measured_data" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="880" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-13" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-13" value="inference_method" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="960" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-14" value="mcmc_params" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1040" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-63" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-15" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-15" value="perturbed_data" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1120" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-45" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-16" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-77" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-16" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-16" value="bayes_loocv" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1200" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-64" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-17" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-17" value="n_bootstrap_itrs" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1280" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-18" value="bootstrap_noise" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1360" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-46" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-19" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-78" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-19" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-19" value="just_analysis" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1440" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-20" value="valid_metrics" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1520" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-52" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-21" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-21" value="plot_post_pred" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1600" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-51" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-22" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-22" value="plot_map_pred" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1680" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-23" value="max_a_posteriori" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1760" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-24" value="corner_title_fmt" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1840" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-25" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-25" value="out_dir" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1920" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-50" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-26" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-66" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-26" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-26" value="error_model" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2000" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-56" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-27" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-72" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-27" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-27" value="bias_inputs" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2080" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-28" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-28" value="measurement_error" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2160" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-29" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-81" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-29" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-29" value="sigma2s" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2240" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-30" value="log_likes" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2320" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-82" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-31" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-31" value="dtype" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2400" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-32" value="create_inference" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="400" y="20" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-39" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-39" value="n_tot_measurement" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2480" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-42" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-42" value="Discrepancy" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2560" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-48" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-48" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-48" value="posterior_df" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2640" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-53" value="create_error_model" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="560" y="20" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-60" value="perform_bootstrap" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="720" y="20" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-75" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-69" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-69" value="__mean_pce_prior_pred" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2720" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-76" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-70" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-70" value="_std_pce_prior_pred" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2800" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-74" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-73" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-73" value="__model_prior_pred" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2880" width="120" height="60" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+</mxfile>
diff --git a/docs/diagrams/.$Structure_BayesInf.drawio.dtmp b/docs/diagrams/.$Structure_BayesInf.drawio.dtmp
new file mode 100644
index 0000000000000000000000000000000000000000..14663ecb0086f14c8b80083b9ecf9a1df87e7ad5
--- /dev/null
+++ b/docs/diagrams/.$Structure_BayesInf.drawio.dtmp
@@ -0,0 +1,964 @@
+<mxfile host="Electron" modified="2024-04-19T16:08:46.718Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.1.11 Chrome/114.0.5735.289 Electron/25.9.8 Safari/537.36" etag="QkifmTMxwBp7UqUSeBiS" version="22.1.11" type="device" pages="4">
+  <diagram name="Class and function structure" id="efOe0Jku58RX-i1bv-3b">
+    <mxGraphModel dx="3735" dy="1372" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-22" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;MCMC&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;div style=&quot;height:2px;&quot;&gt;&lt;/div&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1270" y="360" width="770" height="380" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-1" value="_kernel_rbf" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1020" y="200" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-2" value="_logpdf" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="820" y="140" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-10" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;BayesInf&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;div style=&quot;height:2px;&quot;&gt;&lt;/div&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-120" y="290" width="1310" height="680" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-24" value="if self.bootstrap &lt;br&gt;or self.bayes_loocv &lt;br&gt;or self.just_analysis" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=#ffae00;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-13">
+          <mxGeometry x="0.2902" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-18">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-42" value="if self.name != &#39;valid&#39;&lt;br&gt;and self.inference_method != &#39;rejection&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=default;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-31">
+          <mxGeometry x="0.5646" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="HiMKSJFquRK0mIlwyRFI-5">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-43" value="if self.inference_method == &#39;mcmc&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-32">
+          <mxGeometry x="-0.0958" y="-1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-19">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-52" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#C2C2C2;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-33">
+          <mxGeometry x="-0.112" y="1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-21">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-47" value="if self.plot_post_pred" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-34">
+          <mxGeometry x="0.2399" y="-1" relative="1" as="geometry">
+            <mxPoint y="1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-20">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-46" value="if self.plot_map_pred" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-35">
+          <mxGeometry x="0.4183" y="-1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-55" value="if self.bootstrap" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#FF9A03;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-54">
+          <mxGeometry x="0.1816" y="3" relative="1" as="geometry">
+            <mxPoint x="1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-57" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-56">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-58" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#FF9A03;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-57">
+          <mxGeometry x="0.7182" y="2" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-60" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-59">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-61" value="if self.error_model&lt;br&gt;and self.name == &#39;calib&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-60">
+          <mxGeometry x="0.3024" y="2" relative="1" as="geometry">
+            <mxPoint x="67" y="1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="HiMKSJFquRK0mIlwyRFI-51">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-55" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#FF9A03;" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-54">
+          <mxGeometry x="0.8253" y="3" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-9" value="create_inference" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="405" y="539" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-25" value="if len(self.perturbed_data) == 0" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-13" target="xary-zVek9Bg-A1b1ZmA-14">
+          <mxGeometry x="0.3402" relative="1" as="geometry">
+            <mxPoint y="1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-27" value="if not self.emulator" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-13" target="xary-zVek9Bg-A1b1ZmA-15">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-13" target="xary-zVek9Bg-A1b1ZmA-16">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-44" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#cdcbcb;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-29">
+          <mxGeometry x="0.4722" y="1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-13" target="xary-zVek9Bg-A1b1ZmA-17">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-41" value="if self.emulator" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-30">
+          <mxGeometry x="0.6143" y="-3" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-62" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-13" target="xary-zVek9Bg-A1b1ZmA-59">
+          <mxGeometry relative="1" as="geometry">
+            <mxPoint x="340" y="680" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-63" value="if self.error_model&lt;br&gt;and self.name == &#39;valid&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=default;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-62">
+          <mxGeometry x="-0.3906" relative="1" as="geometry">
+            <mxPoint y="121" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-13" value="perform_bootstrap" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="50" y="335" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-14" value="_perturb_data" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-75" y="460" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-15" value="_eval_model" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1050" y="660" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-16" target="xary-zVek9Bg-A1b1ZmA-1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-49" value="if hasattr bias_inputs&amp;nbsp;&lt;br&gt;and not hasattr error_model" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#ffae00;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-38">
+          <mxGeometry x="0.3126" y="-3" relative="1" as="geometry">
+            <mxPoint x="-103" y="31" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-16" target="xary-zVek9Bg-A1b1ZmA-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-16" value="normpdf" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="650" y="455" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-17" target="xary-zVek9Bg-A1b1ZmA-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-50" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#cdcbcb;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-40">
+          <mxGeometry x="-0.6073" y="-5" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-17" value="_corr_factor_BME" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="650" y="385" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-18" value="_rejection_sampling" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="280" y="890" width="120" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-26" value="if not self.emulator&amp;nbsp;&lt;br&gt;and not self.inference_method == &#39;rejection&#39;&amp;nbsp;&lt;br&gt;and self.name == &#39;calib" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-19" target="xary-zVek9Bg-A1b1ZmA-15">
+          <mxGeometry x="-0.0559" y="15" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-19" target="xary-zVek9Bg-A1b1ZmA-1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-48" value="if sigma2_prior is not None&lt;br&gt;and if hasattr bias_inputs&lt;br&gt;and if not hasattr error_model" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#ffae00;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-37">
+          <mxGeometry x="-0.5544" y="-1" relative="1" as="geometry">
+            <mxPoint x="1" y="-5" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-19" value="_posterior_predictive" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="690" y="589" width="130" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-20" target="xary-zVek9Bg-A1b1ZmA-15">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-45" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#cdcbcb;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-28">
+          <mxGeometry x="0.0517" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-20" value="_plot_max_a_posteriori" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="495" y="790" width="140" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-21" value="plot_post_predictive" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="630" y="720" width="120" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-36" value="Note: Arrows indicate function calls, beginning calls the end" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="10" y="10" width="190" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-51" value="Color meanings:&lt;br&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;red: wrong, change&lt;br&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;orange: seems off, look at again&lt;br&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;light beige: has been removed" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="20" y="70" width="220" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-53" value="plot_log_BME" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="150" y="820" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-56" value="plot_post_params" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="660" y="840" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-59" value="create_error_model" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="45" y="740" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-1" value="_check_ranges" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1595" y="280" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-2" value="gelman_rubin" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1350" y="250" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-3" value="_iterative_scheme" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" vertex="1" parent="1">
+          <mxGeometry x="2055" y="620" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-4" target="HiMKSJFquRK0mIlwyRFI-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-4" target="HiMKSJFquRK0mIlwyRFI-11">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-4" value="_my_ESS" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" vertex="1" parent="1">
+          <mxGeometry x="1350" y="100" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-5" target="HiMKSJFquRK0mIlwyRFI-8">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-5" target="HiMKSJFquRK0mIlwyRFI-10">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-5" target="HiMKSJFquRK0mIlwyRFI-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-53" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-5" target="HiMKSJFquRK0mIlwyRFI-52">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-56" value="if opts_sigma != &#39;B&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#FF9A03;" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-53">
+          <mxGeometry x="0.7377" y="1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-5" value="run_sampler" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="1350" y="534" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-6" target="HiMKSJFquRK0mIlwyRFI-1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-6" value="log_prior" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1595" y="510" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-7" target="HiMKSJFquRK0mIlwyRFI-9">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-16" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-15">
+          <mxGeometry x="0.0246" y="2" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-7" value="log_likelihood" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1760" y="539" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-8" target="HiMKSJFquRK0mIlwyRFI-6">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-17" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-12">
+          <mxGeometry x="0.4587" y="4" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-8" target="HiMKSJFquRK0mIlwyRFI-7">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-18" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-13">
+          <mxGeometry x="0.6826" y="4" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-8" value="log_posterior" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1480" y="610" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-9" value="eval_model" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1760" y="400" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-10" value="train_error_model" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1450" y="420" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-11" target="HiMKSJFquRK0mIlwyRFI-3">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-11" value="marginal_llk_emcee" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" vertex="1" parent="1">
+          <mxGeometry x="1870" y="620" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-25" value="Never used!" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#CCC1AA;" vertex="1" parent="1">
+          <mxGeometry x="1880" y="680" width="100" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-26" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;BayesModelComp&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;div style=&quot;height:2px;&quot;&gt;&lt;/div&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-1096" y="380" width="840" height="420" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-27" target="HC1H8j6nMwEtLoyIrXXk-3">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-27" target="HC1H8j6nMwEtLoyIrXXk-1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-27" target="HiMKSJFquRK0mIlwyRFI-31">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-27" value="model_comparison_all" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="-896" y="566" width="160" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-1" target="xary-zVek9Bg-A1b1ZmA-9">
+          <mxGeometry relative="1" as="geometry">
+            <mxPoint x="-630" y="564" as="sourcePoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-47" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-42">
+          <mxGeometry x="-0.4883" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-29" target="HiMKSJFquRK0mIlwyRFI-30">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-49" value="if perturbed_data is None" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-37">
+          <mxGeometry x="-0.0507" y="4" relative="1" as="geometry">
+            <mxPoint x="-1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-29" value="generate_dataset" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-546" y="566" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-30" value="_perturb_data" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-376" y="636" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-31" target="HC1H8j6nMwEtLoyIrXXk-1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-31" target="HiMKSJFquRK0mIlwyRFI-33">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-31" target="HC1H8j6nMwEtLoyIrXXk-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-31" value="cal_model_weight" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="-871" y="466" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-32" value="plot_just_analysis" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-871" y="736" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-33" value="plot_model_weights" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-1016" y="416" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-34" value="plot_bayes_factor" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-446" y="431" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-51" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Discrepancy&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;div style=&quot;height:2px;&quot;&gt;&lt;/div&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="360" y="1039.82" width="200" height="130" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-52" value="get_sample" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="400" y="1079.82" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-1" target="HiMKSJFquRK0mIlwyRFI-34">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-1" target="HC1H8j6nMwEtLoyIrXXk-17">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-1" target="HiMKSJFquRK0mIlwyRFI-29">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-1" value="calc_bayes_factors" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="-666" y="466" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-2" value="calc_model_weights" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-1066" y="566" width="130" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-3" target="HiMKSJFquRK0mIlwyRFI-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-3" target="HC1H8j6nMwEtLoyIrXXk-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-3" target="xary-zVek9Bg-A1b1ZmA-9">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-23" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HC1H8j6nMwEtLoyIrXXk-16">
+          <mxGeometry x="-0.5478" y="3" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-3" target="HC1H8j6nMwEtLoyIrXXk-17">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-3" target="HiMKSJFquRK0mIlwyRFI-29">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-3" value="calc_justifiability_analysis" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="-896" y="666" width="160" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-17" value="setup" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-666" y="566" width="110" height="50" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+  <diagram id="sQf09xvhinkT827TE7Va" name="Function structure Engine">
+    <mxGraphModel dx="1436" dy="968" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Engine&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;div style=&quot;height:2px;&quot;&gt;&lt;/div&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="130" y="140" width="1390" height="690" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-2" value="hellinger_distance" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1340" y="50" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-3" value="logpdf" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1050" y="50" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-4" value="subdomain" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="625" y="50" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-5" value="start_engine" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="250" y="680" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-6" target="JXjM7l_erEiZMkSmYBvl-5">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-6" value="train_normal" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="170" y="420" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-7" target="JXjM7l_erEiZMkSmYBvl-9">
+          <mxGeometry relative="1" as="geometry">
+            <mxPoint x="335" y="335" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-7" target="JXjM7l_erEiZMkSmYBvl-6">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-7" value="train_sequential" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="170" y="310" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-8" value="eval_metamodel" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="190" y="210" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-9" target="JXjM7l_erEiZMkSmYBvl-18">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-9" target="JXjM7l_erEiZMkSmYBvl-23">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-20" value="if len(obs_data) != 0" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-19">
+          <mxGeometry x="0.8137" relative="1" as="geometry">
+            <mxPoint x="-57" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-9" target="JXjM7l_erEiZMkSmYBvl-24">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-22" value="if len(obs_data) != 0" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-21">
+          <mxGeometry x="0.7684" y="3" relative="1" as="geometry">
+            <mxPoint x="1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-9" target="JXjM7l_erEiZMkSmYBvl-25">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-24" value="if expdes.valid_model_runs" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-23">
+          <mxGeometry x="0.606" y="3" relative="1" as="geometry">
+            <mxPoint x="-16" y="3" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-9" target="JXjM7l_erEiZMkSmYBvl-26">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-26" value="if mc_ref and pce" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-25">
+          <mxGeometry x="0.7094" y="-3" relative="1" as="geometry">
+            <mxPoint x="-31" y="-3" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-9" value="train_seq_design" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="315" y="310" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-12" value="util_VarBasedDesign" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="670" y="648" width="130" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-13" target="JXjM7l_erEiZMkSmYBvl-3">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-13" target="JXjM7l_erEiZMkSmYBvl-5">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-15" target="JXjM7l_erEiZMkSmYBvl-13">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-39" value="if method == &#39;bayesactdesign&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=default;" vertex="1" connectable="0" parent="JXjM7l_erEiZMkSmYBvl-38">
+          <mxGeometry x="-0.6235" y="2" relative="1" as="geometry">
+            <mxPoint x="289" y="2" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-13" target="JXjM7l_erEiZMkSmYBvl-21">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-15" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-12">
+          <mxGeometry x="0.7865" y="4" relative="1" as="geometry">
+            <mxPoint x="-91" y="185" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-13" value="util_BayesianActiveDesign" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1020" y="680" width="150" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-14" target="JXjM7l_erEiZMkSmYBvl-6">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-14" target="JXjM7l_erEiZMkSmYBvl-21">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-16" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-13">
+          <mxGeometry x="0.197" y="-3" relative="1" as="geometry">
+            <mxPoint x="-1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-14" value="utilBayesianDesign" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="880" y="730" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-15" target="JXjM7l_erEiZMkSmYBvl-12">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-15" target="JXjM7l_erEiZMkSmYBvl-14">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-43" value="if method == &#39;bayesoptdesign&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="JXjM7l_erEiZMkSmYBvl-42">
+          <mxGeometry x="0.6143" y="-3" relative="1" as="geometry">
+            <mxPoint x="3" y="29" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-15" value="run_util_func" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="660" y="450" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-16" target="JXjM7l_erEiZMkSmYBvl-12">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-41" value="if method == &#39;varoptdesign&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="JXjM7l_erEiZMkSmYBvl-36">
+          <mxGeometry x="-0.5992" relative="1" as="geometry">
+            <mxPoint x="-197" y="62" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-16" target="JXjM7l_erEiZMkSmYBvl-13">
+          <mxGeometry relative="1" as="geometry">
+            <Array as="points">
+              <mxPoint x="965" y="590" />
+              <mxPoint x="1095" y="590" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-16" target="JXjM7l_erEiZMkSmYBvl-14">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-16" value="dual_annealing" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="910" y="450" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-17" target="JXjM7l_erEiZMkSmYBvl-18">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-6" value="if exploit _method is &#39;bayesoptdesign&#39;,&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;&#39;bayesactdesign&#39; or &#39;varoptdesign&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-5">
+          <mxGeometry x="0.1312" y="2" relative="1" as="geometry">
+            <mxPoint x="17" y="-2" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-17" value="tradeoff_weights" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="980" y="210" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-18" target="JXjM7l_erEiZMkSmYBvl-4">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-18" target="JXjM7l_erEiZMkSmYBvl-15">
+          <mxGeometry relative="1" as="geometry">
+            <mxPoint x="790" y="280.0000000000002" as="sourcePoint" />
+            <mxPoint x="690" y="499.9999999999998" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-2" value="if exploit _method is &#39;bayesoptdesign&#39;,&lt;br&gt;&#39;bayesactdesign&#39; or &#39;varoptdesign&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-1">
+          <mxGeometry x="0.1579" relative="1" as="geometry">
+            <mxPoint x="-15" y="49" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-18" target="JXjM7l_erEiZMkSmYBvl-16">
+          <mxGeometry relative="1" as="geometry">
+            <mxPoint x="680" y="205.05882352941194" as="sourcePoint" />
+            <mxPoint x="805" y="779.9999999999998" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-4" value="if explore_method == &#39;dual annealing&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-3">
+          <mxGeometry x="-0.6061" relative="1" as="geometry">
+            <mxPoint x="270" y="46" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-18" target="JXjM7l_erEiZMkSmYBvl-20">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-10" value="if exploit_method == &#39;alphabetic&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-9">
+          <mxGeometry x="0.8144" y="1" relative="1" as="geometry">
+            <mxPoint x="74" y="-1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-18" value="choose_next_sample" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="610" y="210" width="140" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-20" value="util_AlphOptDesign" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="330" y="210" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-21" value="_normpdf" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1340" y="430" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-22" target="JXjM7l_erEiZMkSmYBvl-3">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-22" value="_corr_factor_BME" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1130" y="220" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-23" value="_posteriorPlot" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="520" y="440" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-24" target="JXjM7l_erEiZMkSmYBvl-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-24" target="JXjM7l_erEiZMkSmYBvl-21">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-14" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-11">
+          <mxGeometry x="0.0929" y="-1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-24" target="JXjM7l_erEiZMkSmYBvl-22">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-18" value="commented out?" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-17">
+          <mxGeometry x="-0.1477" y="3" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-24" value="_BME_Calculator" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1340" y="220" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-25" value="_validError" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="520" y="510" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-26" value="_error_Mean_Std" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="520" y="580" width="110" height="50" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+  <diagram id="ME5gyYpVqUByTnAIOcMV" name="Parameter and function interaction">
+    <mxGraphModel dx="2049" dy="1366" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-1" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-1" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-61" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-1" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-1" value="engine" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="160" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-3" value="Discrepancy" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="240" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-71" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-4" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-4" value="emulator" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="320" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-5" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-57" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-5" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-65" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-5" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-5" value="name" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="400" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-47" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-6" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-6" value="bootstrap" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="480" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-7" value="req_outputs" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="560" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-79" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-8" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-8" value="selected_indices" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="640" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-9" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-55" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-9" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-67" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-9" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-9" value="prior_samples" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="720" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-11" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-68" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-11" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-11" value="n_prior_samples" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="800" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-12" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-80" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-12" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-12" value="measured_data" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="880" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-13" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-13" value="inference_method" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="960" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-14" value="mcmc_params" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1040" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-63" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-15" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-15" value="perturbed_data" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1120" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-45" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-16" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-77" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-16" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-16" value="bayes_loocv" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1200" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-64" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-17" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-17" value="n_bootstrap_itrs" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1280" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-18" value="bootstrap_noise" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1360" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-46" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-19" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-78" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-19" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-19" value="just_analysis" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1440" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-20" value="valid_metrics" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1520" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-52" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-21" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-21" value="plot_post_pred" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1600" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-51" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-22" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-22" value="plot_map_pred" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1680" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-23" value="max_a_posteriori" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1760" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-24" value="corner_title_fmt" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1840" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-25" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-25" value="out_dir" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1920" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-50" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-26" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-66" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-26" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-26" value="error_model" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2000" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-56" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-27" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-72" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-27" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-27" value="bias_inputs" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2080" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-28" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-28" value="measurement_error" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2160" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-29" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-81" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-29" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-29" value="sigma2s" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2240" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-30" value="log_likes" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2320" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-82" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-31" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-31" value="dtype" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2400" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-32" value="create_inference" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="400" y="20" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-39" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-39" value="n_tot_measurement" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2480" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-42" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-42" value="Discrepancy" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2560" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-48" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-48" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-48" value="posterior_df" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2640" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-53" value="create_error_model" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="560" y="20" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-60" value="perform_bootstrap" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="720" y="20" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-75" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-69" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-69" value="__mean_pce_prior_pred" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2720" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-76" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-70" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-70" value="_std_pce_prior_pred" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2800" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-74" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-73" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-73" value="__model_prior_pred" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2880" width="120" height="60" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+  <diagram id="QgiNX2WXFOBDsDgzoFY9" name="Folder structure">
+    <mxGraphModel dx="1436" dy="968" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="KLYezTmecfuvBG8KQe-n-1" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="140" y="80" width="750" height="550" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-2" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="170" y="110" width="700" height="220" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-3" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="170" y="370" width="180" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-4" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="170" y="440" width="180" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-5" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="170" y="500" width="180" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-6" value="adaptPlot" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="190" y="150" width="70" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-7" value="apoly_construction" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="280" y="150" width="140" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-8" value="bayes_linear" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="440" y="150" width="90" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-9" value="engine" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="550" y="150" width="70" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-11" value="eval_rec_rule" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="640" y="150" width="100" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-12" value="exp_designs" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="760" y="150" width="90" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-13" value="exploration" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="190" y="210" width="80" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-14" value="glexindex" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="290" y="210" width="70" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-15" value="input_space" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="380" y="210" width="80" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-16" value="inputs" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="480" y="210" width="70" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-17" value="meta_model_engine" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="570" y="210" width="160" height="50" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+</mxfile>
diff --git a/docs/diagrams/Structure_BayesInf.drawio b/docs/diagrams/Structure_BayesInf.drawio
new file mode 100644
index 0000000000000000000000000000000000000000..2e28cbcb3f3e16bee1b42a18f2b93c6f73a156f7
--- /dev/null
+++ b/docs/diagrams/Structure_BayesInf.drawio
@@ -0,0 +1,964 @@
+<mxfile host="Electron" modified="2024-04-19T16:08:43.773Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.1.11 Chrome/114.0.5735.289 Electron/25.9.8 Safari/537.36" etag="2ELAo-FvqOEnLxZhqqO4" version="22.1.11" type="device" pages="4">
+  <diagram name="Class and function structure" id="efOe0Jku58RX-i1bv-3b">
+    <mxGraphModel dx="3735" dy="1372" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-22" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;MCMC&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;div style=&quot;height:2px;&quot;&gt;&lt;/div&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1270" y="360" width="770" height="380" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-1" value="_kernel_rbf" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1020" y="200" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-2" value="_logpdf" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="820" y="140" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-10" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;BayesInf&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;div style=&quot;height:2px;&quot;&gt;&lt;/div&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-120" y="290" width="1310" height="680" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-24" value="if self.bootstrap &lt;br&gt;or self.bayes_loocv &lt;br&gt;or self.just_analysis" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=#ffae00;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-13">
+          <mxGeometry x="0.2902" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-18">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-42" value="if self.name != &#39;valid&#39;&lt;br&gt;and self.inference_method != &#39;rejection&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=default;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-31">
+          <mxGeometry x="0.5646" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="HiMKSJFquRK0mIlwyRFI-5">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-43" value="if self.inference_method == &#39;mcmc&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-32">
+          <mxGeometry x="-0.0958" y="-1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-19">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-52" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#C2C2C2;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-33">
+          <mxGeometry x="-0.112" y="1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-21">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-47" value="if self.plot_post_pred" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-34">
+          <mxGeometry x="0.2399" y="-1" relative="1" as="geometry">
+            <mxPoint y="1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-20">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-46" value="if self.plot_map_pred" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-35">
+          <mxGeometry x="0.4183" y="-1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-55" value="if self.bootstrap" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#FF9A03;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-54">
+          <mxGeometry x="0.1816" y="3" relative="1" as="geometry">
+            <mxPoint x="1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-57" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-56">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-58" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#FF9A03;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-57">
+          <mxGeometry x="0.7182" y="2" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-60" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="xary-zVek9Bg-A1b1ZmA-59">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-61" value="if self.error_model&lt;br&gt;and self.name == &#39;calib&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-60">
+          <mxGeometry x="0.3024" y="2" relative="1" as="geometry">
+            <mxPoint x="67" y="1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-9" target="HiMKSJFquRK0mIlwyRFI-51">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-55" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#FF9A03;" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-54">
+          <mxGeometry x="0.8253" y="3" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-9" value="create_inference" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="405" y="539" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-25" value="if len(self.perturbed_data) == 0" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-13" target="xary-zVek9Bg-A1b1ZmA-14">
+          <mxGeometry x="0.3402" relative="1" as="geometry">
+            <mxPoint y="1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-27" value="if not self.emulator" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-13" target="xary-zVek9Bg-A1b1ZmA-15">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-13" target="xary-zVek9Bg-A1b1ZmA-16">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-44" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#cdcbcb;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-29">
+          <mxGeometry x="0.4722" y="1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-13" target="xary-zVek9Bg-A1b1ZmA-17">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-41" value="if self.emulator" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-30">
+          <mxGeometry x="0.6143" y="-3" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-62" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-13" target="xary-zVek9Bg-A1b1ZmA-59">
+          <mxGeometry relative="1" as="geometry">
+            <mxPoint x="340" y="680" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-63" value="if self.error_model&lt;br&gt;and self.name == &#39;valid&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=default;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-62">
+          <mxGeometry x="-0.3906" relative="1" as="geometry">
+            <mxPoint y="121" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-13" value="perform_bootstrap" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="50" y="335" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-14" value="_perturb_data" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-75" y="460" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-15" value="_eval_model" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1050" y="660" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-16" target="xary-zVek9Bg-A1b1ZmA-1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-49" value="if hasattr bias_inputs&amp;nbsp;&lt;br&gt;and not hasattr error_model" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#ffae00;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-38">
+          <mxGeometry x="0.3126" y="-3" relative="1" as="geometry">
+            <mxPoint x="-103" y="31" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-16" target="xary-zVek9Bg-A1b1ZmA-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-16" value="normpdf" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="650" y="455" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-17" target="xary-zVek9Bg-A1b1ZmA-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-50" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#cdcbcb;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-40">
+          <mxGeometry x="-0.6073" y="-5" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-17" value="_corr_factor_BME" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="650" y="385" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-18" value="_rejection_sampling" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="280" y="890" width="120" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-26" value="if not self.emulator&amp;nbsp;&lt;br&gt;and not self.inference_method == &#39;rejection&#39;&amp;nbsp;&lt;br&gt;and self.name == &#39;calib" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-19" target="xary-zVek9Bg-A1b1ZmA-15">
+          <mxGeometry x="-0.0559" y="15" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-19" target="xary-zVek9Bg-A1b1ZmA-1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-48" value="if sigma2_prior is not None&lt;br&gt;and if hasattr bias_inputs&lt;br&gt;and if not hasattr error_model" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#ffae00;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-37">
+          <mxGeometry x="-0.5544" y="-1" relative="1" as="geometry">
+            <mxPoint x="1" y="-5" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-19" value="_posterior_predictive" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="690" y="589" width="130" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="xary-zVek9Bg-A1b1ZmA-20" target="xary-zVek9Bg-A1b1ZmA-15">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-45" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#cdcbcb;" vertex="1" connectable="0" parent="xary-zVek9Bg-A1b1ZmA-28">
+          <mxGeometry x="0.0517" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-20" value="_plot_max_a_posteriori" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="495" y="790" width="140" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-21" value="plot_post_predictive" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="630" y="720" width="120" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-36" value="Note: Arrows indicate function calls, beginning calls the end" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="10" y="10" width="190" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-51" value="Color meanings:&lt;br&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;red: wrong, change&lt;br&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;orange: seems off, look at again&lt;br&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;light beige: has been removed" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="20" y="70" width="220" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-53" value="plot_log_BME" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="150" y="820" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-56" value="plot_post_params" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="660" y="840" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="xary-zVek9Bg-A1b1ZmA-59" value="create_error_model" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="45" y="740" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-1" value="_check_ranges" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1595" y="280" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-2" value="gelman_rubin" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1350" y="250" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-3" value="_iterative_scheme" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" vertex="1" parent="1">
+          <mxGeometry x="2055" y="620" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-4" target="HiMKSJFquRK0mIlwyRFI-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-4" target="HiMKSJFquRK0mIlwyRFI-11">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-4" value="_my_ESS" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" vertex="1" parent="1">
+          <mxGeometry x="1350" y="100" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-5" target="HiMKSJFquRK0mIlwyRFI-8">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-5" target="HiMKSJFquRK0mIlwyRFI-10">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-5" target="HiMKSJFquRK0mIlwyRFI-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-53" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-5" target="HiMKSJFquRK0mIlwyRFI-52">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-56" value="if opts_sigma != &#39;B&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#FF9A03;" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-53">
+          <mxGeometry x="0.7377" y="1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-5" value="run_sampler" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="1350" y="534" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-6" target="HiMKSJFquRK0mIlwyRFI-1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-6" value="log_prior" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1595" y="510" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-7" target="HiMKSJFquRK0mIlwyRFI-9">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-16" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-15">
+          <mxGeometry x="0.0246" y="2" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-7" value="log_likelihood" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1760" y="539" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-8" target="HiMKSJFquRK0mIlwyRFI-6">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-17" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-12">
+          <mxGeometry x="0.4587" y="4" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-8" target="HiMKSJFquRK0mIlwyRFI-7">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-18" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-13">
+          <mxGeometry x="0.6826" y="4" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-8" value="log_posterior" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1480" y="610" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-9" value="eval_model" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1760" y="400" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-10" value="train_error_model" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="1450" y="420" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-11" target="HiMKSJFquRK0mIlwyRFI-3">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-11" value="marginal_llk_emcee" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f9f7ed;strokeColor=#CCC1AA;fontColor=#CCC1AA;" vertex="1" parent="1">
+          <mxGeometry x="1870" y="620" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-25" value="Never used!" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#CCC1AA;" vertex="1" parent="1">
+          <mxGeometry x="1880" y="680" width="100" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-26" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;BayesModelComp&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;div style=&quot;height:2px;&quot;&gt;&lt;/div&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-1096" y="380" width="840" height="420" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-27" target="HC1H8j6nMwEtLoyIrXXk-3">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-27" target="HC1H8j6nMwEtLoyIrXXk-1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-27" target="HiMKSJFquRK0mIlwyRFI-31">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-27" value="model_comparison_all" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="-896" y="566" width="160" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-1" target="xary-zVek9Bg-A1b1ZmA-9">
+          <mxGeometry relative="1" as="geometry">
+            <mxPoint x="-630" y="564" as="sourcePoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-47" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-42">
+          <mxGeometry x="-0.4883" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-29" target="HiMKSJFquRK0mIlwyRFI-30">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-49" value="if perturbed_data is None" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HiMKSJFquRK0mIlwyRFI-37">
+          <mxGeometry x="-0.0507" y="4" relative="1" as="geometry">
+            <mxPoint x="-1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-29" value="generate_dataset" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-546" y="566" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-30" value="_perturb_data" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-376" y="636" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-31" target="HC1H8j6nMwEtLoyIrXXk-1">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-31" target="HiMKSJFquRK0mIlwyRFI-33">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HiMKSJFquRK0mIlwyRFI-31" target="HC1H8j6nMwEtLoyIrXXk-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-31" value="cal_model_weight" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="-871" y="466" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-32" value="plot_just_analysis" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-871" y="736" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-33" value="plot_model_weights" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-1016" y="416" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-34" value="plot_bayes_factor" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-446" y="431" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-51" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Discrepancy&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;div style=&quot;height:2px;&quot;&gt;&lt;/div&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="360" y="1039.82" width="200" height="130" as="geometry" />
+        </mxCell>
+        <mxCell id="HiMKSJFquRK0mIlwyRFI-52" value="get_sample" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="400" y="1079.82" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-1" target="HiMKSJFquRK0mIlwyRFI-34">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-1" target="HC1H8j6nMwEtLoyIrXXk-17">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-1" target="HiMKSJFquRK0mIlwyRFI-29">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-1" value="calc_bayes_factors" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="-666" y="466" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-2" value="calc_model_weights" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-1066" y="566" width="130" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-3" target="HiMKSJFquRK0mIlwyRFI-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-3" target="HC1H8j6nMwEtLoyIrXXk-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-3" target="xary-zVek9Bg-A1b1ZmA-9">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-23" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="HC1H8j6nMwEtLoyIrXXk-16">
+          <mxGeometry x="-0.5478" y="3" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-3" target="HC1H8j6nMwEtLoyIrXXk-17">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="HC1H8j6nMwEtLoyIrXXk-3" target="HiMKSJFquRK0mIlwyRFI-29">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-3" value="calc_justifiability_analysis" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="-896" y="666" width="160" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="HC1H8j6nMwEtLoyIrXXk-17" value="setup" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="-666" y="566" width="110" height="50" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+  <diagram id="sQf09xvhinkT827TE7Va" name="Function structure Engine">
+    <mxGraphModel dx="1436" dy="968" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Engine&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;div style=&quot;height:2px;&quot;&gt;&lt;/div&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="130" y="140" width="1390" height="690" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-2" value="hellinger_distance" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1340" y="50" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-3" value="logpdf" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1050" y="50" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-4" value="subdomain" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="625" y="50" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-5" value="start_engine" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="250" y="680" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-6" target="JXjM7l_erEiZMkSmYBvl-5">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-6" value="train_normal" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="170" y="420" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-7" target="JXjM7l_erEiZMkSmYBvl-9">
+          <mxGeometry relative="1" as="geometry">
+            <mxPoint x="335" y="335" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-7" target="JXjM7l_erEiZMkSmYBvl-6">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-7" value="train_sequential" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="170" y="310" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-8" value="eval_metamodel" style="html=1;whiteSpace=wrap;strokeWidth=2;" vertex="1" parent="1">
+          <mxGeometry x="190" y="210" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-9" target="JXjM7l_erEiZMkSmYBvl-18">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-9" target="JXjM7l_erEiZMkSmYBvl-23">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-20" value="if len(obs_data) != 0" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-19">
+          <mxGeometry x="0.8137" relative="1" as="geometry">
+            <mxPoint x="-57" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-9" target="JXjM7l_erEiZMkSmYBvl-24">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-22" value="if len(obs_data) != 0" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-21">
+          <mxGeometry x="0.7684" y="3" relative="1" as="geometry">
+            <mxPoint x="1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-9" target="JXjM7l_erEiZMkSmYBvl-25">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-24" value="if expdes.valid_model_runs" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-23">
+          <mxGeometry x="0.606" y="3" relative="1" as="geometry">
+            <mxPoint x="-16" y="3" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-9" target="JXjM7l_erEiZMkSmYBvl-26">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-26" value="if mc_ref and pce" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-25">
+          <mxGeometry x="0.7094" y="-3" relative="1" as="geometry">
+            <mxPoint x="-31" y="-3" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-9" value="train_seq_design" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="315" y="310" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-12" value="util_VarBasedDesign" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="670" y="648" width="130" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-13" target="JXjM7l_erEiZMkSmYBvl-3">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-13" target="JXjM7l_erEiZMkSmYBvl-5">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-15" target="JXjM7l_erEiZMkSmYBvl-13">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-39" value="if method == &#39;bayesactdesign&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=default;" vertex="1" connectable="0" parent="JXjM7l_erEiZMkSmYBvl-38">
+          <mxGeometry x="-0.6235" y="2" relative="1" as="geometry">
+            <mxPoint x="289" y="2" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-13" target="JXjM7l_erEiZMkSmYBvl-21">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-15" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-12">
+          <mxGeometry x="0.7865" y="4" relative="1" as="geometry">
+            <mxPoint x="-91" y="185" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-13" value="util_BayesianActiveDesign" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1020" y="680" width="150" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-14" target="JXjM7l_erEiZMkSmYBvl-6">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-14" target="JXjM7l_erEiZMkSmYBvl-21">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-16" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-13">
+          <mxGeometry x="0.197" y="-3" relative="1" as="geometry">
+            <mxPoint x="-1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-14" value="utilBayesianDesign" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="880" y="730" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-15" target="JXjM7l_erEiZMkSmYBvl-12">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-15" target="JXjM7l_erEiZMkSmYBvl-14">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-43" value="if method == &#39;bayesoptdesign&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="JXjM7l_erEiZMkSmYBvl-42">
+          <mxGeometry x="0.6143" y="-3" relative="1" as="geometry">
+            <mxPoint x="3" y="29" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-15" value="run_util_func" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="660" y="450" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-16" target="JXjM7l_erEiZMkSmYBvl-12">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-41" value="if method == &#39;varoptdesign&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="JXjM7l_erEiZMkSmYBvl-36">
+          <mxGeometry x="-0.5992" relative="1" as="geometry">
+            <mxPoint x="-197" y="62" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-16" target="JXjM7l_erEiZMkSmYBvl-13">
+          <mxGeometry relative="1" as="geometry">
+            <Array as="points">
+              <mxPoint x="965" y="590" />
+              <mxPoint x="1095" y="590" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-16" target="JXjM7l_erEiZMkSmYBvl-14">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-16" value="dual_annealing" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="910" y="450" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-17" target="JXjM7l_erEiZMkSmYBvl-18">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-6" value="if exploit _method is &#39;bayesoptdesign&#39;,&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;&#39;bayesactdesign&#39; or &#39;varoptdesign&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-5">
+          <mxGeometry x="0.1312" y="2" relative="1" as="geometry">
+            <mxPoint x="17" y="-2" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-17" value="tradeoff_weights" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="980" y="210" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-18" target="JXjM7l_erEiZMkSmYBvl-4">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-18" target="JXjM7l_erEiZMkSmYBvl-15">
+          <mxGeometry relative="1" as="geometry">
+            <mxPoint x="790" y="280.0000000000002" as="sourcePoint" />
+            <mxPoint x="690" y="499.9999999999998" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-2" value="if exploit _method is &#39;bayesoptdesign&#39;,&lt;br&gt;&#39;bayesactdesign&#39; or &#39;varoptdesign&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-1">
+          <mxGeometry x="0.1579" relative="1" as="geometry">
+            <mxPoint x="-15" y="49" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-18" target="JXjM7l_erEiZMkSmYBvl-16">
+          <mxGeometry relative="1" as="geometry">
+            <mxPoint x="680" y="205.05882352941194" as="sourcePoint" />
+            <mxPoint x="805" y="779.9999999999998" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-4" value="if explore_method == &#39;dual annealing&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-3">
+          <mxGeometry x="-0.6061" relative="1" as="geometry">
+            <mxPoint x="270" y="46" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-18" target="JXjM7l_erEiZMkSmYBvl-20">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-10" value="if exploit_method == &#39;alphabetic&#39;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-9">
+          <mxGeometry x="0.8144" y="1" relative="1" as="geometry">
+            <mxPoint x="74" y="-1" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-18" value="choose_next_sample" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="610" y="210" width="140" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-20" value="util_AlphOptDesign" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="330" y="210" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-21" value="_normpdf" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1340" y="430" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-22" target="JXjM7l_erEiZMkSmYBvl-3">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-22" value="_corr_factor_BME" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1130" y="220" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-23" value="_posteriorPlot" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="520" y="440" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-24" target="JXjM7l_erEiZMkSmYBvl-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-24" target="JXjM7l_erEiZMkSmYBvl-21">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-14" value="always" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-11">
+          <mxGeometry x="0.0929" y="-1" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="JXjM7l_erEiZMkSmYBvl-24" target="JXjM7l_erEiZMkSmYBvl-22">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="W5_FOelZ0qj-h3Gb0n3K-18" value="commented out?" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="W5_FOelZ0qj-h3Gb0n3K-17">
+          <mxGeometry x="-0.1477" y="3" relative="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-24" value="_BME_Calculator" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="1340" y="220" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-25" value="_validError" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="520" y="510" width="110" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="JXjM7l_erEiZMkSmYBvl-26" value="_error_Mean_Std" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="520" y="580" width="110" height="50" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+  <diagram id="ME5gyYpVqUByTnAIOcMV" name="Parameter and function interaction">
+    <mxGraphModel dx="2049" dy="1366" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-1" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-1" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-61" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-1" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-1" value="engine" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="160" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-3" value="Discrepancy" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="240" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-71" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-4" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-4" value="emulator" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="320" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-5" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-57" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-5" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-65" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-5" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-5" value="name" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="400" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-47" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-6" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-6" value="bootstrap" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="480" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-7" value="req_outputs" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="560" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-79" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-8" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-8" value="selected_indices" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="640" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-9" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-55" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-9" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-67" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-9" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-9" value="prior_samples" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="720" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-11" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-68" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-11" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-11" value="n_prior_samples" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="800" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-12" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-80" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-12" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-12" value="measured_data" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="880" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-13" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-13" value="inference_method" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="960" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-14" value="mcmc_params" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1040" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-63" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-15" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-15" value="perturbed_data" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1120" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-45" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-16" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-77" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-16" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-16" value="bayes_loocv" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1200" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-64" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-17" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-17" value="n_bootstrap_itrs" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1280" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-18" value="bootstrap_noise" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1360" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-46" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-19" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-78" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-19" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-19" value="just_analysis" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1440" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-20" value="valid_metrics" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1520" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-52" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-21" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-21" value="plot_post_pred" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1600" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-51" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-22" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-22" value="plot_map_pred" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1680" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-23" value="max_a_posteriori" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1760" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-24" value="corner_title_fmt" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1840" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-25" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-25" value="out_dir" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="1920" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-50" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-26" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-66" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-26" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-26" value="error_model" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2000" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-56" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-27" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-72" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-27" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-27" value="bias_inputs" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2080" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-28" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-28" value="measurement_error" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2160" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-29" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-81" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-29" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-29" value="sigma2s" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2240" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-30" value="log_likes" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2320" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-82" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-31" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-31" value="dtype" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2400" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-32" value="create_inference" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="400" y="20" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-39" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-39" value="n_tot_measurement" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2480" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-43" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-42" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-42" value="Discrepancy" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2560" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-48" target="K5oJ7VEt7dPmeK6pba1f-32">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-48" target="K5oJ7VEt7dPmeK6pba1f-53">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-48" value="posterior_df" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2640" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-53" value="create_error_model" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="560" y="20" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-60" value="perform_bootstrap" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="720" y="20" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-75" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-69" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-69" value="__mean_pce_prior_pred" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2720" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-76" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-70" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-70" value="_std_pce_prior_pred" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2800" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-74" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="K5oJ7VEt7dPmeK6pba1f-73" target="K5oJ7VEt7dPmeK6pba1f-60">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="K5oJ7VEt7dPmeK6pba1f-73" value="__model_prior_pred" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="40" y="2880" width="120" height="60" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+  <diagram id="QgiNX2WXFOBDsDgzoFY9" name="Folder structure">
+    <mxGraphModel dx="1436" dy="968" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="KLYezTmecfuvBG8KQe-n-1" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="140" y="80" width="750" height="550" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-2" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="170" y="110" width="700" height="220" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-3" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="170" y="370" width="180" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-4" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="170" y="440" width="180" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-5" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="170" y="500" width="180" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-6" value="adaptPlot" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="190" y="150" width="70" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-7" value="apoly_construction" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="280" y="150" width="140" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-8" value="bayes_linear" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="440" y="150" width="90" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-9" value="engine" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="550" y="150" width="70" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-11" value="eval_rec_rule" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="640" y="150" width="100" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-12" value="exp_designs" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="760" y="150" width="90" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-13" value="exploration" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="190" y="210" width="80" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-14" value="glexindex" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="290" y="210" width="70" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-15" value="input_space" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="380" y="210" width="80" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-16" value="inputs" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="480" y="210" width="70" height="50" as="geometry" />
+        </mxCell>
+        <mxCell id="KLYezTmecfuvBG8KQe-n-17" value="meta_model_engine" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
+          <mxGeometry x="570" y="210" width="160" height="50" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+</mxfile>
diff --git a/examples/.coverage b/examples/.coverage
new file mode 100644
index 0000000000000000000000000000000000000000..254e10e4371d703eefec0f0437f9c0575be3f5ec
Binary files /dev/null and b/examples/.coverage differ
diff --git a/examples/OHagan-function/test_OHagan.py b/examples/OHagan-function/example_OHagan.py
similarity index 78%
rename from examples/OHagan-function/test_OHagan.py
rename to examples/OHagan-function/example_OHagan.py
index 2fc629d3423d7ef3312e0182a8f15d1f0fd18ba0..8c7690767346db5c09e1a7b33595567c26c36a77 100644
--- a/examples/OHagan-function/test_OHagan.py
+++ b/examples/OHagan-function/example_OHagan.py
@@ -16,8 +16,6 @@ of Stuttgart, www.iws.uni-stuttgart.de/lh2/
 Pfaffenwaldring 61
 70569 Stuttgart
 
-Created on Wed Jul 10 2019
-
 """
 
 import numpy as np
@@ -28,13 +26,15 @@ import joblib
 import sys
 sys.path.append("../../src/bayesvalidrox/")
 
-from pylink.pylink import PyLinkForwardModel
-from surrogate_models.inputs import Input
-from surrogate_models.surrogate_models import MetaModel
-from surrogate_models.meta_model_engine import MetaModelEngine
-from post_processing.post_processing import PostProcessing
-from bayes_inference.bayes_inference import BayesInference
-from bayes_inference.discrepancy import Discrepancy
+from bayesvalidrox.pylink.pylink import PyLinkForwardModel
+from bayesvalidrox.surrogate_models.inputs import Input
+from bayesvalidrox.surrogate_models.exp_designs import ExpDesigns
+from bayesvalidrox.surrogate_models.surrogate_models import MetaModel
+#from bayesvalidrox.surrogate_models.meta_model_engine import MetaModelEngine
+from bayesvalidrox.post_processing.post_processing import PostProcessing
+from bayesvalidrox.bayes_inference.bayes_inference import BayesInference
+from bayesvalidrox.bayes_inference.discrepancy import Discrepancy
+from bayesvalidrox.surrogate_models.engine import Engine
 import matplotlib
 matplotlib.use('agg')
 
@@ -68,7 +68,7 @@ if __name__ == "__main__":
     # =====================================================
     # ======  POLYNOMIAL CHAOS EXPANSION METAMODELS  ======
     # =====================================================
-    MetaModelOpts = MetaModel(Inputs, Model)
+    MetaModelOpts = MetaModel(Inputs)
 
     # Select your metamodel method
     # 1) PCE (Polynomial Chaos Expansion) 2) aPCE (arbitrary PCE)
@@ -104,45 +104,45 @@ if __name__ == "__main__":
     # ------------------------------------------------
     # ------ Experimental Design Configuration -------
     # ------------------------------------------------
-    MetaModelOpts.add_ExpDesign()
+    ExpDesign = ExpDesigns(Inputs)
 
     # One-shot (normal) or Sequential Adaptive (sequential) Design
-    MetaModelOpts.ExpDesign.method = 'sequential'
-    MetaModelOpts.ExpDesign.n_init_samples = 100
+    ExpDesign.method = 'sequential'
+    ExpDesign.n_init_samples = 100
 
     # Sampling methods
     # 1) random 2) latin_hypercube 3) sobol 4) halton 5) hammersley 6) korobov
     # 7) chebyshev(FT) 8) grid(FT) 9) nested_grid(FT) 10)user
-    MetaModelOpts.ExpDesign.sampling_method = 'latin_hypercube'
+    ExpDesign.sampling_method = 'latin_hypercube'
 
     # Provide the experimental design object with a hdf5 file
     # MetaModelOpts.ExpDesign.hdf5_file = 'ExpDesign_OHagan_orig.hdf5'
 
     # Sequential experimental design (needed only for sequential ExpDesign)
-    MetaModelOpts.ExpDesign.n_new_samples = 1
-    MetaModelOpts.ExpDesign.n_max_samples = 500  # 150
-    MetaModelOpts.ExpDesign.mod_LOO_threshold = 1e-16
+    ExpDesign.n_new_samples = 1
+    ExpDesign.n_max_samples = 500  # 150
+    ExpDesign.mod_LOO_threshold = 1e-16
 
     # ------------------------------------------------
     # ------- Sequential Design configuration --------
     # ------------------------------------------------
     # 1) None 2) 'equal' 3)'epsilon-decreasing' 4) 'adaptive'
-    MetaModelOpts.ExpDesign.tradeoff_scheme = None
+    ExpDesign.tradeoff_scheme = None
     # MetaModelOpts.ExpDesign.n_replication = 50
     # -------- Exploration ------
     # 1)'Voronoi' 2)'random' 3)'latin_hypercube' 4)'dual annealing'
-    MetaModelOpts.ExpDesign.explore_method = 'latin_hypercube'
+    ExpDesign.explore_method = 'latin_hypercube'
 
     # Use when 'dual annealing' chosen
-    MetaModelOpts.ExpDesign.max_func_itr = 200
+    ExpDesign.max_func_itr = 200
 
     # Use when 'Voronoi' or 'random' or 'latin_hypercube' chosen
-    MetaModelOpts.ExpDesign.n_canddidate = 10000
-    MetaModelOpts.ExpDesign.n_cand_groups = 4
+    ExpDesign.n_canddidate = 10000
+    ExpDesign.n_cand_groups = 4
 
     # -------- Exploitation ------
     # 1)'BayesOptDesign' 2)'VarOptDesign' 3)'alphabetic' 4)'Space-filling'
-    MetaModelOpts.ExpDesign.exploit_method = 'Space-filling'
+    ExpDesign.exploit_method = 'Space-filling'
 
     # BayesOptDesign -> when data is available
     # 1)DKL (Kullback-Leibler Divergence) 2)DPP (D-Posterior-percision)
@@ -151,30 +151,29 @@ if __name__ == "__main__":
 
     # VarBasedOptDesign -> when data is not available
     # Only with Vornoi >>> 1)Entropy 2)EIGF, 3)ALM, 4)LOOCV
-    MetaModelOpts.ExpDesign.util_func = 'ALM'
+    ExpDesign.util_func = 'ALM'
 
     # alphabetic
     # 1)D-Opt (D-Optimality) 2)A-Opt (A-Optimality)
     # 3)K-Opt (K-Optimality)
     # MetaModelOpts.ExpDesign.util_func = 'D-Opt'
 
-    MetaModelOpts.valid_samples = np.load("data/valid_samples.npy")
-    MetaModelOpts.valid_model_runs = {
+    ExpDesign.valid_samples = np.load("data/valid_samples.npy")
+    ExpDesign.valid_model_runs = {
         'Z': np.load("data/valid_outputs.npy")
         }
     # >>>>>>>>>>>>>>>>>>>>>> Build Surrogate <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-    meta_model_engine = MetaModelEngine(MetaModelOpts)
-    meta_model_engine.run()
-    PCEModel = meta_model_engine.MetaModel
-
+    engine = Engine(MetaModelOpts, Model, ExpDesign)
+    engine.start_engine()
+    engine.train_sequential()
     # Save PCE models
     with open(f'PCEModel_{Model.name}.pkl', 'wb') as output:
-        joblib.dump(PCEModel, output, 2)
+        joblib.dump(engine.MetaModel, output, 2)
 
     # =====================================================
     # =========  POST PROCESSING OF METAMODELS  ===========
     # =====================================================
-    PostPCE = PostProcessing(PCEModel)
+    PostPCE = PostProcessing(engine)
 
     # Plot to check validation visually.
     PostPCE.valid_metamodel(n_samples=200)
@@ -184,7 +183,7 @@ if __name__ == "__main__":
     PostPCE.check_accuracy(n_samples=3000)
 
     # Plot the evolution of the KLD,BME, and Modified LOOCV error
-    if MetaModelOpts.ExpDesign.method == 'sequential':
+    if ExpDesign.method == 'sequential':
         PostPCE.plot_seq_design_diagnostics()
 
     # Plot the sobol indices
diff --git a/examples/analytical-function/test_analytical_function.py b/examples/analytical-function/example_analytical_function.py
old mode 100755
new mode 100644
similarity index 71%
rename from examples/analytical-function/test_analytical_function.py
rename to examples/analytical-function/example_analytical_function.py
index fa3daf3ea324416e74c649d521d98f87690e5863..0303411be3ed7e04508ff78f5c162337736ab819
--- a/examples/analytical-function/test_analytical_function.py
+++ b/examples/analytical-function/example_analytical_function.py
@@ -20,20 +20,23 @@ import numpy as np
 import pandas as pd
 import sys
 import joblib
-# import bayesvalidrox
-# Add BayesValidRox path
-sys.path.append("../../src/bayesvalidrox/")
-
-from pylink.pylink import PyLinkForwardModel
-from surrogate_models.inputs import Input
-from surrogate_models.surrogate_models import MetaModel
-from surrogate_models.meta_model_engine import MetaModelEngine
-from post_processing.post_processing import PostProcessing
-from bayes_inference.bayes_inference import BayesInference
-from bayes_inference.discrepancy import Discrepancy
 import matplotlib
 matplotlib.use('agg')
 
+# import bayesvalidrox
+# Add BayesValidRox path
+sys.path.append("../../src/")
+
+from bayesvalidrox.pylink.pylink import PyLinkForwardModel
+from bayesvalidrox.surrogate_models.inputs import Input
+from bayesvalidrox.surrogate_models.exp_designs import ExpDesigns
+from bayesvalidrox.surrogate_models.surrogate_models import MetaModel
+#from bayesvalidrox.surrogate_models.meta_model_engine import MetaModelEngine
+from bayesvalidrox.post_processing.post_processing import PostProcessing
+from bayesvalidrox.bayes_inference.bayes_inference import BayesInference
+from bayesvalidrox.bayes_inference.discrepancy import Discrepancy
+
+from bayesvalidrox.surrogate_models.engine import Engine
 
 if __name__ == "__main__":
 
@@ -88,7 +91,7 @@ if __name__ == "__main__":
     # =====================================================
     # ==========  DEFINITION OF THE METAMODEL  ============
     # =====================================================
-    MetaModelOpts = MetaModel(Inputs, Model)
+    MetaModelOpts = MetaModel(Inputs)#, Model)
 
     # Select if you want to preserve the spatial/temporal depencencies
     # MetaModelOpts.dim_red_method = 'PCA'
@@ -134,47 +137,46 @@ if __name__ == "__main__":
     # ------------------------------------------------
     # ------ Experimental Design Configuration -------
     # ------------------------------------------------
-    MetaModelOpts.add_ExpDesign()
+    ExpDesign = ExpDesigns(Inputs)
 
     # One-shot (normal) or Sequential Adaptive (sequential) Design
-    MetaModelOpts.ExpDesign.method = 'sequential'
-    MetaModelOpts.ExpDesign.n_init_samples = 3*ndim
+    ExpDesign.method = 'sequential'
+    ExpDesign.n_init_samples = 140#00#3*ndim
 
     # Sampling methods
     # 1) random 2) latin_hypercube 3) sobol 4) halton 5) hammersley
     # 6) chebyshev(FT) 7) grid(FT) 8)user
-    MetaModelOpts.ExpDesign.sampling_method = 'latin_hypercube'
+    ExpDesign.sampling_method = 'latin_hypercube'
 
     # Provide the experimental design object with a hdf5 file
-    # MetaModelOpts.ExpDesign.hdf5_file = 'ExpDesign_AnalyticFunc.hdf5'
-
-    # ------------------------------------------------
-    # ------- Sequential Design configuration --------
-    # ------------------------------------------------
+    #ExpDesign.hdf5_file = 'ExpDesign_AnalyticFunc.hdf5'
+    
     # Set the sampling parameters
-    MetaModelOpts.ExpDesign.n_new_samples = 1
-    MetaModelOpts.ExpDesign.n_max_samples = 150
-    MetaModelOpts.ExpDesign.mod_LOO_threshold = 1e-16
+    ExpDesign.n_new_samples = 1
+    ExpDesign.n_max_samples = 141#150          # sum of init + sequential 
+    ExpDesign.mod_LOO_threshold = 1e-16
 
-    # MetaModelOpts.adapt_verbose = True
+    # ExpDesign.adapt_verbose = True
     # 1) None 2) 'equal' 3)'epsilon-decreasing' 4) 'adaptive'
-    MetaModelOpts.ExpDesign.tradeoff_scheme = None
+    ExpDesign.tradeoff_scheme = None
     # MetaModelOpts.ExpDesign.n_replication = 5
     # -------- Exploration ------
     # 1)'Voronoi' 2)'random' 3)'latin_hypercube' 4)'LOOCV' 5)'dual annealing'
-    MetaModelOpts.ExpDesign.explore_method = 'random'
+    ExpDesign.explore_method = 'random'
 
     # Use when 'dual annealing' chosen
-    MetaModelOpts.ExpDesign.max_func_itr = 1000
+    ExpDesign.max_func_itr = 1000
 
     # Use when 'Voronoi' or 'random' or 'latin_hypercube' chosen
-    MetaModelOpts.ExpDesign.n_canddidate = 1000
-    MetaModelOpts.ExpDesign.n_cand_groups = 4
+    ExpDesign.n_canddidate = 1000
+    ExpDesign.n_cand_groups = 4
 
     # -------- Exploitation ------
     # 1)'BayesOptDesign' 2)'BayesActDesign' 3)'VarOptDesign' 4)'alphabetic'
     # 5)'Space-filling'
-    MetaModelOpts.ExpDesign.exploit_method = 'BayesActDesign'
+    ExpDesign.exploit_method = 'Space-filling' 
+    ExpDesign.exploit_method = 'BayesActDesign'
+    ExpDesign.util_func = 'DKL'
 
     # BayesOptDesign/BayesActDesign -> when data is available
     # 1) MI (Mutual information) 2) ALC (Active learning McKay)
@@ -185,7 +187,7 @@ if __name__ == "__main__":
     # BayesActDesign -> when data is available
     # 1) BME (Bayesian model evidence) 2) infEntropy (Information entropy)
     # 2)DKL (Kullback-Leibler Divergence)
-    MetaModelOpts.ExpDesign.util_func = 'DKL'
+    #MetaModelOpts.ExpDesign.util_func = 'DKL'
 
     # VarBasedOptDesign -> when data is not available
     # 1)ALM 2)EIGF, 3)LOOCV
@@ -205,27 +207,28 @@ if __name__ == "__main__":
     MetaModelOpts.Discrepancy = DiscrepancyOpts
 
     # Plot the posterior snapshots for SeqDesign
-    MetaModelOpts.ExpDesign.post_snapshot = False
-    MetaModelOpts.ExpDesign.step_snapshot = 1
-    MetaModelOpts.ExpDesign.max_a_post = [0] * ndim
+    ExpDesign.post_snapshot = False
+    ExpDesign.step_snapshot = 1
+    ExpDesign.max_a_post = [0] * ndim
 
     # For calculation of validation error for SeqDesign
     prior = np.load(f"data/Prior_{ndim}.npy")
     prior_outputs = np.load(f"data/origModelOutput_{ndim}.npy")
     likelihood = np.load(f"data/validLikelihoods_{ndim}.npy")
-    MetaModelOpts.valid_samples = prior[:500]
-    MetaModelOpts.valid_model_runs = {'Z': prior_outputs[:500]}
-    # MetaModelOpts.valid_likelihoods = likelihood
-
-    # >>>>>>>>>>>>>>>>>>>>>> Build Surrogate <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-    # Train the meta model
-    meta_model_engine = MetaModelEngine(MetaModelOpts)
-    meta_model_engine.run()
-    PCEModel = meta_model_engine.MetaModel
-
-    # Save PCE models
-    with open(f'PCEModel_{Model.name}.pkl', 'wb') as output:
-        joblib.dump(PCEModel, output, 2)
+    ExpDesign.valid_samples = prior[:500]
+    ExpDesign.valid_model_runs = {'Z': prior_outputs[:500]}
+
+    
+    # Run using the new engine
+    #engine = Engine(MetaModelOpts, Model, ExpDesign)
+    #engine.start_engine()
+    #engine.train_normal()
+    
+    MetaModelOpts.ExpDesign = ExpDesign
+    engine = Engine(MetaModelOpts, Model, ExpDesign)
+    engine.start_engine()
+    #engine.train_sequential()
+    engine.train_normal()
 
     # Load the objects
     # with open(f"PCEModel_{Model.name}.pkl", "rb") as input:
@@ -234,7 +237,7 @@ if __name__ == "__main__":
     # =====================================================
     # =========  POST PROCESSING OF METAMODELS  ===========
     # =====================================================
-    PostPCE = PostProcessing(PCEModel)
+    PostPCE = PostProcessing(engine)
 
     # Plot to check validation visually.
     PostPCE.valid_metamodel(n_samples=1)
@@ -258,25 +261,25 @@ if __name__ == "__main__":
     # =====================================================
     # ========  Bayesian inference with Emulator ==========
     # =====================================================
-    BayesOpts = BayesInference(PCEModel)
+    BayesOpts = BayesInference(engine)
     BayesOpts.emulator = True
     BayesOpts.plot_post_pred = True
 
     # BayesOpts.selected_indices = [0, 3, 5,  7, 9]
     # BME Bootstrap
-    # BayesOpts.bootstrap = True
-    # BayesOpts.n_bootstrap_itrs = 500
-    # BayesOpts.bootstrap_noise = 100
+    BayesOpts.bootstrap = True
+    BayesOpts.n_bootstrap_itrs = 500
+    BayesOpts.bootstrap_noise = 100
 
     # Bayesian cross validation
-    # BayesOpts.bayes_loocv = True
+    BayesOpts.bayes_loocv = True  # TODO: test what this does
 
     # Select the inference method
     import emcee
     BayesOpts.inference_method = "MCMC"
     # Set the MCMC parameters passed to self.mcmc_params
     BayesOpts.mcmc_params = {
-        'n_steps': 1e5,
+        'n_steps': 1e4,#5,
         'n_walkers': 30,
         'moves': emcee.moves.KDEMove(),
         'multiprocessing': False,
@@ -284,6 +287,7 @@ if __name__ == "__main__":
         }
 
     # ----- Define the discrepancy model -------
+    obsData = pd.DataFrame(Model.observations, columns=Model.Output.names)
     BayesOpts.measurement_error = obsData
 
     # # -- (Option B) --
@@ -293,31 +297,34 @@ if __name__ == "__main__":
     BayesOpts.Discrepancy = DiscrepancyOpts
 
     # -- (Option C) --
-    # DiscOutputOpts = Input()
-    # # # OutputName = 'Z'
-    # DiscOutputOpts.add_marginals()
-    # DiscOutputOpts.Marginals[0].Nnme = '$\sigma^2_{\epsilon}$'
-    # DiscOutputOpts.Marginals[0].dist_type = 'uniform'
-    # DiscOutputOpts.Marginals[0].parameters =  [0, 10]
-    # BayesOpts.Discrepancy = {'known': DiscrepancyOpts,
-    #                           'infer': Discrepancy(DiscOutputOpts)}
-
-    # BayesOpts.bias_inputs = {'Z':np.arange(0, 10, 1.).reshape(-1,1) / 9}
-    # DiscOutputOpts = Input()
-    # # OutputName = 'lambda'
-    # DiscOutputOpts.add_marginals()
-    # DiscOutputOpts.Marginals[0].name = '$\lambda$'
-    # DiscOutputOpts.Marginals[0].dist_type = 'uniform'
-    # DiscOutputOpts.Marginals[0].parameters = [0, 1]
-
-    # # OutputName = 'sigma_f'
-    # DiscOutputOpts.add_marginals()
-    # DiscOutputOpts.Marginals[1].Name = '$\sigma_f$'
-    # DiscOutputOpts.Marginals[1].dist_type = 'uniform'
-    # DiscOutputOpts.Marginals[1].parameters = [0, 1e-4]
-    # BayesOpts.Discrepancy = Discrepancy(DiscOutputOpts)
-    # BayesOpts.Discrepancy = {'known': DiscrepancyOpts,
-    #                           'infer': Discrepancy(DiscOutputOpts)}
+    if 0:
+        DiscOutputOpts = Input()
+        # # # OutputName = 'Z'
+        DiscOutputOpts.add_marginals()
+        DiscOutputOpts.Marginals[0].Nnme = '$\sigma^2_{\epsilon}$'
+        DiscOutputOpts.Marginals[0].dist_type = 'uniform'
+        DiscOutputOpts.Marginals[0].parameters =  [0, 10]
+        #BayesOpts.Discrepancy = {'known': DiscrepancyOpts,
+        #                          'infer': Discrepancy(DiscOutputOpts)}
+    
+        BayesOpts.bias_inputs = {'Z':np.arange(0, 10, 1.).reshape(-1,1) / 9}
+        
+        DiscOutputOpts = Input()
+        # OutputName = 'lambda'
+        DiscOutputOpts.add_marginals()
+        DiscOutputOpts.Marginals[0].name = '$\lambda$'
+        DiscOutputOpts.Marginals[0].dist_type = 'uniform'
+        DiscOutputOpts.Marginals[0].parameters = [0, 1]
+    
+        # # OutputName = 'sigma_f'
+        DiscOutputOpts.add_marginals()
+        DiscOutputOpts.Marginals[1].Name = '$\sigma_f$'
+        DiscOutputOpts.Marginals[1].dist_type = 'uniform'
+        DiscOutputOpts.Marginals[1].parameters = [0, 1e-4]
+        #BayesOpts.Discrepancy = Discrepancy(DiscOutputOpts)
+        BayesOpts.Discrepancy = {'known': DiscrepancyOpts,
+                                  'infer': Discrepancy(DiscOutputOpts)}
+    
     # Start the calibration/inference
     Bayes_PCE = BayesOpts.create_inference()
 
diff --git a/examples/analytical-function/util/AnalytFuncValid_Test.py b/examples/analytical-function/util/AnalytFuncValid_Test.py
deleted file mode 100644
index b172de0baf73399ad8a1180ab9e8cfe20b4fb7b8..0000000000000000000000000000000000000000
--- a/examples/analytical-function/util/AnalytFuncValid_Test.py
+++ /dev/null
@@ -1,353 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-Created on Fri Aug  9 16:25:43 2019
-This example is for the calibration and validation scenario.
-@author: farid
-    """
-
-import numpy as np
-import pandas as pd
-import matplotlib.pyplot as plt
-plt.style.use('seaborn-white')
-plt.rcParams.update({'font.size': 18})
-plt.rc('font', family='sans-serif', serif='Arial')
-plt.rc('figure', figsize = (24, 16))
-plt.rc('text', usetex=True)
-plt.rc('xtick', labelsize=18)
-plt.rc('ytick', labelsize=18)
-plt.rc('axes', labelsize=18)
-
-import seaborn as sns
-import os
-
-try:
-    import cPickle as pickle
-except ModuleNotFoundError:
-    import pickle
-
-from PyLink.FuncForwardModel import FuncForwardModel
-from surrogate_models.Input import Input
-from surrogate_models.surrogate_models import Metamodel
-from PostProcessing.PostProcessing import PostProcessing
-from BayesInference.BayesInference import BayesInference, Discrepancy
-
-if __name__ == "__main__":
-    
-    #=====================================================
-    #=============   COMPUTATIONAL MODEL  ================
-    #=====================================================
-    Model = FuncForwardModel()
-    
-    Model.Type = 'Function'
-    Model.pyFile = 'AnalyticalFunction'
-    Model.Name = 'AnalyticFunc'
-    
-    Model.Output.Names = ['Z']
-    
-    
-    # For Bayesian inversion synthetic data with X=[0,0]
-    Model.Observations['Time [s]'] = np.arange(0, 5, 1.) / 5
-    Model.Observations['Z'] = np.repeat([2],5)
-    
-    # For Checking with the MonteCarlo refrence
-#    Model.MCReference['Time [s]'] = np.arange(0, 10, 1.) / 9
-#    Model.MCReference['mean'] = np.array([127.13880108, 127.12652988, 127.12144698,
-#                             127.11754674, 127.11425868, 127.11136184, 127.1087429,
-#                             127.10633454, 127.10409289, 127.10198748])
-#    Model.MCReference['std'] = np.array([171.2520775,  171.21550753, 171.20352691,
-#                             171.19559223, 171.18975202, 171.18525035, 171.18169953,
-#                             171.17886925, 171.17660944, 171.17481586])
-
-    # For Bayesian inversion synthetic data with X=[1,1]
-    Model.ObservationsValid['Time [s]'] = np.arange(0, 5, 1.) / 5
-    Model.ObservationsValid['Z']= np.array([2.21773563, 2.11712764, 
-                             2.02460905, 1.93849485, 1.85761462])
-    
-    #=====================================================
-    #=========   PROBABILISTIC INPUT MODEL  ==============
-    #=====================================================
-    # Define the uncertain parameters with their mean and 
-    # standard deviation
-    Inputs = Input()
-    
-    ndim = 2
-    for i in range(ndim):
-        Inputs.add_marginals()
-        Inputs.Marginals[i].Name = '$X_{%s}$'%(i+1)
-        Inputs.Marginals[i].DistType = 'unif'
-        Inputs.Marginals[i].Parameters =  [-5, 5]
-    
-    #=====================================================
-    #==========  DEFINITION OF THE METAMODEL  ============
-    #=====================================================    
-    MetaModelOpts = Metamodel(Inputs)
-    
-    # Select if you want to preserve the spatial/temporal depencencies
-    MetaModelOpts.DimRedMethod = 'PCA'
-    
-    # Select your metamodel method
-    # 1) PCE (Polynomial Chaos Expansion) 2) GPE (Gaussian Process Emulator)
-    # 3) PCEKriging (PCE + GPE)
-    MetaModelOpts.metaModel = 'GPE'
-    
-    # ------------------------------------------------
-    # ------------- PCE Specification ----------------
-    # ------------------------------------------------
-    # Select the sparse least-square minimization method for 
-    # the PCE coefficients calculation:
-    # 1)OLS: Ordinary Least Square  2)BRR: Bayesian Ridge Regression 
-    # 3)LARS: Least angle regression  4)ARD: Bayesian ARD Regression
-    # 5)FastARD: Fast Bayesian ARD Regression
-    # 6)SGDR: Stochastic gradient descent learning
-    MetaModelOpts.RegMethod = 'FastARD'
-    
-    # Specify the max degree to be compared by the adaptive algorithm:
-    # The degree with the lowest Leave-One-Out cross-validation (LOO)
-    # error (or the highest score=1-LOO)estimator is chosen as the final 
-    # metamodel.
-    MetaModelOpts.MinPceDegree = 1 #3
-    MetaModelOpts.MaxPceDegree = 8 #15
-    
-    # q-quasi-norm 0<q<1 (default=1)
-    MetaModelOpts.q = 1 #0.75
-    
-    # Print summary of the regression results
-    #MetaModelOpts.DisplayFlag = True
-    
-    # ------------------------------------------------
-    # ------ Experimental Design Configuration -------
-    # ------------------------------------------------
-    
-    # Generate an experimental design of size NrExpDesign based on a latin 
-    # hypercube sampling of the input model or user-defined values of X and/or Y:
-    MetaModelOpts.addExpDesign()
-    
-    # One-shot (normal) or Sequential Adaptive (sequential) Design
-    MetaModelOpts.ExpDesign.Method = 'normal'
-    NrofInitSamples = 200 #75
-    MetaModelOpts.ExpDesign.NrSamples = NrofInitSamples
-    
-    # Sampling methods
-    # 1) random 2) latin_hypercube 3) sobol 4) halton 5) hammersley 6) chebyshev(FT) 
-    # 7) korobov 8) grid(FT) 9) nested_grid(FT) 10)user
-    MetaModelOpts.ExpDesign.SamplingMethod = 'random'
-    
-    # Sequential experimental design (needed only for sequential ExpDesign)
-    MetaModelOpts.ExpDesign.NrofNewSample = 1
-    MetaModelOpts.ExpDesign.MaxNSamples = 50 #150
-    MetaModelOpts.ExpDesign.ModifiedLOOThreshold = 1e-16
-    
-    # Defining the measurement error, if it's known a priori
-    obsData = pd.DataFrame(Model.Observations, columns=Model.Output.Names)
-    DiscrepancyOpts = Discrepancy('')
-    DiscrepancyOpts.Type = 'Gaussian'
-    DiscrepancyOpts.Parameters = obsData  ** 2
-    MetaModelOpts.Discrepancy = DiscrepancyOpts
-        
-    # Plot the posterior snapshots for SeqDesign
-    MetaModelOpts.ExpDesign.PostSnapshot = False
-    MetaModelOpts.ExpDesign.stepSnapshot = 1
-    MetaModelOpts.ExpDesign.MAP = (0,0)
-    MetaModelOpts.ExpDesign.parNames = ['$X_1$', '$X_2$']
-    
-    # ------------------------------------------------
-    # ------- Sequential Design configuration --------
-    # ------------------------------------------------
-    # 1) 'None' 2) 'epsilon-decreasing'
-    MetaModelOpts.ExpDesign.TradeOffScheme = 'epsilon-decreasing'
-    #MetaModelOpts.ExpDesign.nReprications = 2
-    # -------- Exploration ------
-    #1)'Voronoi' 2)'MC' 3)'LHS' 4)'dual annealing'
-    MetaModelOpts.ExpDesign.ExploreMethod = 'Voronoi'
-    
-    # Use when 'dual annealing' chosen
-    MetaModelOpts.ExpDesign.MaxFunItr = 200
-    
-    # Use when 'MC' or 'LHS' chosen
-    MetaModelOpts.ExpDesign.NCandidate = 100
-    MetaModelOpts.ExpDesign.NrofCandGroups = 4
-    
-    # -------- Exploitation ------
-    # 1)'BayesOptDesign' 2)'ActiveLearning' 3)'alphabetic' 4)'None' (Space-filling)
-    MetaModelOpts.ExpDesign.ExploitMethod = 'None'
-    
-    # BayesOptDesign -> when data is available
-    # 1)DKL (Kullback-Leibler Divergence) 2)DPP (D-Posterior-percision)
-    # 3)APP (A-Posterior-percision) 
-    MetaModelOpts.ExpDesign.UtilityFunction = 'DKL' #['DKL', 'DPP']
-    
-    # ActiveLearning
-    # 1)ALM (Active learning MacKay) 2)ALC (Active learning Cohn)
-    # 3) 
-    #MetaModelOpts.ExpDesign.UtilityFunction = 'ALM' #['ALM', 'ALC']
-    
-    # alphabetic
-    # 1)D-Opt (D-Optimality) 2)A-Opt (A-Optimality)
-    # 3)K-Opt (K-Optimality)
-    # MetaModelOpts.ExpDesign.UtilityFunction = 'D-Opt' #['D-Opt', 'A-Opt', 'K-Opt']  
-    
-    # >>>>>>>>>>>>>>>>>>>>>> Build Surrogate <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-    # MetaModelOpts.slicingforValidation = True
-    MetaModelOpts.index = 5
-    # Adaptive sparse arbitrary polynomial chaos expansion
-    # PCEModelCalib, PCEModelValid = MetaModelOpts.create_metamodel(Model)
-    PCEModel = MetaModelOpts.create_metamodel(Model)
-    
-    #=====================================================
-    #=========  POST PROCESSING OF METAMODELS  ===========
-    #=====================================================
-    #PostPCE = PostProcessing(PCEModelCalib)
-    PostPCE = PostProcessing(PCEModel)
-    
-    PostPCE.Name = 'Calib'
-    PostPCE.validMetamodel(nValidSamples= 3)
-    
-    # Compute the moments and compare with the Monte-Carlo reference
-#    PostPCE.plotMoments()
-    
-    if MetaModelOpts.metaModel != 'GPE':
-        # Plot the evolution of the KLD,BME, and Modified LOOCV error
-        if MetaModelOpts.ExpDesign.Method == 'sequential':
-            PostPCE.seqDesignDiagnosticPlots()
-        
-        # Plot the sobol indices
-        sobol_cell, total_sobol = PostPCE.sobolIndicesPCE()
-    
-    # Compute and print RMSE error
-    PostPCE.accuracyCheckMetaModel(nSamples=3000)
-    
-    
-    #=====================================================
-    #=======  Bayesian calibration with Emulator =========
-    #=====================================================
-    # BayesOpts = BayesInference(PCEModelCalib)
-    BayesOpts = BayesInference(PCEModel)
-    BayesOpts.Name = 'Calib'
-    BayesOpts.emulator = True
-    
-    # BME Bootstrap
-    BayesOpts.Bootstrap = True
-    BayesOpts.NrofSamples = 100000
-    BayesOpts.BootstrapItrNr = 10
-    BayesOpts.BootstrapNoise = 0.05
-    
-    # Select the inference method
-    BayesOpts.SamplingMethod = 'MCMC'
-    BayesOpts.MCMCnSteps = 1000
-    BayesOpts.MCMCnwalkers = 50
-    BayesOpts.MultiProcessMCMC = True
-    
-    BayesOpts.PlotPostDist = True
-    BayesOpts.PlotPostPred = True
-    
-    # ----- Define the discrepancy model -------
-    obsData = pd.DataFrame(Model.Observations, columns=Model.Output.Names)
-    # (Option B)
-    DiscrepancyOpts = Discrepancy('')
-    DiscrepancyOpts.Type = 'Gaussian'
-    DiscrepancyOpts.Parameters = obsData[:MetaModelOpts.index]**2
-    
-    BayesOpts.Discrepancy = DiscrepancyOpts
-    
-    # (Option C)
-#    DiscInputOpts = Input()
-#    
-#    DiscInputOpts.addMarginals()
-#    DiscInputOpts.Marginals[0].Name = 'Sigma2'
-#    DiscInputOpts.Marginals[0].DistType = 'unif'
-#    DiscInputOpts.Marginals[0].Parameters =  [0, 5e-1]
-#    
-#    DiscrepancyOpts = Discrepancy(DiscInputOpts)
-#    
-#    BayesOpts.Discrepancy = DiscrepancyOpts
-    
-    
-    Bayes_Calib = BayesOpts.create_Inference()
-    
-    # Make directory for saving the plots/outputs
-    newpath = (r'Outputs_'+MetaModelOpts.ExpDesign.Method) 
-    if not os.path.exists(newpath): os.makedirs(newpath)
-
-    
-    ## Plot the posterior (Model)
-    with sns.axes_style("white"):
-        g = sns.jointplot(x=Bayes_Calib.Posterior_df['$X_{1}$'], y=Bayes_Calib.Posterior_df['$X_{2}$'], 
-                          kind="kde", cmap='jet');
-        g.ax_joint.collections[0].set_alpha(0)
-        g.set_axis_labels("$X_1$", "$X_2$")
-        
-        g.savefig('./'+newpath+'/Posterior_PCEModel_Calib_'+MetaModelOpts.ExpDesign.Method+'.svg')
-        plt.close()
-        
-    
-    #=====================================================
-    #=======  Bayesian validation with Emulator =========
-    #=====================================================
-    # BayesOpts_Valid = BayesInference(PCEModelValid)
-    BayesOpts_Valid = BayesInference(PCEModel)
-    
-    BayesOpts_Valid.Name = 'Valid'
-    BayesOpts_Valid.emulator = True
-    
-    # BME Bootstrap
-    BayesOpts_Valid.Bootstrap = True
-    BayesOpts_Valid.MCMCinitSamples = Bayes_Calib.Posterior_df
-    BayesOpts_Valid.BootstrapItrNr = 10
-    BayesOpts_Valid.BootstrapNoise = 0.05
-    
-    # Select the inference method
-    BayesOpts_Valid.SamplingMethod = 'MCMC'
-    BayesOpts_Valid.MCMCnSteps = 1000
-    BayesOpts_Valid.MCMCnwalkers = 50
-    BayesOpts.MultiProcessMCMC = True
-    
-    BayesOpts_Valid.PlotPostDist = True
-    BayesOpts_Valid.PlotPostPred = True
-    
-    # ----- Define the discrepancy model -------
-    obsDataValid = pd.DataFrame(Model.ObservationsValid, columns=Model.Output.Names)
-    # (Option B)
-    DiscrepancyOpts = Discrepancy('')
-    DiscrepancyOpts.Type = 'Gaussian'
-    DiscrepancyOpts.Parameters = 0.01 * obsDataValid**2
-    
-    BayesOpts_Valid.Discrepancy = DiscrepancyOpts
-    
-    Bayes_Valid = BayesOpts_Valid.create_Inference()
-    
-    
-    ## Plot the posterior (PCEModel)
-    with sns.axes_style("white"):
-        g = sns.jointplot(x=Bayes_Valid.Posterior_df['$X_{1}$'], y=Bayes_Valid.Posterior_df['$X_{2}$'], 
-                          kind="kde", cmap='jet');
-        g.ax_joint.collections[0].set_alpha(0)
-        g.set_axis_labels("$X_1$", "$X_2$")
-        g.savefig('./'+newpath+'/Posterior_PCEModel_Valid_'+MetaModelOpts.ExpDesign.Method+'.svg')
-        plt.close()
-    
-    
-    #=====================================================
-    #==============  Save class objects  =================
-    #=====================================================
-    with open('AnalyticFunc_Results.pkl', 'wb') as output:
-        pickle.dump(PCEModel, output, pickle.HIGHEST_PROTOCOL)
-        
-        # pickle.dump(PCEModelValid, output, pickle.HIGHEST_PROTOCOL)
-        
-        pickle.dump(PostPCE, output, pickle.HIGHEST_PROTOCOL)
-    
-        pickle.dump(Bayes_Calib, output, pickle.HIGHEST_PROTOCOL)
-        
-        pickle.dump(Bayes_Valid, output, pickle.HIGHEST_PROTOCOL)
-    
-#    del PCEModel
-#    del PostPCE
-#    del Bayes
-    
-    # Load the objects
-#    with open('AnalyticFunc_Results.pkl', 'rb') as input:
-#        PCEModel = pickle.load(input)
-#        PostPCE = pickle.load(input)
-#        Bayes_PCE = pickle.load(input)    
-#        Bayes_Model = pickle.load(input) 
\ No newline at end of file
diff --git a/examples/analytical-function/util/AnalyticFunc_Demo.py b/examples/analytical-function/util/AnalyticFunc_Demo.py
deleted file mode 100644
index dea66f67dd8907fcc2560bd56a184f9e65f17a38..0000000000000000000000000000000000000000
--- a/examples/analytical-function/util/AnalyticFunc_Demo.py
+++ /dev/null
@@ -1,207 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-Created on Fri Aug  9 16:25:43 2019
-
-@author: farid
-"""
-
-import numpy as np
-import os
-import matplotlib.pyplot as plt
-plt.style.use('seaborn-white')
-plt.rcParams.update({'font.size': 16})
-plt.rc('font', family='sans-serif', serif='Arial')
-plt.rc('figure', figsize = (24, 16))
-plt.rc('text', usetex=True)
-plt.rc('xtick', labelsize=16)
-plt.rc('ytick', labelsize=16)
-plt.rc('axes', labelsize=16)
-
-
-from PyLink.FuncForwardModel import FuncForwardModel
-from surrogate_models.Input import Input
-from surrogate_models.surrogate_models import Metamodel
-
-if __name__ == "__main__":
-    
-    #=====================================================
-    #=============   COMPUTATIONAL MODEL  ================
-    #=====================================================
-    Model = FuncForwardModel()
-    
-    Model.Type = 'Function'
-    Model.pyFile = 'AnalyticalFunction'
-    Model.Name = 'AnalyticFunc'
-    
-    Model.Output.Names = ['Z']
-    
-
-    #=====================================================
-    #=========   PROBABILISTIC INPUT MODEL  ==============
-    #=====================================================
-    # Define the uncertain parameters with their mean and 
-    # standard deviation
-    Inputs = Input()
-    
-    Inputs.addMarginals()
-    Inputs.Marginals[0].Name = 'x1'
-    Inputs.Marginals[0].DistType = 'unif'
-    Inputs.Marginals[0].Parameters =  [-5, 5]
-    
-    Inputs.addMarginals()
-    Inputs.Marginals[1].Name = 'x2'
-    Inputs.Marginals[1].DistType = 'unif'
-    Inputs.Marginals[1].Parameters =  [-5, 5]
-
-    
-    #=====================================================
-    #========  PCE METAMODELS with adaptive aPCE  ========
-    #=====================================================    
-    MetaModelOpts = Metamodel(Inputs)
-
-    # Specify the max degree to be compared by the adaptive algorithm:
-    # The degree with the lowest Leave-One-Out cross-validation (LOO)
-    # error (or the highest score=1-LOO)estimator is chosen as the final 
-    # metamodel.
-    MetaModelOpts.MaxPceDegree = 10
-    
-    # Select the sparse least-square minimization method for 
-    # the PCE coefficients calculation:
-    # 1)OLS: Ordinary Least Square  2)BRR: Bayesian Ridge Regression 
-    # 3)LARS: Least angle regression  4)ARD: Bayesian ARD Regression
-    # 5)SGDR: Stochastic gradient descent learning
-    MetaModelOpts.RegMethod = 'OLS'
-    
-    # Print summary of the regression results
-    #MetaModelOpts.DisplayFlag = True
-    
-    # ------ Experimental Design --------
-    # Generate an experimental design of size NrExpDesign based on a latin 
-    # hypercube sampling of the input model or user-defined values of X and/or Y:
-    MetaModelOpts.addExpDesign()
-    
-    # One-shot (normal) or Sequential Adaptive (sequential) Design
-    MetaModelOpts.ExpDesign.Method = 'normal'
-    NrofInitSamples = 100
-    MetaModelOpts.ExpDesign.NrSamples = NrofInitSamples
-    
-    # Sampling methods
-    # 1) random 2) latin_hypercube 3) sobol 4) halton 5) hammersley 6) chebyshev(FT) 
-    # 7) korobov 8) grid(FT) 9) nested_grid(FT) 10)user
-    MetaModelOpts.ExpDesign.SamplingMethod = 'latin_hypercube'
-    
-    # Sequential experimental design (needed only for sequential ExpDesign)
-    MetaModelOpts.ExpDesign.MaxNSamples = 100
-    MetaModelOpts.ExpDesign.ModifiedLOOThreshold = 1e-4
-        
-    # ------------------------------------------------
-    # ------- Sequential Design configuration --------
-    # ------------------------------------------------
-    # -------- Exploration ------
-    MetaModelOpts.ExpDesign.ExploreMethod = 'MC'
-    MetaModelOpts.ExpDesign.NCandidate = 500
-    MetaModelOpts.ExpDesign.NrofCandGroups = 4
-    # -------- Optimality criteria: alphabetic ------
-    MetaModelOpts.ExpDesign.ExploitMethod = 'alphabetic'
-    
-    # 1)D-Opt (D-Optimality) 2)A-Opt (A-Optimality)
-    # 3)K-Opt (K-Optimality)
-    MetaModelOpts.ExpDesign.UtilityFunction = 'D-Opt'#['D-Opt', 'A-Opt', 'K-Opt']
-    
-    # >>>>>>>>>>>>>>>>>>>>>> Build Surrogate <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-    # Adaptive sparse arbitrary polynomial chaos expansion
-    PCEModel_OLS = MetaModelOpts.create_metamodel(Model)
-    
-    # Extract the basis and coefficients
-    Basis_OLS = PCEModel_OLS.BasisDict['Z']['y_2']
-    COFFS_OLS = PCEModel_OLS.CoeffsDict['Z']['y_2']
-    
-    #=====================================================
-    #===========  DEMO OF BAYESPCE METAMODEL  ===========
-    #=====================================================
-    fig1=plt.figure()
-    barWidth = 0.3
-    plt.title("Bar plot of the weights (OLS)")
-     
-    # Create cyan bars
-    r = np.arange(len(Basis_OLS))
-    plt.bar(r, COFFS_OLS, width = barWidth, color = 'cyan', bottom=0.001,
-            edgecolor = 'black', capsize=7, label='Cofficients')
-    
-    # general layout
-    plt.xticks([r + barWidth for r in range(len(r))], ['term'+str(i+1) for i in range(len(Basis_OLS))])
-
-    plt.xlabel("Features")
-    plt.ylabel("Values of the weights")
-    plt.yscale('symlog', linthreshy=0.1) #('log')
-    plt.hlines(0,xmin=r.min() , xmax=r.max() ,color='k')
-    plt.xticks(rotation=45)
-    plt.legend(loc="upper left")
-    plt.show()
-    
-    # Make directory for saving the plots/outputs
-    newpath = (r'Outputs_demo') 
-    if not os.path.exists(newpath): os.makedirs(newpath)
-
-    ## Save the plot the posterior (Model)
-    fig1.savefig('./'+newpath+'/Coeffs_AaPCE.svg', bbox_inches='tight')
-    plt.close()
-    
-    
-    #=====================================================
-    #===========  PCE METAMODELS with BRR aPCE  ==========
-    #=====================================================  
-    BRRMetaModelOpts = Metamodel(Inputs)
-    BRRMetaModelOpts.MaxPceDegree = 10
-    BRRMetaModelOpts.RegMethod = 'BRR'
-    
-    # ------ Experimental Design --------
-    BRRMetaModelOpts.addExpDesign()
-    BRRMetaModelOpts.ExpDesign.NrSamples = PCEModel_OLS.ExpDesign.X.shape[0]
-    BRRMetaModelOpts.ExpDesign.SamplingMethod = 'user'
-    BRRMetaModelOpts.ExpDesign.X = PCEModel_OLS.ExpDesign.X
-    BRRMetaModelOpts.ExpDesign.Y = PCEModel_OLS.ExpDesign.Y
-    BRRMetaModelOpts.ExpDesign.Method = 'normal'
-    
-    # >>>>>>>>>>>>>>>>>>>>>> Build Surrogate <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-    # Adaptive sparse arbitrary polynomial chaos expansion
-    PCEModel_BRR = BRRMetaModelOpts.create_metamodel(Model)
-    
-    
-    # Extract the basis and coefficients
-    Basis_BRR = PCEModel_BRR.BasisDict['Z']['y_2']
-    clf_poly = PCEModel_BRR.clf_poly['Z']['y_2']
-   
-    COFFS_BRR = clf_poly.coef_
-    # Find the error(std) for coeffs
-    COFFSError_BRR = clf_poly.sigma_.diagonal()
-
-    #=====================================================
-    #===========  DEMO OF BAYESPCE METAMODEL  ============
-    #=====================================================
-    fig2=plt.figure()
-    barWidth = 0.3
-    plt.title("Bar plot of the weights (BayesPCE)")
-     
-    # Create cyan bars
-    r = np.arange(len(Basis_BRR))
-    plt.bar(r, COFFS_BRR, width = barWidth, color = 'cyan', bottom=0.001,
-            edgecolor = 'black', yerr=COFFSError_BRR, capsize=7, label='Cofficients')
-    
-    # general layout
-    plt.xticks([r + barWidth for r in range(len(r))], ['term'+str(i+1) for i in range(len(Basis_BRR))])
-
-    plt.xlabel("Features")
-    plt.ylabel("Values of the weights")
-    plt.yscale('symlog', linthreshy=0.1) #('log')
-    plt.hlines(0,xmin=r.min() , xmax=r.max() ,color='k')
-    plt.xticks(rotation=45)
-    plt.legend(loc="upper left")
-    plt.show()
-    
-    ## Save the plot the posterior (Model)
-    fig2.savefig('./'+newpath+'/Coeffs_BRR.svg', bbox_inches='tight')
-    plt.close()
-    
-    
diff --git a/examples/analytical-function/util/AnalyticalFunction.py b/examples/analytical-function/util/AnalyticalFunction.py
deleted file mode 100644
index c4ed8e05c3ecd841f16d6b2d4757b12d5ecad325..0000000000000000000000000000000000000000
--- a/examples/analytical-function/util/AnalyticalFunction.py
+++ /dev/null
@@ -1,145 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-Created on Wed Nov 20 14:48:43 2019
-
-@author: farid
-"""
-import numpy as np
-import scipy.stats as stats
-import matplotlib.pyplot as plt
-import scipy.stats as st
-import seaborn as sns
-
-def AnalyticalFunction(xx, t=None):
-    """
-    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-    %
-    % Analytical Non-Gaussian Function
-    %
-    % Authors: Farid Mohammadi, University of Stuttgart
-    %          Sergey Oladyshkin, University of Stuttgart
-    % Questions/Comments: Please email Farid Mohammadi at:
-    %   farid.mohammadi@iws.uni-stuttgart.de
-    %
-    % Copyright 2019. Farid Mohammadi, University of Stuttgart.
-    %
-    % THERE IS NO WARRANTY, EXPRESS OR IMPLIED. WE DO NOT ASSUME ANY LIABILITY
-    % FOR THE USE OF THIS SOFTWARE.  If software is modified to produce
-    % derivative works, such modified software should be clearly marked.
-    % Additionally, this program is free software; you can redistribute it 
-    % and/or modify it under the terms of the GNU General Public License as 
-    % published by the Free Software Foundation; version 2.0 of the License. 
-    % Accordingly, this program is distributed in the hope that it will be 
-    % useful, but WITHOUT ANY WARRANTY; without even the implied warranty 
-    % of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 
-    % General Public License for more details.
-    %
-    % For function details and reference information, see:
-    % https://doi.org/10.3390/e21111081
-    %
-    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-    %
-    % OUTPUT AND INPUTS:
-    %
-    % Output = row vector of time vectors (s, t)
-    %     Its structure is:
-    %     y(t_1), y(t_2), ..., y(t_dt)
-    % xx = [x1, x2, ..., xn]
-    %       xn ~ Uinform(-5, 5)
-    % t = vector of times (optional), with default value
-    %     ( k − 1 ) /9 and k = 1,..., 10
-    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-    """
-    nParamSets, nParams = xx.shape
-    
-    if t is None: t = np.arange(0, 10, 1.) / 9
-    
-    term1 = (xx[:,0]**2 + xx[:,1] - 1)**2
-    
-    term2 = xx[:,0]**2
-    
-    term3 = 0.1 * xx[:,0] * np.exp(xx[:,1])
-    
-    term5 = 0
-    if nParams > 2:
-        for i in range(2, nParams):
-            term5 = term5 + xx[:,i]**3/i
-    
-    const = term1 + term2 + term3 + 1 + term5
-    
-    # Compute time dependent term
-    term4 = np.zeros((nParamSets,len(t)))
-    for idx in range(nParamSets):
-        term4[idx] = -2 * xx[idx,0] * np.sqrt(0.5*t)
-    
-    Output = term4 + np.repeat(const[:,None], len(t), axis=1)
-    
-    return np.vstack((t, Output))
-
-if __name__ == "__main__":
-
-    MCSize = 10000 #1000000
-    ndim = 10
-    sigma = 2
-    
-    # -------------------------------------------------------------------------
-    # ----------------------- Synthetic data generation -----------------------
-    # -------------------------------------------------------------------------
-    t = np.arange(0, 10, 1.) / 9
-    
-    MAP = np.zeros((1, ndim))
-    synthethicData = AnalyticalFunction(MAP, t=t)
-    
-    # -------------------------------------------------------------------------
-    # ---------------------- Generate Prior distribution ----------------------
-    # -------------------------------------------------------------------------
-    
-    xx = np.zeros((MCSize, ndim))
-    
-    params = (-5,5)
-    
-    for idxDim in range(ndim):
-        lower, upper = params
-        xx[:,idxDim] = stats.uniform(loc=lower, scale=upper-lower).rvs(size=MCSize)
-    
-    # -------------------------------------------------------------------------
-    # ------------- BME and Kullback-Leibler Divergence -----------------------
-    # -------------------------------------------------------------------------
-    Outputs = AnalyticalFunction(xx, t=t)
-    
-    cov_matrix = np.diag(np.repeat(sigma**2, synthethicData.shape[1]))
-    
-    Likelihoods = st.multivariate_normal.pdf(Outputs[1:], mean=synthethicData[1], cov=cov_matrix)
-    
-    sns.kdeplot(np.log(Likelihoods[Likelihoods>0]), shade=True, color="g", label='Ref. Likelihood')
-    
-    normLikelihood = Likelihoods / np.nanmax(Likelihoods)
-    # Random numbers between 0 and 1
-    unif = np.random.rand(1, MCSize)[0]
-    
-    # Reject the poorly performed prior
-    accepted = normLikelihood >= unif
-    
-    # Prior-based estimation of BME
-    logBME = np.log(np.nanmean(Likelihoods))
-    print('\nThe Naive MC-Estimation of BME is %.5f.'%(logBME))
-    
-    # Posterior-based expectation of likelihoods
-    postExpLikelihoods = np.mean(np.log(Likelihoods[accepted]))
-    
-    # Calculate Kullback-Leibler Divergence
-    KLD = postExpLikelihoods - logBME
-    print("The Kullback-Leibler divergence estimation is %.5f."%KLD)
-    
-    # -------------------------------------------------------------------------
-    # ----------------- Save the arrays as .npy files -------------------------
-    # -------------------------------------------------------------------------
-    if MCSize > 500000:
-        np.save("data/refBME_KLD_"+str(ndim)+".npy", (logBME, KLD))
-        np.save("data/mean_"+str(ndim)+".npy", np.mean(Outputs[1:],axis=0))
-        np.save("data/std_"+str(ndim)+".npy", np.std(Outputs[1:],axis=0))
-    else:
-        np.save("data/Prior_"+str(ndim)+".npy", xx)
-        np.save("data/origModelOutput_"+str(ndim)+".npy", Outputs[1:])
-        np.save("data/validLikelihoods_"+str(ndim)+".npy", Likelihoods)
diff --git a/examples/analytical-function/util/PCE_vs_Chaospy.py b/examples/analytical-function/util/PCE_vs_Chaospy.py
deleted file mode 100755
index 87a71cea2389e6b639fb5927baf0c6b8cb488d2b..0000000000000000000000000000000000000000
--- a/examples/analytical-function/util/PCE_vs_Chaospy.py
+++ /dev/null
@@ -1,319 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-Created on Thu Aug 13 09:53:11 2020
-
-@author: farid
-"""
-import sys, os
-import numpy as np
-import scipy.stats as stats
-from itertools import cycle
-import pandas as pd
-try:
-    import cPickle as pickle
-except ModuleNotFoundError:
-    import pickle
-from sklearn import linear_model as lm
-from matplotlib.backends.backend_pdf import PdfPages
-import matplotlib.pyplot as plt
-plt.rcParams.update({'font.size': 24})
-plt.rc('figure', figsize = (24, 16))
-plt.rc('font', family='serif', serif='Arial')
-plt.rc('axes', grid = True)
-plt.rc('text', usetex=True)
-plt.rc('xtick', labelsize=24)
-plt.rc('ytick', labelsize=24)
-plt.rc('axes', labelsize=24)
-plt.rc('axes', linewidth=2)
-plt.rc('axes', grid=True)
-plt.rc('grid', linestyle="-")
-plt.rc('savefig', dpi=2000)
-
-import matplotlib
-matplotlib.use('agg')
-# Local
-sys.path.insert(0,'./../bayesian-validation/BayesValidRox/')
-
-# Batch script
-# sys.path.insert(0,'./../../bayesian-validation/BayesValidRox/')
-
-from PyLink.FuncForwardModel import FuncForwardModel
-from surrogate_models.Input import Input
-from surrogate_models.surrogate_models import Metamodel
-from PostProcessing.PostProcessing import PostProcessing
-
-
-# Number of parameters
-ndim = 10 # 2, 10
-
-#=====================================================
-#=============   COMPUTATIONAL MODEL  ================
-#=====================================================
-Model = FuncForwardModel()
-
-Model.Type = 'Function'
-Model.pyFile = 'AnalyticalFunction'
-Model.Name = 'AnalyticFunc'
-
-Model.Output.Names = ['Z']
-OutputNames = ['Z']
-
-# For Bayesian inversion synthetic data with X=[0,0]
-Model.Observations['Time [s]'] = np.arange(0, 10, 1.) / 9
-Model.Observations['Z'] = np.repeat([2],10)
-
-# For Checking with the MonteCarlo refrence
-Model.MCReference['Time [s]'] = np.arange(0, 10, 1.) / 9
-Model.MCReference['mean'] = np.load("../data/mean_"+str(ndim)+".npy")
-Model.MCReference['std'] = np.load("../data/std_"+str(ndim)+".npy")
-
-#=====================================================
-#=========   PROBABILISTIC INPUT MODEL  ==============
-#=====================================================
-# Define the uncertain parameters with their mean and 
-# standard deviation
-Inputs = Input()
-
-for i in range(ndim):
-    Inputs.addMarginals()
-    Inputs.Marginals[i].Name = '$X_{%s}$'%(i+1)
-    Inputs.Marginals[i].DistType = 'unif'
-    Inputs.Marginals[i].Parameters =  [-5, 5]
-
-# arbitrary polynomial chaos
-# inputParams = np.load('../data/InputParameters_{}.npy'.format(ndim))
-# for i in range(ndim):
-#     Inputs.addMarginals()
-#     Inputs.Marginals[i].Name = '$X_{%s}$'%(i+1)
-#     Inputs.Marginals[i].InputValues = inputParams[:,i]
-
-#=====================================================
-#==========  DEFINITION OF THE METAMODEL  ============
-#=====================================================    
-MetaModelOpts = Metamodel(Inputs)
-
-# Select if you want to preserve the spatial/temporal depencencies
-MetaModelOpts.DimRedMethod = 'PCA'
-MetaModelOpts.varPCAThreshold = 99.999
-
-# Select your metamodel method
-# 1) PCE (Polynomial Chaos Expansion) 2) GPE (Gaussian Process Emulator)
-# 3) PCEKriging (PCE + GPE)
-MetaModelOpts.metaModel = 'PCEKriging'
-
-# ------------------------------------------------
-# ------------- PCE Specification ----------------
-# ------------------------------------------------
-# Select the sparse least-square minimization method for 
-# the PCE coefficients calculation:
-# 1)OLS: Ordinary Least Square  2)BRR: Bayesian Ridge Regression 
-# 3)LARS: Least angle regression  4)ARD: Bayesian ARD Regression
-# 5)FastARD: Fast Bayesian ARD Regression
-MetaModelOpts.RegMethod = 'FastARD'
-
-# Specify the max degree to be compared by the adaptive algorithm:
-# The degree with the lowest Leave-One-Out cross-validation (LOO)
-# error (or the highest score=1-LOO)estimator is chosen as the final 
-# metamodel.
-MetaModelOpts.MinPceDegree = 6
-MetaModelOpts.MaxPceDegree = 6
-# q-quasi-norm 0<q<1 (default=1)
-MetaModelOpts.q = 1.0 if ndim<5 else 0.75
-
-# ------------------------------------------------
-# ------ Experimental Design Configuration -------
-# ------------------------------------------------
-# Generate an experimental design of size NrExpDesign based on a latin 
-# hypercube sampling of the input model or user-defined values of X and/or Y:
-MetaModelOpts.addExpDesign()
-
-# One-shot (normal) or Sequential Adaptive (sequential) Design
-MetaModelOpts.ExpDesign.Method = 'normal'
-MetaModelOpts.ExpDesign.NrSamples = 200
-
-# Sampling methods
-# 1) random 2) latin_hypercube 3) sobol 4) halton 5) hammersley 6) chebyshev(FT) 
-# 7) korobov 8) grid(FT) 9) nested_grid(FT) 10)user
-MetaModelOpts.ExpDesign.SamplingMethod = 'random'
-
-# >>>>>>>>>>>>>>>>>>>>>> Build Surrogate <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-# Adaptive sparse arbitrary polynomial chaos expansion
-MetaModelOpts.index = 181
-PCEModel = MetaModelOpts.create_metamodel(Model)
-
-# PCEModel = BayesObj.PCEModel
-# Extract slicing index
-# Extract the experimental design
-EDX = PCEModel.ExpDesign.X
-index = PCEModel.index
-EDYDict = PCEModel.ExpDesign.Y
-JDist = PCEModel.ExpDesign.JDist
-X_train = PCEModel.ExpDesign.X
-EDY = PCEModel.ExpDesign.Y
-#=====================================================
-#=========  POST PROCESSING OF METAMODELS  ===========
-#=====================================================
-PostPCE = PostProcessing(PCEModel)
-
-# Compute the moments and compare with the Monte-Carlo reference
-PostPCE.plotMoments()
-
-# Plot the sobol indices
-sobol_cell, total_sobol = PostPCE.sobolIndicesPCE()
-
-
-#=====================================================
-#============  METAMODELS  WITH CHAOSPY  =============
-#=====================================================
-import chaospy
-from surrogate_models.RegressionFastARD import RegressionFastARD
-
-def PCATransformation(Output):
-    
-    # Transform via Principal Component Analysis
-    from sklearn.decomposition import PCA as sklearnPCA
-
-    n_samples, n_features = Output.shape
-    covar_matrix = sklearnPCA(n_components=None, svd_solver='full')
-    covar_matrix.fit(Output)
-    var = np.cumsum(np.round(covar_matrix.explained_variance_ratio_, decimals=5)*100)
-    try:
-        selected_n_components = np.where(var>=99.0)[0][0] + 1
-    except:
-        selected_n_components = min(n_samples, n_features)
-    
-    nComponents = min(n_samples, n_features, selected_n_components)
-    
-    pca = sklearnPCA(n_components=nComponents, svd_solver='full', whiten=False)
-    OutputMatrix = pca.fit_transform(Output)
-    
-    return pca, OutputMatrix
-
-def fit_regression(methodConfig, X_train,Y_train,pca=False):
-    
-    from sklearn.multioutput import MultiOutputRegressor
-    
-    if pca:
-        PCA, Y_train = PCATransformation(Y_train)
-    else:
-        PCA = None
-        
-    deg = methodConfig['deg']
-    distribution = methodConfig['distribution']
-    q = methodConfig['q']
-    regmethod = methodConfig['regmethod'] 
-    # Generate Orthogonal Polynomial Expansion:
-    orthogonal_expansion = chaospy.orth_ttr(deg, distribution, cross_truncation=q)
-    
-    PCEModel={}
-    PCEModel['config'] = methodConfig
-    newPsi = orthogonal_expansion(*X_train.T).T
-
-    if regmethod =='FastARD':
-        PCEModel = MultiOutputRegressor(RegressionFastARD(fit_intercept=False)).fit(newPsi, Y_train)
-    else:
-        PCEModel = MultiOutputRegressor(lm.BayesianRidge(fit_intercept=False)).fit(newPsi, Y_train)
-
-    # for idx in range(Y_train.shape[1]):
-    #     clf_poly = RegressionFastARD(fit_intercept=False)
-        
-    #     PCEModel[idx] = clf_poly.fit(newPsi, Y_train[:,idx])
-    
-    return PCA, PCEModel
-
-def approx_model(model, X,pca=None):
-    
-    global methodConfig
-     
-    y_Hat, y_Std = [], []
-    deg = methodConfig['deg']
-    distribution = methodConfig['distribution']
-    q = methodConfig['q']
-    
-    # Generate Orthogonal Polynomial Expansion:
-    orthogonal_expansion = chaospy.orth_ttr(deg, distribution, cross_truncation=q)
-    
-    psi = orthogonal_expansion(*X.T).T
-    
-    y_Hat = model.predict(psi).T
-    
-    # for idx in list(model.keys())[1:]:
-    #     y_hat, y_std = model[idx].predict(psi, return_std=True)
-    #     y_Hat.append(y_hat)
-    #     y_Std.append(y_std)
-    
-    if pca is None:
-       return np.array(y_Hat).T
-    else:
-        return pca.inverse_transform(np.array(y_Hat).T)# , np.array(y_Std).T
-
-# Select a Distributions:
-distribution = JDist #chaospy.J(*[chaospy.Uniform(-5.0,5.0)]*ndim)
-
-methodConfig = dict()
-y_chaos = dict()
-methodConfig['regmethod'] = 'FastARD' #'FastARD'
-methodConfig['deg'] = PCEModel.MaxPceDegree
-methodConfig['distribution'] = distribution
-methodConfig['q'] = MetaModelOpts.q
-
-
-# Fit regression model
-PCA = True
-for key in OutputNames:
-    
-    pca, PCEModel_chaospy = fit_regression(methodConfig, X_train,EDY[key],pca=PCA)
-    y_chaos[key] = approx_model(PCEModel_chaospy, X_train,pca=pca)
-
-
-#=====================================================
-#=================  Visualization  ===================
-#=====================================================
-# List of markers and colors
-Color = ['k','b', 'g', 'r']
-Marker = 'x'
-
-Time = EDY['x_values']
-      
-nStes = 1
-    
-# Run pcemodel
-y_hat, y_std = PCEModel.eval_metamodel(samples=EDX[:nStes]) #(nsamples=100, samples=EDX, name=case)
-
-# create a PdfPages object
-pdf = PdfPages('./PCE.pdf')
-fig = plt.figure()
-    
-for key in OutputNames:
-    
-    fig, ax = plt.subplots()
-    
-    
-    # Plot ExpDesign
-    for i, output in enumerate(EDY[key][:nStes]):
-        plt.plot(Time,output, alpha=0.35)
-    
-    
-    # Plot PCE with BayesValidRox
-    for i, output in enumerate(y_hat[key]):
-        plt.plot(Time,output, ls='-', marker='*')
-        
-        
-    # Plot PCE with Chaospy
-    for i, output in enumerate(y_chaos[key][:nStes]):
-        plt.plot(Time,output, ls='-', marker='*')
-    
-    plt.legend(loc='best', frameon=True)
-    plt.xlabel('Time [s]')            
-    plt.ylabel(key)
-    
-    # save the current figure
-    pdf.savefig(fig, bbox_inches='tight')
-        
-    # Destroy the current plot
-    plt.clf()
-
-pdf.close() 
-
-
diff --git a/examples/analytical-function/util/Psi_BayesValidRox.npy b/examples/analytical-function/util/Psi_BayesValidRox.npy
deleted file mode 100644
index 43373abb38884fbe6f5e8c509443b916a3a0aea7..0000000000000000000000000000000000000000
Binary files a/examples/analytical-function/util/Psi_BayesValidRox.npy and /dev/null differ
diff --git a/examples/analytical-function/util/Psi_Chaospy.npy b/examples/analytical-function/util/Psi_Chaospy.npy
deleted file mode 100644
index dc7974367157dba6f4775091aa09acd314b4c8fe..0000000000000000000000000000000000000000
Binary files a/examples/analytical-function/util/Psi_Chaospy.npy and /dev/null differ
diff --git a/examples/analytical-function/util/__pycache__/AnalyticalFunction.cpython-38.pyc b/examples/analytical-function/util/__pycache__/AnalyticalFunction.cpython-38.pyc
deleted file mode 100644
index e89c6708d7e9e374610f5dec468e2d7c3a94036f..0000000000000000000000000000000000000000
Binary files a/examples/analytical-function/util/__pycache__/AnalyticalFunction.cpython-38.pyc and /dev/null differ
diff --git a/examples/analytical-function/util/dynamic_image.py b/examples/analytical-function/util/dynamic_image.py
deleted file mode 100644
index 8c1478164c37739fc1c7b42d4fe4d108c696deee..0000000000000000000000000000000000000000
--- a/examples/analytical-function/util/dynamic_image.py
+++ /dev/null
@@ -1,142 +0,0 @@
-"""
-=================================================
-Animated image using a precomputed list of images
-=================================================
-
-"""
-
-import numpy as np
-import matplotlib.pyplot as plt
-import matplotlib.animation as animation
-plt.rcParams.update({'font.size': 16})
-plt.rc('figure', figsize = (12, 8))
-plt.rc('font', family='sans-serif', serif='Arial')
-plt.rc('axes', grid = True)
-plt.rc('text', usetex=True)
-plt.rc('xtick', labelsize=16)
-plt.rc('ytick', labelsize=16)
-plt.rc('axes', labelsize=16)
-
-def posteriorPlot(ax,figPosterior,Posterior, MAP, parNames):
-    
-    # Initialization
-    lw = 3.
-    BoundTuples = [(-5,5), (-5,5)]
-    NofPa = len(MAP)
-    
-    # This is the true mean of the second mode that we used above:
-    value1 = MAP
-    
-    # This is the empirical mean of the sample:
-    value2 = np.mean(Posterior, axis=0)
-    
-    if NofPa == 2:
-
-        #figPosterior, ax = plt.subplots()
-        plt.hist2d(Posterior[:,0], Posterior[:,1], bins=(200, 200),
-                   range=np.array([BoundTuples[0],BoundTuples[1]]), cmap=plt.cm.jet)
-    
-        plt.xlabel(parNames[0])
-        plt.ylabel(parNames[1])
-        
-        plt.xlim(BoundTuples[0])
-        plt.ylim(BoundTuples[1])
-        
-        ax.axvline(value1[0], color="g", lw=lw)
-        ax.axhline(value1[1], color="g", lw=lw)
-        ax.plot(value1[0], value1[1], "sg", lw=lw+1)
-        
-        #ax.axvline(value2[0], ls='--', color="r", lw=lw)
-        #ax.axhline(value2[1], ls='--', color="r", lw=lw)
-        #ax.plot(value2[0], value2[1], "sr", lw=lw+1)
-        
-    else:
-        import corner
-        figPosterior = corner.corner(Posterior, labels=parNames,
-                           show_titles=True, title_kwargs={"fontsize": 12})
-    
-        # Extract the axes
-        axes = np.array(figPosterior.axes).reshape((NofPa, NofPa))
-        
-        # Loop over the diagonal
-        for i in range(NofPa):
-            ax = axes[i, i]
-            ax.axvline(value1[i], color="g")
-            ax.axvline(value2[i], ls='--', color="r")
-        
-        # Loop over the histograms
-        for yi in range(NofPa):
-            for xi in range(yi):
-                ax = axes[yi, xi]
-                ax.axvline(value1[xi], color="g")
-                ax.axvline(value2[xi], ls='--', color="r")
-                ax.axhline(value1[yi], color="g")
-                ax.axhline(value2[yi], ls='--', color="r")
-                ax.plot(value1[xi], value1[yi], "sg")
-                ax.plot(value2[xi], value2[yi], "sr")
-    
-    plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1)
-    #figPosterior.set_size_inches((10,10)) 
-    return figPosterior
-
-fig, ax = plt.subplots()
-dirPath = '/home/farid/scientific/bayesian-validation/BayesValidRox/tests/AnalyticalFunction/Outputs_SeqPosteriorComparison/'
-            
-nRuns= 35
-Posteriors = {}
-nameList = ['init'] + list(range(1,nRuns+1))
-for i, name in enumerate(nameList):
-#    x = np.random.normal(size=50000)
-#    y = x * 3 * (i+1) + np.random.normal(size=50000)
-#    Posteriors[i] = np.stack((x,y)).T
-    Posteriors[i] = np.load(dirPath+'SeqPosterior_%s.npy'%name)
-
-
-# animation function
-def animate(i, Posteriors): 
-    
-    Posterior = Posteriors[i]
-    
-    cont = posteriorPlot(ax,fig,Posterior, MAP = (0,0), parNames=['$X_1$', '$X_2$'])
-
-    plt.title(r'Iteration = %i' % i)
-
-    return cont  
-
-anim = animation.FuncAnimation(fig, animate, fargs=(Posteriors,))#, frames=nRuns)
-anim.save('animation.mp4')
-
-     
-        
-#fig = plt.figure()
-#
-#
-#def f(x, y):
-#    return np.sin(x) + np.cos(y)
-#
-#x = np.linspace(0, 2 * np.pi, 120)
-#y = np.linspace(0, 2 * np.pi, 100).reshape(-1, 1)
-## ims is a list of lists, each row is a list of artists to draw in the
-## current frame; here we are just animating one artist, the image, in
-## each frame
-#ims = []
-#for i in range(60):
-#    x += np.pi / 15.
-#    y += np.pi / 20.
-#    im = plt.imshow(f(x, y), animated=True)
-#    ims.append([im])
-#
-#ani = animation.ArtistAnimation(fig, ims, interval=50, blit=True,
-#                                repeat_delay=1000)
-#
-## To save the animation, use e.g.
-##
-#ani.save("movie.mp4")
-#
-# or
-#
-# from matplotlib.animation import FFMpegWriter
-# writer = FFMpegWriter(fps=15, metadata=dict(artist='Me'), bitrate=1800)
-# ani.save("movie.mp4", writer=writer)
-
-#plt.show()
diff --git a/examples/analytical-function/util/indices_bayesValid.npy b/examples/analytical-function/util/indices_bayesValid.npy
deleted file mode 100644
index 087a2608fb8da023977760ab15582c61c7a8ff6d..0000000000000000000000000000000000000000
Binary files a/examples/analytical-function/util/indices_bayesValid.npy and /dev/null differ
diff --git a/examples/analytical-function/util/indices_chaospy.npy b/examples/analytical-function/util/indices_chaospy.npy
deleted file mode 100644
index 087a2608fb8da023977760ab15582c61c7a8ff6d..0000000000000000000000000000000000000000
Binary files a/examples/analytical-function/util/indices_chaospy.npy and /dev/null differ
diff --git a/examples/analytical-function/util/svg_gif.py b/examples/analytical-function/util/svg_gif.py
deleted file mode 100644
index 4430de69c299a495bba9642ea5d5115e7452bdda..0000000000000000000000000000000000000000
--- a/examples/analytical-function/util/svg_gif.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-Created on Mon May 16 10:51:20 2022
-
-@author: farid
-"""
-
-import imageio
-import os
-import re
-
-
-def tryint(s):
-    try:
-        return int(s)
-    except:
-        return s
-
-
-def alphanum_key(s):
-    """ Turn a string into a list of string and number chunks.
-        "z23a" -> ["z", 23, "a"]
-    """
-    return [tryint(c) for c in re.split('([0-9]+)', s)]
-
-
-def sort_nicely(input_list):
-    """ Sort the given list in the way that humans expect.
-    """
-    input_list.sort(key=alphanum_key)
-
-
-path = '../adaptivePlots'
-file_ext = 'pdf'
-
-
-filenames = []
-for file in os.listdir(path):
-    if file.endswith(f'.{file_ext}'):
-        filenames.append(os.path.join(path, file))
-sort_nicely(filenames)
-
-images = []
-for filename in filenames:
-    images.append(imageio.imread(filename))
-imageio.mimsave(f'{path}/movie.gif', images)
diff --git a/examples/beam/Beam9points_1/SSBeam_Deflection_1.inp b/examples/beam/Beam9points_1/SSBeam_Deflection_1.inp
new file mode 100644
index 0000000000000000000000000000000000000000..fec3b20b0b63491c95e1deab597784c31448405f
--- /dev/null
+++ b/examples/beam/Beam9points_1/SSBeam_Deflection_1.inp
@@ -0,0 +1,6 @@
+% Input file for the simply supported beam model
+1.5557e-01 % b in m
+2.8052e-01 % h in m
+5 % L in m
+2.2558e+10 % E in Pa
+9.2858e+03 % p in N/m
diff --git a/examples/beam/example_beam.py b/examples/beam/example_beam.py
new file mode 100644
index 0000000000000000000000000000000000000000..84b88255f53ef81ae5eb2861b4550fe0c68052ab
--- /dev/null
+++ b/examples/beam/example_beam.py
@@ -0,0 +1,157 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+This test shows a surrogate for a beam deflection model can be created.
+This example also illustrate how a model with an executable and a
+input file can be linked with the bayesvalidrox package.
+
+Author: Farid Mohammadi, M.Sc.
+E-Mail: farid.mohammadi@iws.uni-stuttgart.de
+Department of Hydromechanics and Modelling of Hydrosystems (LH2)
+Institute for Modelling Hydraulic and Environmental Systems (IWS), University
+of Stuttgart www.iws.uni-stuttgart.de/lh2/
+Pfaffenwaldring 61
+70569 Stuttgart
+
+"""
+# Add BayesValidRox path
+import sys
+sys.path.append("../../src/bayesvalidrox/")
+
+from bayesvalidrox.pylink.pylink import PyLinkForwardModel
+from bayesvalidrox.surrogate_models.inputs import Input
+from bayesvalidrox.surrogate_models.exp_designs import ExpDesigns
+from bayesvalidrox.surrogate_models.surrogate_models import MetaModel
+#from bayesvalidrox.surrogate_models.meta_model_engine import MetaModelEngine
+from bayesvalidrox.post_processing.post_processing import PostProcessing
+from bayesvalidrox.bayes_inference.bayes_inference import BayesInference
+from bayesvalidrox.bayes_inference.discrepancy import Discrepancy
+
+from bayesvalidrox.surrogate_models.engine import Engine
+
+
+if __name__ == "__main__":
+
+    # =====================================================
+    # =============   COMPUTATIONAL MODEL  ================
+    # =====================================================
+    Model = PyLinkForwardModel()
+
+    Model.link_type = 'PyLink'
+    Model.name = 'Beam9points'
+    Model.input_file = "SSBeam_Deflection.inp"
+    Model.input_template = "SSBeam_Deflection.tpl.inp"
+
+    Model.shell_command = "myBeam9points SSBeam_Deflection.inp"
+    Model.Output.parser = 'read_Beam_Deflection'
+    Model.Output.names = ['Deflection [m]']
+    Model.Output.file_names = ["SSBeam_Deflection.out"]
+
+    # For Bayesian inversion
+    Model.meas_file = 'data/MeasuredData.csv'
+    Model.meas_file_valid = 'data/MeasuredData_Valid.csv'
+
+    # For Checking with the MonteCarlo refrence
+    Model.mc_ref_file = 'data/MCrefs_MeanStd.csv'
+
+    # =====================================================
+    # =========   PROBABILISTIC INPUT MODEL  ==============
+    # =====================================================
+    # Define the uncertain parameters with their mean and
+    # standard deviation
+    Inputs = Input()
+
+    Inputs.add_marginals()
+    Inputs.Marginals[0].name = 'Beam width'
+    Inputs.Marginals[0].dist_type = 'lognormal'
+    Inputs.Marginals[0].parameters = [0.15, 0.0075]
+
+    Inputs.add_marginals()
+    Inputs.Marginals[1].name = 'Beam height'
+    Inputs.Marginals[1].dist_type = 'lognormal'
+    Inputs.Marginals[1].parameters = [0.3, 0.015]
+
+    Inputs.add_marginals()
+    Inputs.Marginals[2].name = 'Youngs modulus'
+    Inputs.Marginals[2].dist_type = 'lognormal'
+    Inputs.Marginals[2].parameters = [30000e+6, 4500e+6]
+
+    Inputs.add_marginals()
+    Inputs.Marginals[3].name = 'Uniform load'
+    Inputs.Marginals[3].dist_type = 'lognormal'
+    Inputs.Marginals[3].parameters = [1e4, 2e3]
+
+    # =====================================================
+    # ==========  DEFINITION OF THE METAMODEL  ============
+    # =====================================================
+    MetaModelOpts = MetaModel(Inputs, Model)
+
+    # Select if you want to preserve the spatial/temporal depencencies
+    # MetaModelOpts.dim_red_method = 'PCA'
+    # MetaModelOpts.var_pca_threshold = 99.999
+    # MetaModelOpts.n_pca_components = 12
+
+    # Select your metamodel method
+    # 1) PCE (Polynomial Chaos Expansion) 2) aPCE (arbitrary PCE)
+    # 3) GPE (Gaussian Process Emulator)
+    MetaModelOpts.meta_model_type = 'PCE'
+
+    # ------------------------------------------------
+    # ------------- PCE Specification ----------------
+    # ------------------------------------------------
+    # Select the sparse least-square minimization method for
+    # the PCE coefficients calculation:
+    # 1)OLS: Ordinary Least Square  2)BRR: Bayesian Ridge Regression
+    # 3)LARS: Least angle regression  4)ARD: Bayesian ARD Regression
+    # 5)FastARD: Fast Bayesian ARD Regression
+    # 6)BCS: Bayesian Compressive Sensing
+    # 7)OMP: Orthogonal Matching Pursuit
+    # 8)VBL: Variational Bayesian Learning
+    # 9)EBL: Emperical Bayesian Learning
+    MetaModelOpts.pce_reg_method = 'FastARD'
+
+    # Specify the max degree to be compared by the adaptive algorithm:
+    # The degree with the lowest Leave-One-Out cross-validation (LOO)
+    # error (or the highest score=1-LOO)estimator is chosen as the final
+    # metamodel. pce_deg accepts degree as a scalar or a range.
+    MetaModelOpts.pce_deg = 6
+
+    # q-quasi-norm 0<q<1 (default=1)
+    MetaModelOpts.pce_q_norm = 0.75
+
+    # ------------------------------------------------
+    # ------ Experimental Design Configuration -------
+    # ------------------------------------------------
+   # MetaModelOpts.add_ExpDesign()
+    ExpDesign = ExpDesigns(Inputs)
+
+    # One-shot (normal) or Sequential Adaptive (sequential) Design
+    ExpDesign.n_init_samples = 100
+
+    # Sampling methods
+    # 1) random 2) latin_hypercube 3) sobol 4) halton 5) hammersley
+    # 6) chebyshev(FT) 7) grid(FT) 8)user
+    ExpDesign.sampling_method = 'latin_hypercube'
+
+    # Provide the experimental design object with a hdf5 file
+    # MetaModelOpts.ExpDesign.hdf5_file = 'ExpDesign_Beam9points.hdf5'
+
+    # ------ Train the surrogate model ------
+    engine = Engine(MetaModelOpts, Model, ExpDesign)
+    engine.start_engine()
+    engine.train_normal()
+
+    # =====================================================
+    # =========  POST PROCESSING OF METAMODELS  ===========
+    # =====================================================
+    PostPCE = PostProcessing(engine)
+
+    # Compute the moments and compare with the Monte-Carlo reference
+    PostPCE.plot_moments(xlabel='$\\mathrm{L_{rel}}$ (-)')
+
+    # Plot the sobol indices
+    if MetaModelOpts.meta_model_type != 'GPE':
+        total_sobol = PostPCE.sobol_indices()
+
+    # Plot to check validation visually.
+    PostPCE.valid_metamodel(n_samples=3)
diff --git a/examples/borehole/borehole.py b/examples/borehole/borehole.py
index b2a0dcd4a08091e05b74cceae3eda3709308ae49..f91cbb8f8a645ce9a48e159b268005213e682619 100644
--- a/examples/borehole/borehole.py
+++ b/examples/borehole/borehole.py
@@ -58,6 +58,7 @@ def borehole(xx, *args):
     Hu = xx[:, 5]
     Hl = xx[:, 6]
     r = xx[:, 7]
+    
 
     frac1 = 2 * np.pi * Tu * (Hu-Hl)
 
@@ -68,6 +69,8 @@ def borehole(xx, *args):
     y = frac1 / frac2
 
     # Prepare output dict using standard bayesvalidrox format
-    output = {'x_values': np.zeros(1), 'flow rate [m$^3$/yr]': y}
+    #output = {'x_values': np.zeros(1), 'flow rate [m$^3$/yr]': y}
+    output = {'x_values': np.zeros(1), 'flow rate': y}
 
     return output
+
diff --git a/examples/borehole/test_borehole.py b/examples/borehole/example_borehole.py
similarity index 79%
rename from examples/borehole/test_borehole.py
rename to examples/borehole/example_borehole.py
index e28e9a30f76afa9deb158e23532af12623f2d8e2..869a053202cfb7343ee03a9a8f41b8b2fc4c8958 100644
--- a/examples/borehole/test_borehole.py
+++ b/examples/borehole/example_borehole.py
@@ -27,19 +27,26 @@ import joblib
 import sys
 sys.path.append("../../src/bayesvalidrox/")
 
-from pylink.pylink import PyLinkForwardModel
-from surrogate_models.inputs import Input
-from surrogate_models.surrogate_models import MetaModel
-from post_processing.post_processing import PostProcessing
-from bayes_inference.bayes_inference import BayesInference
-from bayes_inference.discrepancy import Discrepancy
-from surrogate_models.meta_model_engine import MetaModelEngine
+from bayesvalidrox.pylink.pylink import PyLinkForwardModel
+from bayesvalidrox.surrogate_models.inputs import Input
+from bayesvalidrox.surrogate_models.exp_designs import ExpDesigns
+from bayesvalidrox.surrogate_models.surrogate_models import MetaModel
+#from bayesvalidrox.surrogate_models.meta_model_engine import MetaModelEngine
+from bayesvalidrox.post_processing.post_processing import PostProcessing
+from bayesvalidrox.bayes_inference.bayes_inference import BayesInference
+from bayesvalidrox.bayes_inference.discrepancy import Discrepancy
+from bayesvalidrox.surrogate_models.engine import Engine
 
 import matplotlib
 matplotlib.use('agg')
 
+
+# TODO: this is a test in hopes of removing multiprocessing issues
+from multiprocessing import set_start_method
 if __name__ == "__main__":
 
+    #set_start_method('fork', force = True)
+
     # =====================================================
     # =============   COMPUTATIONAL MODEL  ================
     # =====================================================
@@ -50,7 +57,7 @@ if __name__ == "__main__":
     Model.py_file = 'borehole'
     Model.name = 'borehole'
 
-    Model.Output.names = ['flow rate [m$^3$/yr]']
+    Model.Output.names = ['flow rate']#' [m$^3$/yr]']
 
     # =====================================================
     # =========   PROBABILISTIC INPUT MODEL  ==============
@@ -144,45 +151,45 @@ if __name__ == "__main__":
     # ------------------------------------------------
     # ------ Experimental Design Configuration -------
     # ------------------------------------------------
-    MetaModelOpts.add_ExpDesign()
+    ExpDesign = ExpDesigns(Inputs)
 
     # One-shot (normal) or Sequential Adaptive (sequential) Design
-    MetaModelOpts.ExpDesign.method = 'sequential'
-    MetaModelOpts.ExpDesign.n_init_samples = 50
+    ExpDesign.method = 'sequential'
+    ExpDesign.n_init_samples = 50
 
     # Sampling methods
     # 1) random 2) latin_hypercube 3) sobol 4) halton 5) hammersley 6) korobov
     # 7) chebyshev(FT) 8) grid(FT) 9) nested_grid(FT) 10)user
-    MetaModelOpts.ExpDesign.sampling_method = 'latin_hypercube'
+    ExpDesign.sampling_method = 'latin_hypercube'
 
     # Provide the experimental design object with a hdf5 file
     # MetaModelOpts.ExpDesign.hdf5_file = 'ExpDesign_borehole.hdf5'
 
     # Sequential experimental design (needed only for sequential ExpDesign)
-    MetaModelOpts.ExpDesign.n_new_samples = 1
-    MetaModelOpts.ExpDesign.n_max_samples = 300
-    MetaModelOpts.ExpDesign.mod_LOO_threshold = 1e-16
+    ExpDesign.n_new_samples = 1
+    ExpDesign.n_max_samples = 300
+    ExpDesign.mod_LOO_threshold = 1e-16
 
     # ------------------------------------------------
     # ------- Sequential Design configuration --------
     # ------------------------------------------------
     # 1) None 2) 'equal' 3)'epsilon-decreasing' 4) 'adaptive'
-    MetaModelOpts.ExpDesign.tradeoff_scheme = None
+    ExpDesign.tradeoff_scheme = None
     # MetaModelOpts.ExpDesign.n_replication = 50
     # -------- Exploration ------
     # 1)'Voronoi' 2)'random' 3)'latin_hypercube' 4)'dual annealing'
-    MetaModelOpts.ExpDesign.explore_method = 'latin_hypercube'
+    ExpDesign.explore_method = 'latin_hypercube'
 
     # Use when 'dual annealing' chosen
-    MetaModelOpts.ExpDesign.max_func_itr = 200
+    ExpDesign.max_func_itr = 200
 
     # Use when 'Voronoi' or 'random' or 'latin_hypercube' chosen
-    MetaModelOpts.ExpDesign.n_canddidate = 5000
-    MetaModelOpts.ExpDesign.n_cand_groups = 4
+    ExpDesign.n_canddidate = 5000
+    ExpDesign.n_cand_groups = 4
 
     # -------- Exploitation ------
     # 1)'BayesOptDesign' 2)'VarOptDesign' 3)'alphabetic' 4)'Space-filling'
-    MetaModelOpts.ExpDesign.exploit_method = 'Space-filling'
+    ExpDesign.exploit_method = 'Space-filling'
 
     # BayesOptDesign -> when data is available
     # 1)DKL (Kullback-Leibler Divergence) 2)DPP (D-Posterior-percision)
@@ -191,31 +198,33 @@ if __name__ == "__main__":
 
     # VarBasedOptDesign -> when data is not available
     # Only with Vornoi >>> 1)Entropy 2)EIGF, 3)ALM, 4)LOOCV
-    MetaModelOpts.ExpDesign.util_func = 'ALM'
+    ExpDesign.util_func = 'ALM'
 
     # alphabetic
     # 1)D-Opt (D-Optimality) 2)A-Opt (A-Optimality)
     # 3)K-Opt (K-Optimality)
     # MetaModelOpts.ExpDesign.util_func = 'D-Opt'
 
-    MetaModelOpts.valid_samples = np.load("data/valid_samples.npy")
-    MetaModelOpts.valid_model_runs = {
-        'flow rate [m$^3$/yr]': np.load("data/valid_outputs.npy")
-        }
+    valid_samples = np.load("data/valid_samples.npy")
+    #valid_model_runs = {'flow rate [m$^3$/yr]': np.load("data/valid_outputs.npy")}
+    valid_model_runs = {'flow rate': np.load("data/valid_outputs.npy")}
     # >>>>>>>>>>>>>>>>>>>>>> Build Surrogate <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
     # Use MetaModelEngine for sequential experimental design
-    meta_model_engine = MetaModelEngine(MetaModelOpts)
-    meta_model_engine.run()
-    PCEModel = meta_model_engine.MetaModel
+    
+    MetaModelOpts.ExpDesign = ExpDesign
+    engine = Engine(MetaModelOpts, Model, ExpDesign)
+    engine.start_engine()
+#    engine.train_sequential()
+    engine.train_sequential(parallel = True)
 
     # Save PCE models
     with open(f'PCEModel_{Model.name}.pkl', 'wb') as output:
-        joblib.dump(PCEModel, output, 2)
+        joblib.dump(engine.MetaModel, output, 2)
 
     # =====================================================
     # =========  POST PROCESSING OF METAMODELS  ===========
     # =====================================================
-    PostPCE = PostProcessing(PCEModel)
+    PostPCE = PostProcessing(engine)
 
     # Plot to check validation visually.
     PostPCE.valid_metamodel(n_samples=200)
diff --git a/examples/convergence_tests/convergence_test.py b/examples/convergence_tests/convergence_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..bc56e4cb897cde5cf95c5b832002814da831b663
--- /dev/null
+++ b/examples/convergence_tests/convergence_test.py
@@ -0,0 +1,106 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+import matplotlib.pyplot as plt
+import time
+
+def convergence_test(engine, steps, error, train_samples, test_samples, 
+                     test_data, plot = True, write = True):
+    """
+    Tests the convergence for a metamodel over the number of given training 
+    samples in its experimental design.
+    The results are written out and plotted.
+    
+    Conditions: 
+        If data is not given, then arbitrary samples will be chosen to run the 
+        model on
+
+    Parameters
+    ----------
+    engine : bayesvalidrox.Engine
+        Engine with model and metamodel to train. The ExpDesign needs to exist, 
+        but sampling method and more will be set in this function
+    steps : list of ints in increasing order
+        The number of samples to train on per iteration
+    error : function(test_mean, test_std, test_data)
+        The function ued to calculate the accuracy of the surrogate, 
+        e.g. the L2-norm
+    train_samples : 2d np.array
+        The samples to train on
+    test_samples :  2d np.array
+        The samples to use for the accuracy tests of the trained metamodels
+    test_data : dict of np.arrays
+        Model evaluations matching the test_samples
+    plot : bool, optional
+        Sets if the accuracy should be visualized 
+    write : bool, optional
+    
+    Returns
+    -------
+    engines : The trained engines
+    accuracy : Results of the accuracy measures on the engines
+
+    """
+    print('')
+    print('STARTING THE CONVERGENCE TEST')
+    # Define output lists
+    engines = []
+    test_runs = {}
+    test_runs['mean'] = []
+    test_runs['std']=[]
+    accuracy = {}
+    
+    for n in steps:
+        print('')
+        print(f'---- {n} TRAINING POINTS ----')
+        print('')
+        samples = train_samples[:n]
+        
+        # Redo the explerimental design
+        engine.ExpDesign.method = 'normal'
+        engine.ExpDesign.n_init_samples = n
+        engine.ExpDesign.sampling_method = 'user'
+        engine.ExpDesign.X = samples
+        engine.ExpDesign.Y = None
+        engine.start_engine()
+        
+        # Train and evaluate
+        start = time.time()
+        engine.train_normal()
+        end = time.time()
+        
+        print('')
+        print('Evaluating the metamodel')
+        surrogate = engine.MetaModel
+        test_mean, test_std = surrogate.eval_metamodel(test_samples)
+        
+        # Add the results
+        engines.append(engine)
+        test_runs['mean'].append(test_mean)
+        test_runs['std'].append(test_std)
+        
+        # Add training time
+        if 'time' not in accuracy.keys():
+            accuracy['time'] = []
+        accuracy['time'].append(end-start)
+        
+        # Add error measures
+        er = error(test_mean, test_std, test_data)
+        for key in er:
+            if key not in accuracy.keys():
+                accuracy[key] = []
+            accuracy[key].append(er[key])
+    
+    # Save the results?
+    if write:
+        None
+    
+    # Plot the results
+    for key in accuracy:
+        if plot: 
+            plt.plot(steps, accuracy[key], linestyle = 'dashed')
+            plt.scatter(steps, accuracy[key], label = key)
+            plt.legend()
+            plt.show()
+        
+    return engines, accuracy
diff --git a/examples/convergence_tests/example_trainingconvergence.py b/examples/convergence_tests/example_trainingconvergence.py
new file mode 100644
index 0000000000000000000000000000000000000000..d1aea4fe0de0d6467d525564965f8b6e052adda4
--- /dev/null
+++ b/examples/convergence_tests/example_trainingconvergence.py
@@ -0,0 +1,176 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+This example shows comparisons of three regression options for the aPC in 
+bayesvalidrox: OLS, FastARD and OLS with constraints.
+The trained surrogates are compared with respect to the here defined error
+measure and their computational cost for different numbers of training samples.
+"""
+
+import numpy as np
+import matplotlib.pyplot as plt
+import random
+
+from bayesvalidrox.pylink.pylink import PyLinkForwardModel
+from bayesvalidrox.surrogate_models.inputs import Input
+from bayesvalidrox.surrogate_models.engine import Engine
+from bayesvalidrox.surrogate_models.exp_designs import ExpDesigns
+import bayesvalidrox.surrogate_models.surrogate_models as sm
+
+from convergence_test import convergence_test
+from testfunction import testfunction
+
+def error(mean, std, true):
+    """
+    Error function to evaluate the metamodels
+    Returns a dictionary of measures.
+    Here:
+        'L2': standard L2 error
+
+    Parameters
+    ----------
+    mean : dict
+        Mean-part of surrogate evaluation
+    std : dict
+        Std-part of surrogate evaluation
+    true : dict
+        Mean-part of model evaluation
+
+    Returns
+    -------
+    dict
+        Results of error measures
+
+    """
+    m = mean['Z']
+    t = true['Z']
+    diff = m-t
+    return {'L2': np.linalg.norm(diff)}
+    
+    
+if __name__=="__main__":
+    random.seed(15)
+
+    # Some model properties and settings
+    t = np.linspace(0,10,10)
+    ndim = 2
+    
+    # Plot some evaluations of the model 
+    xx, yy = np.meshgrid(np.linspace(0,1,10),np.linspace(0,1,10))
+    x = np.swapaxes(np.vstack([ xx.reshape(-1), yy.reshape(-1) ]),0,1)
+    out_list = []
+    for x_ in x:
+        out_list.append(testfunction([x_],t)['Z'])
+    out = np.array(out_list)
+    mean_out = np.mean(out, axis = 0)
+    std_out = np.std(out, axis = 0)
+    
+    for i in out:
+        plt.plot(t,i,alpha = 0.2, color = 'blue')
+    plt.show()
+    plt.plot(t, mean_out)
+    plt.show()
+    plt.plot(t, std_out)
+    plt.show()
+    
+    # Define the model
+    Model = PyLinkForwardModel()
+    Model.link_type = 'Function'
+    Model.py_file = 'testfunction'
+    Model.name = 'testfunction'
+    Model.Output.names = ['Z']
+    Model.func_args = {'t':t}
+
+    # Define the uncertain parameters with their mean and
+    # standard deviation
+    Inputs = Input()
+    priors = []
+    for i in range(ndim):
+        Inputs.add_marginals()
+        Inputs.Marginals[i].name = "$\\theta_{"+str(i+1)+"}$"
+        Inputs.Marginals[i].dist_type = 'uniform'
+        Inputs.Marginals[i].parameters = [0, 1]
+        priors.append(np.random.uniform(0,1,1000))
+    priors= np.swapaxes(np.array(priors),0,1)
+    
+    # Parameters for the convergence test
+    mini = 2**ndim
+    steps = [10,20,50]
+    steps = [mini, 6, 8, 10, 15,20,25,30,35,40,50]
+    
+    # Get the samples and model evaluations
+    train_samples = priors[:steps[-1]]
+    test_samples = priors[steps[-1]:]
+    test_data, test_std = Model.run_model_parallel(test_samples, mp = False)
+    
+#%% RUN THE SURROGATES ON THE FIRST BVR CODE
+
+    # Set the surrogate parameters    
+    MetaMod = sm.MetaModel(Inputs)
+    MetaMod.meta_model_type = 'aPCE'
+    MetaMod.pce_reg_method = 'FastARD'
+    MetaMod.bootstrap_method = 'fast'
+    MetaMod.n_bootstrap_itrs = 1
+    MetaMod.pce_deg = np.arange(1,2)
+    MetaMod.pce_q_norm = 0.85 if ndim < 5 else 0.5
+    
+    # Properties for Physics-informed training
+    #MetaMod.LAR = True
+    MetaMod.apply_constraints = False
+    
+    # Init ExpDesign - the rest of the ExpDesign is set in convergence_test
+    ExpDesign = ExpDesigns(Inputs)
+    
+    # Start engine
+    engine = Engine(MetaMod, Model, ExpDesign)
+
+    # Run the convergence test
+    results_FastArd = convergence_test(engine, steps, error, train_samples, test_samples, test_data)
+    
+    # Change the loss function base-type
+    new_type = 'ols'
+    engine.MetaModel.pce_reg_method = new_type
+    results_OLS = convergence_test(engine, steps, error, train_samples, test_samples, test_data)
+    
+    # Do OLS with Constraints
+    # The actual constraints can currently be found and changed in 
+    # bayesvalidrox.surrogate_models.MetaModel.regression(). This interface
+    # will be improved in future releases
+    engine.MetaModel.apply_constraints = True
+    engine.MetaModel.init_type = 'zeros'
+    results_PI_0rand = convergence_test(engine, steps, error, train_samples, test_samples, test_data)
+    
+    # Plot the results
+    for key in results_FastArd[1]:
+        plt.plot(steps, results_OLS[1][key], linestyle = 'dashdot')
+        plt.scatter(steps, results_OLS[1][key], label = 'OLS')
+        plt.plot(steps, results_FastArd[1][key], linestyle = 'dashed')
+        plt.scatter(steps, results_FastArd[1][key], label = 'FastARD')
+        plt.plot(steps, results_PI_0rand[1][key], linestyle = 'dotted')
+        plt.scatter(steps, results_PI_0rand[1][key], label = 'constrained')
+        plt.legend()
+        plt.title(f'Results for {key}')
+        plt.show()
+        
+    # Get test statistics
+    meanOLS, test_std = results_OLS[0][-1].eval_metamodel(test_samples)
+    meanARD, test_std = results_FastArd[0][-1].eval_metamodel(test_samples)
+    meanPI, test_std = results_PI_0rand[0][-1].eval_metamodel(test_samples)
+    
+    # Plot test statistics
+    plt.plot(t, np.mean(meanOLS['Z'], axis = 0), label = 'OLS', linestyle = 'dashdot')
+    plt.plot(t, np.mean(meanARD['Z'], axis = 0), label = 'FastARD', linestyle = 'dashed')
+    plt.plot(t, np.mean(meanPI['Z'], axis = 0), label = 'constrained', linestyle = 'dotted')
+    plt.plot(t, mean_out, label = 'data')
+    plt.title('Approximation of mean')
+    plt.legend()
+    plt.show()
+    plt.plot(t, np.std(meanOLS['Z'], axis = 0), label = 'OLS', linestyle = 'dashdot')
+    plt.plot(t, np.std(meanARD['Z'], axis = 0), label = 'FastARD', linestyle = 'dashed')
+    plt.plot(t, np.std(meanPI['Z'], axis = 0), label = 'constrained', linestyle = 'dotted')
+    plt.plot(t, std_out, label = 'data')
+    plt.title('Approximation of std')
+    plt.legend()
+    plt.show()
+ 
+    
\ No newline at end of file
diff --git a/examples/convergence_tests/testfunction.py b/examples/convergence_tests/testfunction.py
new file mode 100644
index 0000000000000000000000000000000000000000..eead90bb1c47e728cc36281c1689776aef21579d
--- /dev/null
+++ b/examples/convergence_tests/testfunction.py
@@ -0,0 +1,15 @@
+# -*- coding: utf-8 -*-
+"""
+Short testfunction for the convergence tests.
+"""
+import numpy as np
+
+def testfunction(x, t): 
+    def sig(x):
+        return 1/(1 + np.exp(-x))
+    # X is 2d array
+    x = x[0]
+    out = 30-np.sqrt(t*(x[1]+0.00000001))-x[0]*t-2*np.log(t+1)+x[0]/3-10*x[1]*np.tanh(t-5) -7/(x[0]+0.1)*x[1]*sig(t-9)
+    #out = -10*sig(t-8)
+    out /= 40
+    return {'x_values': t, 'Z': out}
\ No newline at end of file
diff --git a/examples/ishigami/test_ishigami.py b/examples/ishigami/example_ishigami.py
similarity index 80%
rename from examples/ishigami/test_ishigami.py
rename to examples/ishigami/example_ishigami.py
index 313ad38280acfe6bf3a4b8c29b1f94d74da399b7..72c9dc2d31e93601cbbd60bc40b88a31a73bd5b9 100644
--- a/examples/ishigami/test_ishigami.py
+++ b/examples/ishigami/example_ishigami.py
@@ -15,8 +15,6 @@ of Stuttgart, www.iws.uni-stuttgart.de/lh2/
 Pfaffenwaldring 61
 70569 Stuttgart
 
-Created on Wed Jul 10 2019
-
 """
 
 import numpy as np
@@ -27,13 +25,16 @@ import joblib
 import sys
 sys.path.append("../../src/bayesvalidrox/")
 
-from pylink.pylink import PyLinkForwardModel
-from surrogate_models.inputs import Input
-from surrogate_models.surrogate_models import MetaModel
-from surrogate_models.meta_model_engine import MetaModelEngine
-from post_processing.post_processing import PostProcessing
-from bayes_inference.bayes_inference import BayesInference
-from bayes_inference.discrepancy import Discrepancy
+from bayesvalidrox.pylink.pylink import PyLinkForwardModel
+from bayesvalidrox.surrogate_models.inputs import Input
+from bayesvalidrox.surrogate_models.exp_designs import ExpDesigns
+from bayesvalidrox.surrogate_models.surrogate_models import MetaModel
+#from bayesvalidrox.surrogate_models.meta_model_engine import MetaModelEngine
+from bayesvalidrox.post_processing.post_processing import PostProcessing
+from bayesvalidrox.bayes_inference.bayes_inference import BayesInference
+from bayesvalidrox.bayes_inference.discrepancy import Discrepancy
+
+from bayesvalidrox.surrogate_models.engine import Engine
 import matplotlib
 matplotlib.use('agg')
 
@@ -110,45 +111,44 @@ if __name__ == "__main__":
     # ------------------------------------------------
     # ------ Experimental Design Configuration -------
     # ------------------------------------------------
-    MetaModelOpts.add_ExpDesign()
+    ExpDesign = ExpDesigns(Inputs)
 
     # One-shot (normal) or Sequential Adaptive (sequential) Design
-    MetaModelOpts.ExpDesign.method = 'normal'
-    MetaModelOpts.ExpDesign.n_init_samples = 50
+    ExpDesign.n_init_samples = 50
 
     # Sampling methods
     # 1) random 2) latin_hypercube 3) sobol 4) halton 5) hammersley 6) korobov
     # 7) chebyshev(FT) 8) grid(FT) 9) nested_grid(FT) 10)user
-    MetaModelOpts.ExpDesign.sampling_method = 'latin_hypercube'
+    ExpDesign.sampling_method = 'latin_hypercube'
 
     # Provide the experimental design object with a hdf5 file
     # MetaModelOpts.ExpDesign.hdf5_file = 'ExpDesign_Ishigami.hdf5'
 
     # Sequential experimental design (needed only for sequential ExpDesign)
-    MetaModelOpts.ExpDesign.n_new_samples = 1
-    MetaModelOpts.ExpDesign.n_max_samples = 200  # 150
-    MetaModelOpts.ExpDesign.mod_LOO_threshold = 1e-16
+    ExpDesign.n_new_samples = 1
+    ExpDesign.n_max_samples = 200  # 150
+    ExpDesign.mod_LOO_threshold = 1e-16
 
     # ------------------------------------------------
     # ------- Sequential Design configuration --------
     # ------------------------------------------------
     # 1) None 2) 'equal' 3)'epsilon-decreasing' 4) 'adaptive'
-    MetaModelOpts.ExpDesign.tradeoff_scheme = None
+    ExpDesign.tradeoff_scheme = None
     # MetaModelOpts.ExpDesign.n_replication = 50
     # -------- Exploration ------
     # 1)'Voronoi' 2)'random' 3)'latin_hypercube' 4)'dual annealing'
-    MetaModelOpts.ExpDesign.explore_method = 'latin_hypercube'
+    ExpDesign.explore_method = 'latin_hypercube'
 
     # Use when 'dual annealing' chosen
-    MetaModelOpts.ExpDesign.max_func_itr = 200
+    ExpDesign.max_func_itr = 200
 
     # Use when 'Voronoi' or 'random' or 'latin_hypercube' chosen
-    MetaModelOpts.ExpDesign.n_canddidate = 1000
-    MetaModelOpts.ExpDesign.n_cand_groups = 4
+    ExpDesign.n_canddidate = 1000
+    ExpDesign.n_cand_groups = 4
 
     # -------- Exploitation ------
     # 1)'BayesOptDesign' 2)'VarOptDesign' 3)'alphabetic' 4)'Space-filling'
-    MetaModelOpts.ExpDesign.exploit_method = 'Space-filling'
+    ExpDesign.exploit_method = 'Space-filling'
 
     # BayesOptDesign -> when data is available
     # 1)DKL (Kullback-Leibler Divergence) 2)DPP (D-Posterior-percision)
@@ -157,28 +157,29 @@ if __name__ == "__main__":
 
     # VarBasedOptDesign -> when data is not available
     # Only with Vornoi >>> 1)Entropy 2)EIGF, 3)ALM, 4)LOOCV
-    MetaModelOpts.ExpDesign.util_func = 'ALM'
+    ExpDesign.util_func = 'ALM'
 
     # alphabetic
     # 1)D-Opt (D-Optimality) 2)A-Opt (A-Optimality)
     # 3)K-Opt (K-Optimality)
     # MetaModelOpts.ExpDesign.util_func = 'D-Opt'
 
-    MetaModelOpts.valid_samples = np.load("data/valid_samples.npy")
-    MetaModelOpts.valid_model_runs = {'Z': np.load("data/valid_outputs.npy")}
+    ExpDesign.valid_samples = np.load("data/valid_samples.npy")
+    ExpDesign.valid_model_runs = {'Z': np.load("data/valid_outputs.npy")}
     # >>>>>>>>>>>>>>>>>>>>>> Build Surrogate <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-    meta_model_engine = MetaModelEngine(MetaModelOpts)
-    meta_model_engine.run()
-    PCEModel = meta_model_engine.MetaModel
+    MetaModelOpts.ExpDesign = ExpDesign
+    engine = Engine(MetaModelOpts, Model, ExpDesign)
+    engine.start_engine()
+    engine.train_sequential()
 
     # Save PCE models
     with open(f'PCEModel_{Model.name}.pkl', 'wb') as output:
-        joblib.dump(PCEModel, output, 2)
+        joblib.dump(engine.MetaModel, output, 2)
 
     # =====================================================
     # =========  POST PROCESSING OF METAMODELS  ===========
     # =====================================================
-    PostPCE = PostProcessing(PCEModel)
+    PostPCE = PostProcessing(engine)
 
     # Plot to check validation visually.
     PostPCE.valid_metamodel(n_samples=200)
diff --git a/examples/model-comparison/test_model_comparison.py b/examples/model-comparison/example_model_comparison.py
similarity index 75%
rename from examples/model-comparison/test_model_comparison.py
rename to examples/model-comparison/example_model_comparison.py
index d5f523871d99b5115437c2f66e8a1ce2a845f503..d678898c178e9722445f08bd22e3ec93906e2ac7 100644
--- a/examples/model-comparison/test_model_comparison.py
+++ b/examples/model-comparison/example_model_comparison.py
@@ -14,27 +14,31 @@ University of Stuttgart, www.iws.uni-stuttgart.de/lh2/
 Pfaffenwaldring 61
 70569 Stuttgart
 
-Created on Wed Oct 10 2021
-
 """
 
+from copy import deepcopy
 import numpy as np
 import scipy.io as io
 import pandas as pd
 import joblib
 import sys
 sys.path.append("../../src/bayesvalidrox/")
-
-from pylink.pylink import PyLinkForwardModel
-from surrogate_models.inputs import Input
-from surrogate_models.surrogate_models import MetaModel
-from post_processing.post_processing import PostProcessing
-from bayes_inference.bayes_inference import BayesInference
+sys.path.append("../../src/")
+
+from bayesvalidrox.pylink.pylink import PyLinkForwardModel
+from bayesvalidrox.surrogate_models.inputs import Input
+from bayesvalidrox.surrogate_models.exp_designs import ExpDesigns
+from bayesvalidrox.surrogate_models.surrogate_models import MetaModel
+#from bayesvalidrox.surrogate_models.meta_model_engine import MetaModelEngine
+from bayesvalidrox.post_processing.post_processing import PostProcessing
+from bayesvalidrox.bayes_inference.bayes_inference import BayesInference
+from bayesvalidrox.bayes_inference.discrepancy import Discrepancy
 from bayes_inference.bayes_model_comparison import BayesModelComparison
-from bayes_inference.discrepancy import Discrepancy
 
-if __name__ == "__main__":
 
+from bayesvalidrox.surrogate_models.engine import Engine
+
+if __name__ == "__main__":
     # Read data
     sigma = 0.6
     data = {
@@ -168,33 +172,52 @@ if __name__ == "__main__":
     # ------------------------------------------------
     # ------ Experimental Design Configuration -------
     # ------------------------------------------------
-    L2_MetaModelOpts.add_ExpDesign()
+    #L2_MetaModelOpts.add_ExpDesign()
+    L2_ExpDesign = ExpDesigns(L2_Inputs)
 
     # One-shot (normal) or Sequential Adaptive (sequential) Design
-    L2_MetaModelOpts.ExpDesign.method = 'normal'
-    L2_MetaModelOpts.ExpDesign.n_init_samples = 100
+    L2_ExpDesign.n_init_samples = 100
 
     # Sampling methods
     # 1) random 2) latin_hypercube 3) sobol 4) halton 5) hammersley
     # 6) chebyshev(FT) 7) grid(FT) 8)user
-    L2_MetaModelOpts.ExpDesign.sampling_method = 'latin_hypercube'
+    L2_ExpDesign.sampling_method = 'latin_hypercube'
 
     # ------ Nonlinear cosine model ---------
-    NL2_MetaModelOpts = L2_MetaModelOpts.copy_meta_model_opts(NL2_Inputs)
+    NL2_ExpDesign = ExpDesigns(NL2_Inputs)
+    NL2_ExpDesign.method = 'normal'
+    NL2_ExpDesign.n_init_samples = 100
+    NL2_ExpDesign.sampling_method = 'latin_hypercube'
+    NL2_MetaModelOpts = deepcopy(L2_MetaModelOpts)
+    NL2_MetaModelOpts.input_obj = NL2_Inputs
 
     # ------ Nonlinear cosine model ---------
-    NL4_MetaModelOpts = L2_MetaModelOpts.copy_meta_model_opts(NL4_Inputs)
+    NL4_MetaModelOpts = deepcopy(L2_MetaModelOpts)
+    NL4_MetaModelOpts.input_obj = NL4_Inputs
+    NL4_ExpDesign = ExpDesigns(NL4_Inputs)
+    NL4_ExpDesign.method = 'normal'
+    NL4_ExpDesign.n_init_samples = 100
+    NL4_ExpDesign.sampling_method = 'latin_hypercube'
 
     # >>>>>> Train the Surrogates <<<<<<<<<<<
-    L2_MetaModel = L2_MetaModelOpts.create_metamodel(myL2Model)
-    NL2_MetaModel = NL2_MetaModelOpts.create_metamodel(myNL2Model)
-    NL4_MetaModel = NL4_MetaModelOpts.create_metamodel(myNL4Model)
+    L2_engine = Engine(L2_MetaModelOpts, myL2Model, L2_ExpDesign)
+    L2_engine.start_engine()
+    L2_engine.train_normal()
+    NL2_engine = Engine(NL2_MetaModelOpts, myNL2Model, NL2_ExpDesign)
+    NL2_engine.start_engine()
+    NL2_engine.train_normal()
+    NL4_engine = Engine(NL4_MetaModelOpts, myNL4Model, NL4_ExpDesign)
+    NL4_engine.start_engine()
+    NL4_engine.train_normal()
+    #L2_MetaModel = L2_MetaModelOpts.create_metamodel(myL2Model)
+    #NL2_MetaModel = NL2_MetaModelOpts.create_metamodel(myNL2Model)
+    #NL4_MetaModel = NL4_MetaModelOpts.create_metamodel(myNL4Model)
 
     # =====================================================
     # =========  POST PROCESSING OF METAMODELS  ===========
     # =====================================================
     # ---------- Linear model  -------------
-    L2_PostPCE = PostProcessing(L2_MetaModel, name=myL2Model.name)
+    L2_PostPCE = PostProcessing(L2_engine, name=myL2Model.name)
 
     # Plot to check validation visually.
     L2_PostPCE.valid_metamodel(n_samples=3)
@@ -206,10 +229,10 @@ if __name__ == "__main__":
     L2_PostPCE.check_accuracy(n_samples=3000)
 
     # Plot the sobol indices
-    sobol_cell, total_sobol = L2_PostPCE.sobol_indices()
+    total_sobol = L2_PostPCE.sobol_indices()
 
     # ---------- Linear model  -------------
-    NL2_PostPCE = PostProcessing(NL2_MetaModel, name=myNL2Model.name)
+    NL2_PostPCE = PostProcessing(NL2_engine, name=myNL2Model.name)
 
     # Plot to check validation visually.
     NL2_PostPCE.valid_metamodel(n_samples=3)
@@ -221,10 +244,10 @@ if __name__ == "__main__":
     NL2_PostPCE.check_accuracy(n_samples=3000)
 
     # Plot the sobol indices
-    sobol_cell, total_sobol = NL2_PostPCE.sobol_indices()
+    total_sobol = NL2_PostPCE.sobol_indices()
 
     # ------ Nonlinear cosine model ---------
-    NL4_PostPCE = PostProcessing(NL4_MetaModel, name=myNL4Model.name)
+    NL4_PostPCE = PostProcessing(NL4_engine, name=myNL4Model.name)
 
     # Plot to check validation visually.
     NL4_PostPCE.valid_metamodel(n_samples=3)
@@ -236,7 +259,7 @@ if __name__ == "__main__":
     NL4_PostPCE.check_accuracy(n_samples=3000)
 
     # Plot the sobol indices
-    sobol_cell, total_sobol = NL4_PostPCE.sobol_indices()
+    total_sobol = NL4_PostPCE.sobol_indices()
 
     # =====================================================
     # =========  BAYESIAN MULTIMODEL COMPARISON ===========
@@ -249,15 +272,15 @@ if __name__ == "__main__":
 
     # ----- Define the options model -------
     meta_models = {
-        "linear": L2_MetaModel,
-        "exponential": NL4_MetaModel,
-        "cosine": NL4_MetaModel
+        "linear": L2_engine,
+        "exponential": NL2_engine,
+        "cosine": NL4_engine
         }
 
-    # BME Bootstrap optuions
+    # BME Bootstrap options
     opts_bootstrap = {
         "bootstrap": True,
-        "n_samples": 10000,
+        "n_samples": 100,#0,#0, # TODO: difference between this and the n_bootstrap set below?
         "Discrepancy": DiscrepancyOpts,
         "emulator": True,
         "plot_post_pred": False
@@ -266,10 +289,10 @@ if __name__ == "__main__":
     # Run model comparison
     BayesOpts = BayesModelComparison(
         justifiability=True,
-        n_bootstarp=1000,
-        just_n_meas=2
+        n_bootstrap=100,#0,#00,
+        #just_n_meas=2
         )
-    output_dict = BayesOpts.create_model_comparison(
+    output_dict = BayesOpts.model_comparison_all(
         meta_models,
         opts_bootstrap
         )
diff --git a/examples/pollution/test_pollution.py b/examples/pollution/example_pollution.py
similarity index 100%
rename from examples/pollution/test_pollution.py
rename to examples/pollution/example_pollution.py
diff --git a/examples/pollution/test_valid_pollution.py b/examples/pollution/example_valid_pollution.py
similarity index 87%
rename from examples/pollution/test_valid_pollution.py
rename to examples/pollution/example_valid_pollution.py
index e2aacbe5d2186c38287e552ae588332150dd519b..74b87787b741a0c990c6d1ccbf06596b43256a57 100644
--- a/examples/pollution/test_valid_pollution.py
+++ b/examples/pollution/example_valid_pollution.py
@@ -13,8 +13,6 @@ of Stuttgart, www.iws.uni-stuttgart.de/lh2/
 Pfaffenwaldring 61
 70569 Stuttgart
 
-Created on Fri Aug 9 2019
-
 """
 
 import numpy as np
@@ -25,12 +23,15 @@ import joblib
 import sys
 sys.path.append("../../src/bayesvalidrox/")
 
-from pylink.pylink import PyLinkForwardModel
-from surrogate_models.inputs import Input
-from surrogate_models.surrogate_models import MetaModel
-from post_processing.post_processing import PostProcessing
-from bayes_inference.bayes_inference import BayesInference
-from bayes_inference.discrepancy import Discrepancy
+from bayesvalidrox.pylink.pylink import PyLinkForwardModel
+from bayesvalidrox.surrogate_models.inputs import Input
+from bayesvalidrox.surrogate_models.exp_designs import ExpDesigns
+from bayesvalidrox.surrogate_models.surrogate_models import MetaModel
+#from bayesvalidrox.surrogate_models.meta_model_engine import MetaModelEngine
+from bayesvalidrox.post_processing.post_processing import PostProcessing
+from bayesvalidrox.bayes_inference.bayes_inference import BayesInference
+from bayesvalidrox.bayes_inference.discrepancy import Discrepancy
+from bayesvalidrox.surrogate_models.engine import Engine
 
 if __name__ == "__main__":
 
@@ -92,7 +93,7 @@ if __name__ == "__main__":
     # =====================================================
     # ======  POLYNOMIAL CHAOS EXPANSION METAMODELS  ======
     # =====================================================
-    MetaModelOpts = MetaModel(Inputs, Model)
+    MetaModelOpts = MetaModel(Inputs)
 
     # Select if you want to preserve the spatial/temporal depencencies
     MetaModelOpts.dim_red_method = 'PCA'
@@ -136,27 +137,29 @@ if __name__ == "__main__":
     # MetaModelOpts.verbose = True
 
     # ------ Experimental Design --------
-    MetaModelOpts.add_ExpDesign()
+    ExpDesign = ExpDesigns(Inputs)
 
     # One-shot (normal) or Sequential Adaptive (sequential) Design
-    MetaModelOpts.ExpDesign.method = 'normal'
-    MetaModelOpts.ExpDesign.n_init_samples = 150
+    ExpDesign.method = 'normal'
+    ExpDesign.n_init_samples = 150
 
     # Sampling methods
     # 1) random 2) latin_hypercube 3) sobol 4) halton 5) hammersley 6) korobov
     # 7) chebyshev(FT) 8) grid(FT) 9) nested_grid(FT) 10)user
-    MetaModelOpts.ExpDesign.sampling_method = 'latin_hypercube'
+    ExpDesign.sampling_method = 'latin_hypercube'
 
     # Provide the experimental design object with a hdf5 file
     # MetaModelOpts.ExpDesign.hdf5_file = 'ExpDesign_AnalyticFunc.hdf5'
 
     # >>>>>>>>>>>>>>>>>>>>>> Build Surrogate <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
     # Adaptive sparse arbitrary polynomial chaos expansion
-    PCEModel = MetaModelOpts.create_metamodel()
-
+    engine = Engine(MetaModelOpts, Model, ExpDesign)
+    engine.start_engine()
+    engine.train_normal()
+    
     # Save PCE models
     with open(f"PCEModel_{Model.name}.pkl", "wb") as output:
-        joblib.dump(PCEModel, output, 2)
+        joblib.dump(engine.MetaModel, output, 2)
 
     # Load the objects
     # with open(f"PCEModel_{Model.name}.pkl", "rb") as input:
@@ -165,7 +168,7 @@ if __name__ == "__main__":
     # =====================================================
     # =========  POST PROCESSING OF METAMODELS  ===========
     # =====================================================
-    PostPCE = PostProcessing(PCEModel)
+    PostPCE = PostProcessing(engine)
 
     # Plot to check validation visually.
     PostPCE.valid_metamodel(n_samples=3)
@@ -188,14 +191,14 @@ if __name__ == "__main__":
     # =====================================================
     # ========  BAYESIAN INFERENCE (CALIBRATION) ==========
     # =====================================================
-    BayesOpts = BayesInference(PCEModel)
+    BayesOpts = BayesInference(engine)
     BayesOpts.emulator = True
 
     # Select the inference method
     BayesOpts.inference_method = "MCMC"
     # Set the MCMC parameters
     BayesOpts.mcmc_params = {
-        'n_steps': 1e5,
+        'n_steps': 1e3,#5,
         'n_walkers': 30,
         'multiprocessing': False,
         'verbose': False
@@ -263,20 +266,24 @@ if __name__ == "__main__":
     ValidInputs.Marginals[3].name = "$\\tau$"
     ValidInputs.Marginals[3].input_data = BayesCalib.posterior_df['$\\tau$']
 
-    MetaModelOpts_valid = MetaModelOpts.copy_meta_model_opts(
-        ValidInputs, ValidModel)
-    ValidMetaModel = MetaModelOpts_valid.create_metamodel()
+
+    import copy
+    MetaModelOpts_valid = copy.deepcopy(MetaModelOpts)
+    MetaModelOpts_valid.input_obj = ValidInputs
+    valid_engine = Engine(MetaModelOpts_valid, ValidModel, copy.deepcopy(ExpDesign))
+    valid_engine.start_engine()
+    valid_engine.train_normal()
 
     # Save PCE models
     with open(f"PCEModel_{ValidModel.name}.pkl", "wb") as output:
-        joblib.dump(ValidMetaModel, output, 2)
+        joblib.dump(valid_engine.MetaModel, output, 2)
 
     # Load the objects
     # with open(f"PCEModel_{ValidModel.name}.pkl", "rb") as input:
     #     ValidPCEModel = joblib.load(input)
 
     # ------- Baysian inference definition --------
-    BayesOptsValid = BayesInference(ValidMetaModel)
+    BayesOptsValid = BayesInference(valid_engine)
 
     BayesOptsValid.name = "Valid"
     BayesOptsValid.emulator = True
diff --git a/examples/umbridge_tsunamitutorial/example_umbridge_testmodel.py b/examples/umbridge_tsunamitutorial/example_umbridge_testmodel.py
new file mode 100644
index 0000000000000000000000000000000000000000..22a0f750e96c4b7bf14913eb97f0040fb360a257
--- /dev/null
+++ b/examples/umbridge_tsunamitutorial/example_umbridge_testmodel.py
@@ -0,0 +1,77 @@
+# -*- coding: utf-8 -*-
+"""
+Example and test for using UM-Bridge with bayesvalidrox.
+This example uses the `testmodel` and sets the model type explicitly as 
+UM-Bridge for the pylink model.
+
+An example for using UM-Bridge with an explicitly defined model can be found in 
+`example_umbridge_tsunamimodel.py`
+
+"""
+
+import joblib
+import numpy as np 
+import umbridge
+import bayesvalidrox as bv
+
+from bayesvalidrox.pylink.pylink import PyLinkForwardModel
+from bayesvalidrox.surrogate_models.inputs import Input
+from bayesvalidrox.surrogate_models.exp_designs import ExpDesigns
+from bayesvalidrox.surrogate_models.surrogate_models import MetaModel
+from bayesvalidrox.post_processing.post_processing import PostProcessing
+from bayesvalidrox.surrogate_models.engine import Engine
+
+
+if __name__ == '__main__':
+    
+    # This model has 2 inputs and four outputs
+    n_prior_sample = 1000
+    priors = bv.Input()
+    priors.add_marginals()
+    priors.Marginals[0].name = 'x'
+    priors.Marginals[0].input_data = np.random.uniform(50,150,n_prior_sample)  
+    
+    # Define the model directly via Pylink
+    model = PyLinkForwardModel()
+    model.link_type = 'umbridge'
+    model.host = 'http://testmodel.linusseelinger.de'
+    model.modelparams = {}
+    model.name = 'testmodel'
+    model.Output.names = ['y']
+    model.x_values = np.array([0])
+    
+    # Create the surrogate
+    surrogate_opts = MetaModel(priors)
+    
+    # Select the surrogate type and properties
+    surrogate_opts.meta_model_type = 'aPCE'
+    surrogate_opts.pce_reg_method = 'FastARD'
+    surrogate_opts.pce_deg = np.arange(1, 5)
+    surrogate_opts.pce_q_norm = 0.4
+
+    # Define the experimental design and sampling methods
+    ExpDesign = ExpDesigns(priors)     
+    ExpDesign.n_init_samples = 50
+    ExpDesign.sampling_method = 'latin-hypercube'
+    
+    # Start and run the engine
+    engine = Engine(surrogate_opts, model, ExpDesign)
+    engine.start_engine()
+    engine.train_normal(parallel = False)
+    print('Surrogate completed')
+    print('')
+
+    # Save surrogate
+    with open('testmodel.pk1', 'wb') as output:
+        joblib.dump(engine.MetaModel, output, 2)
+        
+    # Post processing
+    L2_PostPCE = PostProcessing(engine)
+    L2_PostPCE.plot_moments(plot_type='line')
+    
+    # Plot to check validation visually.
+    L2_PostPCE.valid_metamodel(n_samples=1)
+    
+    # Compute and print RMSE error
+    L2_PostPCE.check_accuracy(n_samples=300)
+    total_sobol = L2_PostPCE.sobol_indices()
diff --git a/examples/umbridge_tsunamitutorial/example_umbridge_tsunamitutorial.py b/examples/umbridge_tsunamitutorial/example_umbridge_tsunamitutorial.py
new file mode 100644
index 0000000000000000000000000000000000000000..c456787d0c5d9d9714083b406895b8096a4d16ce
--- /dev/null
+++ b/examples/umbridge_tsunamitutorial/example_umbridge_tsunamitutorial.py
@@ -0,0 +1,183 @@
+# -*- coding: utf-8 -*-
+"""
+Example and test for using UM-Bridge with bayesvalidrox.
+Example model is the tsunami model described here:
+    https://um-bridge-benchmarks.readthedocs.io/en/docs/inverse-benchmarks/exahype-tsunami.html
+It needs to run separately while starting this example. 
+    docker run -it -p 4242:4242 -v ~/tsunami_output:/output linusseelinger/model-exahype-tsunami
+    
+This example uses models that are exmplicitly defined as functions outside of
+PyLink. An example for the link_type 'umbdridge' can be found in 
+`example_umbridge_testmodel.py`.
+
+"""
+
+import copy
+import joblib
+import numpy as np 
+import pandas as pd
+import umbridge
+
+import bayesvalidrox as bv
+from tsunami_model import tsunami_model
+
+if __name__ == '__main__':
+    # This model has 2 inputs and four outputs
+    n_prior_sample = 1000
+    priors = bv.Input()
+    priors.add_marginals()
+    priors.Marginals[0].name = 'x'
+    priors.Marginals[0].input_data = np.random.uniform(50,150,n_prior_sample)  
+    priors.add_marginals()
+    priors.Marginals[1].name = 'y'
+    priors.Marginals[1].input_data = np.random.uniform(50,150,n_prior_sample)
+    
+    # Define the model - level 0
+    model0 = bv.PyLinkForwardModel()
+    model0.link_type = 'function'
+    model0.py_file = 'tsunami_model'
+    model0.name = 'tsunami_model'
+    model0.Output.names = ['T1', 'T2', 'H1', 'H2']
+    #model.observations = data_dict1_times
+    
+    # Define the model - level 1
+    model1 = bv.PyLinkForwardModel()
+    model1.link_type = 'function'
+    model1.py_file = 'tsunami_model1'
+    model1.name = 'tsunami_model1'
+    model1.Output.names = ['T1', 'T2', 'H1', 'H2']
+    #model.observations = data_dict1_times
+    
+    # Create the surrogate
+    surrogate_opts0 = bv.MetaModel(priors, model0)
+    
+    # Select your metamodel method
+    surrogate_opts0.meta_model_type = 'aPCE'
+    surrogate_opts0.pce_reg_method = 'FastARD'
+    surrogate_opts0.pce_deg = np.arange(1, 5)
+    surrogate_opts0.pce_q_norm = 0.4#1.0
+
+    # Define ExpDesign - this is the same for both models       
+    ExpDesign0 = bv.ExpDesigns(priors)
+    ExpDesign0.method = 'normal'
+    ExpDesign0.n_init_samples = 50
+    ExpDesign0.sampling_method = 'latin-hypercube'
+    ExpDesign1 = copy.deepcopy(ExpDesign0)
+    
+    # Start and run the engine
+    engine0 = bv.Engine(surrogate_opts0, model0, ExpDesign0)
+    engine0.start_engine()
+    engine0.train_normal(parallel = False)
+    print('Surrogate 0 completed')
+    print('')
+    
+    # Create the surrogate
+    surrogate_opts1 = bv.MetaModel(priors, model1)
+    
+    # Select your metamodel method
+    surrogate_opts1.meta_model_type = 'aPCE'
+    surrogate_opts1.pce_reg_method = 'FastARD'
+    surrogate_opts1.pce_deg = np.arange(1, 5)
+    surrogate_opts1.pce_q_norm = 0.4#1.0
+
+    # Start and run the engine
+    engine1 = bv.Engine(surrogate_opts1, model1, ExpDesign1)
+    engine1.start_engine()
+    engine1.train_normal(parallel = False)
+    print('Surrogate 1 completed')
+    print('')
+
+    # Save surrogate
+    with open('tsunami0.pk1', 'wb') as output:
+        joblib.dump(engine0.MetaModel, output, 2)
+        
+    # Save surrogate
+    with open('tsunami1.pk1', 'wb') as output:
+        joblib.dump(engine1.MetaModel, output, 2)
+    
+    # Post processing on model 1
+    L2_PostPCE = bv.PostProcessing(engine1)
+    L2_PostPCE.plot_moments(plot_type='line')
+    # Plot to check validation visually.
+    L2_PostPCE.valid_metamodel(n_samples=1)
+    
+    # Compute and print RMSE error
+    L2_PostPCE.check_accuracy(n_samples=300)
+    total_sobol = L2_PostPCE.sobol_indices()
+
+    # Get reference evaluation as 'true data'
+    true_data = tsunami_model(np.array([[90.0,60.0]]))
+    model0.observations = true_data
+    model1.observations = true_data
+    true_data_nox = copy.deepcopy(true_data)
+    true_data_nox.pop('x_values')
+    
+    # Direct surrogate evaluation
+    mean, std = engine1.MetaModel.eval_metamodel(np.array([[90.0,60.0]]))
+    
+    # Bayesian Inference
+    # Set uncertainty
+    obsData = pd.DataFrame(true_data_nox, columns=model0.Output.names)
+    DiscrepancyOpts = bv.Discrepancy('')
+    DiscrepancyOpts.type = 'Gaussian'
+    DiscrepancyOpts.parameters = (obsData*0.15)**2
+    
+    # Parameter estimation / single model validation via TOM for model 1
+    BayesOpts = bv.BayesInference(engine1)
+    BayesOpts.emulator= True
+    BayesOpts.plot_post_pred = True
+    #BayesOpts.inference_method = 'rejection'
+    BayesOpts.Discrepancy = DiscrepancyOpts
+    BayesOpts.bootstrap = True
+    BayesOpts.n_bootstrap_itrs = 10
+    BayesOpts.bootstrap_noise = 0.05
+    BayesOpts.out_dir = ''
+    
+    # Set the MCMC parameters
+    import emcee
+    BayesOpts.inference_method = "MCMC"
+    BayesOpts.mcmc_params = {
+        'n_steps': 1e3,
+        'n_walkers': 30,
+        'moves': emcee.moves.KDEMove(),
+        'multiprocessing': False,
+        'verbose': False
+        }
+     
+    Bayes = BayesOpts.create_inference()
+    
+    # Pkl the inference results
+    with open(f'Bayes_{model0.name}.pkl', 'wb') as output:
+        joblib.dump(Bayes, output, 2)
+            
+    # Model Comparison
+    # Set the models
+    meta_models = {
+        "M0": engine0,
+        "M1": engine1,
+        }
+
+    # BME Bootstrap options
+    opts_bootstrap = {
+        "bootstrap": True,
+        "n_samples": 1000,
+        "Discrepancy": DiscrepancyOpts,
+        "emulator": True,
+        "plot_post_pred": False
+        }
+
+    # Run model comparison
+    BayesOpts = bv.BayesModelComparison(
+        justifiability=True,
+        n_bootstarp=10,
+        just_n_meas=2
+        )
+    output_dict = BayesOpts.create_model_comparison(
+        meta_models,
+        opts_bootstrap
+        )
+            
+    # save model comparison results
+    with open('ModelComparison.pkl', 'wb') as f:
+        joblib.dump(output_dict, f)
+    
\ No newline at end of file
diff --git a/examples/umbridge_tsunamitutorial/tsunami_model.py b/examples/umbridge_tsunamitutorial/tsunami_model.py
new file mode 100644
index 0000000000000000000000000000000000000000..2d837a9ae4bb27e8ef2ca622011e3e67012f2e94
--- /dev/null
+++ b/examples/umbridge_tsunamitutorial/tsunami_model.py
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+"""
+Runs the umbridge command for the tsunami model.
+"""
+import umbridge
+import numpy as np
+
+def tsunami_model(params):
+    model = umbridge.HTTPModel('http://localhost:4242', 'forward')
+    out = np.array(model(np.ndarray.tolist(params), {'level':0}))
+    
+    return {'T1':out[:,0], 'T2':out[:,1], 'H1':out[:,2], 'H2':out[:,3], 
+            'x_values':[0]}
+    
+    
+    
\ No newline at end of file
diff --git a/examples/umbridge_tsunamitutorial/tsunami_model1.py b/examples/umbridge_tsunamitutorial/tsunami_model1.py
new file mode 100644
index 0000000000000000000000000000000000000000..239670773cf71e84b4ef0caec35c4e024ca1bd66
--- /dev/null
+++ b/examples/umbridge_tsunamitutorial/tsunami_model1.py
@@ -0,0 +1,14 @@
+# -*- coding: utf-8 -*-
+"""
+Runs the umbridge command for the tsunami model on level 1.
+"""
+import umbridge
+import numpy as np
+
+def tsunami_model1(params):
+    model = umbridge.HTTPModel('http://localhost:4242', 'forward')
+    out = np.array(model(np.ndarray.tolist(params), {'level':1}))
+    
+    return {'T1': out[:,0], 'T2': out[:,1], 'H1': out[:,2], 'H2': out[:,3], 'x_values': [0]}
+    
+    
\ No newline at end of file
diff --git a/setup.cfg b/setup.cfg
index 78940cfb54d78b867d8d4447ee25162b9adfed91..b09a32ac89dc7ebcb5d503234d6b656eeb82fc8e 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,8 +1,8 @@
 [metadata]
 name = bayesvalidrox
-version = 0.0.5
-author = Farid Mohammadi
-author_email = farid.mohammadi@iws.uni-stuttgart.de
+version = 1.0.0
+author = Farid Mohammadi, Rebecca Kohlhaas
+author_email = farid.mohammadi@iws.uni-stuttgart.de, rebecca.kohlhaas@iws.uni-stuttgart.de
 description = An open-source, object-oriented Python package for surrogate-assisted Bayesain Validation of computational models.
 long_description = file: README.md
 long_description_content_type = text/markdown
@@ -20,19 +20,20 @@ package_dir =
 packages = find:
 python_requires = >=3.8
 install_requires =
-   numpy==1.22.1
-   pandas==1.2.4
-   joblib==1.0.1
-   matplotlib==3.4.2
+   pandas==1.4.4
+   joblib==1.1.1
+   matplotlib==3.8.0
    seaborn==0.11.1
    scipy==1.7.3
-   scikit-learn==0.24.2
+   scikit-learn==1.3.1
    tqdm==4.61.1
    chaospy==4.3.3
    emcee==3.0.2
    corner==2.2.1
-   h5py==3.2.1
+   h5py==3.9.0
    statsmodels==0.13.2
+   multiprocess==0.70.16
+   umbridge==1.2.4
 [options.packages.find]
 where = src
 
diff --git a/src/bayesvalidrox.egg-info/PKG-INFO b/src/bayesvalidrox.egg-info/PKG-INFO
new file mode 100644
index 0000000000000000000000000000000000000000..279feebe3b7b4b5a53bdc43208dd65c926f06f2f
--- /dev/null
+++ b/src/bayesvalidrox.egg-info/PKG-INFO
@@ -0,0 +1,87 @@
+Metadata-Version: 2.1
+Name: bayesvalidrox
+Version: 1.0.0
+Summary: An open-source, object-oriented Python package for surrogate-assisted Bayesain Validation of computational models.
+Home-page: https://git.iws.uni-stuttgart.de/inversemodeling/bayesian-validation
+Author: Farid Mohammadi, Rebecca Kohlhaas
+Author-email: farid.mohammadi@iws.uni-stuttgart.de, rebecca.kohlhaas@iws.uni-stuttgart.de
+Classifier: Programming Language :: Python :: 3
+Classifier: License :: OSI Approved :: MIT License
+Classifier: Operating System :: OS Independent
+Requires-Python: >=3.8
+Description-Content-Type: text/markdown
+License-File: LICENCE.md
+Requires-Dist: pandas==1.4.4
+Requires-Dist: joblib==1.1.1
+Requires-Dist: matplotlib==3.8.0
+Requires-Dist: seaborn==0.11.1
+Requires-Dist: scipy==1.7.3
+Requires-Dist: scikit-learn==1.3.1
+Requires-Dist: tqdm==4.61.1
+Requires-Dist: chaospy==4.3.3
+Requires-Dist: emcee==3.0.2
+Requires-Dist: corner==2.2.1
+Requires-Dist: h5py==3.9.0
+Requires-Dist: statsmodels==0.13.2
+Requires-Dist: multiprocess==0.70.16
+Requires-Dist: umbridge==1.2.4
+
+# BayesValidRox
+
+<div align="center">
+  <img src="https://git.iws.uni-stuttgart.de/inversemodeling/bayesian-validation/-/raw/master/docs/logo/bayesvalidrox-logo.png" alt="bayesvalidrox logo"/>
+</div>
+
+An open-source, object-oriented Python package for surrogate-assisted Bayesain Validation of computational models.
+This framework provides an automated workflow for surrogate-based sensitivity analysis, Bayesian calibration, and validation of computational models with a modular structure.
+
+## Authors
+- [@farid](https://git.iws.uni-stuttgart.de/farid)
+
+## Installation
+The best practive is to create a virtual environment and install the package inside it.
+
+To create and activate the virtual environment run the following command in the terminal:
+```bash
+  python3 -m venv bayes_env
+  cd bayes_env
+  source bin/activate
+```
+You can replace `bayes_env` with your preferred name. For more information on virtual environments see [this link](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/).
+
+Now, you can install the latest release of the package on PyPI inside the venv with:
+```bash
+  pip install bayesvalidrox
+```
+and installing the version on the master branch can be done by cloning this repo and installing:
+```bash
+  git clone https://git.iws.uni-stuttgart.de/inversemodeling/bayesvalidrox.git
+  cd bayesvalidrox
+  pip install .
+```
+
+## Features
+* Surrogate modeling with Polynomial Chaos Expansion
+* Global sensitivity analysis using Sobol Indices
+* Bayesian calibration with MCMC using `emcee` package
+* Bayesian validation with model weights for multi-model setting
+
+## Requirements
+* numpy==1.22.1
+* pandas==1.2.4
+* joblib==1.0.1
+* matplotlib==3.4.2
+* seaborn==0.11.1
+* scikit-learn==0.24.2
+* tqdm==4.61.1
+* chaospy==4.3.3
+* emcee==3.0.2
+* corner==2.2.1
+* h5py==3.2.1
+* statsmodels==0.13.2
+
+## TexLive for Plotting with matplotlib
+Here you need super user rights
+```bash
+sudo apt-get install dvipng texlive-latex-extra texlive-fonts-recommended cm-super
+```
diff --git a/src/bayesvalidrox.egg-info/SOURCES.txt b/src/bayesvalidrox.egg-info/SOURCES.txt
new file mode 100644
index 0000000000000000000000000000000000000000..344e9840627bb3e5a89593dbd9256472a8ef41d9
--- /dev/null
+++ b/src/bayesvalidrox.egg-info/SOURCES.txt
@@ -0,0 +1,46 @@
+LICENCE.md
+README.md
+pyproject.toml
+setup.cfg
+src/bayesvalidrox/__init__.py
+src/bayesvalidrox/bayesvalidrox.mplstyle
+src/bayesvalidrox.egg-info/PKG-INFO
+src/bayesvalidrox.egg-info/SOURCES.txt
+src/bayesvalidrox.egg-info/dependency_links.txt
+src/bayesvalidrox.egg-info/requires.txt
+src/bayesvalidrox.egg-info/top_level.txt
+src/bayesvalidrox/bayes_inference/__init__.py
+src/bayesvalidrox/bayes_inference/bayes_inference.py
+src/bayesvalidrox/bayes_inference/bayes_model_comparison.py
+src/bayesvalidrox/bayes_inference/discrepancy.py
+src/bayesvalidrox/bayes_inference/mcmc.py
+src/bayesvalidrox/post_processing/__init__.py
+src/bayesvalidrox/post_processing/post_processing.py
+src/bayesvalidrox/pylink/__init__.py
+src/bayesvalidrox/pylink/pylink.py
+src/bayesvalidrox/surrogate_models/__init__.py
+src/bayesvalidrox/surrogate_models/adaptPlot.py
+src/bayesvalidrox/surrogate_models/apoly_construction.py
+src/bayesvalidrox/surrogate_models/bayes_linear.py
+src/bayesvalidrox/surrogate_models/engine.py
+src/bayesvalidrox/surrogate_models/eval_rec_rule.py
+src/bayesvalidrox/surrogate_models/exp_designs.py
+src/bayesvalidrox/surrogate_models/exploration.py
+src/bayesvalidrox/surrogate_models/glexindex.py
+src/bayesvalidrox/surrogate_models/input_space.py
+src/bayesvalidrox/surrogate_models/inputs.py
+src/bayesvalidrox/surrogate_models/meta_model_engine.py
+src/bayesvalidrox/surrogate_models/orthogonal_matching_pursuit.py
+src/bayesvalidrox/surrogate_models/reg_fast_ard.py
+src/bayesvalidrox/surrogate_models/reg_fast_laplace.py
+src/bayesvalidrox/surrogate_models/sequential_design.py
+src/bayesvalidrox/surrogate_models/surrogate_models.py
+tests/test_BayesModelComparison.py
+tests/test_Discrepancy.py
+tests/test_ExpDesign.py
+tests/test_Input.py
+tests/test_InputSpace.py
+tests/test_MetaModel.py
+tests/test_engine.py
+tests/test_polyconst.py
+tests/test_pylink.py
\ No newline at end of file
diff --git a/src/bayesvalidrox.egg-info/dependency_links.txt b/src/bayesvalidrox.egg-info/dependency_links.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc
--- /dev/null
+++ b/src/bayesvalidrox.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/src/bayesvalidrox.egg-info/requires.txt b/src/bayesvalidrox.egg-info/requires.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cc8edb95d2042c4d448c4885919eea0e9406e805
--- /dev/null
+++ b/src/bayesvalidrox.egg-info/requires.txt
@@ -0,0 +1,14 @@
+pandas==1.4.4
+joblib==1.1.1
+matplotlib==3.8.0
+seaborn==0.11.1
+scipy==1.7.3
+scikit-learn==1.3.1
+tqdm==4.61.1
+chaospy==4.3.3
+emcee==3.0.2
+corner==2.2.1
+h5py==3.9.0
+statsmodels==0.13.2
+multiprocess==0.70.16
+umbridge==1.2.4
diff --git a/src/bayesvalidrox.egg-info/top_level.txt b/src/bayesvalidrox.egg-info/top_level.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2753d5241cbf16d781d567f4c1b679ee870989a4
--- /dev/null
+++ b/src/bayesvalidrox.egg-info/top_level.txt
@@ -0,0 +1 @@
+bayesvalidrox
diff --git a/src/bayesvalidrox/__init__.py b/src/bayesvalidrox/__init__.py
index 55c14687472fe6ff00a2438f31b9ba9ecd2992cd..6c11bd3730d31b602b1b4538de1856de04ffc909 100644
--- a/src/bayesvalidrox/__init__.py
+++ b/src/bayesvalidrox/__init__.py
@@ -1,10 +1,12 @@
 # -*- coding: utf-8 -*-
-__version__ = "0.0.5"
+__version__ = "1.0.0"
 
 from .pylink.pylink import PyLinkForwardModel
 from .surrogate_models.surrogate_models import MetaModel
-from .surrogate_models.meta_model_engine import MetaModelEngine
+#from .surrogate_models.meta_model_engine import MetaModelEngine
+from .surrogate_models.engine import Engine
 from .surrogate_models.inputs import Input
+from .surrogate_models.exp_designs import ExpDesigns
 from .post_processing.post_processing import PostProcessing
 from .bayes_inference.bayes_inference import BayesInference
 from .bayes_inference.bayes_model_comparison import BayesModelComparison
@@ -16,7 +18,9 @@ __all__ = [
     "Input",
     "Discrepancy",
     "MetaModel",
-    "MetaModelEngine",
+    #"MetaModelEngine",
+    "Engine",
+    "ExpDesigns",
     "PostProcessing",
     "BayesInference",
     "BayesModelComparison"
diff --git a/src/bayesvalidrox/bayes_inference/bayes_inference.py b/src/bayesvalidrox/bayes_inference/bayes_inference.py
index c8073ba76ebeb3249646e17b7f395f8a2472e2f6..01815f59a07f87426b4903ba21a79b95cc7c16d8 100644
--- a/src/bayesvalidrox/bayes_inference/bayes_inference.py
+++ b/src/bayesvalidrox/bayes_inference/bayes_inference.py
@@ -1,25 +1,25 @@
 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 
-import numpy as np
-import os
 import copy
-import pandas as pd
-from tqdm import tqdm
-from scipy import stats
-import scipy.linalg as spla
-import joblib
-import seaborn as sns
+import gc
+import multiprocessing
+import os
+
 import corner
 import h5py
-import multiprocessing
-import gc
-from sklearn.metrics import mean_squared_error, r2_score
-from sklearn import preprocessing
-from matplotlib.patches import Patch
 import matplotlib.lines as mlines
-from matplotlib.backends.backend_pdf import PdfPages
 import matplotlib.pylab as plt
+import numpy as np
+import pandas as pd
+import scipy.linalg as spla
+import seaborn as sns
+from matplotlib.backends.backend_pdf import PdfPages
+from matplotlib.patches import Patch
+from scipy import stats
+from sklearn import preprocessing
+from sklearn.metrics import mean_squared_error, r2_score
+from tqdm import tqdm
 
 from .mcmc import MCMC
 
@@ -28,6 +28,92 @@ plt.style.use(os.path.join(os.path.split(__file__)[0],
                            '../', 'bayesvalidrox.mplstyle'))
 
 
+# -------------------------------------------------------------------------
+def _kernel_rbf(X, hyperparameters):
+    """
+    Isotropic squared exponential kernel.
+
+    Higher l values lead to smoother functions and therefore to coarser
+    approximations of the training data. Lower l values make functions
+    more wiggly with wide uncertainty regions between training data points.
+
+    sigma_f controls the marginal variance of b(x)
+
+    Parameters
+    ----------
+    X : ndarray of shape (n_samples_X, n_features)
+
+    hyperparameters : Dict
+        Lambda characteristic length
+        sigma_f controls the marginal variance of b(x)
+        sigma_0 unresolvable error nugget term, interpreted as random
+                error that cannot be attributed to measurement error.
+    Returns
+    -------
+    var_cov_matrix : ndarray of shape (n_samples_X,n_samples_X)
+        Kernel k(X, X).
+
+    """
+    from sklearn.gaussian_process.kernels import RBF
+    min_max_scaler = preprocessing.MinMaxScaler()
+    X_minmax = min_max_scaler.fit_transform(X)
+
+    nparams = len(hyperparameters)
+    if nparams < 3:
+        raise AttributeError('Provide 3 parameters for the RBF kernel!')
+
+    # characteristic length (0,1]
+    Lambda = hyperparameters[0]
+    # sigma_f controls the marginal variance of b(x)
+    sigma2_f = hyperparameters[1]
+
+    rbf = RBF(length_scale=Lambda)
+    cov_matrix = sigma2_f * rbf(X_minmax)
+
+    # (unresolvable error) nugget term that is interpreted as random
+    # error that cannot be attributed to measurement error.
+    sigma2_0 = hyperparameters[2:]
+    for i, j in np.ndindex(cov_matrix.shape):
+        cov_matrix[i, j] += np.sum(sigma2_0) if i == j else 0
+
+    return cov_matrix
+
+
+# -------------------------------------------------------------------------
+def _logpdf(x, mean, cov):
+    """
+    Computes the likelihood based on a multivariate normal distribution.
+
+    Parameters
+    ----------
+    x : TYPE
+        DESCRIPTION.
+    mean : array_like
+        Observation data.
+    cov : 2d array
+        Covariance matrix of the distribution.
+
+    Returns
+    -------
+    log_lik : float
+        Log likelihood.
+
+    """
+
+    # Tranform into np arrays
+    x = np.array(x)
+    mean = np.array(mean)
+    cov = np.array(cov)
+
+    n = len(mean)
+    L = spla.cholesky(cov, lower=True)
+    beta = np.sum(np.log(np.diag(L)))
+    dev = x - mean
+    alpha = dev.dot(spla.cho_solve((L, True), dev))
+    log_lik = -0.5 * alpha - beta - n / 2. * np.log(2 * np.pi)
+    return log_lik
+
+
 class BayesInference:
     """
     A class to perform Bayesian Analysis.
@@ -42,7 +128,7 @@ class BayesInference:
         of the variance matrix for a multivariate normal likelihood.
     name : str, optional
         The type of analysis, either calibration (`Calib`) or validation
-        (`Valid`). The default is `'Calib'`.
+        (`Valid`). The default is `'Calib'`. # TODO: what is going on here for validation?
     emulator : bool, optional
         Analysis with emulator (MetaModel). The default is `True`.
     bootstrap : bool, optional
@@ -55,11 +141,11 @@ class BayesInference:
         A dictionary with the selected indices of each model output. The
         default is `None`. If `None`, all measurement points are used in the
         analysis.
-    samples : array of shape (n_samples, n_params), optional
+    prior_samples : array of shape (n_samples, n_params), optional
         The samples to be used in the analysis. The default is `None`. If
         None the samples are drawn from the probablistic input parameter
         object of the MetaModel object.
-    n_samples : int, optional
+    n_prior_samples : int, optional
         Number of samples to be used in the analysis. The default is `500000`.
         If samples is not `None`, this argument will be assigned based on the
         number of samples given.
@@ -125,25 +211,32 @@ class BayesInference:
 
     """
 
-    def __init__(self, MetaModel, discrepancy=None, emulator=True,
+    def __init__(self, engine, discrepancy=None, emulator=True,
                  name='Calib', bootstrap=False, req_outputs=None,
-                 selected_indices=None, samples=None, n_samples=100000,
+                 selected_indices=None, prior_samples=None, n_prior_samples=100000,
                  measured_data=None, inference_method='rejection',
                  mcmc_params=None, bayes_loocv=False, n_bootstrap_itrs=1,
                  perturbed_data=[], bootstrap_noise=0.05, just_analysis=False,
                  valid_metrics=['BME'], plot_post_pred=True,
                  plot_map_pred=False, max_a_posteriori='mean',
-                 corner_title_fmt='.2e'):
-
-        self.MetaModel = MetaModel
+                 corner_title_fmt='.2e', out_dir='', bmc=False):
+
+        self.log_BME_tom = None
+        self.inf_entropy = None
+        self.log_BME = None
+        self.KLD = None
+        self.__mean_pce_prior_pred = None
+        if perturbed_data is None:
+            perturbed_data = []
+        self.engine = engine
         self.Discrepancy = discrepancy
         self.emulator = emulator
         self.name = name
         self.bootstrap = bootstrap
         self.req_outputs = req_outputs
         self.selected_indices = selected_indices
-        self.samples = samples
-        self.n_samples = n_samples
+        self.prior_samples = prior_samples
+        self.n_prior_samples = n_prior_samples
         self.measured_data = measured_data
         self.inference_method = inference_method
         self.mcmc_params = mcmc_params
@@ -157,45 +250,67 @@ class BayesInference:
         self.plot_map_pred = plot_map_pred
         self.max_a_posteriori = max_a_posteriori
         self.corner_title_fmt = corner_title_fmt
+        self.out_dir = out_dir
+        self.bmc = bmc  # Set to True, if you want to cut short to only Model Comparison
+
+        # Other properties and parameters (found in code, but never set)
+        self.error_model = False  # TODO: no example or use case for this!
+        self.bias_inputs = None
+        self.measurement_error = None  # TODO: what is this?
+        self.sigma2s = None
+        self.log_likes = None
+        self.n_tot_measurement = None
+        self.Discrepancy = None
+        self.posterior_df = None
+        self.error_MetaModel = None
+        self._mean_pce_prior_pred = None
+        self._std_pce_prior_pred = None
+        self.__model_prior_pred = None
+        self.MCMC_Obj = None
+
+        # System settings
+        if os.name == 'nt':
+            print('')
+            print('WARNING: Performing the inference on windows can lead to reduced accuracy!')
+            print('')
+            self.dtype = np.longdouble
+        else:
+            self.dtype = np.float128
 
-    # -------------------------------------------------------------------------
-    def create_inference(self):
+    def setup_inference(self):
         """
-        Starts the inference.
-
-        Returns
-        -------
-        BayesInference : obj
-            The Bayes inference object.
-
+        This function sets up the inference by checking the inputs and getting 
+        needed data.
         """
-
-        # Set some variables
-        MetaModel = self.MetaModel
-        Model = MetaModel.ModelObj
-        n_params = MetaModel.n_params
-        output_names = Model.Output.names
-        par_names = MetaModel.ExpDesign.par_names
-
-        # If the prior is set by the user, take it.
-        if self.samples is None:
-            self.samples = MetaModel.ExpDesign.generate_samples(
-                self.n_samples, 'random')
+        Model = self.engine.Model
+
+        # Create output directory
+        if self.out_dir == '':
+            self.out_dir = f'Outputs_Bayes_{self.engine.Model.name}_{self.name}'
+        os.makedirs(self.out_dir, exist_ok=True)
+
+        # If the prior is set by the user, take it, else generate from ExpDes
+        if self.prior_samples is None:
+            print('Generating prior samples from the Experimental Design.')
+            self.prior_samples = self.engine.ExpDesign.generate_samples(
+                self.n_prior_samples, 'random')
         else:
             try:
-                samples = self.samples.values
+                samples = self.prior_samples.values
             except AttributeError:
-                samples = self.samples
+                samples = self.prior_samples
 
             # Take care of an additional Sigma2s
-            self.samples = samples[:, :n_params]
+            self.prior_samples = samples[:, :self.engine.MetaModel.n_params]
 
             # Update number of samples
-            self.n_samples = self.samples.shape[0]
+            self.n_prior_samples = self.prior_samples.shape[0]
 
         # ---------- Preparation of observation data ----------
-        # Read observation data and perturb it if requested.
+        # Read observation data 
+        # TODO: later use valid #of measurements. but here only get the model observations?
         if self.measured_data is None:
+            print('Reading the observation data.')
             self.measured_data = Model.read_observation(case=self.name)
         # Convert measured_data to a data frame
         if not isinstance(self.measured_data, pd.DataFrame):
@@ -204,11 +319,13 @@ class BayesInference:
         # Extract the total number of measurement points
         if self.name.lower() == 'calib':
             self.n_tot_measurement = Model.n_obs
-        else:
+        elif self.name.lower() == 'valid':
             self.n_tot_measurement = Model.n_obs_valid
+        else:
+            raise AttributeError('The set inference type is not known! Use either `calib` or `valid`')
 
         # Find measurement error (if not given) for post predictive plot
-        if not hasattr(self, 'measurement_error'):
+        if self.measurement_error is None:
             if isinstance(self.Discrepancy, dict):
                 Disc = self.Discrepancy['known']
             else:
@@ -221,373 +338,380 @@ class BayesInference:
                     self.measurement_error = np.sqrt(Disc.parameters)
                 except TypeError:
                     pass
+        # TODO: need a transformation for given measurement error?
 
-        # ---------- Preparation of variance for covariance matrix ----------
-        # Independent and identically distributed
-        total_sigma2 = dict()
+        # Get Discrepancy type
         opt_sigma_flag = isinstance(self.Discrepancy, dict)
         opt_sigma = None
-        for key_idx, key in enumerate(output_names):
+        # Option A: known error with unknown bias term
+        if opt_sigma_flag and opt_sigma is None:
+            opt_sigma = 'A'
+        # Option B: The sigma2 is known (no bias term)
+        elif self.Discrepancy.parameters is not None:
+            opt_sigma = 'B'
+        # Option C: The sigma2 is unknown (bias term including error)
+        elif not isinstance(self.Discrepancy.InputDisc, str):
+            opt_sigma = 'C'
+        self.Discrepancy.opt_sigma = opt_sigma
+
+        # Set MCMC params if used
+        if self.inference_method.lower() == 'mcmc':
+            if self.mcmc_params is None:
+                self.mcmc_params = {}
+            par_list = ['init_samples', 'n_walkers', 'n_burn', 'n_steps',
+                        'moves', 'multiprocessing', 'verbose']
+            init_val = [None, 100, 200, 100000, None, False, False]
+            for i in range(len(par_list)):
+                if par_list[i] not in list(self.mcmc_params.keys()):
+                    self.mcmc_params[par_list[i]] = init_val[i]
 
+    # -------------------------------------------------------------------------
+    def create_inference(self):
+        """
+        Starts the inference.
+
+        Returns
+        -------
+        BayesInference : obj
+            The Bayes inference object.
+            
+        # TODO: should this function really return the class?
+
+        """
+        # Do general set up and check some parameters
+        self.setup_inference()
+
+        # ---------- Preparation of variance for covariance matrix ----------
+        # Independent and identically distributed # TODO: ??
+        total_sigma2 = dict()
+        opt_sigma = self.Discrepancy.opt_sigma
+        for key_idx, key in enumerate(self.engine.Model.Output.names):
             # Find opt_sigma
-            if opt_sigma_flag and opt_sigma is None:
-                # Option A: known error with unknown bias term
-                opt_sigma = 'A'
+            sigma2 = None
+            if opt_sigma == 'A':
                 known_discrepancy = self.Discrepancy['known']
                 self.Discrepancy = self.Discrepancy['infer']
                 sigma2 = np.array(known_discrepancy.parameters[key])
 
-            elif opt_sigma == 'A' or self.Discrepancy.parameters is not None:
-                # Option B: The sigma2 is known (no bias term)
-                if opt_sigma == 'A':
-                    sigma2 = np.array(known_discrepancy.parameters[key])
-                else:
-                    opt_sigma = 'B'
-                    sigma2 = np.array(self.Discrepancy.parameters[key])
+            elif opt_sigma == 'B':
+                sigma2 = np.array(self.Discrepancy.parameters[key])
 
-            elif not isinstance(self.Discrepancy.InputDisc, str):
-                # Option C: The sigma2 is unknown (bias term including error)
-                opt_sigma = 'C'
-                self.Discrepancy.opt_sigma = opt_sigma
+            elif opt_sigma == 'C':
                 n_measurement = self.measured_data[key].values.shape
                 sigma2 = np.zeros((n_measurement[0]))
-
             total_sigma2[key] = sigma2
 
-            self.Discrepancy.opt_sigma = opt_sigma
-            self.Discrepancy.total_sigma2 = total_sigma2
+        # TODO: can use this to debug!
+        self.Discrepancy.total_sigma2 = total_sigma2
 
         # If inferred sigma2s obtained from e.g. calibration are given
         try:
-            self.sigma2s = self.Discrepancy.get_sample(self.n_samples)
+            self.sigma2s = self.Discrepancy.get_sample(self.n_prior_samples)
         except:
-            pass
+            pass  # TODO: should an error be raised in this case? Should this at least be checked against opt_sigma?
 
         # ---------------- Bootstrap & TOM --------------------
         if self.bootstrap or self.bayes_loocv or self.just_analysis:
-            if len(self.perturbed_data) == 0:
-                # zero mean noise Adding some noise to the observation function
-                self.perturbed_data = self._perturb_data(
-                    self.measured_data, output_names
-                    )
-            else:
-                self.n_bootstrap_itrs = len(self.perturbed_data)
-
-            # -------- Model Discrepancy -----------
-            if hasattr(self, 'error_model') and self.error_model \
-               and self.name.lower() != 'calib':
-                # Select posterior mean as MAP
-                MAP_theta = self.samples.mean(axis=0).reshape((1, n_params))
-                # MAP_theta = stats.mode(self.samples,axis=0)[0]
-
-                # Evaluate the (meta-)model at the MAP
-                y_MAP, y_std_MAP = MetaModel.eval_metamodel(samples=MAP_theta)
-
-                # Train a GPR meta-model using MAP
-                self.error_MetaModel = MetaModel.create_model_error(
-                    self.bias_inputs, y_MAP, Name=self.name
-                    )
+            self.perform_bootstrap(total_sigma2)
+            if self.bmc:
+                return self
+        else:
+            print('No bootstrap for TOM performed!')  # TODO: stop the code? Use n_bootstrap = 1?
 
-            # -----------------------------------------------------
-            # ----- Loop over the perturbed observation data ------
-            # -----------------------------------------------------
-            # Initilize arrays
-            logLikelihoods = np.zeros((self.n_samples, self.n_bootstrap_itrs),
-                                      dtype=np.float16)
-            BME_Corr = np.zeros((self.n_bootstrap_itrs))
-            log_BME = np.zeros((self.n_bootstrap_itrs))
-            KLD = np.zeros((self.n_bootstrap_itrs))
-            inf_entropy = np.zeros((self.n_bootstrap_itrs))
-
-            # Compute the prior predtions
-            # Evaluate the MetaModel
-            if self.emulator:
-                y_hat, y_std = MetaModel.eval_metamodel(samples=self.samples)
-                self.__mean_pce_prior_pred = y_hat
-                self._std_pce_prior_pred = y_std
+        # ---------------- Parameter Bayesian inference ----------------
+        # Convert to a dataframe if samples are provided after calibration.
+        if self.name.lower() == 'valid':
+            self.posterior_df = pd.DataFrame(self.prior_samples, columns=self.engine.ExpDesign.par_names)
+        # Instantiate the MCMC object
+        elif self.inference_method.lower() == 'mcmc':
+            #MCMC_Obj = MCMC(self)
+            # Decoupled MCMC from BayesInf
+            self.MCMC_Obj = MCMC(self.engine, self.mcmc_params, 
+                                 self.Discrepancy, 
+                                 # TODO: add this in when the error_MetaModel/error_model works
+                                 # self.BiasInputs, 
+                                 self.bias_inputs, 
+                                 self.error_model, self.req_outputs, 
+                                 self.selected_indices, self.emulator, 
+                                 self.out_dir, self.name)
+            self.posterior_df = self.MCMC_Obj.run_sampler(
+                self.measured_data, total_sigma2
+            )
+        # Rejection sampling
+        elif self.inference_method.lower() == 'rejection':
+            self.posterior_df = self._rejection_sampling()
+        else:
+            raise AttributeError('The chosen inference method is not available!')
 
-                # Correct the predictions with Model discrepancy
-                if hasattr(self, 'error_model') and self.error_model:
-                    y_hat_corr, y_std = self.error_MetaModel.eval_model_error(
-                        self.bias_inputs, self.__mean_pce_prior_pred
-                        )
-                    self.__mean_pce_prior_pred = y_hat_corr
-                    self._std_pce_prior_pred = y_std
+        # Provide posterior's summary
+        print('\n')
+        print('-' * 15 + 'Posterior summary' + '-' * 15)
+        pd.options.display.max_columns = None
+        pd.options.display.max_rows = None
+        print(self.posterior_df.describe())
+        print('-' * 50)
 
-                # Surrogate model's error using RMSE of test data
-                if hasattr(MetaModel, 'rmse'):
-                    surrError = MetaModel.rmse
-                else:
-                    surrError = None
+        # -------- Model Discrepancy -----------
+        if self.error_model and self.name.lower() == 'calib' and self.MCMC_Obj is not None:  # TODO: where is this used
+            # and what does it actually do there?
+            self.create_error_model(opt_sigma=opt_sigma,
+                                    type_='posterior', sampler=self.MCMC_Obj)
 
-            else:
-                # Evaluate the original model
-                self.__model_prior_pred = self._eval_model(
-                    samples=self.samples, key='PriorPred'
-                    )
-                surrError = None
+        # -------- Posterior predictive -----------
+        self._posterior_predictive()
 
-            # Start the likelihood-BME computations for the perturbed data
-            for itr_idx, data in tqdm(
-                    enumerate(self.perturbed_data),
-                    total=self.n_bootstrap_itrs,
-                    desc="Boostraping the BME calculations", ascii=True
-                    ):
+        # ------------------ Visualization --------------------
+        # Posterior parameters
+        self.plot_post_params(opt_sigma)
 
-                # ---------------- Likelihood calculation ----------------
-                if self.emulator:
-                    model_evals = self.__mean_pce_prior_pred
-                else:
-                    model_evals = self.__model_prior_pred
-
-                # Leave one out
-                if self.bayes_loocv or self.just_analysis:
-                    self.selected_indices = np.nonzero(data)[0]
-
-                # Prepare data dataframe
-                nobs = list(self.measured_data.count().values[1:])
-                numbers = list(np.cumsum(nobs))
-                indices = list(zip([0] + numbers, numbers))
-                data_dict = {
-                    output_names[i]: data[j:k] for i, (j, k) in
-                    enumerate(indices)
-                    }
-
-                # Unknown sigma2
-                if opt_sigma == 'C' or hasattr(self, 'sigma2s'):
-                    logLikelihoods[:, itr_idx] = self.normpdf(
-                        model_evals, data_dict, total_sigma2,
-                        sigma2=self.sigma2s, std=surrError
-                        )
-                else:
-                    # known sigma2
-                    logLikelihoods[:, itr_idx] = self.normpdf(
-                        model_evals, data_dict, total_sigma2,
-                        std=surrError
-                        )
+        # Plot MAP
+        if self.plot_map_pred:
+            self._plot_max_a_posteriori()
 
-                # ---------------- BME Calculations ----------------
-                # BME (log)
-                log_BME[itr_idx] = np.log(
-                    np.nanmean(np.exp(logLikelihoods[:, itr_idx],
-                                      dtype=np.float128))
-                    )
+        # Plot log_BME dist
+        if self.bootstrap:
+            self.plot_log_BME()
 
-                # BME correction when using Emulator
-                if self.emulator:
-                    BME_Corr[itr_idx] = self.__corr_factor_BME(
-                        data_dict, total_sigma2, log_BME[itr_idx]
-                        )
+        # Plot posterior predictive
+        if self.plot_post_pred:
+            self._plot_post_predictive()
 
-                # Rejection Step
-                if 'kld' in list(map(str.lower, self.valid_metrics)) and\
-                   'inf_entropy' in list(map(str.lower, self.valid_metrics)):
-                    # Random numbers between 0 and 1
-                    unif = np.random.rand(1, self.n_samples)[0]
-
-                    # Reject the poorly performed prior
-                    Likelihoods = np.exp(logLikelihoods[:, itr_idx],
-                                         dtype=np.float64)
-                    accepted = (Likelihoods/np.max(Likelihoods)) >= unif
-                    posterior = self.samples[accepted]
-
-                    # Posterior-based expectation of likelihoods
-                    postExpLikelihoods = np.mean(
-                        logLikelihoods[:, itr_idx][accepted]
-                        )
+        return self
 
-                    # Calculate Kullback-Leibler Divergence
-                    KLD[itr_idx] = postExpLikelihoods - log_BME[itr_idx]
-
-                # Posterior-based expectation of prior densities
-                if 'inf_entropy' in list(map(str.lower, self.valid_metrics)):
-                    n_thread = int(0.875 * multiprocessing.cpu_count())
-                    with multiprocessing.Pool(n_thread) as p:
-                        postExpPrior = np.mean(np.concatenate(
-                            p.map(
-                                MetaModel.ExpDesign.JDist.pdf,
-                                np.array_split(posterior.T, n_thread, axis=1))
-                            )
-                            )
-                    # Information Entropy based on Entropy paper Eq. 38
-                    inf_entropy[itr_idx] = log_BME[itr_idx] - postExpPrior - \
-                        postExpLikelihoods
-
-                # Clear memory
-                gc.collect(generation=2)
-
-            # ---------- Store metrics for perturbed data set ----------------
-            # Likelihoods (Size: n_samples, n_bootstrap_itr)
-            self.log_likes = logLikelihoods
-
-            # BME (log), KLD, infEntropy (Size: 1,n_bootstrap_itr)
-            self.log_BME = log_BME
-
-            # BMECorrFactor (log) (Size: 1,n_bootstrap_itr)
-            if self.emulator:
-                self.log_BME_corr_factor = BME_Corr
+    def create_error_model(self, type_='posterior', opt_sigma='B', sampler=None):
+        """
+        Creates an error model in the engine.MetaModel based on input dist 
+        samples of the chosen type
 
-            if 'kld' in list(map(str.lower, self.valid_metrics)):
-                self.KLD = KLD
-            if 'inf_entropy' in list(map(str.lower, self.valid_metrics)):
-                self.inf_entropy = inf_entropy
+        Parameters
+        ----------
+        opt_sigma : string, optional
+            Type of uncertainty description, only used if type_=='posterior'.
+            The default is 'B'
+        type_ : string
+            Type of parameter samples to use, either 'prior' or 'posterior'. 
+            The default is 'posterior'.
+        sampler : MCMC, optional
+            Should be an MCMC object if type=='posterior' and MCMC is used in 
+            the inference.In al other cases this parameter is not needed.
 
-            # BME = BME + BMECorrFactor
-            if self.emulator:
-                self.log_BME += self.log_BME_corr_factor
+        Returns
+        -------
+        None.
 
-        # ---------------- Parameter Bayesian inference ----------------
-        if self.inference_method.lower() == 'mcmc':
-            # Instantiate the MCMC object
-            MCMC_Obj = MCMC(self)
-            self.posterior_df = MCMC_Obj.run_sampler(
-                self.measured_data, total_sigma2
-                )
+        """
+        n_params = self.engine.MetaModel.n_params
 
-        elif self.name.lower() == 'valid':
-            # Convert to a dataframe if samples are provided after calibration.
-            self.posterior_df = pd.DataFrame(self.samples, columns=par_names)
+        # Get MAP estimate from prior samples
+        if type_ == 'prior':
+            # Select prior ? mean as MAP
+            MAP_theta = self.prior_samples.mean(axis=0).reshape((1, n_params))
 
-        else:
-            # Rejection sampling
-            self.posterior_df = self._rejection_sampling()
+            # Evaluate the (meta-)model at the MAP
+            y_MAP, y_std_MAP = self.engine.MetaModel.eval_metamodel(samples=MAP_theta)
 
-        # Provide posterior's summary
-        print('\n')
-        print('-'*15 + 'Posterior summary' + '-'*15)
-        pd.options.display.max_columns = None
-        pd.options.display.max_rows = None
-        print(self.posterior_df.describe())
-        print('-'*50)
+            # Train a GPR meta-model using MAP
+            self.error_MetaModel = self.engine.MetaModel.create_model_error(
+                self.bias_inputs, y_MAP, self.measured_data, name=self.name
+            )
 
-        # -------- Model Discrepancy -----------
-        if hasattr(self, 'error_model') and self.error_model \
-           and self.name.lower() == 'calib':
+        # Get MAP estimate from posterior samples
+        if type_ == 'posterior':
             if self.inference_method.lower() == 'mcmc':
-                self.error_MetaModel = MCMC_Obj.error_MetaModel
+                self.error_MetaModel = sampler.error_MetaModel
             else:
                 # Select posterior mean as MAP
                 if opt_sigma == "B":
                     posterior_df = self.posterior_df.values
                 else:
-                    posterior_df = self.posterior_df.values[:, :-Model.n_outputs]
+                    posterior_df = self.posterior_df.values[:, :-self.engine.Model.n_outputs]
 
                 # Select posterior mean as Maximum a posteriori
                 map_theta = posterior_df.mean(axis=0).reshape((1, n_params))
                 # map_theta = stats.mode(Posterior_df,axis=0)[0]
 
                 # Evaluate the (meta-)model at the MAP
-                y_MAP, y_std_MAP = MetaModel.eval_metamodel(samples=map_theta)
+                y_MAP, y_std_MAP = self.engine.MetaModel.eval_metamodel(samples=map_theta)
 
                 # Train a GPR meta-model using MAP
-                self.error_MetaModel = MetaModel.create_model_error(
-                    self.bias_inputs, y_MAP, Name=self.name
-                    )
-
-        # -------- Posterior perdictive -----------
-        self._posterior_predictive()
-
-        # -----------------------------------------------------
-        # ------------------ Visualization --------------------
-        # -----------------------------------------------------
-        # Create Output directory, if it doesn't exist already.
-        out_dir = f'Outputs_Bayes_{Model.name}_{self.name}'
-        os.makedirs(out_dir, exist_ok=True)
-
-        # -------- Posteior parameters --------
-        if opt_sigma != "B":
-            par_names.extend(
-                [self.Discrepancy.InputDisc.Marginals[i].name for i
-                 in range(len(self.Discrepancy.InputDisc.Marginals))]
+                self.error_MetaModel = self.engine.MetaModel.create_model_error(
+                    self.bias_inputs, y_MAP, self.measured_data, name=self.name
                 )
-        # Pot with corner
-        figPosterior = corner.corner(self.posterior_df.to_numpy(),
-                                     labels=par_names,
-                                     quantiles=[0.15, 0.5, 0.85],
-                                     show_titles=True,
-                                     title_fmt=self.corner_title_fmt,
-                                     labelpad=0.2,
-                                     use_math_text=True,
-                                     title_kwargs={"fontsize": 28},
-                                     plot_datapoints=False,
-                                     plot_density=False,
-                                     fill_contours=True,
-                                     smooth=0.5,
-                                     smooth1d=0.5)
 
-        # Loop over axes and set x limits
-        if opt_sigma == "B":
-            axes = np.array(figPosterior.axes).reshape(
-                (len(par_names), len(par_names))
-                )
-            for yi in range(len(par_names)):
-                ax = axes[yi, yi]
-                ax.set_xlim(MetaModel.bound_tuples[yi])
-                for xi in range(yi):
-                    ax = axes[yi, xi]
-                    ax.set_xlim(MetaModel.bound_tuples[xi])
-        plt.close()
+    def perform_bootstrap(self, total_sigma2):
+        """
+        Perform bootstrap to get TOM (??)
+        
+        Parameters
+        ----------
+        total_sigma2 : dict
+            Dictionary containing the sigma2 for the training(?) data
+        Returns
+        -------
+        None.
 
-        # Turn off gridlines
-        for ax in figPosterior.axes:
-            ax.grid(False)
+        """
+        MetaModel = self.engine.MetaModel
+        output_names = self.engine.Model.Output.names
+        opt_sigma = self.Discrepancy.opt_sigma
 
-        if self.emulator:
-            plotname = f'/Posterior_Dist_{Model.name}_emulator'
+        # Adding some zero mean noise to the observation function
+        if len(self.perturbed_data) == 0:
+            self.perturbed_data = self._perturb_data(
+                self.measured_data, output_names
+            )
         else:
-            plotname = f'/Posterior_Dist_{Model.name}'
+            self.n_bootstrap_itrs = len(self.perturbed_data)
 
-        figPosterior.set_size_inches((24, 16))
-        figPosterior.savefig(f'./{out_dir}{plotname}.pdf',
-                             bbox_inches='tight')
+        # -------- Model Discrepancy -----------
+        if self.error_model and self.name.lower() == 'valid':  # TODO: what should be set so that this is tested?
+            print('Creating the error model.')
+            self.create_error_model(type_='prior')
+        # -----------------------------------------------------
+        # ----- Loop over the perturbed observation data ------
+        # -----------------------------------------------------
+        # Initilize arrays
+        logLikelihoods = np.zeros((self.n_prior_samples, self.n_bootstrap_itrs),
+                                  dtype=np.float16)
+        BME_Corr = np.zeros(self.n_bootstrap_itrs)
+        log_BME = np.zeros(self.n_bootstrap_itrs)
+        KLD = np.zeros(self.n_bootstrap_itrs)
+        inf_entropy = np.zeros(self.n_bootstrap_itrs)
+
+        # Compute the prior predictions
+        # Evaluate the MetaModel
+        if self.emulator:
+            print('Evaluating the metamodel on the prior samples.')
+            y_hat, y_std = MetaModel.eval_metamodel(samples=self.prior_samples)
+            self.__mean_pce_prior_pred = y_hat
+            self._std_pce_prior_pred = y_std
+
+            # Correct the predictions with Model discrepancy
+            if self.error_model:  # TODO this does not check for calib?
+                y_hat_corr, y_std = self.error_MetaModel.eval_model_error(
+                    self.bias_inputs, self.__mean_pce_prior_pred)
+                self.__mean_pce_prior_pred = y_hat_corr
+                self._std_pce_prior_pred = y_std
 
-        # -------- Plot MAP --------
-        if self.plot_map_pred:
-            self._plot_max_a_posteriori()
+            # Surrogate model's error using RMSE of test data
+            if MetaModel.rmse is not None:
+                surrError = MetaModel.rmse
+            else:
+                surrError = None
+            model_evals = self.__mean_pce_prior_pred
 
-        # -------- Plot log_BME dist --------
-        if self.bootstrap:
+        # Evaluate the model
+        else:
+            print('Evaluating the model on the prior samples.')
+            self.__model_prior_pred = self._eval_model(
+                samples=self.prior_samples, key='PriorPred')
+            model_evals = self.__model_prior_pred
+            surrError = None
+
+        # Start the likelihood-BME computations for the perturbed data
+        for itr_idx, data in tqdm(
+                enumerate(self.perturbed_data),
+                total=self.n_bootstrap_itrs,
+                desc="Bootstrapping the BME calculations", ascii=True
+        ):
+
+            # ---------------- Likelihood calculation ----------------
+            # Leave one out (see form of perturbed data)
+            if self.bayes_loocv or self.just_analysis:
+                # Consider only non-zero entries
+                self.selected_indices = np.nonzero(data)[0]
+
+            # Prepare data dataframe # TODO: what's with this transformation?
+            nobs = list(self.measured_data.count().values[1:])
+            numbers = list(np.cumsum(nobs))
+            indices = list(zip([0] + numbers, numbers))
+            data_dict = {
+                output_names[i]: data[j:k] for i, (j, k) in
+                enumerate(indices)
+            }
+
+            # Unknown sigma2
+            if opt_sigma == 'C' or self.sigma2s is not None:
+                logLikelihoods[:, itr_idx] = self.normpdf(
+                    model_evals, data_dict, total_sigma2,
+                    sigma2=self.sigma2s, std=surrError
+                )
+            else:
+                # known sigma2
+                logLikelihoods[:, itr_idx] = self.normpdf(
+                    model_evals, data_dict, total_sigma2,
+                    std=surrError
+                )
+            # ---------------- BME Calculations ----------------
+            # BME (log)
+            log_BME[itr_idx] = np.log(
+                np.nanmean(np.exp(logLikelihoods[:, itr_idx],
+                                  dtype=self.dtype))
+            )
+
+            # BME correction when using Emulator
+            if self.emulator:
+                BME_Corr[itr_idx] = self._corr_factor_BME(
+                    data_dict, total_sigma2, log_BME[itr_idx]
+                )
 
-            # Computing the TOM performance
-            self.log_BME_tom = stats.chi2.rvs(
-                self.n_tot_measurement, size=self.log_BME.shape[0]
+            # Rejection Step
+            if 'kld' in list(map(str.lower, self.valid_metrics)) and \
+                    'inf_entropy' in list(map(str.lower, self.valid_metrics)):  # TODO: why and and not or?
+                # Random numbers between 0 and 1
+                unif = np.random.rand(1, self.n_prior_samples)[0]
+
+                # Reject the poorly performed prior
+                Likelihoods = np.exp(logLikelihoods[:, itr_idx],
+                                     dtype=np.float64)
+                accepted = (Likelihoods / np.max(Likelihoods)) >= unif
+                posterior = self.prior_samples[accepted]
+
+                # Posterior-based expectation of likelihoods
+                postExpLikelihoods = np.mean(
+                    logLikelihoods[:, itr_idx][accepted]
                 )
 
-            fig, ax = plt.subplots()
-            sns.kdeplot(self.log_BME_tom, ax=ax, color="green", shade=True)
-            sns.kdeplot(
-                self.log_BME, ax=ax, color="blue", shade=True,
-                label='Model BME')
+                # Calculate Kullback-Leibler Divergence
+                KLD[itr_idx] = postExpLikelihoods - log_BME[itr_idx]
 
-            ax.set_xlabel('log$_{10}$(BME)')
-            ax.set_ylabel('Probability density')
+            # Posterior-based expectation of prior densities
+            if 'inf_entropy' in list(map(str.lower, self.valid_metrics)):
+                n_thread = int(0.875 * multiprocessing.cpu_count())
+                with multiprocessing.Pool(n_thread) as p:
+                    postExpPrior = np.mean(np.concatenate(
+                        p.map(
+                            self.engine.ExpDesign.JDist.pdf,
+                            np.array_split(posterior.T, n_thread, axis=1))
+                    )
+                    )
+                # Information Entropy based on Entropy paper Eq. 38
+                inf_entropy[itr_idx] = log_BME[itr_idx] - postExpPrior - postExpLikelihoods
 
-            legend_elements = [
-                Patch(facecolor='green', edgecolor='green', label='TOM BME'),
-                Patch(facecolor='blue', edgecolor='blue', label='Model BME')
-                ]
-            ax.legend(handles=legend_elements)
+            # Clear memory
+            gc.collect(generation=2)
 
-            if self.emulator:
-                plotname = f'/BME_hist_{Model.name}_emulator'
-            else:
-                plotname = f'/BME_hist_{Model.name}'
+        # ---------- Store metrics for perturbed data set ----------------
+        # Likelihoods (Size: n_samples, n_bootstrap_itr)
+        self.log_likes = logLikelihoods
 
-            plt.savefig(f'./{out_dir}{plotname}.pdf', bbox_inches='tight')
-            plt.show()
-            plt.close()
+        # BME (log), KLD, infEntropy (Size: 1,n_bootstrap_itr)
+        self.log_BME = log_BME
 
-        # -------- Posteior perdictives --------
-        if self.plot_post_pred:
-            # Plot the posterior predictive
-            self._plot_post_predictive()
+        # BMECorrFactor (log) (Size: 1,n_bootstrap_itr)
+        # BME = BME + BMECorrFactor
+        if self.emulator:
+            self.log_BME += BME_Corr
 
-        return self
+        if 'kld' in list(map(str.lower, self.valid_metrics)):
+            self.KLD = KLD
+        if 'inf_entropy' in list(map(str.lower, self.valid_metrics)):
+            self.inf_entropy = inf_entropy
 
     # -------------------------------------------------------------------------
     def _perturb_data(self, data, output_names):
         """
-        Returns an array with n_bootstrap_itrs rowsof perturbed data.
+        Returns an array with n_bootstrap_itrs rows of perturbed data.
         The first row includes the original observation data.
         If `self.bayes_loocv` is True, a 2d-array will be returned with
         repeated rows and zero diagonal entries.
@@ -597,7 +721,7 @@ class BayesInference:
         data : pandas DataFrame
             Observation data.
         output_names : list
-            List of the output names.
+            The output names.
 
         Returns
         -------
@@ -609,12 +733,11 @@ class BayesInference:
         obs_data = data[output_names].values
         n_measurement, n_outs = obs_data.shape
         self.n_tot_measurement = obs_data[~np.isnan(obs_data)].shape[0]
-        # Number of bootstrap iterations
-        if self.bayes_loocv:
-            self.n_bootstrap_itrs = self.n_tot_measurement
 
         # Pass loocv dataset
         if self.bayes_loocv:
+            # Number of bootstrap iterations
+            self.n_bootstrap_itrs = self.n_tot_measurement
             obs = obs_data.T[~np.isnan(obs_data.T)]
             final_data = np.repeat(np.atleast_2d(obs), self.n_bootstrap_itrs,
                                    axis=0)
@@ -622,15 +745,18 @@ class BayesInference:
             return final_data
 
         else:
+            # Init return data with original data
             final_data = np.zeros(
                 (self.n_bootstrap_itrs, self.n_tot_measurement)
-                )
+            )
             final_data[0] = obs_data.T[~np.isnan(obs_data.T)]
             for itrIdx in range(1, self.n_bootstrap_itrs):
                 data = np.zeros((n_measurement, n_outs))
                 for idx in range(len(output_names)):
+                    # Perturb the data
                     std = np.nanstd(obs_data[:, idx])
                     if std == 0:
+                        print('Note: Use std=0.01 for perturbation')
                         std = 0.001
                     noise = std * noise_level
                     data[:, idx] = np.add(
@@ -642,45 +768,17 @@ class BayesInference:
 
             return final_data
 
-    # -------------------------------------------------------------------------
-    def _logpdf(self, x, mean, cov):
-        """
-        computes the likelihood based on a multivariate normal distribution.
-
-        Parameters
-        ----------
-        x : TYPE
-            DESCRIPTION.
-        mean : array_like
-            Observation data.
-        cov : 2d array
-            Covariance matrix of the distribution.
-
-        Returns
-        -------
-        log_lik : float
-            Log likelihood.
-
-        """
-        n = len(mean)
-        L = spla.cholesky(cov, lower=True)
-        beta = np.sum(np.log(np.diag(L)))
-        dev = x - mean
-        alpha = dev.dot(spla.cho_solve((L, True), dev))
-        log_lik = -0.5 * alpha - beta - n / 2. * np.log(2 * np.pi)
-        return log_lik
-
     # -------------------------------------------------------------------------
     def _eval_model(self, samples=None, key='MAP'):
         """
-        Evaluates Forward Model.
+        Evaluates Forward Model and zips the results
 
         Parameters
         ----------
         samples : array of shape (n_samples, n_params), optional
             Parameter sets. The default is None.
         key : str, optional
-            Key string to be passed to the run_model_parallel method.
+            Descriptive key string for the run_model_parallel method.
             The default is 'MAP'.
 
         Returns
@@ -689,18 +787,17 @@ class BayesInference:
             Model outputs.
 
         """
-        MetaModel = self.MetaModel
-        Model = MetaModel.ModelObj
+        Model = self.engine.Model
 
         if samples is None:
-            self.samples = MetaModel.ExpDesign.generate_samples(
-                self.n_samples, 'random')
+            self.prior_samples = self.engine.ExpDesign.generate_samples(
+                self.n_prior_samples, 'random')
         else:
-            self.samples = samples
-            self.n_samples = len(samples)
+            self.prior_samples = samples
+            self.n_prior_samples = len(samples)
 
         model_outputs, _ = Model.run_model_parallel(
-            self.samples, key_str=key+self.name)
+            self.prior_samples, key_str=key + self.name)
 
         # Clean up
         # Zip the subdirectories
@@ -713,55 +810,6 @@ class BayesInference:
 
         return model_outputs
 
-    # -------------------------------------------------------------------------
-    def _kernel_rbf(self, X, hyperparameters):
-        """
-        Isotropic squared exponential kernel.
-
-        Higher l values lead to smoother functions and therefore to coarser
-        approximations of the training data. Lower l values make functions
-        more wiggly with wide uncertainty regions between training data points.
-
-        sigma_f controls the marginal variance of b(x)
-
-        Parameters
-        ----------
-        X : ndarray of shape (n_samples_X, n_features)
-
-        hyperparameters : Dict
-            Lambda characteristic length
-            sigma_f controls the marginal variance of b(x)
-            sigma_0 unresolvable error nugget term, interpreted as random
-                    error that cannot be attributed to measurement error.
-        Returns
-        -------
-        var_cov_matrix : ndarray of shape (n_samples_X,n_samples_X)
-            Kernel k(X, X).
-
-        """
-        from sklearn.gaussian_process.kernels import RBF
-        min_max_scaler = preprocessing.MinMaxScaler()
-        X_minmax = min_max_scaler.fit_transform(X)
-
-        nparams = len(hyperparameters)
-        # characteristic length (0,1]
-        Lambda = hyperparameters[0]
-        # sigma_f controls the marginal variance of b(x)
-        sigma2_f = hyperparameters[1]
-
-        # cov_matrix = sigma2_f*rbf_kernel(X_minmax, gamma = 1/Lambda**2)
-
-        rbf = RBF(length_scale=Lambda)
-        cov_matrix = sigma2_f * rbf(X_minmax)
-        if nparams > 2:
-            # (unresolvable error) nugget term that is interpreted as random
-            # error that cannot be attributed to measurement error.
-            sigma2_0 = hyperparameters[2:]
-            for i, j in np.ndindex(cov_matrix.shape):
-                cov_matrix[i, j] += np.sum(sigma2_0) if i == j else 0
-
-        return cov_matrix
-
     # -------------------------------------------------------------------------
     def normpdf(self, outputs, obs_data, total_sigma2s, sigma2=None, std=None):
         """
@@ -777,7 +825,7 @@ class BayesInference:
             A dictionary/dataframe containing the observation data.
         total_sigma2s : dict
             A dictionary with known values of the covariance diagonal entries,
-            a.k.a sigma^2.
+            a.k.a. sigma^2.
         sigma2 : array, optional
             An array of the sigma^2 samples, when the covariance diagonal
             entries are unknown and are being jointly inferred. The default is
@@ -793,16 +841,16 @@ class BayesInference:
             Likelihoods.
 
         """
-        Model = self.MetaModel.ModelObj
+        Model = self.engine.Model
         logLik = 0.0
 
         # Extract the requested model outputs for likelihood calulation
         if self.req_outputs is None:
-            req_outputs = Model.Output.names
+            req_outputs = Model.Output.names  # TODO: should this then be saved as self.req_outputs?
         else:
             req_outputs = list(self.req_outputs)
 
-        # Loop over the outputs
+        # Loop over the output keys
         for idx, out in enumerate(req_outputs):
 
             # (Meta)Model Output
@@ -814,26 +862,25 @@ class BayesInference:
             except AttributeError:
                 data = obs_data[out][~np.isnan(obs_data[out])]
 
-            # Prepare sigma2s
+            # Prepare data uncertainty / error estimation (sigma2s)
             non_nan_indices = ~np.isnan(total_sigma2s[out])
             tot_sigma2s = total_sigma2s[out][non_nan_indices][:nout]
 
-            # Add the std of the PCE is chosen as emulator.
+            # Add the std of the PCE if an emulator is used
             if self.emulator:
                 if std is not None:
-                    tot_sigma2s += std[out]**2
-
-            # Covariance Matrix
-            covMatrix = np.diag(tot_sigma2s)
+                    tot_sigma2s += std[out] ** 2
 
             # Select the data points to compare
             try:
                 indices = self.selected_indices[out]
             except:
                 indices = list(range(nout))
-            covMatrix = np.diag(covMatrix[indices, indices])
 
-            # If sigma2 is not given, use given total_sigma2s
+            # Set up Covariance Matrix
+            covMatrix = np.diag(np.diag(tot_sigma2s)[indices, indices])
+
+            # If sigma2 is not given, use given total_sigma2s and move to next itr
             if sigma2 is None:
                 logLik += stats.multivariate_normal.logpdf(
                     outputs[out][:, indices], data[indices], covMatrix)
@@ -849,26 +896,24 @@ class BayesInference:
                 # Covariance Matrix
                 covMatrix = np.diag(tot_sigma2s)
 
-                if sigma2 is not None:
-                    # Check the type error term
-                    if hasattr(self, 'bias_inputs') and \
-                       not hasattr(self, 'error_model'):
-                        # Infer a Bias model usig Gaussian Process Regression
-                        bias_inputs = np.hstack(
-                            (self.bias_inputs[out],
-                             tot_outputs[s_idx].reshape(-1, 1)))
-
-                        params = sigma2[s_idx, idx*3:(idx+1)*3]
-                        covMatrix = self._kernel_rbf(bias_inputs, params)
-                    else:
-                        # Infer equal sigma2s
-                        try:
-                            sigma_2 = sigma2[s_idx, idx]
-                        except TypeError:
-                            sigma_2 = 0.0
+                # Check the type error term
+                if self.bias_inputs is not None and self.error_model is None:
+                    # Infer a Bias model usig Gaussian Process Regression
+                    bias_inputs = np.hstack(
+                        (self.bias_inputs[out],
+                         tot_outputs[s_idx].reshape(-1, 1)))
+
+                    params = sigma2[s_idx, idx * 3:(idx + 1) * 3]
+                    covMatrix = _kernel_rbf(bias_inputs, params)
+                else:
+                    # Infer equal sigma2s
+                    try:
+                        sigma_2 = sigma2[s_idx, idx]
+                    except TypeError:
+                        sigma_2 = 0.0
 
-                        covMatrix += sigma_2 * np.eye(nout)
-                        # covMatrix = np.diag(sigma2 * total_sigma2s)
+                    covMatrix += sigma_2 * np.eye(nout)
+                    # covMatrix = np.diag(sigma2 * total_sigma2s)
 
                 # Select the data points to compare
                 try:
@@ -878,86 +923,45 @@ class BayesInference:
                 covMatrix = np.diag(covMatrix[indices, indices])
 
                 # Compute loglikelihood
-                logliks[s_idx] = self._logpdf(
+                logliks[s_idx] = _logpdf(
                     tot_outputs[s_idx, indices], data[indices], covMatrix
-                    )
-
+                )
             logLik += logliks
         return logLik
 
     # -------------------------------------------------------------------------
-    def _corr_factor_BME_old(self, Data, total_sigma2s, posterior):
+    def _corr_factor_BME(self, obs_data, total_sigma2s, logBME):
         """
         Calculates the correction factor for BMEs.
-        """
-        MetaModel = self.MetaModel
-        OrigModelOutput = MetaModel.ExpDesign.Y
-        Model = MetaModel.ModelObj
-
-        # Posterior with guassian-likelihood
-        postDist = stats.gaussian_kde(posterior.T)
-
-        # Remove NaN
-        Data = Data[~np.isnan(Data)]
-        total_sigma2s = total_sigma2s[~np.isnan(total_sigma2s)]
-
-        # Covariance Matrix
-        covMatrix = np.diag(total_sigma2s[:self.n_tot_measurement])
-
-        # Extract the requested model outputs for likelihood calulation
-        if self.req_outputs is None:
-            OutputType = Model.Output.names
-        else:
-            OutputType = list(self.req_outputs)
-
-        # SampleSize = OrigModelOutput[OutputType[0]].shape[0]
-
-
-        # Flatten the OutputType for OrigModel
-        TotalOutputs = np.concatenate([OrigModelOutput[x] for x in OutputType], 1)
-
-        NrofBayesSamples = self.n_samples
-        # Evaluate MetaModel on the experimental design
-        Samples = MetaModel.ExpDesign.X
-        OutputRS, stdOutputRS = MetaModel.eval_metamodel(samples=Samples)
-
-        # Reset the NrofSamples to NrofBayesSamples
-        self.n_samples = NrofBayesSamples
-
-        # Flatten the OutputType for MetaModel
-        TotalPCEOutputs = np.concatenate([OutputRS[x] for x in OutputRS], 1)
-        TotalPCEstdOutputRS= np.concatenate([stdOutputRS[x] for x in stdOutputRS], 1)
+        
+        Parameters
+        ----------
+        obs_data : dict
+            A dictionary/dataframe containing the observation data.
+        total_sigma2s : dict
+            A dictionary with known values of the covariance diagonal entries,
+            a.k.a sigma^2.
+        logBME : ??
+            The log_BME obtained from the estimated likelihoods
 
-        logweight = 0
-        for i, sample in enumerate(Samples):
-            # Compute likelilhood output vs RS
-            covMatrix = np.diag(TotalPCEstdOutputRS[i]**2)
-            logLik = self._logpdf(TotalOutputs[i], TotalPCEOutputs[i], covMatrix)
-            # Compute posterior likelihood of the collocation points
-            logpostLik = np.log(postDist.pdf(sample[:, None]))[0]
-            if logpostLik != -np.inf:
-                logweight += logLik + logpostLik
-        return logweight
+        Returns
+        -------
+        np.log(weights) : ??
+            Correction factors # TODO: factors or log of factors?
 
-    # -------------------------------------------------------------------------
-    def __corr_factor_BME(self, obs_data, total_sigma2s, logBME):
-        """
-        Calculates the correction factor for BMEs.
         """
-        MetaModel = self.MetaModel
-        samples = MetaModel.ExpDesign.X
-        model_outputs = MetaModel.ExpDesign.Y
-        Model = MetaModel.ModelObj
-        n_samples = samples.shape[0]
-
         # Extract the requested model outputs for likelihood calulation
-        output_names = Model.Output.names
+        MetaModel = self.engine.MetaModel
+        samples = self.engine.ExpDesign.X
+        model_outputs = self.engine.ExpDesign.Y
+        n_samples = samples.shape[0]
+        output_names = self.engine.Model.Output.names
 
         # Evaluate MetaModel on the experimental design and ValidSet
         OutputRS, stdOutputRS = MetaModel.eval_metamodel(samples=samples)
 
-        logLik_data = np.zeros((n_samples))
-        logLik_model = np.zeros((n_samples))
+        logLik_data = np.zeros(n_samples)
+        logLik_model = np.zeros(n_samples)
         # Loop over the outputs
         for idx, out in enumerate(output_names):
 
@@ -986,7 +990,7 @@ class BayesInference:
                 y_m_hat = OutputRS[out][i]
 
                 # CovMatrix with the surrogate error
-                covMatrix = np.eye(len(y_m)) * 1/(2*np.pi)
+                covMatrix = np.eye(len(y_m)) * 1 / (2 * np.pi)
 
                 # Select the data points to compare
                 try:
@@ -997,20 +1001,20 @@ class BayesInference:
                 covMatrix_data = np.diag(covMatrix_data[indices, indices])
 
                 # Compute likelilhood output vs data
-                logLik_data[i] += self._logpdf(
+                logLik_data[i] += _logpdf(
                     y_m_hat[indices], data[indices],
                     covMatrix_data
-                    )
+                )
 
                 # Compute likelilhood output vs surrogate
-                logLik_model[i] += self._logpdf(
+                logLik_model[i] += _logpdf(
                     y_m_hat[indices], y_m[indices],
                     covMatrix
-                    )
+                )
 
         # Weight
         logLik_data -= logBME
-        weights = np.mean(np.exp(logLik_model+logLik_data))
+        weights = np.mean(np.exp(logLik_model + logLik_data))
 
         return np.log(weights)
 
@@ -1026,45 +1030,43 @@ class BayesInference:
             Posterior samples of the input parameters.
 
         """
+        if self.prior_samples is None:
+            raise AttributeError('No prior samples available!')
 
-        MetaModel = self.MetaModel
+        if self.log_likes is None:
+            raise AttributeError('No log-likelihoods available!')
+
+        # Get sigmas # TODO: is this data uncertainty?
         try:
             sigma2_prior = self.Discrepancy.sigma2_prior
         except:
             sigma2_prior = None
 
-        # Check if the discrepancy is defined as a distribution:
-        samples = self.samples
-
+        # Combine samples and sigma2 for the return
+        samples = self.prior_samples
         if sigma2_prior is not None:
             samples = np.hstack((samples, sigma2_prior))
 
         # Take the first column of Likelihoods (Observation data without noise)
         if self.just_analysis or self.bayes_loocv:
-            index = self.n_tot_measurement-1
-            likelihoods = np.exp(self.log_likes[:, index], dtype=np.float128)
+            index = self.n_tot_measurement - 1
         else:
-            likelihoods = np.exp(self.log_likes[:, 0], dtype=np.float128)
+            index = 0
+
+        # Use longdouble on windows, float128 on linux
+        likelihoods = np.exp(self.log_likes[:, index], dtype=self.dtype)
 
         n_samples = len(likelihoods)
-        norm_ikelihoods = likelihoods / np.max(likelihoods)
+        norm_likelihoods = likelihoods / np.max(likelihoods)
 
         # Normalize based on min if all Likelihoods are zero
         if all(likelihoods == 0.0):
             likelihoods = self.log_likes[:, 0]
-            norm_ikelihoods = likelihoods / np.min(likelihoods)
+            norm_likelihoods = likelihoods / np.min(likelihoods)
 
-        # Random numbers between 0 and 1
+        # Reject the poorly performed prior compared to a uniform distribution
         unif = np.random.rand(1, n_samples)[0]
-
-        # Reject the poorly performed prior
-        accepted_samples = samples[norm_ikelihoods >= unif]
-
-        # Output the Posterior
-        par_names = MetaModel.ExpDesign.par_names
-        if sigma2_prior is not None:
-            for name in self.Discrepancy.name:
-                par_names.append(name)
+        accepted_samples = samples[norm_likelihoods >= unif]
 
         return pd.DataFrame(accepted_samples, columns=sigma2_prior)
 
@@ -1086,25 +1088,21 @@ class BayesInference:
 
         """
 
-        MetaModel = self.MetaModel
-        Model = MetaModel.ModelObj
+        MetaModel = self.engine.MetaModel
+        Model = self.engine.Model
 
-        # Make a directory to save the prior/posterior predictive
-        out_dir = f'Outputs_Bayes_{Model.name}_{self.name}'
-        os.makedirs(out_dir, exist_ok=True)
-
-        # Read observation data and perturb it if requested
+        # Read observation data and perturb it if requested # TODO: where is the perturbation?
         if self.measured_data is None:
             self.measured_data = Model.read_observation(case=self.name)
 
         if not isinstance(self.measured_data, pd.DataFrame):
             self.measured_data = pd.DataFrame(self.measured_data)
 
-        # X_values
-        x_values = MetaModel.ExpDesign.x_values
-
+        # X_values and prior sigma2
+        x_values = self.engine.ExpDesign.x_values
         try:
-            sigma2_prior = self.Discrepancy.sigma2_prior
+            sigma2_prior = self.Discrepancy.sigma2_prior  # TODO: what is this? Looks to be built for a different
+            # Discrepancy structure
         except:
             sigma2_prior = None
 
@@ -1112,45 +1110,47 @@ class BayesInference:
         posterior_df = self.posterior_df
 
         # Take care of the sigma2
-        if sigma2_prior is not None:
+        sigma2s = None
+        if sigma2_prior is not None:  # TODO: why is this the if for this code?
             try:
-                sigma2s = posterior_df[self.Discrepancy.name].values
+                sigma2s = posterior_df[self.Discrepancy.name].values  # TODO: what is Discrepancy.name?
                 posterior_df = posterior_df.drop(
                     labels=self.Discrepancy.name, axis=1
-                    )
+                )
             except:
                 sigma2s = self.sigma2s
 
         # Posterior predictive
         if self.emulator:
-            if self.inference_method == 'rejection':
-                prior_pred = self.__mean_pce_prior_pred
-            if self.name.lower() != 'calib':
-                post_pred = self.__mean_pce_prior_pred
+            if self.inference_method.lower() == 'rejection':  # TODO: combine these two? Why is there no
+                # post_pred_std for rejection sampling?
+                prior_pred = self._mean_pce_prior_pred
+            if self.name.lower() == 'valid':
+                post_pred = self._mean_pce_prior_pred
                 post_pred_std = self._std_pce_prior_pred
             else:
-                post_pred, post_pred_std = MetaModel.eval_metamodel(
+                post_pred, post_pred_std = MetaModel.eval_metamodel(  # TODO: recheck if this is needed
                     samples=posterior_df.values
-                    )
+                )
 
-        else:
-            if self.inference_method == 'rejection':
+        else:  # TODO: see emulator version
+            if self.inference_method.lower() == 'rejection':
                 prior_pred = self.__model_prior_pred
-            if self.name.lower() != 'calib':
+            if self.name.lower() == 'valid':
                 post_pred = self.__mean_pce_prior_pred,
                 post_pred_std = self._std_pce_prior_pred
             else:
                 post_pred = self._eval_model(
                     samples=posterior_df.values, key='PostPred'
-                    )
+                )
         # Correct the predictions with Model discrepancy
-        if hasattr(self, 'error_model') and self.error_model:
+        if self.error_model:
             y_hat, y_std = self.error_MetaModel.eval_model_error(
                 self.bias_inputs, post_pred
-                )
+            )
             post_pred, post_pred_std = y_hat, y_std
 
-        # Add discrepancy from likelihood Sample to the current posterior runs
+        # Add discrepancy from likelihood samples to the current posterior runs
         total_sigma2 = self.Discrepancy.total_sigma2
         post_pred_withnoise = copy.deepcopy(post_pred)
         for varIdx, var in enumerate(Model.Output.names):
@@ -1162,16 +1162,15 @@ class BayesInference:
                 tot_sigma2 = clean_sigma2[:len(pred)]
                 cov = np.diag(tot_sigma2)
 
-                # Check the type error term
+                # Account for additional error terms
                 if sigma2_prior is not None:
                     # Inferred sigma2s
-                    if hasattr(self, 'bias_inputs') and \
-                       not hasattr(self, 'error_model'):
+                    if self.bias_inputs is not None and self.error_model is None:
                         # TODO: Infer a Bias model usig GPR
                         bias_inputs = np.hstack((
                             self.bias_inputs[var], pred.reshape(-1, 1)))
-                        params = sigma2s[i, varIdx*3:(varIdx+1)*3]
-                        cov = self._kernel_rbf(bias_inputs, params)
+                        params = sigma2s[i, varIdx * 3:(varIdx + 1) * 3]
+                        cov = _kernel_rbf(bias_inputs, params)
                     else:
                         # Infer equal sigma2s
                         try:
@@ -1182,25 +1181,25 @@ class BayesInference:
                         # Convert biasSigma2s to a covMatrix
                         cov += sigma2 * np.eye(len(pred))
 
+                # Add predictive metamodel error/uncertainty
                 if self.emulator:
-                    if hasattr(MetaModel, 'rmse') and \
-                       MetaModel.rmse is not None:
+                    if MetaModel.rmse is not None:
                         stdPCE = MetaModel.rmse[var]
                     else:
                         stdPCE = post_pred_std[var][i]
                     # Expected value of variance (Assump: i.i.d stds)
-                    cov += np.diag(stdPCE**2)
+                    cov += np.diag(stdPCE ** 2)
 
                 # Sample a multivariate normal distribution with mean of
-                # prediction and variance of cov
+                # posterior prediction and variance of cov
                 post_pred_withnoise[var][i] = np.random.multivariate_normal(
                     pred, cov, 1
-                    )
+                )
 
         # ----- Prior Predictive -----
         if self.inference_method.lower() == 'rejection':
             # Create hdf5 metadata
-            hdf5file = f'{out_dir}/priorPredictive.hdf5'
+            hdf5file = f'{self.out_dir}/priorPredictive.hdf5'
             hdf5_exist = os.path.exists(hdf5file)
             if hdf5_exist:
                 os.remove(hdf5file)
@@ -1221,7 +1220,7 @@ class BayesInference:
 
         # ----- Posterior Predictive only model evaluations -----
         # Create hdf5 metadata
-        hdf5file = out_dir+'/postPredictive_wo_noise.hdf5'
+        hdf5file = self.out_dir + '/postPredictive_wo_noise.hdf5'
         hdf5_exist = os.path.exists(hdf5file)
         if hdf5_exist:
             os.remove(hdf5file)
@@ -1242,7 +1241,7 @@ class BayesInference:
 
         # ----- Posterior Predictive with noise -----
         # Create hdf5 metadata
-        hdf5file = out_dir+'/postPredictive.hdf5'
+        hdf5file = self.out_dir + '/postPredictive.hdf5'
         hdf5_exist = os.path.exists(hdf5file)
         if hdf5_exist:
             os.remove(hdf5file)
@@ -1275,11 +1274,9 @@ class BayesInference:
 
         """
 
-        MetaModel = self.MetaModel
-        Model = MetaModel.ModelObj
-        out_dir = f'Outputs_Bayes_{Model.name}_{self.name}'
+        MetaModel = self.engine.MetaModel
+        Model = self.engine.Model
         opt_sigma = self.Discrepancy.opt_sigma
-
         # -------- Find MAP and run MetaModel and origModel --------
         # Compute the MAP
         if self.max_a_posteriori.lower() == 'mean':
@@ -1290,6 +1287,8 @@ class BayesInference:
             map_theta = Posterior_df.mean(axis=0).reshape(
                 (1, MetaModel.n_params))
         else:
+            # TODO: here just a fix, no previous mention of Posterior_df!
+            Posterior_df = None
             map_theta = stats.mode(Posterior_df.values, axis=0)[0]
         # Prin report
         print("\nPoint estimator:\n", map_theta[0])
@@ -1313,10 +1312,9 @@ class BayesInference:
         Marker = 'x'
 
         # Create a PdfPages object
-        pdf = PdfPages(f'./{out_dir}MAP_PCE_vs_Model_{self.name}.pdf')
+        pdf = PdfPages(f'./{self.out_dir}MAP_PCE_vs_Model_{self.name}.pdf')
         fig = plt.figure()
         for i, key in enumerate(Model.Output.names):
-
             y_val = map_orig_model[key]
             y_pce_val = map_metamodel_mean[key]
             y_pce_val_std = map_metamodel_std[key]
@@ -1327,13 +1325,13 @@ class BayesInference:
             plt.plot(
                 x_values, y_pce_val[i], color=Color[i], lw=2.0,
                 marker=Marker, linestyle='--', label='$Y_{MAP}^{PCE}$'
-                )
+            )
             # plot the confidence interval
             plt.fill_between(
-                x_values, y_pce_val[i] - 1.96*y_pce_val_std[i],
-                y_pce_val[i] + 1.96*y_pce_val_std[i],
+                x_values, y_pce_val[i] - 1.96 * y_pce_val_std[i],
+                y_pce_val[i] + 1.96 * y_pce_val_std[i],
                 color=Color[i], alpha=0.15
-                )
+            )
 
             # Calculate the adjusted R_squared and RMSE
             R2 = r2_score(y_pce_val.reshape(-1, 1), y_val.reshape(-1, 1))
@@ -1348,7 +1346,7 @@ class BayesInference:
             fig.canvas.draw()
             p = leg.get_window_extent().inverse_transformed(ax.transAxes)
             ax.text(
-                p.p0[1]-0.05, p.p1[1]-0.25,
+                p.p0[1] - 0.05, p.p1[1] - 0.25,
                 f'RMSE = {rmse:.3f}\n$R^2$ = {R2:.3f}',
                 transform=ax.transAxes, color='black',
                 bbox=dict(facecolor='none', edgecolor='black',
@@ -1364,6 +1362,110 @@ class BayesInference:
 
         pdf.close()
 
+    def plot_post_params(self, opt_sigma):
+        """
+        Plots the multivar. posterior parameter distribution.
+        
+
+        Parameters
+        ----------
+        opt_sigma : string
+            Type of uncertainty description available.
+
+        Returns
+        -------
+        None.
+
+        """
+        par_names = self.engine.ExpDesign.par_names
+        if opt_sigma != "B":
+            par_names.extend(
+                [self.Discrepancy.InputDisc.Marginals[i].name for i
+                 in range(len(self.Discrepancy.InputDisc.Marginals))]
+            )
+        # Pot with corner
+        figPosterior = corner.corner(self.posterior_df.to_numpy(),
+                                     labels=par_names,
+                                     quantiles=[0.15, 0.5, 0.85],
+                                     show_titles=True,
+                                     title_fmt=self.corner_title_fmt,
+                                     labelpad=0.2,
+                                     use_math_text=True,
+                                     title_kwargs={"fontsize": 28},
+                                     plot_datapoints=False,
+                                     plot_density=False,
+                                     fill_contours=True,
+                                     smooth=0.5,
+                                     smooth1d=0.5)
+
+        # Loop over axes and set x limits
+        if opt_sigma == "B":
+            axes = np.array(figPosterior.axes).reshape(
+                (len(par_names), len(par_names))
+            )
+            for yi in range(len(par_names)):
+                ax = axes[yi, yi]
+                ax.set_xlim(self.engine.ExpDesign.bound_tuples[yi])
+                for xi in range(yi):
+                    ax = axes[yi, xi]
+                    ax.set_xlim(self.engine.ExpDesign.bound_tuples[xi])
+        plt.close()
+
+        # Turn off gridlines
+        for ax in figPosterior.axes:
+            ax.grid(False)
+
+        if self.emulator:
+            plotname = f'/Posterior_Dist_{self.engine.Model.name}_emulator'
+        else:
+            plotname = f'/Posterior_Dist_{self.engine.Model.name}'
+
+        figPosterior.set_size_inches((24, 16))
+        figPosterior.savefig(f'./{self.out_dir}{plotname}.pdf',
+                             bbox_inches='tight')
+
+        plt.clf()
+
+    def plot_log_BME(self):
+        """
+        Plots the log_BME if bootstrap is active.
+
+        Returns
+        -------
+        None.
+
+        """
+
+        # Computing the TOM performance
+        self.log_BME_tom = stats.chi2.rvs(
+            self.n_tot_measurement, size=self.log_BME.shape[0]
+        )
+
+        fig, ax = plt.subplots()
+        sns.kdeplot(self.log_BME_tom, ax=ax, color="green", shade=True)
+        sns.kdeplot(
+            self.log_BME, ax=ax, color="blue", shade=True,
+            label='Model BME')
+
+        ax.set_xlabel('log$_{10}$(BME)')
+        ax.set_ylabel('Probability density')
+
+        legend_elements = [
+            Patch(facecolor='green', edgecolor='green', label='TOM BME'),
+            Patch(facecolor='blue', edgecolor='blue', label='Model BME')
+        ]
+        ax.legend(handles=legend_elements)
+
+        if self.emulator:
+            plotname = f'/BME_hist_{self.engine.Model.name}_emulator'
+        else:
+            plotname = f'/BME_hist_{self.engine.Model.name}'
+
+        plt.savefig(f'./{self.out_dir}{plotname}.pdf', bbox_inches='tight')
+
+        plt.show()
+        plt.clf()
+
     # -------------------------------------------------------------------------
     def _plot_post_predictive(self):
         """
@@ -1375,8 +1477,7 @@ class BayesInference:
 
         """
 
-        Model = self.MetaModel.ModelObj
-        out_dir = f'Outputs_Bayes_{Model.name}_{self.name}'
+        Model = self.engine.Model
         # Plot the posterior predictive
         for out_idx, out_name in enumerate(Model.Output.names):
             fig, ax = plt.subplots()
@@ -1385,11 +1486,10 @@ class BayesInference:
 
                 # --- Read prior and posterior predictive ---
                 if self.inference_method == 'rejection' and \
-                   self.name.lower() != 'valid':
+                        self.name.lower() == 'calib':
                     #  --- Prior ---
                     # Load posterior predictive
-                    f = h5py.File(
-                        f'{out_dir}/priorPredictive.hdf5', 'r+')
+                    f = h5py.File(f'{self.out_dir}/priorPredictive.hdf5', 'r+')
 
                     try:
                         x_coords = np.array(f[f"x_values/{out_name}"])
@@ -1398,10 +1498,8 @@ class BayesInference:
 
                     X_values = np.repeat(x_coords, 10000)
 
-                    prior_pred_df = {}
-                    prior_pred_df[x_key] = X_values
-                    prior_pred_df[out_name] = np.array(
-                        f[f"EDY/{out_name}"])[:10000].flatten('F')
+                    prior_pred_df = {x_key: X_values, out_name: np.array(
+                        f[f"EDY/{out_name}"])[:10000].flatten('F')}
                     prior_pred_df = pd.DataFrame(prior_pred_df)
 
                     tags_post = ['prior'] * len(prior_pred_df)
@@ -1411,16 +1509,13 @@ class BayesInference:
                     f.close()
 
                     # --- Posterior ---
-                    f = h5py.File(f"{out_dir}/postPredictive.hdf5", 'r+')
+                    f = h5py.File(f"{self.out_dir}/postPredictive.hdf5", 'r+')
 
                     X_values = np.repeat(
                         x_coords, np.array(f[f"EDY/{out_name}"]).shape[0])
 
-                    post_pred_df = {}
-                    post_pred_df[x_key] = X_values
-                    post_pred_df[out_name] = np.array(
-                        f[f"EDY/{out_name}"]).flatten('F')
-
+                    post_pred_df = {x_key: X_values, out_name: np.array(
+                        f[f"EDY/{out_name}"]).flatten('F')}
                     post_pred_df = pd.DataFrame(post_pred_df)
 
                     tags_post = ['posterior'] * len(post_pred_df)
@@ -1448,7 +1543,7 @@ class BayesInference:
 
                     ax.errorbar(
                         x_coords, obs_data[out_name].values,
-                        yerr=1.96*self.measurement_error[out_name],
+                        yerr=1.96 * self.measurement_error[out_name],
                         ecolor='g', fmt=' ', zorder=-1)
 
                     # Add labels to the legend
@@ -1466,7 +1561,7 @@ class BayesInference:
 
                 else:
                     # Load posterior predictive
-                    f = h5py.File(f"{out_dir}/postPredictive.hdf5", 'r+')
+                    f = h5py.File(f"{self.out_dir}/postPredictive.hdf5", 'r+')
 
                     try:
                         x_coords = np.array(f[f"x_values/{out_name}"])
@@ -1481,7 +1576,7 @@ class BayesInference:
                         x_coords, mu, marker='o', color='b',
                         label='Mean Post. Predictive')
                     plt.fill_between(
-                        x_coords, mu-1.96*std, mu+1.96*std, color='b',
+                        x_coords, mu - 1.96 * std, mu + 1.96 * std, color='b',
                         alpha=0.15)
 
                     # --- Plot Data ---
@@ -1490,11 +1585,11 @@ class BayesInference:
                         'ko', label='data', markeredgecolor='w')
 
                     # --- Plot ExpDesign ---
-                    orig_ED_Y = self.MetaModel.ExpDesign.Y[out_name]
+                    orig_ED_Y = self.engine.ExpDesign.Y[out_name]
                     for output in orig_ED_Y:
                         plt.plot(
                             x_coords, output, color='grey', alpha=0.15
-                            )
+                        )
 
                     # Add labels for axes
                     plt.xlabel('Time [s]')
@@ -1517,5 +1612,7 @@ class BayesInference:
                 else:
                     plotname = f'/Post_Prior_Perd_{Model.name}'
 
-                fig.savefig(f'./{out_dir}{plotname}_{out_name}.pdf',
+                fig.savefig(f'./{self.out_dir}{plotname}_{out_name}.pdf',
                             bbox_inches='tight')
+
+        plt.clf()
diff --git a/src/bayesvalidrox/bayes_inference/bayes_model_comparison.py b/src/bayesvalidrox/bayes_inference/bayes_model_comparison.py
index 4d829f61a118b7544298e469272fc05f5d0f0b7f..a26eaa886d6bfda11c23e0e2a490f9f93fee1c45 100644
--- a/src/bayesvalidrox/bayes_inference/bayes_model_comparison.py
+++ b/src/bayesvalidrox/bayes_inference/bayes_model_comparison.py
@@ -1,10 +1,7 @@
 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
-"""
-Created on Sat Aug 24 16:04:06 2019
 
-@author: farid
-"""
+import emcee
 import numpy as np
 import os
 from scipy import stats
@@ -12,6 +9,7 @@ import seaborn as sns
 import matplotlib.patches as patches
 import matplotlib.colors as mcolors
 import matplotlib.pylab as plt
+import pandas as pd
 from .bayes_inference import BayesInference
 
 # Load the mplstyle
@@ -31,86 +29,89 @@ class BayesModelComparison:
         `True`.
     perturbed_data : array of shape (n_bootstrap_itrs, n_obs), optional
         User defined perturbed data. The default is `None`.
-    n_bootstarp : int
+    n_bootstrap : int
         Number of bootstrap iteration. The default is `1000`.
     data_noise_level : float
         A noise level to perturb the data set. The default is `0.01`.
-    just_n_meas : int
-        Number of measurements considered for visualization of the
-        justifiability results.
 
     """
 
     def __init__(self, justifiability=True, perturbed_data=None,
-                 n_bootstarp=1000, data_noise_level=0.01, just_n_meas=2):
+                 n_bootstrap=1000, data_noise_level=0.01,
+                 use_Bayes_settings = True, emulator = True, out_dir = 'Outputs_Comparison/'):
 
+        # TODO: check valid ranges of the parameters
+        
         self.justifiability = justifiability
         self.perturbed_data = perturbed_data
-        self.n_bootstarp = n_bootstarp
+        self.n_bootstrap = n_bootstrap
         self.data_noise_level = data_noise_level
-        self.just_n_meas = just_n_meas
-
+        self.use_Bayes_settings = use_Bayes_settings
+        self.emulator = emulator
+        self.out_dir = out_dir
+        
+        # Other parameters
+        self.n_meas = None
+        self.BF_data = None
+        self.just_data = None
+        self.BME_dict = None
+        self.set_up = False
+        self.dtype = None
+        self.bayes_dict = None
+        self.just_bayes_dict = None
+        self.model_weights = None
+        self.model_weights_dict = None
+        self.just_model_weights_dict = None
+        
+        
     # --------------------------------------------------------------------------
-    def create_model_comparison(self, model_dict, opts_dict):
+    def setup(self, model_dict):
         """
-        Starts the two-stage model comparison.
-        Stage I: Compare models using Bayes factors.
-        Stage II: Compare models via justifiability analysis.
-
-        Parameters
-        ----------
-        model_dict : dict
-            A dictionary including the metamodels.
-        opts_dict : dict
-            A dictionary given the `BayesInference` options.
-
-            Example:
-
-                >>> opts_bootstrap = {
-                    "bootstrap": True,
-                    "n_samples": 10000,
-                    "Discrepancy": DiscrepancyOpts,
-                    "emulator": True,
-                    "plot_post_pred": True
-                    }
+        Initialize parameters that are needed for all types of model comparison
 
         Returns
         -------
-        output : dict
-            A dictionary containing the objects and the model weights for the
-            comparison using Bayes factors and justifiability analysis.
+        None.
 
         """
+        
+        if not isinstance(model_dict, dict):
+            raise Exception("To run model comparsion, you need to pass a "
+                            "dictionary of models.")
 
-        # Bayes factor
-        bayes_dict_bf, model_weights_dict_bf = self.compare_models(
-            model_dict, opts_dict
-            )
-
-        output = {
-            'Bayes objects BF': bayes_dict_bf,
-            'Model weights BF': model_weights_dict_bf
-            }
+        # Extract model names
+        self.model_names = [*model_dict]
 
-        # Justifiability analysis
-        if self.justifiability:
-            bayes_dict_ja, model_weights_dict_ja = self.compare_models(
-                model_dict, opts_dict, justifiability=True
-                )
+        # Compute total number of the measurement points
+        # TODO: there could be a different option for this here
+        Engine = list(model_dict.items())[0][1]
+        Engine.Model.read_observation()
+        self.n_meas = Engine.Model.n_obs
 
-            output['Bayes objects JA'] = bayes_dict_ja
-            output['Model weights JA'] = model_weights_dict_ja
+        # Find n_bootstrap
+        if self.perturbed_data is not None:
+            self.n_bootstrap = self.perturbed_data.shape[0]
+            
+        # Output directory
+        os.makedirs(self.out_dir, exist_ok=True)
+
+        # System settings
+        if os.name == 'nt':
+            print('')
+            print('WARNING: Performing the inference on windows can lead to reduced accuracy!')
+            print('')
+            self.dtype=np.longdouble
+        else:
+            self.dtype=np.float128
 
-        return output
 
     # --------------------------------------------------------------------------
-    def compare_models(self, model_dict, opts_dict, justifiability=False):
+    def model_comparison_all(self, model_dict, opts_dict):
         """
-        Passes the options to instantiates the BayesInference class for each
-        model and passes the options from `opts_dict`. Then, it starts the
-        computations.
-        It also creates a folder and saves the diagrams, e.g., Bayes factor
-        plot, confusion matrix, etc.
+        Perform all three types of model comparison: 
+            * Bayes Factors
+            * Model weights
+            * Justifiability analysis
 
         Parameters
         ----------
@@ -118,50 +119,57 @@ class BayesModelComparison:
             A dictionary including the metamodels.
         opts_dict : dict
             A dictionary given the `BayesInference` options.
-        justifiability : bool, optional
-            Whether to perform the justifiability analysis. The default is
-            `False`.
 
         Returns
         -------
-        bayes_dict : dict
-            A dictionary with `BayesInference` objects.
-        model_weights_dict : dict
-            A dictionary containing the model weights.
+        results : dict
+            A dictionary that contains the calculated BME values, model weights
+            and confusion matrix
 
         """
+        self.calc_bayes_factors(model_dict, opts_dict)
+        self.calc_model_weights(model_dict, opts_dict)
+        self.calc_justifiability_analysis(model_dict, opts_dict)
+        
+        results = {'BME': self.BME_dict, 'Model weights': self.model_weights_dict,
+                   'Confusion matrix': self.confusion_matrix}
+        return results
+    
 
-        if not isinstance(model_dict, dict):
-            raise Exception("To run model comparsion, you need to pass a "
-                            "dictionary of models.")
+    # --------------------------------------------------------------------------
+    def calc_bayes_factors(self, model_dict, opts_dict):
+        """
+        Calculate the BayesFactors for each pair of models in the model_dict
+        with respect to given data.
 
-        # Extract model names
-        self.model_names = [*model_dict]
+        Parameters
+        ----------
+        model_dict : dict
+            A dictionary including the metamodels.
+        opts_dict : dict
+            A dictionary given the `BayesInference` options.
 
-        # Compute total number of the measurement points
-        MetaModel = list(model_dict.items())[0][1]
-        MetaModel.ModelObj.read_observation()
-        self.n_meas = MetaModel.ModelObj.n_obs
+        Returns
+        -------
+        None.
 
+        """
+        # Do the setup
+        if self.n_meas is None:
+            self.setup(model_dict)
+        
         # ----- Generate data -----
-        # Find n_bootstrap
-        if self.perturbed_data is None:
-            n_bootstarp = self.n_bootstarp
-        else:
-            n_bootstarp = self.perturbed_data.shape[0]
-
         # Create dataset
-        justData = self.generate_dataset(
-            model_dict, justifiability, n_bootstarp=n_bootstarp)
+        self.BF_data = self.generate_dataset(
+            model_dict, False, n_bootstrap=self.n_bootstrap)
 
         # Run create Interface for each model
-        bayes_dict = {}
+        self.bayes_dict = {}
         for model in model_dict.keys():
             print("-"*20)
             print("Bayesian inference of {}.\n".format(model))
-
             BayesOpts = BayesInference(model_dict[model])
-
+                
             # Set BayesInference options
             for key, value in opts_dict.items():
                 if key in BayesOpts.__dict__.keys():
@@ -171,49 +179,147 @@ class BayesModelComparison:
                         setattr(BayesOpts, key, value)
 
             # Pass justifiability data as perturbed data
-            BayesOpts.perturbed_data = justData
-            BayesOpts.just_analysis = justifiability
+            BayesOpts.bmc = True
+            BayesOpts.emulator= self.emulator
+            BayesOpts.just_analysis = False
+            BayesOpts.perturbed_data = self.BF_data
 
-            bayes_dict[model] = BayesOpts.create_inference()
+            self.bayes_dict[model] = BayesOpts.create_inference()
             print("-"*20)
 
-        # Compute model weights
-        BME_Dict = dict()
-        for modelName, bayesObj in bayes_dict.items():
-            BME_Dict[modelName] = np.exp(bayesObj.log_BME, dtype=np.float128)
+        # Accumulate the BMEs
+        self.BME_dict = dict()
+        for modelName, bayesObj in self.bayes_dict.items():
+            self.BME_dict[modelName] = np.exp(bayesObj.log_BME, dtype=self.dtype)
+
+        # TODO: move the calculation of the Bayes Factors out of the plots to here!
+        # Create kde plot for bayes factors
+        self.plot_bayes_factor(self.BME_dict, 'kde_plot')
+        
+        
+    def calc_model_weights(self, model_dict, opts_dict):
+        """
+        Calculate the model weights from BME evaluations for Bayes factors.
 
-        # BME correction in BayesInference class
-        model_weights = self.cal_model_weight(
-            BME_Dict, justifiability, n_bootstarp=n_bootstarp)
+        Parameters
+        ----------
+        model_dict : TYPE
+            DESCRIPTION.
+        opts_dict : TYPE
+            DESCRIPTION.
 
-        # Plot model weights
-        if justifiability:
-            model_names = self.model_names
-            model_names.insert(0, 'Observation')
+        Returns
+        -------
+        None.
 
-            # Split the model weights and save in a dict
-            list_ModelWeights = np.split(
-                model_weights, model_weights.shape[1]/self.n_meas, axis=1)
-            model_weights_dict = {key: weights for key, weights in
-                                  zip(model_names, list_ModelWeights)}
+        """
+        # Get BMEs via Bayes Factors if not already done so
+        if self.BME_dict is None:
+            self.calc_bayes_factors(model_dict, opts_dict)
+        
+        # Calculate the model weights
+        self.model_weights = self.cal_model_weight(
+            self.BME_dict, False, n_bootstrap=self.n_bootstrap)
 
-            self.plot_just_analysis(model_weights_dict)
-        else:
-            # Create box plot for model weights
-            self.plot_model_weights(model_weights, 'model_weights')
+        # Create box plot for model weights
+        self.plot_model_weights(self.model_weights, 'model_weights')
 
-            # Create kde plot for bayes factors
-            self.plot_bayes_factor(BME_Dict, 'kde_plot')
 
-            # Store model weights in a dict
-            model_weights_dict = {key: weights for key, weights in
-                                  zip(self.model_names, model_weights)}
+    # -------------------------------------------------------------------------    
+    def calc_justifiability_analysis(self, model_dict, opts_dict):
+        """
+        Perform justifiability analysis by calculating the confusion matrix
+        
+        Parameters
+        ----------
+        model_dict : dict
+            A dictionary including the metamodels.
+        opts_dict : dict
+            A dictionary given the `BayesInference` options.
+        
+        Returns
+        -------
+        confusion_matrix: dict
+            The averaged confusion matrix
+        
+        """
+        # Do setup
+        if self.n_meas is None:
+            self.setup(model_dict)
+            
+        # Extend model names
+        model_names = self.model_names
+        if model_names[0]!= 'Observation':
+            model_names.insert(0, 'Observation')
+        
+        # Generate data
+        # TODO: generate the datset only if it does not exist yet
+        self.just_data = self.generate_dataset(
+            model_dict, True, n_bootstrap=self.n_bootstrap)
+
+        # Run inference for each model if this is not available
+        if self.just_bayes_dict is None:
+            self.just_bayes_dict = {}
+            for model in model_dict.keys():
+                print("-"*20)
+                print("Bayesian inference of {}.\n".format(model))
+                BayesOpts = BayesInference(model_dict[model])
+                    
+                # Set BayesInference options
+                for key, value in opts_dict.items():
+                    if key in BayesOpts.__dict__.keys():
+                        if key == "Discrepancy" and isinstance(value, dict):
+                            setattr(BayesOpts, key, value[model])
+                        else:
+                            setattr(BayesOpts, key, value)
+    
+                # Pass justifiability data as perturbed data
+                BayesOpts.bmc = True
+                BayesOpts.emulator= self.emulator
+                BayesOpts.just_analysis = True
+                BayesOpts.perturbed_data = self.just_data
+    
+                self.just_bayes_dict[model] = BayesOpts.create_inference()
+                print("-"*20)
+
+        # Compute model weights
+        self.BME_dict = dict()
+        for modelName, bayesObj in self.bayes_dict.items():
+            self.BME_dict[modelName] = np.exp(bayesObj.log_BME, dtype=self.dtype)
+
+        # BME correction in BayesInference class
+        just_model_weights = self.cal_model_weight(
+            self.BME_dict, True, n_bootstrap=self.n_bootstrap)
+
+        # Split the model weights and save in a dict
+        list_ModelWeights = np.split(
+            just_model_weights, self.model_weights.shape[1]/self.n_meas, axis=1)
+        self.just_model_weights_dict = {key: weights for key, weights in
+                              zip(model_names, list_ModelWeights)}
+        
+        # Confusion matrix over all measurement points
+        cf_m = pd.DataFrame()
+        cf_m['Generated by'] = model_names
+        for i in range(len(model_names)):
+            # Ignore 'Observation', this not in the model_weights_dict
+            # TODO: how to change the code so that it is included as well?
+            if i==0:
+                continue
+            avg = []
+            for n in model_names:
+                avg.append(np.sum(self.just_model_weights_dict[n][i-1]))
+                
+            # Norm to sum to 1 for each 'Generated by' row
+            cf_m[model_names[i]] = avg/self.n_meas
+        self.confusion_matrix = cf_m
+            
+        # Plot model weights
+        self.plot_just_analysis()
 
-        return bayes_dict, model_weights_dict
 
     # -------------------------------------------------------------------------
     def generate_dataset(self, model_dict, justifiability=False,
-                         n_bootstarp=1):
+                         n_bootstrap=1):
         """
         Generates the perturbed data set for the Bayes factor calculations and
         the data set for the justifiability analysis.
@@ -225,7 +331,7 @@ class BayesModelComparison:
         bool, optional
             Whether to perform the justifiability analysis. The default is
             `False`.
-        n_bootstarp : int, optional
+        n_bootstrap : int, optional
             Number of bootstrap iterations. The default is `1`.
 
         Returns
@@ -236,33 +342,34 @@ class BayesModelComparison:
         """
         # Compute some variables
         all_just_data = []
-        metaModel = list(model_dict.items())[0][1]
-        out_names = metaModel.ModelObj.Output.names
+        Engine = list(model_dict.items())[0][1]
+        out_names = Engine.Model.Output.names
 
         # Perturb observations for Bayes Factor
         if self.perturbed_data is None:
             self.perturbed_data = self.__perturb_data(
-                    metaModel.ModelObj.observations, out_names, n_bootstarp,
+                    Engine.Model.observations, out_names, n_bootstrap,
                     noise_level=self.data_noise_level)
 
         # Only for Bayes Factor
         if not justifiability:
-            return self.perturbed_data
+            return self.perturbed_data # TODO: why return this as self... and the other one not? Is this used again?
 
         # Evaluate metamodel
         runs = {}
-        for key, metaModel in model_dict.items():
-            y_hat, _ = metaModel.eval_metamodel(nsamples=n_bootstarp)
+        for key, metaModel in model_dict.items(): # TODO: add check for emulator vs model
+            y_hat, _ = metaModel.eval_metamodel(nsamples=n_bootstrap)
             runs[key] = y_hat
 
         # Generate data
-        for i in range(n_bootstarp):
-            y_data = self.perturbed_data[i].reshape(1, -1)
-            justData = np.tril(np.repeat(y_data, y_data.shape[1], axis=0))
+        for i in range(n_bootstrap):
+            y_data = self.perturbed_data[i].reshape(1, -1)# makes every entry in self.perturbed_data 2D by adding one dim outside
+            justData = np.tril(np.repeat(y_data, y_data.shape[1], axis=0)) # Lower triangle matrix from repeats of y_data
+            # TODO: why triangle matrix here?
             # Use surrogate runs for data-generating process
             for key, metaModel in model_dict.items():
                 model_data = np.array(
-                    [runs[key][out][i] for out in out_names]).reshape(y_data.shape)
+                    [runs[key][out][i] for out in out_names]).reshape(y_data.shape) # reshapes model runs to match y_data
                 justData = np.vstack((
                     justData,
                     np.tril(np.repeat(model_data, model_data.shape[1], axis=0))
@@ -280,7 +387,7 @@ class BayesModelComparison:
     # -------------------------------------------------------------------------
     def __perturb_data(self, data, output_names, n_bootstrap, noise_level):
         """
-        Returns an array with n_bootstrap_itrs rowsof perturbed data.
+        Returns an array with n_bootstrap_itrs rows of perturbed data.
         The first row includes the original observation data.
         If `self.bayes_loocv` is True, a 2d-array will be returned with
         repeated rows and zero diagonal entries.
@@ -322,13 +429,13 @@ class BayesModelComparison:
         return final_data
 
     # -------------------------------------------------------------------------
-    def cal_model_weight(self, BME_Dict, justifiability=False, n_bootstarp=1):
+    def cal_model_weight(self, BME_dict, justifiability=False, n_bootstrap=1):
         """
         Normalize the BME (Asumption: Model Prior weights are equal for models)
 
         Parameters
         ----------
-        BME_Dict : dict
+        BME_dict : dict
             A dictionary containing the BME values.
 
         Returns
@@ -338,12 +445,12 @@ class BayesModelComparison:
 
         """
         # Stack the BME values for all models
-        all_BME = np.vstack(list(BME_Dict.values()))
+        all_BME = np.vstack(list(BME_dict.values()))
 
         if justifiability:
             # Compute expected log_BME for justifiabiliy analysis
             all_BME = all_BME.reshape(
-                all_BME.shape[0], -1, n_bootstarp).mean(axis=2)
+                all_BME.shape[0], -1, n_bootstrap).mean(axis=2)
 
         # Model weights
         model_weights = np.divide(all_BME, np.nansum(all_BME, axis=0))
@@ -366,16 +473,16 @@ class BayesModelComparison:
         None.
 
         """
-
-        directory = 'Outputs_Comparison/'
-        os.makedirs(directory, exist_ok=True)
+        model_weights_dict = self.just_model_weights_dict
         Color = [*mcolors.TABLEAU_COLORS]
         names = [*model_weights_dict]
 
+        # Plot weights for each 'Generated by'
         model_names = [model.replace('_', '$-$') for model in self.model_names]
         for name in names:
             fig, ax = plt.subplots()
             for i, model in enumerate(model_names[1:]):
+                #print(model, i)
                 plt.plot(list(range(1, self.n_meas+1)),
                          model_weights_dict[name][i],
                          color=Color[i], marker='o',
@@ -388,13 +495,12 @@ class BayesModelComparison:
             ax.set_xticks(list(range(1, self.n_meas+1)))
             plt.legend(loc="best")
             fig.savefig(
-                f'{directory}modelWeights_{name}.svg', bbox_inches='tight'
+                f'{self.out_dir}modelWeights_{name}.svg', bbox_inches='tight'
                 )
             plt.close()
 
-        # Confusion matrix for some measurement points
-        epsilon = 1 if self.just_n_meas != 1 else 0
-        for index in range(0, self.n_meas+epsilon, self.just_n_meas):
+        # Confusion matrix for each measurement point
+        for index in range(0, self.n_meas):
             weights = np.array(
                 [model_weights_dict[key][:, index] for key in model_weights_dict]
                 )
@@ -409,10 +515,26 @@ class BayesModelComparison:
             g.set_xlabel(r"\textbf{Data generated by:}", labelpad=15)
             g.set_ylabel(r"\textbf{Model weight for:}", labelpad=15)
             g.figure.savefig(
-                f"{directory}confusionMatrix_ND_{index+1}.pdf",
+                f"{self.out_dir}confusionMatrix_ND_{index+1}.pdf",
                 bbox_inches='tight'
                 )
             plt.close()
+                
+        # Plot the averaged confusion matrix
+        out_names = names[1:]
+        cf = self.confusion_matrix[out_names].to_numpy()
+        g = sns.heatmap(cf.T, annot=True, cmap='Blues', xticklabels=model_names,
+        yticklabels=model_names[1:], annot_kws={"size": 24})
+        g.xaxis.tick_top()
+        g.xaxis.set_label_position('top')
+        g.set_xlabel(r"\textbf{Data generated by:}", labelpad=15)
+        g.set_ylabel(r"\textbf{Model weight for:}", labelpad=15)
+        g.figure.savefig(
+            f"{self.out_dir}confusionMatrix_full.pdf",
+            bbox_inches='tight'
+            )
+        plt.close()
+        
 
     # -------------------------------------------------------------------------
     def plot_model_weights(self, model_weights, plot_name):
@@ -432,13 +554,9 @@ class BayesModelComparison:
         None.
 
         """
-        font_size = 40
-        # mkdir for plots
-        directory = 'Outputs_Comparison/'
-        os.makedirs(directory, exist_ok=True)
-
         # Create figure
         fig, ax = plt.subplots()
+        font_size = 40
 
         # Filter data using np.isnan
         mask = ~np.isnan(model_weights.T)
@@ -466,44 +584,35 @@ class BayesModelComparison:
         for median in bp['medians']:
             median.set(color='#b2df8a', linewidth=2)
 
-        # change the style of fliers and their fill
-        # for flier in bp['fliers']:
-        #     flier.set(marker='o', color='#e7298a', alpha=0.75)
-
-        # Custom x-axis labels
+        # Customize the axes
         model_names = [model.replace('_', '$-$') for model in self.model_names]
         ax.set_xticklabels(model_names)
-
         ax.set_ylabel('Weight', fontsize=font_size)
-
-        # Title
-        plt.title('Posterior Model Weights')
-
-        # Set y lim
         ax.set_ylim((-0.05, 1.05))
-
-        # Set size of the ticks
         for t in ax.get_xticklabels():
             t.set_fontsize(font_size)
         for t in ax.get_yticklabels():
             t.set_fontsize(font_size)
 
+        # Title
+        plt.title('Posterior Model Weights')
+        
         # Save the figure
         fig.savefig(
-            f'./{directory}{plot_name}.pdf', bbox_inches='tight'
+            f'./{self.out_dir}{plot_name}.pdf', bbox_inches='tight'
             )
 
         plt.close()
 
     # -------------------------------------------------------------------------
-    def plot_bayes_factor(self, BME_Dict, plot_name=''):
+    def plot_bayes_factor(self, BME_dict, plot_name=''):
         """
         Plots the Bayes factor distibutions in a :math:`N_m \\times N_m`
         matrix, where :math:`N_m` is the number of the models.
 
         Parameters
         ----------
-        BME_Dict : dict
+        BME_dict : dict
             A dictionary containing the BME values of the models.
         plot_name : str, optional
             Plot name. The default is ''.
@@ -513,16 +622,11 @@ class BayesModelComparison:
         None.
 
         """
-
+        # Plot setup
         font_size = 40
-
-        # mkdir for plots
-        directory = 'Outputs_Comparison/'
-        os.makedirs(directory, exist_ok=True)
-
         Colors = ["blue", "green", "gray", "brown"]
 
-        model_names = list(BME_Dict.keys())
+        model_names = list(BME_dict.keys())
         nModels = len(model_names)
 
         # Plots
@@ -544,7 +648,7 @@ class BayesModelComparison:
 
                     # Null hypothesis: key_j is the better model
                     BayesFactor = np.log10(
-                        np.divide(BME_Dict[key_i], BME_Dict[key_j])
+                        np.divide(BME_dict[key_i], BME_dict[key_j])
                         )
 
                     # sns.kdeplot(BayesFactor, ax=ax, color=Colors[i], shade=True)
@@ -637,10 +741,8 @@ class BayesModelComparison:
                             fontsize=fsize, color=Colors[i],
                             transform=ax.transAxes)
 
-        # Defining custom 'ylim' values.
+        # Customize axes
         custom_ylim = (0, 1.05)
-
-        # Setting the values for all axes.
         plt.setp(axes, ylim=custom_ylim)
 
         # set labels
@@ -652,7 +754,7 @@ class BayesModelComparison:
         plt.subplots_adjust(wspace=0.2, hspace=0.1)
 
         plt.savefig(
-            f'./{directory}Bayes_Factor{plot_name}.pdf', bbox_inches='tight'
+            f'./{self.out_dir}Bayes_Factor{plot_name}.pdf', bbox_inches='tight'
             )
 
         plt.close()
diff --git a/src/bayesvalidrox/bayes_inference/discrepancy.py b/src/bayesvalidrox/bayes_inference/discrepancy.py
index 0f52c4f0d0afe314fdc73c388f6da5a8aa93ca06..b3c235ebeb6d6ae9e109ca862cc522cc21efb45e 100644
--- a/src/bayesvalidrox/bayes_inference/discrepancy.py
+++ b/src/bayesvalidrox/bayes_inference/discrepancy.py
@@ -36,7 +36,7 @@ class Discrepancy:
     * Option B: With unknown redidual covariance matrix \\(\\Sigma\\),
     paramethrized as \\(\\Sigma(\\theta_{\\epsilon})=\\sigma^2 \\textbf{I}_
     {N_{out}}\\) with unknown residual variances \\(\\sigma^2\\).
-    This term will be jointly infer with the uncertain input parameters. For
+    This term will be jointly infered with the uncertain input parameters. For
     the inversion, you need to define a prior marginal via `Input` class. Note
     that \\(\\sigma^2\\) is only a single scalar multiplier for the diagonal
     entries of the covariance matrix \\(\\Sigma\\).
@@ -58,10 +58,17 @@ class Discrepancy:
     """
 
     def __init__(self, InputDisc='', disc_type='Gaussian', parameters=None):
+        # Set the values
         self.InputDisc = InputDisc
         self.disc_type = disc_type
         self.parameters = parameters
-
+        
+        # Other inits
+        self.ExpDesign = None
+        self.n_samples = None
+        self.sigma2_prior = None
+        self.name = None
+        self.opt_sigma = None # This will be set in the inference class and used in mcmc
     # -------------------------------------------------------------------------
     def get_sample(self, n_samples):
         """
@@ -79,16 +86,28 @@ class Discrepancy:
             \\(\\sigma^2\\) samples.
 
         """
-        self.n_samples = n_samples
-        ExpDesign = ExpDesigns(self.InputDisc)
-        self.sigma2_prior = ExpDesign.generate_ED(
-            n_samples, sampling_method='random', max_pce_deg=1
+        self.n_samples = n_samples # TODO: not used again in here - needed from the outside?
+        
+        if self.InputDisc == '':
+            raise AttributeError('Cannot create new samples, please provide input distributions')
+        
+        # Create and store BoundTuples
+        self.ExpDesign = ExpDesigns(self.InputDisc)
+        self.ExpDesign.sampling_method = 'random'
+        
+        # TODO: why does it call 'generate_ED' instead of 'generate_samples?
+        # ExpDesign.bound_tuples, onp_sigma, prior_space needed from the outside
+        # Discrepancy opt_sigma, InputDisc needed from the outside
+        # TODO: opt_sigma not defined here, but called from the outside??
+        self.ExpDesign.generate_ED(
+            n_samples, max_pce_deg=1
             )
-        # Store BoundTuples
-        self.ExpDesign = ExpDesign
+        # TODO: need to recheck the following line
+        # This used to simply be the return from the call above
+        self.sigma2_prior = self.ExpDesign.X
 
         # Naive approach: Fit a gaussian kernel to the provided data
-        self.ExpDesign.JDist = stats.gaussian_kde(ExpDesign.raw_data)
+        self.ExpDesign.JDist = stats.gaussian_kde(self.ExpDesign.raw_data)
 
         # Save the names of sigmas
         if len(self.InputDisc.Marginals) != 0:
diff --git a/src/bayesvalidrox/bayes_inference/mcmc.py b/src/bayesvalidrox/bayes_inference/mcmc.py
index 6b9ca94823fb7064baa2f0588d0f97fb4c9d1d44..49748bce7c18ee3153954f85524795f9bf3ef519 100755
--- a/src/bayesvalidrox/bayes_inference/mcmc.py
+++ b/src/bayesvalidrox/bayes_inference/mcmc.py
@@ -9,12 +9,178 @@ import matplotlib.pyplot as plt
 from matplotlib.backends.backend_pdf import PdfPages
 import multiprocessing
 import scipy.stats as st
-from scipy.linalg import cholesky as chol
-import warnings
+from scipy import stats
 import shutil
+import scipy.linalg as spla
+from sklearn import preprocessing
 os.environ["OMP_NUM_THREADS"] = "1"
 
 
+# -------------------------------------------------------------------------
+def _check_ranges(theta, ranges): # TODO: this is a replica of exp_designs.check_ranges
+    """
+    This function checks if theta lies in the given ranges.
+
+    Parameters
+    ----------
+    theta : array
+        Proposed parameter set.
+    ranges : nested list
+        List of the praremeter ranges.
+
+    Returns
+    -------
+    c : bool
+        If it lies in the given range, it return True else False.
+
+    """
+    c = True
+    # traverse in the list1
+    for i, bounds in enumerate(ranges):
+        x = theta[i]
+        # condition check
+        if x < bounds[0] or x > bounds[1]:
+            c = False
+            return c
+    return c
+
+# -------------------------------------------------------------------------
+def gelman_rubin(chain, return_var=False):
+    """
+    The potential scale reduction factor (PSRF) defined by the variance
+    within one chain, W, with the variance between chains B.
+    Both variances are combined in a weighted sum to obtain an estimate of
+    the variance of a parameter \\( \\theta \\).The square root of the
+    ratio of this estimates variance to the within chain variance is called
+    the potential scale reduction.
+    For a well converged chain it should approach 1. Values greater than
+    1.1 typically indicate that the chains have not yet fully converged.
+
+    Source: http://joergdietrich.github.io/emcee-convergence.html
+
+    https://github.com/jwalton3141/jwalton3141.github.io/blob/master/assets/posts/ESS/rwmh.py
+
+    Parameters
+    ----------
+    chain : array (n_walkers, n_steps, n_params)
+        The emcee ensamples.
+
+    Returns
+    -------
+    R_hat : float
+        The Gelman-Robin values.
+
+    """
+    chain = np.array(chain)
+    m_chains, n_iters = chain.shape[:2]
+
+    # Calculate between-chain variance
+    θb = np.mean(chain, axis=1)
+    θbb = np.mean(θb, axis=0)
+    B_over_n = ((θbb - θb)**2).sum(axis=0)
+    B_over_n /= (m_chains - 1)
+
+    # Calculate within-chain variances
+    ssq = np.var(chain, axis=1, ddof=1)
+    W = np.mean(ssq, axis=0)
+
+    # (over) estimate of variance
+    var_θ = W * (n_iters - 1) / n_iters + B_over_n
+
+    if return_var:
+        return var_θ
+    else:
+        # The square root of the ratio of this estimates variance to the
+        # within chain variance
+        R_hat = np.sqrt(var_θ / W)
+        return R_hat
+
+# -------------------------------------------------------------------------
+def _kernel_rbf(X, hyperparameters):
+    """
+    Isotropic squared exponential kernel.
+
+    Higher l values lead to smoother functions and therefore to coarser
+    approximations of the training data. Lower l values make functions
+    more wiggly with wide uncertainty regions between training data points.
+
+    sigma_f controls the marginal variance of b(x)
+
+    Parameters
+    ----------
+    X : ndarray of shape (n_samples_X, n_features)
+
+    hyperparameters : Dict
+        Lambda characteristic length
+        sigma_f controls the marginal variance of b(x)
+        sigma_0 unresolvable error nugget term, interpreted as random
+                error that cannot be attributed to measurement error.
+    Returns
+    -------
+    var_cov_matrix : ndarray of shape (n_samples_X,n_samples_X)
+        Kernel k(X, X).
+
+    """
+    from sklearn.gaussian_process.kernels import RBF
+    min_max_scaler = preprocessing.MinMaxScaler()
+    X_minmax = min_max_scaler.fit_transform(X)
+
+    nparams = len(hyperparameters)
+    if nparams < 3:
+        raise AttributeError('Provide 3 parameters for the RBF kernel!')
+
+    # characteristic length (0,1]
+    Lambda = hyperparameters[0]
+    # sigma_f controls the marginal variance of b(x)
+    sigma2_f = hyperparameters[1]
+
+    rbf = RBF(length_scale=Lambda)
+    cov_matrix = sigma2_f * rbf(X_minmax)
+
+    # (unresolvable error) nugget term that is interpreted as random
+    # error that cannot be attributed to measurement error.
+    sigma2_0 = hyperparameters[2:]
+    for i, j in np.ndindex(cov_matrix.shape):
+        cov_matrix[i, j] += np.sum(sigma2_0) if i == j else 0
+
+    return cov_matrix
+
+
+# -------------------------------------------------------------------------
+def _logpdf(x, mean, cov):
+    """
+    Computes the likelihood based on a multivariate normal distribution.
+
+    Parameters
+    ----------
+    x : TYPE
+        DESCRIPTION.
+    mean : array_like
+        Observation data.
+    cov : 2d array
+        Covariance matrix of the distribution.
+
+    Returns
+    -------
+    log_lik : float
+        Log likelihood.
+
+    """
+
+    # Tranform into np arrays
+    x = np.array(x)
+    mean = np.array(mean)
+    cov = np.array(cov)
+
+    n = len(mean)
+    L = spla.cholesky(cov, lower=True)
+    beta = np.sum(np.log(np.diag(L)))
+    dev = x - mean
+    alpha = dev.dot(spla.cho_solve((L, True), dev))
+    log_lik = -0.5 * alpha - beta - n / 2. * np.log(2 * np.pi)
+    return log_lik
+
+
 class MCMC:
     """
     A class for bayesian inference via a Markov-Chain Monte-Carlo (MCMC)
@@ -40,66 +206,85 @@ class MCMC:
         Bayes object.
     """
 
-    def __init__(self, BayesOpts):
-
-        self.BayesOpts = BayesOpts
+    def __init__(self, engine, mcmc_params, Discrepancy, bias_inputs, 
+                 error_model, req_outputs, selected_indices, emulator,
+                 out_dir, name, BiasInputs = None):
+        
+        # TODO: maybe would be worth to make this a child class of BayesInf?
+        # Inputs
+        #self.BayesOpts = BayesOpts
+        self.engine = engine
+        self.Discrepancy = Discrepancy
+        
+        # Get the needed properties from the BayesInf class
+        self.bias_inputs = bias_inputs
+        self.error_model = error_model
+        self.BiasInputs = BiasInputs
+        self.selected_indices = selected_indices
+        self.req_outputs = req_outputs
+        self.emulator = emulator
+        self.out_dir = out_dir
+        self.name = name
+        
+        # Param inits
+        self.counter = 0
+        self.observation = None
+        self.total_sigma2 = None
+        self.error_MetaModel = None
+        
+        # Get MCMC parameters from BayesOpts
+        self.initsamples = mcmc_params['init_samples']
+        if isinstance(self.initsamples, pd.DataFrame):
+            self.initsamples = self.initsamples.values
+        self.nsteps = int(mcmc_params['n_steps'])
+        self.nwalkers = int(mcmc_params['n_walkers'])
+        self.nburn = mcmc_params['n_burn']
+        self.moves = mcmc_params['moves']
+        self.mp = mcmc_params['multiprocessing']
+        self.verbose = mcmc_params['verbose']
 
     def run_sampler(self, observation, total_sigma2):
+        """
+        Run the MCMC sampler for the given observations and stdevs.
 
-        BayesObj = self.BayesOpts
-        MetaModel = BayesObj.MetaModel
-        Model = MetaModel.ModelObj
-        Discrepancy = self.BayesOpts.Discrepancy
-        n_cpus = Model.n_cpus
-        priorDist = MetaModel.ExpDesign.JDist
-        ndim = MetaModel.n_params
-        self.counter = 0
-        output_dir = f'Outputs_Bayes_{Model.name}_{self.BayesOpts.name}'
-        if not os.path.exists(output_dir):
-            os.makedirs(output_dir)
+        Parameters
+        ----------
+        observation : TYPE
+            DESCRIPTION.
+        total_sigma2 : TYPE
+            DESCRIPTION.
+
+        Returns
+        -------
+        Posterior_df : TYPE
+            DESCRIPTION.
 
+        """
+        # Get init values
+        engine = self.engine
+        Discrepancy = self.Discrepancy
+        n_cpus = engine.Model.n_cpus
+        ndim = engine.MetaModel.n_params
+        if not os.path.exists(self.out_dir):
+            os.makedirs(self.out_dir)
+
+        # Save inputs
         self.observation = observation
         self.total_sigma2 = total_sigma2
 
-        # Unpack mcmc parameters given to BayesObj.mcmc_params
-        self.initsamples = None
-        self.nwalkers = 100
-        self.nburn = 200
-        self.nsteps = 100000
-        self.moves = None
-        self.mp = False
-        self.verbose = False
-
-        # Extract initial samples
-        if 'init_samples' in BayesObj.mcmc_params:
-            self.initsamples = BayesObj.mcmc_params['init_samples']
-            if isinstance(self.initsamples, pd.DataFrame):
-                self.initsamples = self.initsamples.values
-
-        # Extract number of steps per walker
-        if 'n_steps' in BayesObj.mcmc_params:
-            self.nsteps = int(BayesObj.mcmc_params['n_steps'])
-        # Extract number of walkers (chains)
-        if 'n_walkers' in BayesObj.mcmc_params:
-            self.nwalkers = int(BayesObj.mcmc_params['n_walkers'])
-        # Extract moves
-        if 'moves' in BayesObj.mcmc_params:
-            self.moves = BayesObj.mcmc_params['moves']
-        # Extract multiprocessing
-        if 'multiprocessing' in BayesObj.mcmc_params:
-            self.mp = BayesObj.mcmc_params['multiprocessing']
-        # Extract verbose
-        if 'verbose' in BayesObj.mcmc_params:
-            self.verbose = BayesObj.mcmc_params['verbose']
-
         # Set initial samples
         np.random.seed(0)
         if self.initsamples is None:
             try:
+                # Version 1 # TODO: recheck this code, it it a mix of old and new
+                priorDist = self.engine.ExpDesign.JDist
                 initsamples = priorDist.sample(self.nwalkers).T
+
+#                initsamples = engine.ExpDesign.JDist.sample(self.nwalkers).T
+#                initsamples = np.swapaxes(np.array([initsamples]),0,1) # TODO: test if this still works with multiple input dists
             except:
                 # when aPCE selected - gaussian kernel distribution
-                inputSamples = MetaModel.ExpDesign.raw_data.T
+                inputSamples = engine.ExpDesign.raw_data.T
                 random_indices = np.random.choice(
                     len(inputSamples), size=self.nwalkers, replace=False
                     )
@@ -125,31 +310,27 @@ class MCMC:
                     initsamples[:, idx_dim] = dist.rvs(size=self.nwalkers)
 
                 # Update lower and upper
-                MetaModel.ExpDesign.bound_tuples = bound_tuples
+                engine.ExpDesign.bound_tuples = bound_tuples
 
         # Check if sigma^2 needs to be inferred
-        if Discrepancy.opt_sigma != 'B':
+        if Discrepancy.opt_sigma != 'B': # TODO: why !='B'?
             sigma2_samples = Discrepancy.get_sample(self.nwalkers)
 
             # Update initsamples
             initsamples = np.hstack((initsamples, sigma2_samples))
-
-            # Update ndim
             ndim = initsamples.shape[1]
 
             # Discrepancy bound
             disc_bound_tuple = Discrepancy.ExpDesign.bound_tuples
 
             # Update bound_tuples
-            MetaModel.ExpDesign.bound_tuples += disc_bound_tuple
+            engine.ExpDesign.bound_tuples += disc_bound_tuple
 
         print("\n>>>> Bayesian inference with MCMC for "
-              f"{self.BayesOpts.name} started. <<<<<<")
+              f"{self.name} started. <<<<<<")
 
-        # Set up the backend
-        filename = f"{output_dir}/emcee_sampler.h5"
-        backend = emcee.backends.HDFBackend(filename)
-        # Clear the backend in case the file already exists
+        # Set up the backend and clear it in case the file already exists
+        backend = emcee.backends.HDFBackend(f"{self.out_dir}/emcee_sampler.h5")
         backend.reset(self.nwalkers, ndim)
 
         # Define emcee sampler
@@ -176,8 +357,8 @@ class MCMC:
                         )
 
                     # Reset sampler
-                    sampler.reset()
                     pos = pos.coords
+                    sampler.reset()
                 else:
                     pos = initsamples
 
@@ -193,7 +374,8 @@ class MCMC:
                 self.nwalkers, ndim, self.log_posterior, moves=self.moves,
                 backend=backend, vectorize=True
                 )
-
+            print(f'ndim: {ndim}')
+            print(f'initsamples.shape: {initsamples.shape}')
             # Check if a burn-in phase is needed!
             if self.initsamples is None:
                 # Burn-in
@@ -228,8 +410,9 @@ class MCMC:
                     continue
 
                 # Train model discrepancy/error
-                if hasattr(BayesObj, 'errorModel') and BayesObj.errorModel \
-                   and not sampler.iteration % 3 * autocorreverynsteps:
+                # TODO: add this back in when the error model is actually working
+                #       and this is not dependent on BayesObj
+                if self.error_model and not sampler.iteration % 3 * autocorreverynsteps:
                     try:
                         self.error_MetaModel = self.train_error_model(sampler)
                     except:
@@ -251,14 +434,14 @@ class MCMC:
 
                 # output current autocorrelation estimate
                 if self.verbose:
-                    print(f"Mean autocorr time estimate: {np.nanmean(tau):.3f}")
-                    list_gr = np.round(self.gelman_rubin(sampler.chain), 3)
+                    print(f"Mean autocorr. time estimate: {np.nanmean(tau):.3f}")
+                    list_gr = np.round(gelman_rubin(sampler.chain), 3)
                     print("Gelman-Rubin Test*: ", list_gr)
 
                 # check convergence
                 converged = np.all(tau*autocorreverynsteps < sampler.iteration)
                 converged &= np.all(np.abs(tauold - tau) / tau < 0.01)
-                converged &= np.all(self.gelman_rubin(sampler.chain) < 1.1)
+                converged &= np.all(gelman_rubin(sampler.chain) < 1.1)
 
                 if converged:
                     break
@@ -277,37 +460,37 @@ class MCMC:
         thin = int(0.5*np.nanmin(tau)) if int(0.5*np.nanmin(tau)) != 0 else 1
         finalsamples = sampler.get_chain(discard=burnin, flat=True, thin=thin)
         acc_fr = np.nanmean(sampler.acceptance_fraction)
-        list_gr = np.round(self.gelman_rubin(sampler.chain[:, burnin:]), 3)
+        list_gr = np.round(gelman_rubin(sampler.chain[:, burnin:]), 3)
 
         # Print summary
         print('\n')
         print('-'*15 + 'Posterior diagnostics' + '-'*15)
-        print(f"mean auto-correlation time: {np.nanmean(tau):.3f}")
-        print(f"thin: {thin}")
-        print(f"burn-in: {burnin}")
-        print(f"flat chain shape: {finalsamples.shape}")
-        print(f"Mean acceptance fraction: {acc_fr:.3f}")
-        print("Gelman-Rubin Test*: ", list_gr)
+        print(f"Mean auto-correlation time: {np.nanmean(tau):.3f}")
+        print(f"Thin: {thin}")
+        print(f"Burn-in: {burnin}")
+        print(f"Flat chain shape: {finalsamples.shape}")
+        print(f"Mean acceptance fraction*: {acc_fr:.3f}")
+        print("Gelman-Rubin Test**: ", list_gr)
 
         print("\n* This value must lay between 0.234 and 0.5.")
-        print("* These values must be smaller than 1.1.")
+        print("** These values must be smaller than 1.1.")
         print('-'*50)
 
-        print(f"\n>>>> Bayesian inference with MCMC for {self.BayesOpts.name} "
+        print(f"\n>>>> Bayesian inference with MCMC for {self.name} "
               "successfully completed. <<<<<<\n")
 
         # Extract parameter names and their prior ranges
-        par_names = MetaModel.ExpDesign.par_names
+        par_names = engine.ExpDesign.par_names
 
         if Discrepancy.opt_sigma != 'B':
             for i in range(len(Discrepancy.InputDisc.Marginals)):
                 par_names.append(Discrepancy.InputDisc.Marginals[i].name)
 
-        params_range = MetaModel.ExpDesign.bound_tuples
+        params_range = engine.ExpDesign.bound_tuples
 
         # Plot traces
         if self.verbose and self.nsteps < 10000:
-            pdf = PdfPages(output_dir+'/traceplots.pdf')
+            pdf = PdfPages(self.out_dir+'/traceplots.pdf')
             fig = plt.figure()
             for parIdx in range(ndim):
                 # Set up the axes with gridspec
@@ -334,7 +517,6 @@ class MCMC:
 
                 # Destroy the current plot
                 plt.clf()
-
             pdf.close()
 
         # plot development of autocorrelation estimate
@@ -348,33 +530,9 @@ class MCMC:
             plt.ylim(0, np.nanmax(taus)+0.1*(np.nanmax(taus)-np.nanmin(taus)))
             plt.xlabel("number of steps")
             plt.ylabel(r"mean $\hat{\tau}$")
-            fig1.savefig(f"{output_dir}/autocorrelation_time.pdf",
+            fig1.savefig(f"{self.out_dir}/autocorrelation_time.pdf",
                          bbox_inches='tight')
 
-        # logml_dict = self.marginal_llk_emcee(sampler, self.nburn, logp=None,
-        # maxiter=5000)
-        # print('\nThe Bridge Sampling Estimation is "
-        #       f"{logml_dict['logml']:.5f}.')
-
-        # # Posterior-based expectation of posterior probablity
-        # postExpPostLikelihoods = np.mean(sampler.get_log_prob(flat=True)
-        # [self.nburn*self.nwalkers:])
-
-        # # Posterior-based expectation of prior densities
-        # postExpPrior = np.mean(self.log_prior(emcee_trace.T))
-
-        # # Posterior-based expectation of likelihoods
-        # postExpLikelihoods_emcee = postExpPostLikelihoods - postExpPrior
-
-        # # Calculate Kullback-Leibler Divergence
-        # KLD_emcee = postExpLikelihoods_emcee - logml_dict['logml']
-        # print("Kullback-Leibler divergence: %.5f"%KLD_emcee)
-
-        # # Information Entropy based on Entropy paper Eq. 38
-        # infEntropy_emcee = logml_dict['logml'] - postExpPrior -
-        #                    postExpLikelihoods_emcee
-        # print("Information Entropy: %.5f" %infEntropy_emcee)
-
         Posterior_df = pd.DataFrame(finalsamples, columns=par_names)
 
         return Posterior_df
@@ -397,9 +555,9 @@ class MCMC:
             returned otherwise an array.
 
         """
-
-        MetaModel = self.BayesOpts.MetaModel
-        Discrepancy = self.BayesOpts.Discrepancy
+        engine = self.engine
+        MetaModel = engine.MetaModel
+        Discrepancy = self.Discrepancy
 
         # Find the number of sigma2 parameters
         if Discrepancy.opt_sigma != 'B':
@@ -409,15 +567,15 @@ class MCMC:
             n_sigma2 = len(disc_bound_tuples)
         else:
             n_sigma2 = -len(theta)
-        prior_dist = MetaModel.ExpDesign.prior_space
-        params_range = MetaModel.ExpDesign.bound_tuples
+        prior_dist = engine.ExpDesign.prior_space
+        params_range = engine.ExpDesign.bound_tuples
         theta = theta if theta.ndim != 1 else theta.reshape((1, -1))
         nsamples = theta.shape[0]
         logprior = -np.inf*np.ones(nsamples)
 
         for i in range(nsamples):
             # Check if the sample is within the parameters' range
-            if self._check_ranges(theta[i], params_range):
+            if _check_ranges(theta[i], params_range):
                 # Check if all dists are uniform, if yes priors are equal.
                 if all(MetaModel.input_obj.Marginals[i].dist_type == 'uniform'
                        for i in range(MetaModel.n_params)):
@@ -429,7 +587,7 @@ class MCMC:
 
                 # Check if bias term needs to be inferred
                 if Discrepancy.opt_sigma != 'B':
-                    if self._check_ranges(theta[i, -n_sigma2:],
+                    if _check_ranges(theta[i, -n_sigma2:],
                                           disc_bound_tuples):
                         if all('unif' in disc_marginals[i].dist_type for i in
                                range(Discrepancy.ExpDesign.ndim)):
@@ -461,37 +619,35 @@ class MCMC:
             Log likelihood.
 
         """
-
-        BayesOpts = self.BayesOpts
-        MetaModel = BayesOpts.MetaModel
-        Discrepancy = self.BayesOpts.Discrepancy
+        MetaModel = self.engine.MetaModel
+        Discrepancy = self.Discrepancy
 
         # Find the number of sigma2 parameters
         if Discrepancy.opt_sigma != 'B':
             disc_bound_tuples = Discrepancy.ExpDesign.bound_tuples
             n_sigma2 = len(disc_bound_tuples)
-        else:
-            n_sigma2 = -len(theta)
-        # Check if bias term needs to be inferred
-        if Discrepancy.opt_sigma != 'B':
+            # Check if bias term should be inferred
             sigma2 = theta[:, -n_sigma2:]
             theta = theta[:, :-n_sigma2]
         else:
+            n_sigma2 = -len(theta)
             sigma2 = None
+        
         theta = theta if theta.ndim != 1 else theta.reshape((1, -1))
 
         # Evaluate Model/MetaModel at theta
-        mean_pred, BayesOpts._std_pce_prior_pred = self.eval_model(theta)
+        mean_pred, _std_pce_prior_pred = self.eval_model(theta)
 
         # Surrogate model's error using RMSE of test data
         surrError = MetaModel.rmse if hasattr(MetaModel, 'rmse') else None
 
         # Likelihood
-        log_like = BayesOpts.normpdf(
+        log_like = self.normpdf(
             mean_pred, self.observation, self.total_sigma2, sigma2,
             std=surrError
             )
-        return log_like
+        # TODO: give the second return argument back to BayesInf (parameter of the same name)
+        return log_like, _std_pce_prior_pred 
 
     # -------------------------------------------------------------------------
     def log_posterior(self, theta):
@@ -520,7 +676,7 @@ class MCMC:
                 # Compute log prior
                 log_prior = self.log_prior(theta)
                 # Compute log Likelihood
-                log_likelihood = self.log_likelihood(theta)
+                log_likelihood, _std_pce_prior_pred = self.log_likelihood(theta)
 
                 return log_prior + log_likelihood
         else:
@@ -535,7 +691,7 @@ class MCMC:
 
             # Compute loLikelihoods
             if non_inf_idx.size != 0:
-                log_likelihood[non_inf_idx] = self.log_likelihood(
+                log_likelihood[non_inf_idx], _std_pce_prior_pred = self.log_likelihood(
                     theta[non_inf_idx]
                     )
 
@@ -559,14 +715,12 @@ class MCMC:
             Std of model prediction.
 
         """
+        engine = self.engine
+        Model = engine.Model
 
-        BayesObj = self.BayesOpts
-        MetaModel = BayesObj.MetaModel
-        Model = MetaModel.ModelObj
-
-        if BayesObj.emulator:
+        if self.emulator:
             # Evaluate the MetaModel
-            mean_pred, std_pred = MetaModel.eval_metamodel(samples=theta)
+            mean_pred, std_pred = engine.MetaModel.eval_metamodel(samples=theta)
         else:
             # Evaluate the origModel
             mean_pred, std_pred = dict(), dict()
@@ -587,9 +741,9 @@ class MCMC:
             # Add one to the counter
             self.counter += 1
 
-        if hasattr(self, 'error_MetaModel') and BayesObj.error_model:
+        if self.error_MetaModel is not None and self.error_model:
             meanPred, stdPred = self.error_MetaModel.eval_model_error(
-                BayesObj.BiasInputs, mean_pred
+                self.BiasInputs, mean_pred
                 )
 
         return mean_pred, std_pred
@@ -610,8 +764,7 @@ class MCMC:
             A error model.
 
         """
-        BayesObj = self.BayesOpts
-        MetaModel = BayesObj.MetaModel
+        MetaModel = self.engine.MetaModel
 
         # Prepare the poster samples
         try:
@@ -636,274 +789,126 @@ class MCMC:
 
         # Train a GPR meta-model using MAP
         error_MetaModel = MetaModel.create_model_error(
-            BayesObj.BiasInputs, y_map, name='Calib')
+            self.BiasInputs, y_map, name='Calib')
 
         return error_MetaModel
-
+    
     # -------------------------------------------------------------------------
-    def gelman_rubin(self, chain, return_var=False):
+    def normpdf(self, outputs, obs_data, total_sigma2s, sigma2=None, std=None):
         """
-        The potential scale reduction factor (PSRF) defined by the variance
-        within one chain, W, with the variance between chains B.
-        Both variances are combined in a weighted sum to obtain an estimate of
-        the variance of a parameter \\( \\theta \\).The square root of the
-        ratio of this estimates variance to the within chain variance is called
-        the potential scale reduction.
-        For a well converged chain it should approach 1. Values greater than
-        1.1 typically indicate that the chains have not yet fully converged.
-
-        Source: http://joergdietrich.github.io/emcee-convergence.html
-
-        https://github.com/jwalton3141/jwalton3141.github.io/blob/master/assets/posts/ESS/rwmh.py
+        Calculates the likelihood of simulation outputs compared with
+        observation data.
 
         Parameters
         ----------
-        chain : array (n_walkers, n_steps, n_params)
-            The emcee ensamples.
+        outputs : dict
+            A dictionary containing the simulation outputs as array of shape
+            (n_samples, n_measurement) for each model output.
+        obs_data : dict
+            A dictionary/dataframe containing the observation data.
+        total_sigma2s : dict
+            A dictionary with known values of the covariance diagonal entries,
+            a.k.a. sigma^2.
+        sigma2 : array, optional
+            An array of the sigma^2 samples, when the covariance diagonal
+            entries are unknown and are being jointly inferred. The default is
+            None.
+        std : dict, optional
+            A dictionary containing the root mean squared error as array of
+            shape (n_samples, n_measurement) for each model output. The default
+            is None.
 
         Returns
         -------
-        R_hat : float
-            The Gelman-Robin values.
+        logLik : array of shape (n_samples)
+            Likelihoods.
 
         """
-        m_chains, n_iters = chain.shape[:2]
+        Model = self.engine.Model
+        logLik = 0.0
 
-        # Calculate between-chain variance
-        θb = np.mean(chain, axis=1)
-        θbb = np.mean(θb, axis=0)
-        B_over_n = ((θbb - θb)**2).sum(axis=0)
-        B_over_n /= (m_chains - 1)
-
-        # Calculate within-chain variances
-        ssq = np.var(chain, axis=1, ddof=1)
-        W = np.mean(ssq, axis=0)
-
-        # (over) estimate of variance
-        var_θ = W * (n_iters - 1) / n_iters + B_over_n
-
-        if return_var:
-            return var_θ
+        # Extract the requested model outputs for likelihood calulation
+        if self.req_outputs is None:
+            req_outputs = Model.Output.names  # TODO: should this then be saved as self.req_outputs?
         else:
-            # The square root of the ratio of this estimates variance to the
-            # within chain variance
-            R_hat = np.sqrt(var_θ / W)
-            return R_hat
+            req_outputs = list(self.req_outputs)
 
-    # -------------------------------------------------------------------------
-    def marginal_llk_emcee(self, sampler, nburn=None, logp=None, maxiter=1000):
-        """
-        The Bridge Sampling Estimator of the Marginal Likelihood based on
-        https://gist.github.com/junpenglao/4d2669d69ddfe1d788318264cdcf0583
-
-        Parameters
-        ----------
-        sampler : TYPE
-            MultiTrace, result of MCMC run.
-        nburn : int, optional
-            Number of burn-in step. The default is None.
-        logp : TYPE, optional
-            Model Log-probability function. The default is None.
-        maxiter : int, optional
-            Maximum number of iterations. The default is 1000.
+        # Loop over the output keys
+        for idx, out in enumerate(req_outputs):
 
-        Returns
-        -------
-        marg_llk : dict
-            Estimated Marginal log-Likelihood.
-
-        """
-        r0, tol1, tol2 = 0.5, 1e-10, 1e-4
+            # (Meta)Model Output
+            nsamples, nout = outputs[out].shape
 
-        if logp is None:
-            logp = sampler.log_prob_fn
-
-        # Split the samples into two parts
-        # Use the first 50% for fiting the proposal distribution
-        # and the second 50% in the iterative scheme.
-        if nburn is None:
-            mtrace = sampler.chain
-        else:
-            mtrace = sampler.chain[:, nburn:, :]
-
-        nchain, len_trace, nrofVars = mtrace.shape
-
-        N1_ = len_trace // 2
-        N1 = N1_*nchain
-        N2 = len_trace*nchain - N1
-
-        samples_4_fit = np.zeros((nrofVars, N1))
-        samples_4_iter = np.zeros((nrofVars, N2))
-        effective_n = np.zeros((nrofVars))
+            # Prepare data and remove NaN
+            try:
+                data = obs_data[out].values[~np.isnan(obs_data[out])]
+            except AttributeError:
+                data = obs_data[out][~np.isnan(obs_data[out])]
 
-        # matrix with already transformed samples
-        for var in range(nrofVars):
+            # Prepare data uncertainty / error estimation (sigma2s)
+            non_nan_indices = ~np.isnan(total_sigma2s[out])
+            tot_sigma2s = total_sigma2s[out][non_nan_indices][:nout]
 
-            # for fitting the proposal
-            x = mtrace[:, :N1_, var]
+            # Add the std of the PCE if an emulator is used
+            if self.emulator:
+                if std is not None:
+                    tot_sigma2s += std[out] ** 2
 
-            samples_4_fit[var, :] = x.flatten()
-            # for the iterative scheme
-            x2 = mtrace[:, N1_:, var]
-            samples_4_iter[var, :] = x2.flatten()
+            # Select the data points to compare
+            try:
+                indices = self.selected_indices[out]
+            except:
+                indices = list(range(nout))
 
-            # effective sample size of samples_4_iter, scalar
-            effective_n[var] = self._my_ESS(x2)
+            # Set up Covariance Matrix
+            covMatrix = np.diag(np.diag(tot_sigma2s)[indices, indices])
 
-        # median effective sample size (scalar)
-        neff = np.median(effective_n)
+            # If sigma2 is not given, use given total_sigma2s and move to next itr
+            if sigma2 is None:
+                logLik += stats.multivariate_normal.logpdf(
+                    outputs[out][:, indices], data[indices], covMatrix)
+                continue
 
-        # get mean & covariance matrix and generate samples from proposal
-        m = np.mean(samples_4_fit, axis=1)
-        V = np.cov(samples_4_fit)
-        L = chol(V, lower=True)
+            # Loop over each run/sample and calculate logLikelihood
+            logliks = np.zeros(nsamples)
+            for s_idx in range(nsamples):
 
-        # Draw N2 samples from the proposal distribution
-        gen_samples = m[:, None] + np.dot(
-            L, st.norm.rvs(0, 1, size=samples_4_iter.shape)
-            )
+                # Simulation run
+                tot_outputs = outputs[out]
 
-        # Evaluate proposal distribution for posterior & generated samples
-        q12 = st.multivariate_normal.logpdf(samples_4_iter.T, m, V)
-        q22 = st.multivariate_normal.logpdf(gen_samples.T, m, V)
+                # Covariance Matrix
+                covMatrix = np.diag(tot_sigma2s)
 
-        # Evaluate unnormalized posterior for posterior & generated samples
-        q11 = logp(samples_4_iter.T)
-        q21 = logp(gen_samples.T)
+                # Check the type error term
+                if self.bias_inputs is not None and self.error_model is None:
+                    # Infer a Bias model usig Gaussian Process Regression
+                    bias_inputs = np.hstack(
+                        (self.bias_inputs[out],
+                         tot_outputs[s_idx].reshape(-1, 1)))
 
-        # Run iterative scheme:
-        tmp = self._iterative_scheme(
-            N1, N2, q11, q12, q21, q22, r0, neff, tol1, maxiter, 'r'
-            )
-        if ~np.isfinite(tmp['logml']):
-            warnings.warn(
-                "logml could not be estimated within maxiter, rerunning with "
-                "adjusted starting value. Estimate might be more variable than"
-                " usual.")
-            # use geometric mean as starting value
-            r0_2 = np.sqrt(tmp['r_vals'][-2]*tmp['r_vals'][-1])
-            tmp = self._iterative_scheme(
-                q11, q12, q21, q22, r0_2, neff, tol2, maxiter, 'logml'
+                    params = sigma2[s_idx, idx * 3:(idx + 1) * 3]
+                    covMatrix = _kernel_rbf(bias_inputs, params)
+                else:
+                    # Infer equal sigma2s
+                    try:
+                        sigma_2 = sigma2[s_idx, idx]
+                    except TypeError:
+                        sigma_2 = 0.0
+
+                    covMatrix += sigma_2 * np.eye(nout)
+                    # covMatrix = np.diag(sigma2 * total_sigma2s)
+
+                # Select the data points to compare
+                try:
+                    indices = self.selected_indices[out]
+                except:
+                    indices = list(range(nout))
+                covMatrix = np.diag(covMatrix[indices, indices])
+
+                # Compute loglikelihood
+                logliks[s_idx] = _logpdf(
+                    tot_outputs[s_idx, indices], data[indices], covMatrix
                 )
+            logLik += logliks
+        return logLik
 
-        marg_llk = dict(
-            logml=tmp['logml'], niter=tmp['niter'], method="normal",
-            q11=q11, q12=q12, q21=q21, q22=q22
-            )
-        return marg_llk
-
-    # -------------------------------------------------------------------------
-    def _iterative_scheme(self, N1, N2, q11, q12, q21, q22, r0, neff, tol,
-                          maxiter, criterion):
-        """
-        Iterative scheme as proposed in Meng and Wong (1996) to estimate the
-        marginal likelihood
-
-        """
-        l1 = q11 - q12
-        l2 = q21 - q22
-        # To increase numerical stability,
-        # subtracting the median of l1 from l1 & l2 later
-        lstar = np.median(l1)
-        s1 = neff/(neff + N2)
-        s2 = N2/(neff + N2)
-        r = r0
-        r_vals = [r]
-        logml = np.log(r) + lstar
-        criterion_val = 1 + tol
-
-        i = 0
-        while (i <= maxiter) & (criterion_val > tol):
-            rold = r
-            logmlold = logml
-            numi = np.exp(l2 - lstar)/(s1 * np.exp(l2 - lstar) + s2 * r)
-            deni = 1/(s1 * np.exp(l1 - lstar) + s2 * r)
-            if np.sum(~np.isfinite(numi))+np.sum(~np.isfinite(deni)) > 0:
-                warnings.warn(
-                    """Infinite value in iterative scheme, returning NaN.
-                     Try rerunning with more samples.""")
-            r = (N1/N2) * np.sum(numi)/np.sum(deni)
-            r_vals.append(r)
-            logml = np.log(r) + lstar
-            i += 1
-            if criterion == 'r':
-                criterion_val = np.abs((r - rold)/r)
-            elif criterion == 'logml':
-                criterion_val = np.abs((logml - logmlold)/logml)
-
-        if i >= maxiter:
-            return dict(logml=np.NaN, niter=i, r_vals=np.asarray(r_vals))
-        else:
-            return dict(logml=logml, niter=i)
-
-    # -------------------------------------------------------------------------
-    def _my_ESS(self, x):
-        """
-        Compute the effective sample size of estimand of interest.
-        Vectorised implementation.
-        https://github.com/jwalton3141/jwalton3141.github.io/blob/master/assets/posts/ESS/rwmh.py
-
-
-        Parameters
-        ----------
-        x : array of shape (n_walkers, n_steps)
-            MCMC Samples.
-
-        Returns
-        -------
-        int
-            Effective sample size.
-
-        """
-        m_chains, n_iters = x.shape
-
-        def variogram(t):
-            variogram = ((x[:, t:] - x[:, :(n_iters - t)])**2).sum()
-            variogram /= (m_chains * (n_iters - t))
-            return variogram
-
-        post_var = self.gelman_rubin(x, return_var=True)
-
-        t = 1
-        rho = np.ones(n_iters)
-        negative_autocorr = False
-
-        # Iterate until the sum of consecutive estimates of autocorrelation is
-        # negative
-        while not negative_autocorr and (t < n_iters):
-            rho[t] = 1 - variogram(t) / (2 * post_var)
-
-            if not t % 2:
-                negative_autocorr = sum(rho[t-1:t+1]) < 0
-
-            t += 1
-
-        return int(m_chains*n_iters / (1 + 2*rho[1:t].sum()))
-
-    # -------------------------------------------------------------------------
-    def _check_ranges(self, theta, ranges):
-        """
-        This function checks if theta lies in the given ranges.
-
-        Parameters
-        ----------
-        theta : array
-            Proposed parameter set.
-        ranges : nested list
-            List of the praremeter ranges.
-
-        Returns
-        -------
-        c : bool
-            If it lies in the given range, it return True else False.
-
-        """
-        c = True
-        # traverse in the list1
-        for i, bounds in enumerate(ranges):
-            x = theta[i]
-            # condition check
-            if x < bounds[0] or x > bounds[1]:
-                c = False
-                return c
-        return c
diff --git a/src/bayesvalidrox/post_processing/post_processing.py b/src/bayesvalidrox/post_processing/post_processing.py
index 4db354bbd541affdc50a8dce37eb293188091f73..6520a40f9f2393798f6b8abac026b9ed38fe33ca 100644
--- a/src/bayesvalidrox/post_processing/post_processing.py
+++ b/src/bayesvalidrox/post_processing/post_processing.py
@@ -32,8 +32,11 @@ class PostProcessing:
         expected to be performed change this to `'valid'`.
     """
 
-    def __init__(self, MetaModel, name='calib'):
-        self.MetaModel = MetaModel
+    def __init__(self, engine, name='calib'):
+        self.engine = engine
+        self.MetaModel = engine.MetaModel
+        self.ExpDesign = engine.ExpDesign
+        self.ModelObj = engine.Model
         self.name = name
 
     # -------------------------------------------------------------------------
@@ -60,13 +63,13 @@ class PostProcessing:
 
         bar_plot = True if plot_type == 'bar' else False
         meta_model_type = self.MetaModel.meta_model_type
-        Model = self.MetaModel.ModelObj
+        Model = self.ModelObj
 
         # Read Monte-Carlo reference
-        self.mc_reference = Model.read_mc_reference()
+        self.mc_reference = Model.read_observation('mc_ref')
 
         # Set the x values
-        x_values_orig = self.MetaModel.ExpDesign.x_values
+        x_values_orig = self.engine.ExpDesign.x_values
 
         # Compute the moments with the PCEModel object
         self.pce_means, self.pce_stds = self.compute_pce_moments()
@@ -170,7 +173,7 @@ class PostProcessing:
 
         """
         MetaModel = self.MetaModel
-        Model = MetaModel.ModelObj
+        Model = self.ModelObj
 
         if samples is None:
             self.n_samples = n_samples
@@ -179,7 +182,7 @@ class PostProcessing:
             self.n_samples = samples.shape[0]
 
         # Extract x_values
-        x_values = MetaModel.ExpDesign.x_values
+        x_values = self.engine.ExpDesign.x_values
 
         if model_out_dict is not None:
             self.model_out_dict = model_out_dict
@@ -229,7 +232,7 @@ class PostProcessing:
 
         """
         MetaModel = self.MetaModel
-        Model = MetaModel.ModelObj
+        Model = self.ModelObj
 
         # Set the number of samples
         if n_samples:
@@ -237,8 +240,8 @@ class PostProcessing:
         elif samples is not None:
             self.n_samples = samples.shape[0]
         else:
-            raise Exception("Please provide either samples or pass number of "
-                            "samples!")
+            raise Exception("Please provide either samples or pass the number"
+                            " of samples!")
 
         # Generate random samples if necessary
         Samples = self._get_sample() if samples is None else samples
@@ -291,9 +294,10 @@ class PostProcessing:
         None.
 
         """
+        engine = self.engine
         PCEModel = self.MetaModel
-        n_init_samples = PCEModel.ExpDesign.n_init_samples
-        n_total_samples = PCEModel.ExpDesign.X.shape[0]
+        n_init_samples = engine.ExpDesign.n_init_samples
+        n_total_samples = engine.ExpDesign.X.shape[0]
 
         newpath = f'Outputs_PostProcessing_{self.name}/seq_design_diagnostics/'
         if not os.path.exists(newpath):
@@ -301,9 +305,9 @@ class PostProcessing:
 
         plotList = ['Modified LOO error', 'Validation error', 'KLD', 'BME',
                     'RMSEMean', 'RMSEStd', 'Hellinger distance']
-        seqList = [PCEModel.SeqModifiedLOO, PCEModel.seqValidError,
-                   PCEModel.SeqKLD, PCEModel.SeqBME, PCEModel.seqRMSEMean,
-                   PCEModel.seqRMSEStd, PCEModel.SeqDistHellinger]
+        seqList = [engine.SeqModifiedLOO, engine.seqValidError,
+                   engine.SeqKLD, engine.SeqBME, engine.seqRMSEMean,
+                   engine.seqRMSEStd, engine.SeqDistHellinger]
 
         markers = ('x', 'o', 'd', '*', '+')
         colors = ('k', 'darkgreen', 'b', 'navy', 'darkred')
@@ -323,14 +327,14 @@ class PostProcessing:
                 # Extract the values from dict
                 sorted_seq_opt = {}
                 # Number of replications
-                n_reps = PCEModel.ExpDesign.n_replication
+                n_reps = engine.ExpDesign.n_replication
 
                 # Get the list of utility function names
                 # Handle if only one UtilityFunction is provided
-                if not isinstance(PCEModel.ExpDesign.util_func, list):
-                    util_funcs = [PCEModel.ExpDesign.util_func]
+                if not isinstance(engine.ExpDesign.util_func, list):
+                    util_funcs = [engine.ExpDesign.util_func]
                 else:
-                    util_funcs = PCEModel.ExpDesign.util_func
+                    util_funcs = engine.ExpDesign.util_func
 
                 for util in util_funcs:
                     sortedSeq = {}
@@ -359,8 +363,8 @@ class PostProcessing:
                     for patch in bp['boxes']:
                         patch.set(facecolor=fill_color[idx])
 
-                if PCEModel.ExpDesign.n_new_samples != 1:
-                    step1 = PCEModel.ExpDesign.n_new_samples
+                if engine.ExpDesign.n_new_samples != 1:
+                    step1 = engine.ExpDesign.n_new_samples
                     step2 = 1
                 else:
                     step1 = 5
@@ -440,8 +444,8 @@ class PostProcessing:
             else:
                 for idx, name in enumerate(name_util):
                     seq_values = seq_dict[name]
-                    if PCEModel.ExpDesign.n_new_samples != 1:
-                        step = PCEModel.ExpDesign.n_new_samples
+                    if engine.ExpDesign.n_new_samples != 1:
+                        step = engine.ExpDesign.n_new_samples
                     else:
                         step = 1
                     x_idx = np.arange(n_init_samples, n_total_samples+1, step)
@@ -570,7 +574,7 @@ class PostProcessing:
 
             sobol_cell_, total_sobol_ = {}, {}
 
-            for output in PCEModel.ModelObj.Output.names:
+            for output in self.ModelObj.Output.names:
 
                 n_meas_points = len(coeffs_dict[f'b_{b_i+1}'][output])
 
@@ -671,7 +675,7 @@ class PostProcessing:
 
                 # Compute the sobol indices according to Ref. 2
                 if PCEModel.dim_red_method.lower() == 'pca':
-                    n_c_points = PCEModel.ExpDesign.Y[output].shape[1]
+                    n_c_points = self.engine.ExpDesign.Y[output].shape[1]
                     PCA = PCEModel.pca[f'b_{b_i+1}'][output]
                     compPCA = PCA.components_
                     nComp = compPCA.shape[0]
@@ -689,7 +693,7 @@ class PostProcessing:
 
                             for tIdx in range(n_c_points):
                                 var_Y_t = np.var(
-                                    PCEModel.ExpDesign.Y[output][:, tIdx])
+                                    self.engine.ExpDesign.Y[output][:, tIdx])
                                 if var_Y_t == 0.0:
                                     term1, term2 = 0.0, 0.0
                                 else:
@@ -718,7 +722,7 @@ class PostProcessing:
                         S_Z_i = total_sobol_array[ParIdx]
 
                         for tIdx in range(n_c_points):
-                            var_Y_t = np.var(PCEModel.ExpDesign.Y[output][:, tIdx])
+                            var_Y_t = np.var(self.engine.ExpDesign.Y[output][:, tIdx])
                             if var_Y_t == 0.0:
                                 term1, term2 = 0.0, 0.0
                             else:
@@ -758,12 +762,12 @@ class PostProcessing:
                 total_sobol_all[k][i] = v
 
         self.total_sobol = {}
-        for output in PCEModel.ModelObj.Output.names:
+        for output in self.ModelObj.Output.names:
             self.total_sobol[output] = np.mean(total_sobol_all[output], axis=0)
 
         # ---------------- Plot -----------------------
-        par_names = PCEModel.ExpDesign.par_names
-        x_values_orig = PCEModel.ExpDesign.x_values
+        par_names = self.engine.ExpDesign.par_names
+        x_values_orig = self.engine.ExpDesign.x_values
 
         newpath = (f'Outputs_PostProcessing_{self.name}/')
         if not os.path.exists(newpath):
@@ -771,7 +775,7 @@ class PostProcessing:
 
         fig = plt.figure()
 
-        for outIdx, output in enumerate(PCEModel.ModelObj.Output.names):
+        for outIdx, output in enumerate(self.ModelObj.Output.names):
 
             # Extract total Sobol indices
             total_sobol = self.total_sobol[output]
@@ -873,7 +877,7 @@ class PostProcessing:
             # ------ Residuals vs. predicting variables ------
             # Check the assumptions of linearity and independence
             fig1 = plt.figure()
-            for i, par in enumerate(MetaModel.ExpDesign.par_names):
+            for i, par in enumerate(self.engine.ExpDesign.par_names):
                 plt.title(f"{key}: Residuals vs. {par}")
                 plt.scatter(
                     x=samples[:, i], y=residuals, color='blue', edgecolor='k')
@@ -922,7 +926,7 @@ class PostProcessing:
             ax = plt.gca()
             _, p = stats.shapiro(residuals)
             if p < 0.01:
-                annText = "The residuals seem to come from Gaussian process."
+                annText = "The residuals seem to come from a Gaussian Process."
             else:
                 annText = "The normality assumption may not hold."
             at = AnchoredText(annText, prop=dict(size=30), frameon=True,
@@ -961,7 +965,7 @@ class PostProcessing:
         self.n_samples = 1000
 
         PCEModel = self.MetaModel
-        Model = self.MetaModel.ModelObj
+        Model = self.ModelObj
         n_samples = self.n_samples
 
         # Create 3D-Grid
@@ -1063,7 +1067,7 @@ class PostProcessing:
         """
 
         MetaModel = self.MetaModel
-        outputs = MetaModel.ModelObj.Output.names
+        outputs = self.ModelObj.Output.names
         pce_means_b = {}
         pce_stds_b = {}
 
@@ -1149,8 +1153,7 @@ class PostProcessing:
         """
         if n_samples is None:
             n_samples = self.n_samples
-        MetaModel = self.MetaModel
-        self.samples = MetaModel.ExpDesign.generate_samples(
+        self.samples = self.ExpDesign.generate_samples(
             n_samples,
             sampling_method='random')
         return self.samples
@@ -1174,7 +1177,7 @@ class PostProcessing:
             Dictionary of results.
 
         """
-        Model = self.MetaModel.ModelObj
+        Model = self.ModelObj
 
         if samples is None:
             samples = self._get_sample()
@@ -1274,7 +1277,7 @@ class PostProcessing:
         None.
 
         """
-        Model = self.MetaModel.ModelObj
+        Model = self.ModelObj
 
         newpath = f'Outputs_PostProcessing_{self.name}/'
         if not os.path.exists(newpath):
diff --git a/src/bayesvalidrox/pylink/pylink.py b/src/bayesvalidrox/pylink/pylink.py
index 7af4a14b8f8acb62c21862d5df4a527dc7fe57b9..637f42317e6f97815e51ce0b331b61c03f26a85b 100644
--- a/src/bayesvalidrox/pylink/pylink.py
+++ b/src/bayesvalidrox/pylink/pylink.py
@@ -1,5 +1,9 @@
 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
+"""
+Calls to the model and evaluations
+"""
+
 from dataclasses import dataclass
 
 import os
@@ -13,6 +17,45 @@ import multiprocessing
 from functools import partial
 import tqdm
 
+#from multiprocessing import get_context
+from multiprocess import get_context
+
+
+
+def within_range(out, minout, maxout):
+    """
+    Checks if all the values in out lie between minout and maxout
+
+    Parameters
+    ----------
+    out : array or list
+        Data to check against range
+    minout : int
+        Lower bound of the range
+    maxout : int
+        Upper bound of the range
+
+    Returns
+    -------
+    inside : bool
+        True if all values in out are in the specified range
+
+    """
+    try:
+        out = np.array(out)
+    except:
+        raise AttributeError('The given values should be a 1D array, but are not')
+    if out.ndim != 1:
+            raise AttributeError('The given values should be a 1D array, but are not')
+        
+    if minout > maxout:
+        raise ValueError('The lower and upper bounds do not form a valid range, they might be switched')
+    
+    inside = False
+    if (out > minout).all() and (out < maxout).all():
+        inside = True
+    return inside
+
 
 class PyLinkForwardModel(object):
     """
@@ -25,7 +68,7 @@ class PyLinkForwardModel(object):
     ----------
     link_type : str
         The type of the wrapper. The default is `'pylink'`. This runs the
-        third-party software or an executable using a sell command with given
+        third-party software or an executable using a shell command with given
         input files.
         Second option is `'function'` which assumed that model can be run using
         a function written separately in a Python script.
@@ -141,18 +184,17 @@ class PyLinkForwardModel(object):
         self.observations_valid = obs_dict_valid
         self.mc_reference = mc_ref_dict
 
-    # -------------------------------------------------------------------------
-    def within_range(self, out, minout, maxout):
-        inside = False
-        if (out > minout).all() and (out < maxout).all():
-            inside = True
-        return inside
-
     # -------------------------------------------------------------------------
     def read_observation(self, case='calib'):
         """
         Reads/prepare the observation/measurement data for
         calibration.
+        
+        Parameters
+        ----------
+        case : str
+            The type of observation to read in. Can be either 'calib',
+            'valid' or 'mc_ref'
 
         Returns
         -------
@@ -160,68 +202,55 @@ class PyLinkForwardModel(object):
             A dataframe with the calibration data.
 
         """
+        # TOOD: check that what is read in/transformed matches the expected form of data/reference
         if case.lower() == 'calib':
             if isinstance(self.observations, dict) and bool(self.observations):
-                obs = pd.DataFrame.from_dict(self.observations)
+                self.observations = pd.DataFrame.from_dict(self.observations)
             elif self.meas_file is not None:
                 file_path = os.path.join(os.getcwd(), self.meas_file)
-                obs = pd.read_csv(file_path, delimiter=',')
+                self.observations = pd.read_csv(file_path, delimiter=',')
             elif isinstance(self.observations, pd.DataFrame):
-                obs = self.observations
+                self.observations = self.observations
             else:
                 raise Exception("Please provide the observation data as a "
                                 "dictionary via observations attribute or pass"
                                 " the csv-file path to MeasurementFile "
                                 "attribute")
+            # Compute the number of observation
+            self.n_obs = self.observations[self.Output.names].notnull().sum().values.sum()
+            return self.observations
+            
         elif case.lower() == 'valid':
             if isinstance(self.observations_valid, dict) and \
               bool(self.observations_valid):
-                obs = pd.DataFrame.from_dict(self.observations_valid)
+                self.observations_valid = pd.DataFrame.from_dict(self.observations_valid)
             elif self.meas_file_valid is not None:
                 file_path = os.path.join(os.getcwd(), self.meas_file_valid)
-                obs = pd.read_csv(file_path, delimiter=',')
+                self.observations_valid = pd.read_csv(file_path, delimiter=',')
             elif isinstance(self.observations_valid, pd.DataFrame):
-                obs = self.observations_valid
+                self.observations_valid = self.observations_valid
             else:
                 raise Exception("Please provide the observation data as a "
-                                "dictionary via Observations attribute or pass"
+                                "dictionary via observations_valid attribute or pass"
                                 " the csv-file path to MeasurementFile "
                                 "attribute")
-
-        # Compute the number of observation
-        n_obs = obs[self.Output.names].notnull().sum().values.sum()
-
-        if case.lower() == 'calib':
-            self.observations = obs
-            self.n_obs = n_obs
-            return self.observations
-        elif case.lower() == 'valid':
-            self.observations_valid = obs
-            self.n_obs_valid = n_obs
+            # Compute the number of observation
+            self.n_obs_valid = self.observations_valid[self.Output.names].notnull().sum().values.sum()
             return self.observations_valid
-
-    # -------------------------------------------------------------------------
-    def read_mc_reference(self):
-        """
-        Is used, if a Monte-Carlo reference is available for
-        further in-depth post-processing after meta-model training.
-
-        Returns
-        -------
-        None
-
-        """
-        if self.mc_ref_file is None and \
-           isinstance(self.mc_reference, pd.DataFrame):
+                
+        elif case.lower() == 'mc_ref':
+            if self.mc_ref_file is None and \
+               isinstance(self.mc_reference, pd.DataFrame):
+                return self.mc_reference
+            elif isinstance(self.mc_reference, dict) and bool(self.mc_reference):
+                self.mc_reference = pd.DataFrame.from_dict(self.mc_reference)
+            elif self.mc_ref_file is not None:
+                file_path = os.path.join(os.getcwd(), self.mc_ref_file)
+                self.mc_reference = pd.read_csv(file_path, delimiter=',')
+            else:
+                self.mc_reference = None
             return self.mc_reference
-        elif isinstance(self.mc_reference, dict) and bool(self.mc_reference):
-            self.mc_reference = pd.DataFrame.from_dict(self.mc_reference)
-        elif self.mc_ref_file is not None:
-            file_path = os.path.join(os.getcwd(), self.mc_ref_file)
-            self.mc_reference = pd.read_csv(file_path, delimiter=',')
-        else:
-            self.mc_reference = None
-        return self.mc_reference
+
 
     # -------------------------------------------------------------------------
     def read_output(self):
@@ -316,9 +345,8 @@ class PyLinkForwardModel(object):
                 Process = os.system(f'./../{command}')
                 if Process != 0:
                     print('\nMessage 1:')
-                    print(f'\tIf value of \'{Process}\' is a non-zero value, '
-                          'then compilation problems \n' % Process)
-
+                    print(f'\tIf the value of \'{Process}\' is a non-zero value'
+                          ', then compilation problems occur \n' % Process)          
         os.chdir("..")
 
         # Read the output
@@ -368,6 +396,7 @@ class PyLinkForwardModel(object):
             os.makedirs(newpath)
 
         # Copy the necessary files to the directories
+        print(self.input_template)
         for in_temp in self.input_template:
             # Input file(s) of the model
             shutil.copy2(in_temp, newpath)
@@ -399,6 +428,7 @@ class PyLinkForwardModel(object):
             self.exe_path = os.getcwd()
 
         # Run the model
+        print(new_command)
         output = self.run_command(new_command, self.Output.file_names)
 
         return output
@@ -438,6 +468,16 @@ class PyLinkForwardModel(object):
         # Initilization
         n_c_points = len(c_points)
         all_outputs = {}
+        
+        # If the link type is UM-Bridge, then no parallel needs to be started from here
+        if self.link_type.lower() == 'umbridge':
+            import umbridge 
+            if not hasattr(self, 'x_values'):
+                raise AttributeError('For model type `umbridge` the attribute `x_values` needs to be set for the model!')
+            # Init model
+            #model = umbridge.HTTPModel('http://localhost:4242', 'forward')
+            self.model = umbridge.HTTPModel(self.host, 'forward') # TODO: is this always forward?
+            Function = self.uMBridge_model
 
         # Extract the function
         if self.link_type.lower() == 'function':
@@ -454,17 +494,45 @@ class PyLinkForwardModel(object):
 
         # Run forward model
         if n_c_points == 1 or not mp:
-            if self.link_type.lower() == 'function':
-                group_results = Function(c_points, **self.func_args)
+            if n_c_points== 1:
+                if self.link_type.lower() == 'function' or self.link_type.lower() == 'umbridge':
+                    group_results = Function(c_points, **self.func_args)
+                else:
+                    group_results = self.run_forwardmodel(
+                        (c_points[0], prevRun_No, key_str)
+                        )
             else:
-                group_results = self.run_forwardmodel(
-                    (c_points[0], prevRun_No, key_str)
-                    )
+                for i in range(c_points.shape[0]):
+                    if i == 0:
+                        if self.link_type.lower() == 'function' or self.link_type.lower() == 'umbridge':
+                            group_results = Function(np.array([c_points[0]]), **self.func_args)
+                        else:
+                            group_results = self.run_forwardmodel(
+                                (c_points[0], prevRun_No, key_str)
+                                )
+                        for key in group_results:
+                            if key != 'x_values':
+                                group_results[key] = [group_results[key]]
+                    else: 
+                        if self.link_type.lower() == 'function' or self.link_type.lower() == 'umbridge':
+                            res = Function(np.array([c_points[i]]), **self.func_args)
+                        else:
+                            res = self.run_forwardmodel(
+                                (c_points[i], prevRun_No, key_str)
+                                )
+                        for key in res:
+                            if key != 'x_values':
+                                group_results[key].append(res[key])
+        
+                for key in group_results:
+                    if key != 'x_values':
+                        group_results[key]= np.array(group_results[key])
 
         elif self.multi_process or mp:
-            with multiprocessing.Pool(n_cpus) as p:
-
-                if self.link_type.lower() == 'function':
+            with get_context('spawn').Pool(n_cpus) as p:
+            #with multiprocessing.Pool(n_cpus) as p:
+                
+                if self.link_type.lower() == 'function' or self.link_type.lower() == 'umbridge':
                     imap_var = p.imap(partial(Function, **self.func_args),
                                       c_points[:, np.newaxis])
                 else:
@@ -499,7 +567,7 @@ class PyLinkForwardModel(object):
         if len(NaN_idx) != 0:
             print('\n')
             print('*'*20)
-            print("\nThe following parametersets have been removed:\n",
+            print("\nThe following parameter sets have been removed:\n",
                   c_points[NaN_idx])
             print("\n")
             print('*'*20)
@@ -516,10 +584,85 @@ class PyLinkForwardModel(object):
             )
 
         return all_outputs, new_c_points
+    
+    def uMBridge_model(self, params):
+        """
+        Function that calls a UMBridge model and transforms its output into the 
+        shape expected for the surrogate.
+    
+        Parameters
+        ----------
+        params : 2d np.array, shape (#samples, #params)
+            The parameter values for which the model is run.
+    
+        Returns
+        -------
+        dict
+            The transformed model outputs.
+    
+        """
+        # Run the model
+        #out = np.array(model(np.ndarray.tolist(params), {'level':0}))
+        out = np.array(self.model(np.ndarray.tolist(params), self.modelparams))
+        
+        # Sort into dict
+        out_dict = {}
+        cnt = 0
+        for key in self.Output.names:
+        #    # If needed resort into single-value outputs
+        #    if self.output_type == 'single-valued':
+        #        if out.shape[1]>1:  # TODO: this doesn't fully seem correct??
+        #            for i in range(out[:,key]): # TODO: this doesn't fully seem correct??
+        #                new_key = key+str(i)
+        #                if new_key not in self.Output.names:
+        #                    self.Output.names.append(new_key)
+        #                    if i == 0:
+        #                        self.Ouptut.names.remove(key)
+        #                out_dict[new_key] = out[:,cnt,i] # TODO: not sure about this, need to test
+        #        else: 
+        #            out_dict[key] = out[:,cnt]
+        #            
+        #        
+        #    else:
+            out_dict[key] = out[:,cnt]
+            cnt += 1
+        
+            
+        ## TODO: how to deal with the x-values?
+        #if self.output_type == 'single-valued':
+        #    out_dict['x_values'] = [0]
+        #else:
+        #    out_dict['x_values'] = np.arange(0,out[:,0].shape[0],1)
+        out_dict['x_values'] = self.x_values
+        
+        #return {'T1':out[:,0], 'T2':out[:,1], 'H1':out[:,2], 'H2':out[:,3], 
+       #         'x_values':[0]}
+        return out_dict
 
     # -------------------------------------------------------------------------
     def _store_simulations(self, c_points, all_outputs, NaN_idx, key_str,
                            prevRun_No):
+        """
+        
+
+        Parameters
+        ----------
+        c_points : TYPE
+            DESCRIPTION.
+        all_outputs : TYPE
+            DESCRIPTION.
+        NaN_idx : TYPE
+            DESCRIPTION.
+        key_str : TYPE
+            DESCRIPTION.
+        prevRun_No : TYPE
+            DESCRIPTION.
+
+        Returns
+        -------
+        None.
+
+        """
 
         # Create hdf5 metadata
         if key_str == '':
@@ -542,7 +685,6 @@ class PyLinkForwardModel(object):
 
         # ---------- Save outputs ----------
         for varIdx, var in enumerate(self.Output.names):
-
             if not hdf5_exist:
                 grpY = file.create_group("EDY/"+var)
             else:
@@ -656,6 +798,6 @@ class PyLinkForwardModel(object):
                 shutil.rmtree(path)
 
             print("\n")
-            print(f'{dir_name}.zip file has been created successfully!\n')
+            print(f'{dir_name}.zip has been created successfully!\n')
 
         return
diff --git a/src/bayesvalidrox/surrogate_models/__init__.py b/src/bayesvalidrox/surrogate_models/__init__.py
index 70bfb20f570464c2907a0a4128f4ed99b6c13736..6d8ce9f1c58fa154f2af63f0fb5a44097695df33 100644
--- a/src/bayesvalidrox/surrogate_models/__init__.py
+++ b/src/bayesvalidrox/surrogate_models/__init__.py
@@ -1,7 +1,12 @@
 # -*- coding: utf-8 -*-
-
+from .engine import Engine
+from .exp_designs import ExpDesigns
+from .input_space import InputSpace
 from .surrogate_models import MetaModel
 
 __all__ = [
-    "MetaModel"
+    "MetaModel",
+    "InputSpace",
+    "ExpDesigns",
+    "Engine"
     ]
diff --git a/src/bayesvalidrox/surrogate_models/apoly_construction.py b/src/bayesvalidrox/surrogate_models/apoly_construction.py
index a7914c7deac51c2180aa6858207ccf0bac5c1f02..40830fe8aaa94248df4828c0c49bd4d23e755abd 100644
--- a/src/bayesvalidrox/surrogate_models/apoly_construction.py
+++ b/src/bayesvalidrox/surrogate_models/apoly_construction.py
@@ -32,6 +32,8 @@ def apoly_construction(Data, degree):
         The coefficients of the univariate orthonormal polynomials.
 
     """
+    if Data.ndim !=1:
+        raise AttributeError('Data should be a 1D array')
 
     # Initialization
     dd = degree + 1
diff --git a/src/bayesvalidrox/surrogate_models/bayes_linear.py b/src/bayesvalidrox/surrogate_models/bayes_linear.py
index a7d6b5929a83fc89d15d7ab8f369187d0542923c..3bd827ac0ecc5b3a38116b21767e8a8799593b24 100644
--- a/src/bayesvalidrox/surrogate_models/bayes_linear.py
+++ b/src/bayesvalidrox/surrogate_models/bayes_linear.py
@@ -32,7 +32,7 @@ class BayesianLinearRegression(RegressorMixin,LinearModel):
         
     def _center_data(self,X,y):
         ''' Centers data'''
-        X     = as_float_array(X,self.copy_X)
+        X     = as_float_array(X,copy = self.copy_X)
         # normalisation should be done in preprocessing!
         X_std = np.ones(X.shape[1], dtype = X.dtype)
         if self.fit_intercept:
@@ -138,7 +138,7 @@ class EBLinearRegression(BayesianLinearRegression):
                  normalize=True, perfect_fit_tol = 1e-6, alpha = 1, copy_X = True, verbose = False):
         super(EBLinearRegression,self).__init__(n_iter, tol, fit_intercept, copy_X, verbose)
         if optimizer not in ['em','fp']:
-            raise ValueError('Optimizer can be either "em" of "fp" ')
+            raise ValueError('Optimizer can be either "em" or "fp" ')
         self.optimizer     =  optimizer 
         self.alpha         =  alpha 
         self.perfect_fit   =  False
@@ -156,7 +156,7 @@ class EBLinearRegression(BayesianLinearRegression):
         
     def _center_data(self,X,y):
         ''' Centers data'''
-        X     = as_float_array(X,self.copy_X)
+        X     = as_float_array(X,copy = self.copy_X)
         # normalisation should be done in preprocessing!
         X_std = np.ones(X.shape[1], dtype = X.dtype)
         if self.fit_intercept:
diff --git a/src/bayesvalidrox/surrogate_models/desktop.ini b/src/bayesvalidrox/surrogate_models/desktop.ini
new file mode 100644
index 0000000000000000000000000000000000000000..632de13ae6b61cecf0d9fdbf9c97cfb16bfb51a4
--- /dev/null
+++ b/src/bayesvalidrox/surrogate_models/desktop.ini
@@ -0,0 +1,2 @@
+[LocalizedFileNames]
+exploration.py=@exploration.py,0
diff --git a/src/bayesvalidrox/surrogate_models/meta_model_engine.py b/src/bayesvalidrox/surrogate_models/engine.py
similarity index 63%
rename from src/bayesvalidrox/surrogate_models/meta_model_engine.py
rename to src/bayesvalidrox/surrogate_models/engine.py
index 2df2dee5390ae4e6dc7eb88343c2469dbd88aad6..27c117a790d588c3216fe17540419480d15e9790 100644
--- a/src/bayesvalidrox/surrogate_models/meta_model_engine.py
+++ b/src/bayesvalidrox/surrogate_models/engine.py
@@ -1,66 +1,303 @@
-#!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 """
-Created on Fri Jan 28 09:21:18 2022
+Engine to train the surrogate
 
-@author: farid
 """
+from copy import deepcopy, copy
+import joblib
+from joblib import Parallel, delayed
+import matplotlib.pyplot as plt
+import multiprocessing
 import numpy as np
+import os
+import pandas as pd
+import pathlib
+import scipy.optimize as opt
 from scipy import stats, signal, linalg, sparse
 from scipy.spatial import distance
-from copy import deepcopy, copy
-from tqdm import tqdm
-import scipy.optimize as opt
 from sklearn.metrics import mean_squared_error
-import multiprocessing
-import matplotlib.pyplot as plt
-import sys
-import os
-import gc
 import seaborn as sns
-from joblib import Parallel, delayed
+import sys
+from tqdm import tqdm
+
+from bayesvalidrox.bayes_inference.bayes_inference import BayesInference
+from bayesvalidrox.bayes_inference.discrepancy import Discrepancy
 from .exploration import Exploration
 
 
-class MetaModelEngine():
-    """ Sequential experimental design
-    This class provieds method for trainig the meta-model in an iterative
-    manners.
-    The main method to execute the task is `train_seq_design`, which
-      recieves a model object and returns the trained metamodel.
+def hellinger_distance(P, Q):
     """
+    Hellinger distance between two continuous distributions.
 
-    def __init__(self, meta_model_opts):
-        self.MetaModel = meta_model_opts
+    The maximum distance 1 is achieved when P assigns probability zero to
+    every set to which Q assigns a positive probability, and vice versa.
+    0 (identical) and 1 (maximally different)
 
-    # -------------------------------------------------------------------------
-    def run(self):
-
-        Model = self.MetaModel.ModelObj
-        self.MetaModel.n_params = len(self.MetaModel.input_obj.Marginals)
-        self.MetaModel.ExpDesignFlag = 'normal'
-        # --- Prepare pce degree ---
-        if self.MetaModel.meta_model_type.lower() == 'pce':
-            if type(self.MetaModel.pce_deg) is not np.ndarray:
-                self.MetaModel.pce_deg = np.array(self.MetaModel.pce_deg)
-
-        if self.MetaModel.ExpDesign.method == 'normal':
-            self.MetaModel.ExpDesignFlag = 'normal'
-            self.MetaModel.train_norm_design(verbose=True)
-
-        elif self.MetaModel.ExpDesign.method == 'sequential':
-            self.train_seq_design()
+    Parameters
+    ----------
+    P : array
+        Reference likelihood.
+    Q : array
+        Estimated likelihood.
+
+    Returns
+    -------
+    float
+        Hellinger distance of two distributions.
+
+    """
+    P = np.array(P)
+    Q = np.array(Q)
+
+    mu1 = P.mean()
+    Sigma1 = np.std(P)
+
+    mu2 = Q.mean()
+    Sigma2 = np.std(Q)
+
+    term1 = np.sqrt(2 * Sigma1 * Sigma2 / (Sigma1 ** 2 + Sigma2 ** 2))
+
+    term2 = np.exp(-.25 * (mu1 - mu2) ** 2 / (Sigma1 ** 2 + Sigma2 ** 2))
+
+    H_squared = 1 - term1 * term2
+
+    return np.sqrt(H_squared)
+
+
+def logpdf(x, mean, cov):
+    """
+    Computes the likelihood based on a multivariate normal distribution.
+
+    Parameters
+    ----------
+    x : TYPE
+        DESCRIPTION.
+    mean : array_like
+        Observation data.
+    cov : 2d array
+        Covariance matrix of the distribution.
+
+    Returns
+    -------
+    log_lik : float
+        Log likelihood.
+
+    """
+    n = len(mean)
+    L = linalg.cholesky(cov, lower=True)
+    beta = np.sum(np.log(np.diag(L)))
+    dev = x - mean
+    alpha = dev.dot(linalg.cho_solve((L, True), dev))
+    log_lik = -0.5 * alpha - beta - n / 2. * np.log(2 * np.pi)
+
+    return log_lik
+
+
+def subdomain(Bounds, n_new_samples):
+    """
+    Divides a domain defined by Bounds into subdomains.
+
+    Parameters
+    ----------
+    Bounds : list of tuples
+        List of lower and upper bounds.
+    n_new_samples : int
+        Number of samples to divide the domain for.
+
+    Returns
+    -------
+    Subdomains : List of tuples of tuples
+        Each tuple of tuples divides one set of bounds into n_new_samples parts.
+
+    """
+    n_params = len(Bounds)
+    n_subdomains = n_new_samples + 1
+    LinSpace = np.zeros((n_params, n_subdomains))
+
+    for i in range(n_params):
+        LinSpace[i] = np.linspace(start=Bounds[i][0], stop=Bounds[i][1],
+                                  num=n_subdomains)
+    Subdomains = []
+    for k in range(n_subdomains - 1):
+        mylist = []
+        for i in range(n_params):
+            mylist.append((LinSpace[i, k + 0], LinSpace[i, k + 1]))
+        Subdomains.append(tuple(mylist))
+
+    return Subdomains
+
+
+class Engine:
+
+    def __init__(self, MetaMod, Model, ExpDes):
+        self.MetaModel = MetaMod
+        self.Model = Model
+        self.ExpDesign = ExpDes
+        self.parallel = False
+        self.trained = False
+
+        # Init other parameters
+        self.bound_tuples = None
+        self.errorModel = None
+        self.LCerror = None
+        self.n_obs = None
+        self.observations = None
+        self.out_names = None
+        self.seqMinDist = None
+        self.seqRMSEStd = None
+        self.SeqKLD = None
+        self.SeqDistHellinger = None
+        self.SeqBME = None
+        self.seqValidError = None
+        self.SeqModifiedLOO = None
+        self.valid_likelihoods = None
+        self._y_hat_prev = None
+
+    def start_engine(self) -> None:
+        """
+        Do all the preparations that need to be run before the actual training
+
+        Returns
+        -------
+        None
+
+        """
+        self.out_names = self.Model.Output.names
+        self.MetaModel.out_names = self.out_names
+
+    def train_normal(self, parallel=False, verbose=False, save=False) -> None:
+        """
+        Trains surrogate on static samples only.
+        Samples are taken from the experimental design and the specified 
+        model is run on them.
+        Alternatively the samples can be read in from a provided hdf5 file.
+        
+
+        Returns
+        -------
+        None
+
+        """
+        if self.out_names == 'None':
+            self.start_engine()
+
+        ExpDesign = self.ExpDesign
+        MetaModel = self.MetaModel
+
+        # Read ExpDesign (training and targets) from the provided hdf5
+        if ExpDesign.hdf5_file is not None:
+            # TODO: need to run 'generate_ED' as well after this or not?
+            ExpDesign.read_from_file(self.out_names)
+        else:
+            # Check if an old hdf5 file exists: if yes, rename it
+            hdf5file = f'ExpDesign_{self.Model.name}.hdf5'
+            if os.path.exists(hdf5file):
+                #     os.rename(hdf5file, 'old_'+hdf5file)
+                file = pathlib.Path(hdf5file)
+                file.unlink()
+
+        # Prepare X samples 
+        # For training the surrogate use ExpDesign.X_tr, ExpDesign.X is for the model to run on 
+        ExpDesign.generate_ED(ExpDesign.n_init_samples,
+                              #transform=True,
+                              max_pce_deg=np.max(MetaModel.pce_deg))
+
+        # Run simulations at X 
+        if not hasattr(ExpDesign, 'Y') or ExpDesign.Y is None:
+            print('\n Now the forward model needs to be run!\n')
+            ED_Y, up_ED_X = self.Model.run_model_parallel(ExpDesign.X, mp=parallel)
+            ExpDesign.Y = ED_Y
         else:
-            raise Exception("The method for experimental design you requested"
-                            " has not been implemented yet.")
+            # Check if a dict has been passed.
+            if not type(ExpDesign.Y) is dict:
+                raise Exception('Please provide either a dictionary or a hdf5'
+                                'file to ExpDesign.hdf5_file argument.')
+
+        # Separate output dict and x-values
+        if 'x_values' in ExpDesign.Y:
+            ExpDesign.x_values = ExpDesign.Y['x_values']
+            del ExpDesign.Y['x_values']
+        else:
+            print('No x_values are given, this might lead to issues during PostProcessing')
+
+        # Fit the surrogate
+        MetaModel.fit(ExpDesign.X, ExpDesign.Y, parallel, verbose)
+
+        # Save what there is to save
+        if save:
+            # Save surrogate
+            with open(f'surrogates/surrogate_{self.Model.name}.pk1', 'wb') as output:
+                joblib.dump(MetaModel, output, 2)
+
+            # Zip the model run directories
+            if self.Model.link_type.lower() == 'pylink' and \
+                    self.ExpDesign.sampling_method.lower() != 'user':
+                self.Model.zip_subdirs(self.Model.name, f'{self.Model.name}_')
+
+        # Set that training was done
+        self.trained = True
+
+    def train_sequential(self, parallel=False, verbose=False) -> None:
+        """
+        Train the surrogate in a sequential manner.
+        First build and train evereything on the static samples, then iterate
+        choosing more samples and refitting the surrogate on them.
 
-        # Zip the model run directories
-        if self.MetaModel.ModelObj.link_type.lower() == 'pylink' and\
-           self.MetaModel.ExpDesign.sampling_method.lower() != 'user':
-            Model.zip_subdirs(Model.name, f'{Model.name}_')
+        Returns
+        -------
+        None
+
+        """
+        # self.train_normal(parallel, verbose)
+        self.parallel = parallel
+        self.train_seq_design(parallel, verbose)
 
     # -------------------------------------------------------------------------
-    def train_seq_design(self):
+    def eval_metamodel(self, samples=None, nsamples=None,
+                       sampling_method='random', return_samples=False):
+        """
+        Evaluates metamodel at the requested samples. One can also generate
+        nsamples.
+
+        Parameters
+        ----------
+        samples : array of shape (n_samples, n_params), optional
+            Samples to evaluate metamodel at. The default is None.
+        nsamples : int, optional
+            Number of samples to generate, if no `samples` is provided. The
+            default is None.
+        sampling_method : str, optional
+            Type of sampling, if no `samples` is provided. The default is
+            'random'.
+        return_samples : bool, optional
+            Retun samples, if no `samples` is provided. The default is False.
+
+        Returns
+        -------
+        mean_pred : dict
+            Mean of the predictions.
+        std_pred : dict
+            Standard deviatioon of the predictions.
+        """
+        # Generate or transform (if need be) samples
+        if samples is None:
+            # Generate
+            samples = self.ExpDesign.generate_samples(
+                nsamples,
+                sampling_method
+            )
+
+        # Transformation to other space is to be done in the MetaModel
+        # TODO: sort the transformations better
+        mean_pred, std_pred = self.MetaModel.eval_metamodel(samples)
+
+        if return_samples:
+            return mean_pred, std_pred, samples
+        else:
+            return mean_pred, std_pred
+
+    # -------------------------------------------------------------------------
+    def train_seq_design(self, parallel=False, verbose=False):
         """
         Starts the adaptive sequential design for refining the surrogate model
         by selecting training points in a sequential manner.
@@ -71,62 +308,68 @@ class MetaModelEngine():
             Meta model object.
 
         """
-        Model = self.MetaModel.ModelObj
-        # MetaModel = self.MetaModel
-        self.Model = Model
+        self.parallel = parallel
 
         # Initialization
-        self.MetaModel.SeqModifiedLOO = {}
-        self.MetaModel.seqValidError = {}
-        self.MetaModel.SeqBME = {}
-        self.MetaModel.SeqKLD = {}
-        self.MetaModel.SeqDistHellinger = {}
-        self.MetaModel.seqRMSEMean = {}
-        self.MetaModel.seqRMSEStd = {}
-        self.MetaModel.seqMinDist = []
+        self.SeqModifiedLOO = {}
+        self.seqValidError = {}
+        self.SeqBME = {}
+        self.SeqKLD = {}
+        self.SeqDistHellinger = {}
+        self.seqRMSEMean = {}
+        self.seqRMSEStd = {}
+        self.seqMinDist = []
+
+        if not hasattr(self.MetaModel, 'valid_samples') or self.MetaModel.valid_samples is None:
+            self.ExpDesign.valid_samples = []
+            self.ExpDesign.valid_model_runs = []
+            self.valid_likelihoods = []
+
+        # validError = None
 
         # Determine the metamodel type
         if self.MetaModel.meta_model_type.lower() != 'gpe':
             pce = True
         else:
             pce = False
-        mc_ref = True if bool(Model.mc_reference) else False
+        mc_ref = True if bool(self.Model.mc_reference) else False
         if mc_ref:
-            Model.read_mc_reference()
-
-        if not hasattr(self.MetaModel, 'valid_samples'):
-            self.MetaModel.valid_samples = []
-            self.MetaModel.valid_model_runs = []
-            self.MetaModel.valid_likelihoods = []
+            self.Model.read_observation('mc_ref')
 
         # Get the parameters
-        max_n_samples = self.MetaModel.ExpDesign.n_max_samples
-        mod_LOO_threshold = self.MetaModel.ExpDesign.mod_LOO_threshold
-        n_canddidate = self.MetaModel.ExpDesign.n_canddidate
-        post_snapshot = self.MetaModel.ExpDesign.post_snapshot
-        n_replication = self.MetaModel.ExpDesign.n_replication
-        util_func = self.MetaModel.ExpDesign.util_func
-        output_name = Model.Output.names
-        validError = None
+        max_n_samples = self.ExpDesign.n_max_samples
+        mod_LOO_threshold = self.ExpDesign.mod_LOO_threshold
+        n_canddidate = self.ExpDesign.n_canddidate
+        post_snapshot = self.ExpDesign.post_snapshot
+        n_replication = self.ExpDesign.n_replication
+        util_func = self.ExpDesign.util_func
+        output_name = self.out_names
+
         # Handle if only one UtilityFunctions is provided
         if not isinstance(util_func, list):
-            util_func = [self.MetaModel.ExpDesign.util_func]
+            util_func = [self.ExpDesign.util_func]
 
         # Read observations or MCReference
-        if len(Model.observations) != 0 or Model.meas_file is not None:
-            self.observations = Model.read_observation()
+        # TODO: recheck the logic in this if statement
+        if (len(self.Model.observations) != 0 or self.Model.meas_file is not None) and hasattr(self.MetaModel,
+                                                                                               'Discrepancy'):
+            self.observations = self.Model.read_observation()
             obs_data = self.observations
         else:
             obs_data = []
+            # TODO: TotalSigma2 not defined if not in this else???
+            # TODO: no self.observations if in here
             TotalSigma2 = {}
-        # TODO: ---------- Initial self.MetaModel ----------
-        # self.MetaModel.train_norm_design(parallel=False, verbose=True)
-        self.MetaModel.train_norm_design(verbose=True)
+
+        # ---------- Initial self.MetaModel ----------
+        if not self.trained:
+            self.train_normal(parallel=parallel, verbose=verbose)
+
         initMetaModel = deepcopy(self.MetaModel)
 
         # Validation error if validation set is provided.
-        if self.MetaModel.valid_model_runs:
-            init_rmse, init_valid_error = self.__validError(initMetaModel)
+        if self.ExpDesign.valid_model_runs:
+            init_rmse, init_valid_error = self._validError()  # initMetaModel)
             init_valid_error = list(init_valid_error.values())
         else:
             init_rmse = None
@@ -136,36 +379,39 @@ class MetaModelEngine():
             TotalSigma2 = self.MetaModel.Discrepancy.parameters
 
             # Calculate the initial BME
-            out = self.__BME_Calculator(
-                initMetaModel, obs_data, TotalSigma2, init_rmse)
+            out = self._BME_Calculator(
+                obs_data, TotalSigma2, init_rmse)
             init_BME, init_KLD, init_post, init_likes, init_dist_hellinger = out
             print(f"\nInitial BME: {init_BME:.2f}")
             print(f"Initial KLD: {init_KLD:.2f}")
 
             # Posterior snapshot (initial)
             if post_snapshot:
-                parNames = self.MetaModel.ExpDesign.par_names
+                parNames = self.ExpDesign.par_names
                 print('Posterior snapshot (initial) is being plotted...')
-                self.__posteriorPlot(init_post, parNames, 'SeqPosterior_init')
+                self._posteriorPlot(init_post, parNames, 'SeqPosterior_init')
 
         # Check the convergence of the Mean & Std
         if mc_ref and pce:
-            init_rmse_mean, init_rmse_std = self.__error_Mean_Std()
+            init_rmse_mean, init_rmse_std = self._error_Mean_Std()
             print(f"Initial Mean and Std error: {init_rmse_mean:.2f},"
                   f" {init_rmse_std:.2f}")
 
         # Read the initial experimental design
-        Xinit = initMetaModel.ExpDesign.X
-        init_n_samples = len(initMetaModel.ExpDesign.X)
-        initYprev = initMetaModel.ModelOutputDict
+        Xinit = self.ExpDesign.X
+        init_n_samples = len(self.ExpDesign.X)
+        initYprev = self.ExpDesign.Y  # initMetaModel.ModelOutputDict
+        # self.MetaModel.ModelOutputDict = self.ExpDesign.Y
         initLCerror = initMetaModel.LCerror
         n_itrs = max_n_samples - init_n_samples
 
+        # Get some initial statistics
         # Read the initial ModifiedLOO
+        init_mod_LOO = []
         if pce:
             Scores_all, varExpDesignY = [], []
             for out_name in output_name:
-                y = self.MetaModel.ExpDesign.Y[out_name]
+                y = self.ExpDesign.Y[out_name]
                 Scores_all.append(list(
                     self.MetaModel.score_dict['b_1'][out_name].values()))
                 if self.MetaModel.dim_red_method.lower() == 'pca':
@@ -177,25 +423,22 @@ class MetaModelEngine():
 
             Scores = [item for sublist in Scores_all for item in sublist]
             weights = [item for sublist in varExpDesignY for item in sublist]
-            init_mod_LOO = [np.average([1-score for score in Scores],
+            init_mod_LOO = [np.average([1 - score for score in Scores],
                                        weights=weights)]
 
         prevMetaModel_dict = {}
-        # Replicate the sequential design
+        # prevExpDesign_dict = {}
+        # Can run sequential design multiple times for comparison
         for repIdx in range(n_replication):
-            print(f'\n>>>> Replication: {repIdx+1}<<<<')
-
-            # To avoid changes ub original aPCE object
-            self.MetaModel.ExpDesign.X = Xinit
-            self.MetaModel.ExpDesign.Y = initYprev
-            self.MetaModel.LCerror = initLCerror
+            print(f'\n>>>> Replication: {repIdx + 1}<<<<')
 
+            # util_func: the function to use inside the type of exploitation
             for util_f in util_func:
                 print(f'\n>>>> Utility Function: {util_f} <<<<')
                 # To avoid changes ub original aPCE object
-                self.MetaModel.ExpDesign.X = Xinit
-                self.MetaModel.ExpDesign.Y = initYprev
-                self.MetaModel.LCerror = initLCerror
+                self.ExpDesign.X = Xinit
+                self.ExpDesign.Y = initYprev
+                self.ExpDesign.LCerror = initLCerror
 
                 # Set the experimental design
                 Xprev = Xinit
@@ -203,18 +446,17 @@ class MetaModelEngine():
                 Yprev = initYprev
 
                 Xfull = []
-                Yfull = []
 
                 # Store the initial ModifiedLOO
                 if pce:
                     print("\nInitial ModifiedLOO:", init_mod_LOO)
                     SeqModifiedLOO = np.array(init_mod_LOO)
 
-                if len(self.MetaModel.valid_model_runs) != 0:
+                if len(self.ExpDesign.valid_model_runs) != 0:
                     SeqValidError = np.array(init_valid_error)
 
                 # Check if data is provided
-                if len(obs_data) != 0:
+                if len(obs_data) != 0 and hasattr(self.MetaModel, 'Discrepancy'):
                     SeqBME = np.array([init_BME])
                     SeqKLD = np.array([init_KLD])
                     SeqDistHellinger = np.array([init_dist_hellinger])
@@ -225,44 +467,44 @@ class MetaModelEngine():
 
                 # ------- Start Sequential Experimental Design -------
                 postcnt = 1
-                for itr_no in range(1, n_itrs+1):
+                for itr_no in range(1, n_itrs + 1):
                     print(f'\n>>>> Iteration number {itr_no} <<<<')
 
                     # Save the metamodel prediction before updating
                     prevMetaModel_dict[itr_no] = deepcopy(self.MetaModel)
+                    # prevExpDesign_dict[itr_no] = deepcopy(self.ExpDesign)
                     if itr_no > 1:
-                        pc_model = prevMetaModel_dict[itr_no-1]
+                        pc_model = prevMetaModel_dict[itr_no - 1]
                         self._y_hat_prev, _ = pc_model.eval_metamodel(
                             samples=Xfull[-1].reshape(1, -1))
-                        del prevMetaModel_dict[itr_no-1]
+                        del prevMetaModel_dict[itr_no - 1]
 
                     # Optimal Bayesian Design
-                    self.MetaModel.ExpDesignFlag = 'sequential'
-                    Xnew, updatedPrior = self.opt_SeqDesign(TotalSigma2,
-                                                            n_canddidate,
-                                                            util_f)
+                    # self.MetaModel.ExpDesignFlag = 'sequential'
+                    Xnew, updatedPrior = self.choose_next_sample(TotalSigma2,
+                                                                 n_canddidate,
+                                                                 util_f)
                     S = np.min(distance.cdist(Xinit, Xnew, 'euclidean'))
-                    self.MetaModel.seqMinDist.append(S)
+                    self.seqMinDist.append(S)
                     print(f"\nmin Dist from OldExpDesign: {S:2f}")
                     print("\n")
 
                     # Evaluate the full model response at the new sample
-                    Ynew, _ = Model.run_model_parallel(
+                    Ynew, _ = self.Model.run_model_parallel(
                         Xnew, prevRun_No=total_n_samples
-                        )
+                    )
                     total_n_samples += Xnew.shape[0]
 
                     # ------ Plot the surrogate model vs Origninal Model ------
-                    if hasattr(self.MetaModel, 'adapt_verbose') and \
-                       self.MetaModel.adapt_verbose:
+                    if self.ExpDesign.adapt_verbose:
                         from .adaptPlot import adaptPlot
                         y_hat, std_hat = self.MetaModel.eval_metamodel(
                             samples=Xnew
-                            )
+                        )
                         adaptPlot(
                             self.MetaModel, Ynew, y_hat, std_hat,
                             plotED=False
-                            )
+                        )
 
                     # -------- Retrain the surrogate model -------
                     # Extend new experimental design
@@ -271,18 +513,19 @@ class MetaModelEngine():
                     # Updating experimental design Y
                     for out_name in output_name:
                         Yfull = np.vstack((Yprev[out_name], Ynew[out_name]))
-                        self.MetaModel.ModelOutputDict[out_name] = Yfull
+                        self.ExpDesign.Y[out_name] = Yfull
 
                     # Pass new design to the metamodel object
-                    self.MetaModel.ExpDesign.sampling_method = 'user'
-                    self.MetaModel.ExpDesign.X = Xfull
-                    self.MetaModel.ExpDesign.Y = self.MetaModel.ModelOutputDict
+                    self.ExpDesign.sampling_method = 'user'
+                    self.ExpDesign.X = Xfull
+                    # self.ExpDesign.Y = self.MetaModel.ModelOutputDict
 
                     # Save the Experimental Design for next iteration
                     Xprev = Xfull
-                    Yprev = self.MetaModel.ModelOutputDict
+                    Yprev = self.ExpDesign.Y
 
                     # Pass the new prior as the input
+                    # TODO: another look at this - no difference apc to pce to gpe?
                     self.MetaModel.input_obj.poly_coeffs_flag = False
                     if updatedPrior is not None:
                         self.MetaModel.input_obj.poly_coeffs_flag = True
@@ -294,14 +537,14 @@ class MetaModelEngine():
                             self.MetaModel.input_obj.Marginals[i].raw_data = x
 
                     # Train the surrogate model for new ExpDesign
-                    self.MetaModel.train_norm_design(parallel=False)
+                    self.train_normal(parallel=False)
 
                     # -------- Evaluate the retrained surrogate model -------
                     # Extract Modified LOO from Output
                     if pce:
                         Scores_all, varExpDesignY = [], []
                         for out_name in output_name:
-                            y = self.MetaModel.ExpDesign.Y[out_name]
+                            y = self.ExpDesign.Y[out_name]
                             Scores_all.append(list(
                                 self.MetaModel.score_dict['b_1'][out_name].values()))
                             if self.MetaModel.dim_red_method.lower() == 'pca':
@@ -316,15 +559,15 @@ class MetaModelEngine():
                         weights = [item for sublist in varExpDesignY for item
                                    in sublist]
                         ModifiedLOO = [np.average(
-                            [1-score for score in Scores], weights=weights)]
+                            [1 - score for score in Scores], weights=weights)]
 
                         print('\n')
                         print(f"Updated ModifiedLOO {util_f}:\n", ModifiedLOO)
                         print('\n')
 
                     # Compute the validation error
-                    if self.MetaModel.valid_model_runs:
-                        rmse, validError = self.__validError(self.MetaModel)
+                    if self.ExpDesign.valid_model_runs:
+                        rmse, validError = self._validError()  # self.MetaModel)
                         ValidError = list(validError.values())
                     else:
                         rmse = None
@@ -333,15 +576,14 @@ class MetaModelEngine():
                     if pce:
                         SeqModifiedLOO = np.vstack(
                             (SeqModifiedLOO, ModifiedLOO))
-                        if len(self.MetaModel.valid_model_runs) != 0:
+                        if len(self.ExpDesign.valid_model_runs) != 0:
                             SeqValidError = np.vstack(
                                 (SeqValidError, ValidError))
                     # -------- Caclulation of BME as accuracy metric -------
                     # Check if data is provided
                     if len(obs_data) != 0:
                         # Calculate the initial BME
-                        out = self.__BME_Calculator(self.MetaModel, obs_data,
-                                                    TotalSigma2, rmse)
+                        out = self._BME_Calculator(obs_data, TotalSigma2, rmse)
                         BME, KLD, Posterior, likes, DistHellinger = out
                         print('\n')
                         print(f"Updated BME: {BME:.2f}")
@@ -349,18 +591,18 @@ class MetaModelEngine():
                         print('\n')
 
                         # Plot some snapshots of the posterior
-                        step_snapshot = self.MetaModel.ExpDesign.step_snapshot
+                        step_snapshot = self.ExpDesign.step_snapshot
                         if post_snapshot and postcnt % step_snapshot == 0:
-                            parNames = self.MetaModel.ExpDesign.par_names
+                            parNames = self.ExpDesign.par_names
                             print('Posterior snapshot is being plotted...')
-                            self.__posteriorPlot(Posterior, parNames,
-                                                 f'SeqPosterior_{postcnt}')
+                            self._posteriorPlot(Posterior, parNames,
+                                                f'SeqPosterior_{postcnt}')
                         postcnt += 1
 
                     # Check the convergence of the Mean&Std
                     if mc_ref and pce:
                         print('\n')
-                        RMSE_Mean, RMSE_std = self.__error_Mean_Std()
+                        RMSE_Mean, RMSE_std = self._error_Mean_Std()
                         print(f"Updated Mean and Std error: {RMSE_Mean:.2f}, "
                               f"{RMSE_std:.2f}")
                         print('\n')
@@ -384,26 +626,26 @@ class MetaModelEngine():
                     if len(obs_data) != 0:
                         del out
                     print()
-                    print('-'*50)
+                    print('-' * 50)
                     print()
 
                 # Store updated ModifiedLOO and BME in dictonary
-                strKey = f'{util_f}_rep_{repIdx+1}'
+                strKey = f'{util_f}_rep_{repIdx + 1}'
                 if pce:
-                    self.MetaModel.SeqModifiedLOO[strKey] = SeqModifiedLOO
-                if len(self.MetaModel.valid_model_runs) != 0:
-                    self.MetaModel.seqValidError[strKey] = SeqValidError
+                    self.SeqModifiedLOO[strKey] = SeqModifiedLOO
+                if len(self.ExpDesign.valid_model_runs) != 0:
+                    self.seqValidError[strKey] = SeqValidError
 
                 # Check if data is provided
                 if len(obs_data) != 0:
-                    self.MetaModel.SeqBME[strKey] = SeqBME
-                    self.MetaModel.SeqKLD[strKey] = SeqKLD
+                    self.SeqBME[strKey] = SeqBME
+                    self.SeqKLD[strKey] = SeqKLD
                 if hasattr(self.MetaModel, 'valid_likelihoods') and \
-                   self.MetaModel.valid_likelihoods:
-                    self.MetaModel.SeqDistHellinger[strKey] = SeqDistHellinger
+                        self.valid_likelihoods:
+                    self.SeqDistHellinger[strKey] = SeqDistHellinger
                 if mc_ref and pce:
-                    self.MetaModel.seqRMSEMean[strKey] = seqRMSEMean
-                    self.MetaModel.seqRMSEStd[strKey] = seqRMSEStd
+                    self.seqRMSEMean[strKey] = seqRMSEMean
+                    self.seqRMSEStd[strKey] = seqRMSEStd
 
         # return self.MetaModel
 
@@ -422,7 +664,7 @@ class MetaModelEngine():
             Candidate samples.
         index : int
             Model output index.
-        UtilMethod : string, optional
+        util_func : string, optional
             Exploitation utility function. The default is 'Entropy'.
 
         Returns
@@ -432,18 +674,19 @@ class MetaModelEngine():
 
         """
         MetaModel = self.MetaModel
-        ED_X = MetaModel.ExpDesign.X
-        out_dict_y = MetaModel.ExpDesign.Y
-        out_names = MetaModel.ModelObj.Output.names
+        ED_X = self.ExpDesign.X
+        out_dict_y = self.ExpDesign.Y
+        out_names = self.out_names
 
         # Run the Metamodel for the candidate
         X_can = X_can.reshape(1, -1)
         Y_PC_can, std_PC_can = MetaModel.eval_metamodel(samples=X_can)
 
+        score = None
         if util_func.lower() == 'alm':
             # ----- Entropy/MMSE/active learning MacKay(ALM)  -----
             # Compute perdiction variance of the old model
-            canPredVar = {key: std_PC_can[key]**2 for key in out_names}
+            canPredVar = {key: std_PC_can[key] ** 2 for key in out_names}
 
             varPCE = np.zeros((len(out_names), X_can.shape[0]))
             for KeyIdx, key in enumerate(out_names):
@@ -458,7 +701,7 @@ class MetaModelEngine():
 
             # Compute perdiction error and variance of the old model
             predError = {key: Y_PC_can[key] for key in out_names}
-            canPredVar = {key: std_PC_can[key]**2 for key in out_names}
+            canPredVar = {key: std_PC_can[key] ** 2 for key in out_names}
 
             # Compute perdiction error and variance of the old model
             # Eq (5) from Liu et al.(2018)
@@ -466,10 +709,10 @@ class MetaModelEngine():
             for KeyIdx, key in enumerate(out_names):
                 residual = predError[key] - out_dict_y[key][int(index)]
                 var = canPredVar[key]
-                EIGF_PCE[KeyIdx] = np.max(residual**2 + var, axis=1)
+                EIGF_PCE[KeyIdx] = np.max(residual ** 2 + var, axis=1)
             score = np.max(EIGF_PCE, axis=0)
 
-        return -1 * score   # -1 is for minimization instead of maximization
+        return -1 * score  # -1 is for minimization instead of maximization
 
     # -------------------------------------------------------------------------
     def util_BayesianActiveDesign(self, y_hat, std, sigma2Dict, var='DKL'):
@@ -483,8 +726,8 @@ class MetaModelEngine():
 
         Parameters
         ----------
-        X_can : array of shape (n_samples, n_params)
-            Candidate samples.
+        y_hat : unknown
+        std : unknown
         sigma2Dict : dict
             A dictionary containing the measurement errors (sigma^2).
         var : string, optional
@@ -499,33 +742,39 @@ class MetaModelEngine():
 
         # Get the data
         obs_data = self.observations
-        n_obs = self.Model.n_obs
+        # TODO: this should be optimizable to be calculated explicitly
+        if hasattr(self.Model, 'n_obs'):
+            n_obs = self.Model.n_obs
+        else:
+            n_obs = self.n_obs
         mc_size = 10000
 
         # Sample a distribution for a normal dist
         # with Y_mean_can as the mean and Y_std_can as std.
         Y_MC, std_MC = {}, {}
-        logPriorLikelihoods = np.zeros((mc_size))
+        logPriorLikelihoods = np.zeros(mc_size)
         for key in list(y_hat):
-            cov = np.diag(std[key]**2)
-            rv = stats.multivariate_normal(mean=y_hat[key], cov=cov)
+            cov = np.diag(std[key] ** 2)
+            print(key, y_hat[key], std[key])
+            # TODO: added the allow_singular = True here
+            rv = stats.multivariate_normal(mean=y_hat[key], cov=cov, allow_singular=True)
             Y_MC[key] = rv.rvs(size=mc_size)
             logPriorLikelihoods += rv.logpdf(Y_MC[key])
             std_MC[key] = np.zeros((mc_size, y_hat[key].shape[0]))
 
         #  Likelihood computation (Comparison of data and simulation
         #  results via PCE with candidate design)
-        likelihoods = self.__normpdf(Y_MC, std_MC, obs_data, sigma2Dict)
+        likelihoods = self._normpdf(Y_MC, std_MC, obs_data, sigma2Dict)
 
         # Rejection Step
         # Random numbers between 0 and 1
         unif = np.random.rand(1, mc_size)[0]
 
         # Reject the poorly performed prior
-        accepted = (likelihoods/np.max(likelihoods)) >= unif
+        accepted = (likelihoods / np.max(likelihoods)) >= unif
 
         # Prior-based estimation of BME
-        logBME = np.log(np.nanmean(likelihoods), dtype=np.float128)
+        logBME = np.log(np.nanmean(likelihoods), dtype=np.longdouble)  # float128)
 
         # Posterior-based expectation of likelihoods
         postLikelihoods = likelihoods[accepted]
@@ -537,6 +786,7 @@ class MetaModelEngine():
         # Utility function Eq.2 in Ref. (2)
         # Posterior covariance matrix after observing data y
         # Kullback-Leibler Divergence (Sergey's paper)
+        U_J_d = None
         if var == 'DKL':
 
             # TODO: Calculate the correction factor for BME
@@ -572,15 +822,15 @@ class MetaModelEngine():
             AIC = -2 * maxlogL + 2 * nModelParams
             # 2 * nModelParams * (nModelParams+1) / (n_obs-nModelParams-1)
             penTerm = 0
-            U_J_d = 1*(AIC + penTerm)
+            U_J_d = 1 * (AIC + penTerm)
 
         # Deviance information criterion
         elif var == 'DIC':
             # D_theta_bar = np.mean(-2 * Likelihoods)
             N_star_p = 0.5 * np.var(np.log(likelihoods[likelihoods != 0]))
-            Likelihoods_theta_mean = self.__normpdf(
+            Likelihoods_theta_mean = self._normpdf(
                 y_hat, std, obs_data, sigma2Dict
-                )
+            )
             DIC = -2 * np.log(Likelihoods_theta_mean) + 2 * N_star_p
 
             U_J_d = DIC
@@ -597,129 +847,7 @@ class MetaModelEngine():
         del Y_MC
         del std_MC
 
-        return -1 * U_J_d   # -1 is for minimization instead of maximization
-
-    # -------------------------------------------------------------------------
-    def update_metamodel(self, MetaModel, output, y_hat_can, univ_p_val, index,
-                         new_pca=False):
-        BasisIndices = MetaModel.basis_dict[output]["y_"+str(index+1)]
-        clf_poly = MetaModel.clf_poly[output]["y_"+str(index+1)]
-        Mn = clf_poly.coef_
-        Sn = clf_poly.sigma_
-        beta = clf_poly.alpha_
-        active = clf_poly.active_
-        Psi = self.MetaModel.create_psi(BasisIndices, univ_p_val)
-
-        Sn_new_inv = np.linalg.inv(Sn)
-        Sn_new_inv += beta * np.dot(Psi[:, active].T, Psi[:, active])
-        Sn_new = np.linalg.inv(Sn_new_inv)
-
-        Mn_new = np.dot(Sn_new_inv, Mn[active]).reshape(-1, 1)
-        Mn_new += beta * np.dot(Psi[:, active].T, y_hat_can)
-        Mn_new = np.dot(Sn_new, Mn_new).flatten()
-
-        # Compute the old and new moments of PCEs
-        mean_old = Mn[0]
-        mean_new = Mn_new[0]
-        std_old = np.sqrt(np.sum(np.square(Mn[1:])))
-        std_new = np.sqrt(np.sum(np.square(Mn_new[1:])))
-
-        # Back transformation if PCA is selected.
-        if MetaModel.dim_red_method.lower() == 'pca':
-            old_pca = MetaModel.pca[output]
-            mean_old = old_pca.mean_[index]
-            mean_old += np.sum(mean_old * old_pca.components_[:, index])
-            std_old = np.sqrt(np.sum(std_old**2 *
-                                     old_pca.components_[:, index]**2))
-            mean_new = new_pca.mean_[index]
-            mean_new += np.sum(mean_new * new_pca.components_[:, index])
-            std_new = np.sqrt(np.sum(std_new**2 *
-                                     new_pca.components_[:, index]**2))
-            # print(f"mean_old: {mean_old:.2f} mean_new: {mean_new:.2f}")
-            # print(f"std_old: {std_old:.2f} std_new: {std_new:.2f}")
-        # Store the old and new moments of PCEs
-        results = {
-            'mean_old': mean_old,
-            'mean_new': mean_new,
-            'std_old': std_old,
-            'std_new': std_new
-            }
-        return results
-
-    # -------------------------------------------------------------------------
-    def util_BayesianDesign_old(self, X_can, X_MC, sigma2Dict, var='DKL'):
-        """
-        Computes scores based on Bayesian sequential design criterion (var).
-
-        Parameters
-        ----------
-        X_can : array of shape (n_samples, n_params)
-            Candidate samples.
-        sigma2Dict : dict
-            A dictionary containing the measurement errors (sigma^2).
-        var : string, optional
-            Bayesian design criterion. The default is 'DKL'.
-
-        Returns
-        -------
-        float
-            Score.
-
-        """
-
-        # To avoid changes ub original aPCE object
-        Model = self.Model
-        MetaModel = deepcopy(self.MetaModel)
-        old_EDY = MetaModel.ExpDesign.Y
-
-        # Evaluate the PCE metamodels using the candidate design
-        Y_PC_can, Y_std_can = self.MetaModel.eval_metamodel(
-            samples=np.array([X_can])
-            )
-
-        # Generate y from posterior predictive
-        m_size = 100
-        y_hat_samples = {}
-        for idx, key in enumerate(Model.Output.names):
-            means, stds = Y_PC_can[key][0], Y_std_can[key][0]
-            y_hat_samples[key] = np.random.multivariate_normal(
-                means, np.diag(stds), m_size)
-
-        # Create the SparseBayes-based PCE metamodel:
-        MetaModel.input_obj.poly_coeffs_flag = False
-        univ_p_val = self.MetaModel.univ_basis_vals(X_can)
-        G_n_m_all = np.zeros((m_size, len(Model.Output.names), Model.n_obs))
-
-        for i in range(m_size):
-            for idx, key in enumerate(Model.Output.names):
-                if MetaModel.dim_red_method.lower() == 'pca':
-                    # Equal number of components
-                    new_outputs = np.vstack(
-                        (old_EDY[key], y_hat_samples[key][i])
-                        )
-                    new_pca, _ = MetaModel.pca_transformation(new_outputs)
-                    target = new_pca.transform(
-                        y_hat_samples[key][i].reshape(1, -1)
-                        )[0]
-                else:
-                    new_pca, target = False, y_hat_samples[key][i]
-
-                for j in range(len(target)):
-
-                    # Update surrogate
-                    result = self.update_metamodel(
-                        MetaModel, key, target[j], univ_p_val, j, new_pca)
-
-                    # Compute Expected Information Gain (Eq. 39)
-                    G_n_m = np.log(result['std_old']/result['std_new']) - 1./2
-                    G_n_m += result['std_new']**2 / (2*result['std_old']**2)
-                    G_n_m += (result['mean_new'] - result['mean_old'])**2 /\
-                        (2*result['std_old']**2)
-
-                    G_n_m_all[i, idx, j] = G_n_m
-
-        U_J_d = G_n_m_all.mean(axis=(1, 2)).mean()
-        return -1 * U_J_d
+        return -1 * U_J_d  # -1 is for minimization instead of maximization
 
     # -------------------------------------------------------------------------
     def util_BayesianDesign(self, X_can, X_MC, sigma2Dict, var='DKL'):
@@ -730,6 +858,7 @@ class MetaModelEngine():
         ----------
         X_can : array of shape (n_samples, n_params)
             Candidate samples.
+        X_MC : unknown
         sigma2Dict : dict
             A dictionary containing the measurement errors (sigma^2).
         var : string, optional
@@ -744,7 +873,7 @@ class MetaModelEngine():
 
         # To avoid changes ub original aPCE object
         MetaModel = self.MetaModel
-        out_names = MetaModel.ModelObj.Output.names
+        out_names = self.out_names
         if X_can.ndim == 1:
             X_can = X_can.reshape(1, -1)
 
@@ -754,12 +883,13 @@ class MetaModelEngine():
             Y_MC, Y_MC_std = MetaModel.eval_metamodel(samples=X_MC)
 
         # Old Experimental design
-        oldExpDesignX = MetaModel.ExpDesign.X
-        oldExpDesignY = MetaModel.ExpDesign.Y
+        oldExpDesignX = self.ExpDesign.X
+        oldExpDesignY = self.ExpDesign.Y
 
         # Evaluate the PCE metamodels at that location ???
         Y_PC_can, Y_std_can = MetaModel.eval_metamodel(samples=X_can)
         PCE_Model_can = deepcopy(MetaModel)
+        engine_can = deepcopy(self)
         # Add the candidate to the ExpDesign
         NewExpDesignX = np.vstack((oldExpDesignX, X_can))
 
@@ -767,33 +897,36 @@ class MetaModelEngine():
         for key in oldExpDesignY.keys():
             NewExpDesignY[key] = np.vstack(
                 (oldExpDesignY[key], Y_PC_can[key])
-                )
+            )
 
-        PCE_Model_can.ExpDesign.sampling_method = 'user'
-        PCE_Model_can.ExpDesign.X = NewExpDesignX
-        PCE_Model_can.ModelOutputDict = NewExpDesignY
-        PCE_Model_can.ExpDesign.Y = NewExpDesignY
+        engine_can.ExpDesign.sampling_method = 'user'
+        engine_can.ExpDesign.X = NewExpDesignX
+        # engine_can.ModelOutputDict = NewExpDesignY
+        engine_can.ExpDesign.Y = NewExpDesignY
 
         # Train the model for the observed data using x_can
-        PCE_Model_can.input_obj.poly_coeffs_flag = False
-        PCE_Model_can.train_norm_design(parallel=False)
+        engine_can.MetaModel.input_obj.poly_coeffs_flag = False
+        engine_can.start_engine()
+        engine_can.train_normal(parallel=False)
+        engine_can.MetaModel.fit(NewExpDesignX, NewExpDesignY)
+        #        engine_can.train_norm_design(parallel=False)
 
         # Set the ExpDesign to its original values
-        PCE_Model_can.ExpDesign.X = oldExpDesignX
-        PCE_Model_can.ModelOutputDict = oldExpDesignY
-        PCE_Model_can.ExpDesign.Y = oldExpDesignY
+        engine_can.ExpDesign.X = oldExpDesignX
+        engine_can.ModelOutputDict = oldExpDesignY
+        engine_can.ExpDesign.Y = oldExpDesignY
 
         if var.lower() == 'mi':
-            # Mutual information based on Krause et al
+            # Mutual information based on Krause et al.
             # Adapted from Beck & Guillas (MICE) paper
-            _, std_PC_can = PCE_Model_can.eval_metamodel(samples=X_can)
+            _, std_PC_can = engine_can.MetaModel.eval_metamodel(samples=X_can)
             std_can = {key: std_PC_can[key] for key in out_names}
 
             std_old = {key: Y_std_can[key] for key in out_names}
 
             varPCE = np.zeros((len(out_names)))
             for i, key in enumerate(out_names):
-                varPCE[i] = np.mean(std_old[key]**2/std_can[key]**2)
+                varPCE[i] = np.mean(std_old[key] ** 2 / std_can[key] ** 2)
             score = np.mean(varPCE)
 
             return -1 * score
@@ -804,14 +937,14 @@ class MetaModelEngine():
             # metrics, 51 (2009), pp. 130–145.
 
             # Evaluate the MetaModel at the given samples
-            Y_MC_can, Y_MC_std_can = PCE_Model_can.eval_metamodel(samples=X_MC)
+            Y_MC_can, Y_MC_std_can = engine_can.MetaModel.eval_metamodel(samples=X_MC)
 
             # Compute the score
             score = []
             for i, key in enumerate(out_names):
-                pce_var = Y_MC_std_can[key]**2
-                pce_var_can = Y_MC_std[key]**2
-                score.append(np.mean(pce_var-pce_var_can, axis=0))
+                pce_var = Y_MC_std_can[key] ** 2
+                pce_var_can = Y_MC_std[key] ** 2
+                score.append(np.mean(pce_var - pce_var_can, axis=0))
             score = np.mean(score)
 
             return -1 * score
@@ -821,28 +954,29 @@ class MetaModelEngine():
         MCsize = X_MC.shape[0]
         ESS = 0
 
-        while ((ESS > MCsize) or (ESS < 1)):
+        likelihoods = None
+        while (ESS > MCsize) or (ESS < 1):
 
             # Enriching Monte Carlo samples if need be
             if ESS != 0:
-                X_MC = self.MetaModel.ExpDesign.generate_samples(
+                X_MC = self.ExpDesign.generate_samples(
                     MCsize, 'random'
-                    )
+                )
 
             # Evaluate the MetaModel at the given samples
             Y_MC, std_MC = PCE_Model_can.eval_metamodel(samples=X_MC)
 
             # Likelihood computation (Comparison of data and simulation
             # results via PCE with candidate design)
-            likelihoods = self.__normpdf(
+            likelihoods = self._normpdf(
                 Y_MC, std_MC, self.observations, sigma2Dict
-                )
+            )
 
             # Check the Effective Sample Size (1<ESS<MCsize)
-            ESS = 1 / np.sum(np.square(likelihoods/np.sum(likelihoods)))
+            ESS = 1 / np.sum(np.square(likelihoods / np.sum(likelihoods)))
 
             # Enlarge sample size if it doesn't fulfill the criteria
-            if ((ESS > MCsize) or (ESS < 1)):
+            if (ESS > MCsize) or (ESS < 1):
                 print("--- increasing MC size---")
                 MCsize *= 10
                 ESS = 0
@@ -852,19 +986,20 @@ class MetaModelEngine():
         unif = np.random.rand(1, MCsize)[0]
 
         # Reject the poorly performed prior
-        accepted = (likelihoods/np.max(likelihoods)) >= unif
+        accepted = (likelihoods / np.max(likelihoods)) >= unif
 
         # -------------------- Utility functions --------------------
         # Utility function Eq.2 in Ref. (2)
         # Kullback-Leibler Divergence (Sergey's paper)
+        U_J_d = None
         if var == 'DKL':
 
             # Prior-based estimation of BME
-            logBME = np.log(np.nanmean(likelihoods, dtype=np.float128))
+            logBME = np.log(np.nanmean(likelihoods, dtype=np.longdouble))  # float128))
 
             # Posterior-based expectation of likelihoods
-            postLikelihoods = likelihoods[accepted]
-            postExpLikelihoods = np.mean(np.log(postLikelihoods))
+            # postLikelihoods = likelihoods[accepted]
+            # postExpLikelihoods = np.mean(np.log(postLikelihoods))
 
             # Haun et al implementation
             U_J_d = np.mean(np.log(likelihoods[likelihoods != 0]) - logBME)
@@ -899,6 +1034,8 @@ class MetaModelEngine():
             postExpLikelihoods = np.mean(np.log(postLikelihoods))
 
             # Posterior-based expectation of prior densities
+            logPriorLikelihoods = []
+            logPriorLikelihoods[accepted] = None  # TODO: this is not defined here, just a fix
             postExpPrior = np.mean(logPriorLikelihoods[accepted])
 
             infEntropy = logBME - postExpPrior - postExpLikelihoods
@@ -925,41 +1062,7 @@ class MetaModelEngine():
         del Y_MC
         del std_MC
 
-        return -1 * U_J_d   # -1 is for minimization instead of maximization
-
-    # -------------------------------------------------------------------------
-    def subdomain(self, Bounds, n_new_samples):
-        """
-        Divides a domain defined by Bounds into sub domains.
-
-        Parameters
-        ----------
-        Bounds : list of tuples
-            List of lower and upper bounds.
-        n_new_samples : TYPE
-            DESCRIPTION.
-
-        Returns
-        -------
-        Subdomains : TYPE
-            DESCRIPTION.
-
-        """
-        n_params = self.MetaModel.n_params
-        n_subdomains = n_new_samples + 1
-        LinSpace = np.zeros((n_params, n_subdomains))
-
-        for i in range(n_params):
-            LinSpace[i] = np.linspace(start=Bounds[i][0], stop=Bounds[i][1],
-                                      num=n_subdomains)
-        Subdomains = []
-        for k in range(n_subdomains-1):
-            mylist = []
-            for i in range(n_params):
-                mylist.append((LinSpace[i, k+0], LinSpace[i, k+1]))
-            Subdomains.append(tuple(mylist))
-
-        return Subdomains
+        return -1 * U_J_d  # -1 is for minimization instead of maximization
 
     # -------------------------------------------------------------------------
     def run_util_func(self, method, candidates, index, sigma2Dict=None,
@@ -1002,7 +1105,7 @@ class MetaModelEngine():
 
         elif method.lower() == 'bayesactdesign':
             NCandidate = candidates.shape[0]
-            U_J_d = np.zeros((NCandidate))
+            U_J_d = np.zeros(NCandidate)
             # Evaluate all candidates
             y_can, std_can = self.MetaModel.eval_metamodel(samples=candidates)
             # loop through candidates
@@ -1010,23 +1113,26 @@ class MetaModelEngine():
                                    desc="BAL Design"):
                 y_hat = {key: items[idx] for key, items in y_can.items()}
                 std = {key: items[idx] for key, items in std_can.items()}
+
+                # print(y_hat)
+                # print(std)
                 U_J_d[idx] = self.util_BayesianActiveDesign(
                     y_hat, std, sigma2Dict, var)
 
         elif method.lower() == 'bayesoptdesign':
             NCandidate = candidates.shape[0]
-            U_J_d = np.zeros((NCandidate))
+            U_J_d = np.zeros(NCandidate)
             for idx, X_can in tqdm(enumerate(candidates), ascii=True,
                                    desc="OptBayesianDesign"):
                 U_J_d[idx] = self.util_BayesianDesign(X_can, X_MC, sigma2Dict,
                                                       var)
-        return (index, -1 * U_J_d)
+        return index, -1 * U_J_d
 
     # -------------------------------------------------------------------------
     def dual_annealing(self, method, Bounds, sigma2Dict, var, Run_No,
                        verbose=False):
         """
-        Exploration algorithim to find the optimum parameter space.
+        Exploration algorithm to find the optimum parameter space.
 
         Parameters
         ----------
@@ -1037,6 +1143,7 @@ class MetaModelEngine():
             List of lower and upper boundaries of parameters.
         sigma2Dict : dict
             A dictionary containing the measurement errors (sigma^2).
+        var : unknown
         Run_No : int
             Run number.
         verbose : bool, optional
@@ -1052,28 +1159,29 @@ class MetaModelEngine():
         """
 
         Model = self.Model
-        max_func_itr = self.MetaModel.ExpDesign.max_func_itr
+        max_func_itr = self.ExpDesign.max_func_itr
 
-        if method == 'VarOptDesign':
+        Res_Global = None
+        if method.lower() == 'varoptdesign':
             Res_Global = opt.dual_annealing(self.util_VarBasedDesign,
                                             bounds=Bounds,
                                             args=(Model, var),
                                             maxfun=max_func_itr)
 
-        elif method == 'BayesOptDesign':
+        elif method.lower() == 'bayesoptdesign':
             Res_Global = opt.dual_annealing(self.util_BayesianDesign,
                                             bounds=Bounds,
                                             args=(Model, sigma2Dict, var),
                                             maxfun=max_func_itr)
 
         if verbose:
-            print(f"global minimum: xmin = {Res_Global.x}, "
+            print(f"Global minimum: xmin = {Res_Global.x}, "
                   f"f(xmin) = {Res_Global.fun:.6f}, nfev = {Res_Global.nfev}")
 
-        return (Run_No, Res_Global.x)
+        return Run_No, Res_Global.x
 
     # -------------------------------------------------------------------------
-    def tradoff_weights(self, tradeoff_scheme, old_EDX, old_EDY):
+    def tradeoff_weights(self, tradeoff_scheme, old_EDX, old_EDY):
         """
         Calculates weights for exploration scores based on the requested
         scheme: `None`, `equal`, `epsilon-decreasing` and `adaptive`.
@@ -1081,7 +1189,7 @@ class MetaModelEngine():
         `None`: No exploration.
         `equal`: Same weights for exploration and exploitation scores.
         `epsilon-decreasing`: Start with more exploration and increase the
-            influence of exploitation along the way with a exponential decay
+            influence of exploitation along the way with an exponential decay
             function
         `adaptive`: An adaptive method based on:
             Liu, Haitao, Jianfei Cai, and Yew-Soon Ong. "An adaptive sampling
@@ -1105,6 +1213,8 @@ class MetaModelEngine():
             Exploitation weight.
 
         """
+        exploration_weight = None
+
         if tradeoff_scheme is None:
             exploration_weight = 0
 
@@ -1114,24 +1224,24 @@ class MetaModelEngine():
         elif tradeoff_scheme == 'epsilon-decreasing':
             # epsilon-decreasing scheme
             # Start with more exploration and increase the influence of
-            # exploitation along the way with a exponential decay function
-            initNSamples = self.MetaModel.ExpDesign.n_init_samples
-            n_max_samples = self.MetaModel.ExpDesign.n_max_samples
+            # exploitation along the way with an exponential decay function
+            initNSamples = self.ExpDesign.n_init_samples
+            n_max_samples = self.ExpDesign.n_max_samples
 
-            itrNumber = (self.MetaModel.ExpDesign.X.shape[0] - initNSamples)
-            itrNumber //= self.MetaModel.ExpDesign.n_new_samples
+            itrNumber = (self.ExpDesign.X.shape[0] - initNSamples)
+            itrNumber //= self.ExpDesign.n_new_samples
 
-            tau2 = -(n_max_samples-initNSamples-1) / np.log(1e-8)
-            exploration_weight = signal.exponential(n_max_samples-initNSamples,
+            tau2 = -(n_max_samples - initNSamples - 1) / np.log(1e-8)
+            exploration_weight = signal.exponential(n_max_samples - initNSamples,
                                                     0, tau2, False)[itrNumber]
 
         elif tradeoff_scheme == 'adaptive':
 
             # Extract itrNumber
-            initNSamples = self.MetaModel.ExpDesign.n_init_samples
-            n_max_samples = self.MetaModel.ExpDesign.n_max_samples
-            itrNumber = (self.MetaModel.ExpDesign.X.shape[0] - initNSamples)
-            itrNumber //= self.MetaModel.ExpDesign.n_new_samples
+            initNSamples = self.ExpDesign.n_init_samples
+            # n_max_samples = self.ExpDesign.n_max_samples
+            itrNumber = (self.ExpDesign.X.shape[0] - initNSamples)
+            itrNumber //= self.ExpDesign.n_new_samples
 
             if itrNumber == 0:
                 exploration_weight = 0.5
@@ -1148,7 +1258,7 @@ class MetaModelEngine():
                 pce_y_prev = np.array(list(self._y_hat_prev.values()))[:, 0]
                 mseCVError = mean_squared_error(pce_y_prev, y)
 
-                exploration_weight = min([0.5*mseError/mseCVError, 1])
+                exploration_weight = min([0.5 * mseError / mseCVError, 1])
 
         # Exploitation weight
         exploitation_weight = 1 - exploration_weight
@@ -1156,7 +1266,7 @@ class MetaModelEngine():
         return exploration_weight, exploitation_weight
 
     # -------------------------------------------------------------------------
-    def opt_SeqDesign(self, sigma2, n_candidates=5, var='DKL'):
+    def choose_next_sample(self, sigma2=None, n_candidates=5, var='DKL'):
         """
         Runs optimal sequential design.
 
@@ -1168,7 +1278,7 @@ class MetaModelEngine():
         n_candidates : int, optional
             Number of candidate samples. The default is 5.
         var : string, optional
-            Utility function. The default is None.
+            Utility function. The default is None. # TODO: default is set to DKL, not none
 
         Raises
         ------
@@ -1182,76 +1292,110 @@ class MetaModelEngine():
         """
 
         # Initialization
-        MetaModel = self.MetaModel
-        Bounds = MetaModel.bound_tuples
-        n_new_samples = MetaModel.ExpDesign.n_new_samples
-        explore_method = MetaModel.ExpDesign.explore_method
-        exploit_method = MetaModel.ExpDesign.exploit_method
-        n_cand_groups = MetaModel.ExpDesign.n_cand_groups
-        tradeoff_scheme = MetaModel.ExpDesign.tradeoff_scheme
-
-        old_EDX = MetaModel.ExpDesign.X
-        old_EDY = MetaModel.ExpDesign.Y.copy()
-        ndim = MetaModel.ExpDesign.X.shape[1]
-        OutputNames = MetaModel.ModelObj.Output.names
+        Bounds = self.ExpDesign.bound_tuples
+        n_new_samples = self.ExpDesign.n_new_samples
+        explore_method = self.ExpDesign.explore_method
+        exploit_method = self.ExpDesign.exploit_method
+        n_cand_groups = self.ExpDesign.n_cand_groups
+        tradeoff_scheme = self.ExpDesign.tradeoff_scheme
+
+        old_EDX = self.ExpDesign.X
+        old_EDY = self.ExpDesign.Y.copy()
+        ndim = self.ExpDesign.X.shape[1]
+        OutputNames = self.out_names
 
         # -----------------------------------------
         # ----------- CUSTOMIZED METHODS ----------
         # -----------------------------------------
         # Utility function exploit_method provided by user
         if exploit_method.lower() == 'user':
-
-            Xnew, filteredSamples = MetaModel.ExpDesign.ExploitFunction(self)
+            # TODO: is the exploit_method meant here?
+            if not hasattr(self.ExpDesign, 'ExploitFunction') or self.ExpDesign.ExploitFunction is None:
+                raise AttributeError(
+                    'Function `ExploitFunction` not given to the ExpDesign, thus cannor run user-defined sequential'
+                    'scheme')
+            # TODO: syntax does not fully match the rest - can test this??
+            Xnew, filteredSamples = self.ExpDesign.ExploitFunction(self)
 
             print("\n")
             print("\nXnew:\n", Xnew)
 
             return Xnew, filteredSamples
 
-        # -----------------------------------------
-        # ---------- EXPLORATION METHODS ----------
-        # -----------------------------------------
+        # Dual-Annealing works differently from the rest, so deal with this first
+        # Here exploration and exploitation are performed simulataneously
         if explore_method == 'dual annealing':
             # ------- EXPLORATION: OPTIMIZATION -------
             import time
             start_time = time.time()
 
             # Divide the domain to subdomains
-            args = []
-            subdomains = self.subdomain(Bounds, n_new_samples)
-            for i in range(n_new_samples):
-                args.append((exploit_method, subdomains[i], sigma2, var, i))
+            subdomains = subdomain(Bounds, n_new_samples)
 
             # Multiprocessing
-            pool = multiprocessing.Pool(multiprocessing.cpu_count())
+            if self.parallel:
+                args = []
+                for i in range(n_new_samples):
+                    args.append((exploit_method, subdomains[i], sigma2, var, i))
+                pool = multiprocessing.Pool(multiprocessing.cpu_count())
 
-            # With Pool.starmap_async()
-            results = pool.starmap_async(self.dual_annealing, args).get()
+                # With Pool.starmap_async()
+                results = pool.starmap_async(self.dual_annealing, args).get()
 
-            # Close the pool
-            pool.close()
+                # Close the pool
+                pool.close()
+            # Without multiprocessing
+            else:
+                results = []
+                for i in range(n_new_samples):
+                    results.append(self.dual_annealing(exploit_method, subdomains[i], sigma2, var, i))
 
+            # New sample
             Xnew = np.array([results[i][1] for i in range(n_new_samples)])
-
             print("\nXnew:\n", Xnew)
 
+            # Computational cost
             elapsed_time = time.time() - start_time
             print("\n")
-            print(f"elapsed_time: {round(elapsed_time,2)} sec.")
-            print('-'*20)
+            print(f"Elapsed_time: {round(elapsed_time, 2)} sec.")
+            print('-' * 20)
+
+            return Xnew, None
+
+        # Generate needed Exploration class
+        explore = Exploration(self.ExpDesign, n_candidates)
+        explore.w = 100  # * ndim #500  # TODO: where does this value come from?
+
+        # Select criterion (mc-intersite-proj-th, mc-intersite-proj)
+        explore.mc_criterion = 'mc-intersite-proj'
 
-        elif explore_method == 'LOOCV':
+        # Generate the candidate samples
+        # TODO: here use the sampling method provided by the expdesign?
+        # sampling_method = self.ExpDesign.sampling_method
+
+        # TODO: changed this from 'random' for LOOCV
+        # TODO: these are commented out as they are not used !?
+        # if explore_method == 'LOOCV':
+        # allCandidates = self.ExpDesign.generate_samples(n_candidates,
+        #                                                     sampling_method)
+        # else:
+        #     allCandidates, scoreExploration = explore.get_exploration_samples()
+
+        # -----------------------------------------
+        # ---------- EXPLORATION METHODS ----------
+        # -----------------------------------------
+        if explore_method == 'LOOCV':
             # -----------------------------------------------------------------
             # TODO: LOOCV model construnction based on Feng et al. (2020)
             # 'LOOCV':
             # Initilize the ExploitScore array
 
             # Generate random samples
-            allCandidates = MetaModel.ExpDesign.generate_samples(n_candidates,
-                                                                'random')
+            allCandidates = self.ExpDesign.generate_samples(n_candidates,
+                                                            'random')
 
             # Construct error model based on LCerror
-            errorModel = MetaModel.create_ModelError(old_EDX, self.LCerror)
+            errorModel = self.MetaModel.create_ModelError(old_EDX, self.LCerror)
             self.errorModel.append(copy(errorModel))
 
             # Evaluate the error models for allCandidates
@@ -1266,7 +1410,7 @@ class MetaModelEngine():
         else:
             # ------- EXPLORATION: SPACE-FILLING DESIGN -------
             # Generate candidate samples from Exploration class
-            explore = Exploration(MetaModel, n_candidates)
+            explore = Exploration(self.ExpDesign, n_candidates)
             explore.w = 100  # * ndim #500
             # Select criterion (mc-intersite-proj-th, mc-intersite-proj)
             explore.mc_criterion = 'mc-intersite-proj'
@@ -1276,6 +1420,20 @@ class MetaModelEngine():
             if ndim == 2:
                 def plotter(points, allCandidates, Method,
                             scoreExploration=None):
+                    """
+                    unknown
+
+                    Parameters
+                    ----------
+                    points
+                    allCandidates
+                    Method
+                    scoreExploration
+
+                    Returns
+                    -------
+
+                    """
                     if Method == 'Voronoi':
                         from scipy.spatial import Voronoi, voronoi_plot_2d
                         vor = Voronoi(points)
@@ -1289,7 +1447,7 @@ class MetaModelEngine():
                     ax1.scatter(allCandidates[:, 0], allCandidates[:, 1], s=10,
                                 c='b', marker="o", label='Design candidates')
                     for i in range(points.shape[0]):
-                        txt = 'p'+str(i+1)
+                        txt = 'p' + str(i + 1)
                         ax1.annotate(txt, (points[i, 0], points[i, 1]))
                     if scoreExploration is not None:
                         for i in range(allCandidates.shape[0]):
@@ -1305,44 +1463,44 @@ class MetaModelEngine():
         # -----------------------------------------
         # --------- EXPLOITATION METHODS ----------
         # -----------------------------------------
-        if exploit_method == 'BayesOptDesign' or\
-           exploit_method == 'BayesActDesign':
+        if exploit_method.lower() == 'bayesoptdesign' or \
+                exploit_method.lower() == 'bayesactdesign':
 
             # ------- Calculate Exoploration weight -------
             # Compute exploration weight based on trade off scheme
-            explore_w, exploit_w = self.tradoff_weights(tradeoff_scheme,
-                                                        old_EDX,
-                                                        old_EDY)
+            explore_w, exploit_w = self.tradeoff_weights(tradeoff_scheme,
+                                                         old_EDX,
+                                                         old_EDY)
             print(f"\n Exploration weight={explore_w:0.3f} "
                   f"Exploitation weight={exploit_w:0.3f}\n")
 
             # ------- EXPLOITATION: BayesOptDesign & ActiveLearning -------
             if explore_w != 1.0:
+                # Check if all needed properties are set
+                if not hasattr(self.ExpDesign, 'max_func_itr'):
+                    raise AttributeError('max_func_itr not given to the experimental design')
 
                 # Create a sample pool for rejection sampling
                 MCsize = 15000
-                X_MC = MetaModel.ExpDesign.generate_samples(MCsize, 'random')
-                candidates = MetaModel.ExpDesign.generate_samples(
-                    MetaModel.ExpDesign.max_func_itr, 'latin_hypercube')
+                X_MC = self.ExpDesign.generate_samples(MCsize, 'random')
+                candidates = self.ExpDesign.generate_samples(
+                    n_candidates, 'latin_hypercube')
 
                 # Split the candidates in groups for multiprocessing
                 split_cand = np.array_split(
                     candidates, n_cand_groups, axis=0
-                    )
-
-                results = Parallel(n_jobs=-1, backend='multiprocessing')(
+                )
+                # print(candidates)
+                # print(split_cand)
+                if self.parallel:
+                    results = Parallel(n_jobs=-1, backend='multiprocessing')(
                         delayed(self.run_util_func)(
                             exploit_method, split_cand[i], i, sigma2, var, X_MC)
                         for i in range(n_cand_groups))
-                # out = map(self.run_util_func,
-                #           [exploit_method]*n_cand_groups,
-                #           split_cand,
-                #           range(n_cand_groups),
-                #           [sigma2] * n_cand_groups,
-                #           [var] * n_cand_groups,
-                #           [X_MC] * n_cand_groups
-                #           )
-                # results = list(out)
+                else:
+                    results = []
+                    for i in range(n_cand_groups):
+                        results.append(self.run_util_func(exploit_method, split_cand[i], i, sigma2, var, X_MC))
 
                 # Retrieve the results and append them
                 U_J_d = np.concatenate([results[NofE][1] for NofE in
@@ -1357,18 +1515,6 @@ class MetaModelEngine():
                 if explore_method == 'Voronoi':
                     U_J_d = np.mean(U_J_d.reshape(-1, n_candidates), axis=1)
 
-                # create surrogate model for U_J_d
-                # from sklearn.preprocessing import MinMaxScaler
-                # # Take care of inf entries
-                # good_indices = [i for i, arr in enumerate(U_J_d)
-                #                 if np.isfinite(arr).all()]
-                # scaler = MinMaxScaler()
-                # X_S = scaler.fit_transform(candidates[good_indices])
-                # gp = MetaModel.gaussian_process_emulator(
-                #     X_S, U_J_d[good_indices], autoSelect=False
-                #     )
-                # U_J_d = gp.predict(scaler.transform(allCandidates))
-
                 # Normalize U_J_d
                 norm_U_J_d = U_J_d / np.sum(U_J_d)
             else:
@@ -1376,6 +1522,30 @@ class MetaModelEngine():
 
             # ------- Calculate Total score -------
             # ------- Trade off between EXPLORATION & EXPLOITATION -------
+            # Accumulate the samples
+            finalCandidates = np.concatenate((allCandidates, candidates), axis=0)
+            finalCandidates = np.unique(finalCandidates, axis=0)
+
+            # Calculations take into account both exploration and exploitation 
+            # samples without duplicates
+            totalScore = np.zeros(finalCandidates.shape[0])
+            # self.totalScore = totalScore
+
+            for cand_idx in range(finalCandidates.shape[0]):
+                # find candidate indices
+                idx1 = np.where(allCandidates == finalCandidates[cand_idx])[0]
+                idx2 = np.where(candidates == finalCandidates[cand_idx])[0]
+
+                # exploration 
+                if idx1.shape[0] > 0:
+                    idx1 = idx1[0]
+                    totalScore[cand_idx] += explore_w * scoreExploration[idx1]
+
+                # exploitation
+                if idx2.shape[0] > 0:
+                    idx2 = idx2[0]
+                    totalScore[cand_idx] += exploit_w * norm_U_J_d[idx2]
+
             # Total score
             totalScore = exploit_w * norm_U_J_d
             totalScore += explore_w * scoreExploration
@@ -1405,26 +1575,31 @@ class MetaModelEngine():
                     # select the requested number of samples
                     Xnew[i] = newSamples[np.argmax(maxminScore)]
             else:
-                Xnew = allCandidates[sorted_idxtotalScore[:n_new_samples]]
+                # Changed this from allCandiates to full set of candidates 
+                # TODO: still not changed for e.g. 'Voronoi'
+                Xnew = finalCandidates[sorted_idxtotalScore[:n_new_samples]]
+
 
-        elif exploit_method == 'VarOptDesign':
+        elif exploit_method.lower() == 'varoptdesign':
             # ------- EXPLOITATION: VarOptDesign -------
             UtilMethod = var
 
             # ------- Calculate Exoploration weight -------
             # Compute exploration weight based on trade off scheme
-            explore_w, exploit_w = self.tradoff_weights(tradeoff_scheme,
-                                                        old_EDX,
-                                                        old_EDY)
+            explore_w, exploit_w = self.tradeoff_weights(tradeoff_scheme,
+                                                         old_EDX,
+                                                         old_EDY)
             print(f"\nweightExploration={explore_w:0.3f} "
                   f"weightExploitation={exploit_w:0.3f}")
 
             # Generate candidate samples from Exploration class
             nMeasurement = old_EDY[OutputNames[0]].shape[1]
 
+            # print(UtilMethod)
+
             # Find sensitive region
             if UtilMethod == 'LOOCV':
-                LCerror = MetaModel.LCerror
+                LCerror = self.MetaModel.LCerror
                 allModifiedLOO = np.zeros((len(old_EDX), len(OutputNames),
                                            nMeasurement))
                 for y_idx, y_key in enumerate(OutputNames):
@@ -1433,11 +1608,12 @@ class MetaModelEngine():
                             LCerror[y_key][key])
 
                 ExploitScore = np.max(np.max(allModifiedLOO, axis=1), axis=1)
+            # print(allModifiedLOO.shape)
 
             elif UtilMethod in ['EIGF', 'ALM']:
                 # ----- All other in  ['EIGF', 'ALM'] -----
                 # Initilize the ExploitScore array
-                ExploitScore = np.zeros((len(old_EDX), len(OutputNames)))
+                # ExploitScore = np.zeros((len(old_EDX), len(OutputNames)))
 
                 # Split the candidates in groups for multiprocessing
                 if explore_method != 'Voronoi':
@@ -1466,14 +1642,6 @@ class MetaModelEngine():
 
                 # Close the pool
                 pool.close()
-                # out = map(self.run_util_func,
-                #           [exploit_method]*len(goodSampleIdx),
-                #           split_cand,
-                #           range(len(goodSampleIdx)),
-                #           [sigma2] * len(goodSampleIdx),
-                #           [var] * len(goodSampleIdx)
-                #           )
-                # results = list(out)
 
                 # Retrieve the results and append them
                 if explore_method == 'Voronoi':
@@ -1495,6 +1663,9 @@ class MetaModelEngine():
             # Normalize U_J_d
             ExploitScore = ExploitScore / np.sum(ExploitScore)
             totalScore = exploit_w * ExploitScore
+            # print(totalScore.shape)
+            # print(explore_w)
+            # print(scoreExploration.shape)
             totalScore += explore_w * scoreExploration
 
             temp = totalScore.copy()
@@ -1516,7 +1687,7 @@ class MetaModelEngine():
                     # select the requested number of samples
                     Xnew[i] = newSamples[np.argmax(maxminScore)]
 
-        elif exploit_method == 'alphabetic':
+        elif exploit_method.lower() == 'alphabetic':
             # ------- EXPLOITATION: ALPHABETIC -------
             Xnew = self.util_AlphOptDesign(allCandidates, var)
 
@@ -1538,9 +1709,10 @@ class MetaModelEngine():
             raise NameError('The requested design method is not available.')
 
         print("\n")
-        print("\nRun No. {}:".format(old_EDX.shape[0]+1))
+        print("\nRun No. {}:".format(old_EDX.shape[0] + 1))
         print("Xnew:\n", Xnew)
 
+        # TODO: why does it also return None?
         return Xnew, None
 
     # -------------------------------------------------------------------------
@@ -1555,7 +1727,7 @@ class MetaModelEngine():
 
         Arguments
         ---------
-        NCandidate : int
+        candidates : int?
             Number of candidate points to be searched
 
         var : string
@@ -1566,40 +1738,41 @@ class MetaModelEngine():
         X_new : array of shape (1, n_params)
             The new sampling location in the input space.
         """
-        MetaModelOrig = self
-        Model = self.Model
+        MetaModelOrig = self  # TODO: this doesn't fully seem correct?
         n_new_samples = MetaModelOrig.ExpDesign.n_new_samples
         NCandidate = candidates.shape[0]
 
         # TODO: Loop over outputs
-        OutputName = Model.Output.names[0]
+        OutputName = self.out_names[0]
 
         # To avoid changes ub original aPCE object
-        MetaModel = deepcopy(MetaModelOrig)
+        # MetaModel = deepcopy(MetaModelOrig)
 
         # Old Experimental design
-        oldExpDesignX = MetaModel.ExpDesign.X
+        oldExpDesignX = self.ExpDesign.X
 
         # TODO: Only one psi can be selected.
         # Suggestion: Go for the one with the highest LOO error
-        Scores = list(MetaModel.score_dict[OutputName].values())
-        ModifiedLOO = [1-score for score in Scores]
+        # TODO: this is just a patch, need to look at again!
+        Scores = list(self.MetaModel.score_dict['b_1'][OutputName].values())
+        ModifiedLOO = [1 - score for score in Scores]
         outIdx = np.argmax(ModifiedLOO)
 
         # Initialize Phi to save the criterion's values
-        Phi = np.zeros((NCandidate))
+        Phi = np.zeros(NCandidate)
 
-        BasisIndices = MetaModelOrig.basis_dict[OutputName]["y_"+str(outIdx+1)]
+        # TODO: also patched here
+        BasisIndices = self.MetaModel.basis_dict['b_1'][OutputName]["y_" + str(outIdx + 1)]
         P = len(BasisIndices)
 
         # ------ Old Psi ------------
-        univ_p_val = MetaModelOrig.univ_basis_vals(oldExpDesignX)
-        Psi = MetaModelOrig.create_psi(BasisIndices, univ_p_val)
+        univ_p_val = self.MetaModel.univ_basis_vals(oldExpDesignX)
+        Psi = self.MetaModel.create_psi(BasisIndices, univ_p_val)
 
         # ------ New candidates (Psi_c) ------------
         # Assemble Psi_c
-        univ_p_val_c = self.univ_basis_vals(candidates)
-        Psi_c = self.create_psi(BasisIndices, univ_p_val_c)
+        univ_p_val_c = self.MetaModel.univ_basis_vals(candidates)
+        Psi_c = self.MetaModel.create_psi(BasisIndices, univ_p_val_c)
 
         for idx in range(NCandidate):
 
@@ -1608,10 +1781,9 @@ class MetaModelEngine():
 
             # Information matrix
             PsiTPsi = np.dot(Psi_cand.T, Psi_cand)
-            M = PsiTPsi / (len(oldExpDesignX)+1)
+            M = PsiTPsi / (len(oldExpDesignX) + 1)
 
-            if np.linalg.cond(PsiTPsi) > 1e-12 \
-               and np.linalg.cond(PsiTPsi) < 1 / sys.float_info.epsilon:
+            if 1e-12 < np.linalg.cond(PsiTPsi) < 1 / sys.float_info.epsilon:
                 # faster
                 invM = linalg.solve(M, sparse.eye(PsiTPsi.shape[0]).toarray())
             else:
@@ -1622,20 +1794,21 @@ class MetaModelEngine():
             # Optimality criteria according to Section 4.5.1 in Ref.
 
             # D-Opt
-            if var == 'D-Opt':
-                Phi[idx] = (np.linalg.det(invM)) ** (1/P)
+            if var.lower() == 'd-opt':
+                Phi[idx] = (np.linalg.det(invM)) ** (1 / P)
 
             # A-Opt
-            elif var == 'A-Opt':
+            elif var.lower() == 'a-opt':
                 Phi[idx] = np.trace(invM)
 
             # K-Opt
-            elif var == 'K-Opt':
+            elif var.lower() == 'k-opt':
                 Phi[idx] = np.linalg.cond(M)
 
             else:
+                # print(var.lower())
                 raise Exception('The optimality criterion you requested has '
-                      'not been implemented yet!')
+                                'not been implemented yet!')
 
         # find an optimal point subset to add to the initial design
         # by minimization of the Phi
@@ -1647,16 +1820,40 @@ class MetaModelEngine():
         return Xnew
 
     # -------------------------------------------------------------------------
-    def __normpdf(self, y_hat_pce, std_pce, obs_data, total_sigma2s,
-                  rmse=None):
+    def _normpdf(self, y_hat_pce, std_pce, obs_data, total_sigma2s,
+                 rmse=None):
+        """
+        Calculated gaussian likelihood for given y+std based on given obs+sigma
+        # TODO: is this understanding correct?
+        
+        Parameters
+        ----------
+        y_hat_pce : dict of 2d np arrays
+            Mean output of the surrogate.
+        std_pce : dict of 2d np arrays
+            Standard deviation output of the surrogate.
+        obs_data : dict of 1d np arrays
+            Observed data.
+        total_sigma2s : pandas dataframe, matches obs_data
+            Estimated uncertainty for the observed data.
+        rmse : dict, optional
+            RMSE values from validation of the surrogate. The default is None.
+
+        Returns
+        -------
+        likelihoods : dict of float
+            The likelihood for each surrogate eval in y_hat_pce compared to the
+            observations (?).
+
+        """
 
-        Model = self.Model
         likelihoods = 1.0
 
         # Loop over the outputs
-        for idx, out in enumerate(Model.Output.names):
+        for idx, out in enumerate(self.out_names):
 
             # (Meta)Model Output
+            # print(y_hat_pce[out])
             nsamples, nout = y_hat_pce[out].shape
 
             # Prepare data and remove NaN
@@ -1671,37 +1868,37 @@ class MetaModelEngine():
 
             # Surrogate error if valid dataset is given.
             if rmse is not None:
-                tot_sigma2s += rmse[out]**2
+                tot_sigma2s += rmse[out] ** 2
             else:
-                tot_sigma2s += np.mean(std_pce[out])**2
+                tot_sigma2s += np.mean(std_pce[out]) ** 2
 
             likelihoods *= stats.multivariate_normal.pdf(
                 y_hat_pce[out], data, np.diag(tot_sigma2s),
                 allow_singular=True)
 
+        # TODO: remove this here
         self.Likelihoods = likelihoods
 
         return likelihoods
 
     # -------------------------------------------------------------------------
-    def __corr_factor_BME(self, obs_data, total_sigma2s, logBME):
+    def _corr_factor_BME(self, obs_data, total_sigma2s, logBME):
         """
         Calculates the correction factor for BMEs.
         """
         MetaModel = self.MetaModel
-        samples = MetaModel.ExpDesign.X  # valid_samples
-        model_outputs = MetaModel.ExpDesign.Y  # valid_model_runs
-        Model = MetaModel.ModelObj
+        samples = self.ExpDesign.X  # valid_samples
+        model_outputs = self.ExpDesign.Y  # valid_model_runs
         n_samples = samples.shape[0]
 
         # Extract the requested model outputs for likelihood calulation
-        output_names = Model.Output.names
+        output_names = self.out_names
 
         # TODO: Evaluate MetaModel on the experimental design and ValidSet
         OutputRS, stdOutputRS = MetaModel.eval_metamodel(samples=samples)
 
-        logLik_data = np.zeros((n_samples))
-        logLik_model = np.zeros((n_samples))
+        logLik_data = np.zeros(n_samples)
+        logLik_model = np.zeros(n_samples)
         # Loop over the outputs
         for idx, out in enumerate(output_names):
 
@@ -1722,7 +1919,6 @@ class MetaModelEngine():
             covMatrix_data = np.diag(tot_sigma2s)
 
             for i, sample in enumerate(samples):
-
                 # Simulation run
                 y_m = model_outputs[out][i]
 
@@ -1731,62 +1927,51 @@ class MetaModelEngine():
 
                 # CovMatrix with the surrogate error
                 # covMatrix = np.diag(stdOutputRS[out][i]**2)
-                covMatrix = np.diag((y_m-y_m_hat)**2)
+                # covMatrix = np.diag((y_m - y_m_hat) ** 2)
                 covMatrix = np.diag(
-                    np.mean((model_outputs[out]-OutputRS[out]), axis=0)**2
-                    )
+                    np.mean((model_outputs[out] - OutputRS[out]), axis=0) ** 2
+                )
 
                 # Compute likelilhood output vs data
-                logLik_data[i] += self.__logpdf(
+                logLik_data[i] += logpdf(
                     y_m_hat, data, covMatrix_data
-                    )
+                )
 
                 # Compute likelilhood output vs surrogate
-                logLik_model[i] += self.__logpdf(y_m_hat, y_m, covMatrix)
+                logLik_model[i] += logpdf(y_m_hat, y_m, covMatrix)
 
         # Weight
         logLik_data -= logBME
-        weights = np.exp(logLik_model+logLik_data)
+        weights = np.exp(logLik_model + logLik_data)
 
         return np.log(np.mean(weights))
 
     # -------------------------------------------------------------------------
-    def __logpdf(self, x, mean, cov):
+    def _posteriorPlot(self, posterior, par_names, key):
         """
-        computes the likelihood based on a multivariate normal distribution.
+        Plot the posterior of a specific key as a corner plot
 
         Parameters
         ----------
-        x : TYPE
-            DESCRIPTION.
-        mean : array_like
-            Observation data.
-        cov : 2d array
-            Covariance matrix of the distribution.
+        posterior : 2d np.array
+            Samples of the posterior.
+        par_names : list of strings
+            List of the parameter names.
+        key : string
+            Output key that this posterior belongs to.
 
         Returns
         -------
-        log_lik : float
-            Log likelihood.
+        figPosterior : corner.corner
+            Plot of the posterior.
 
         """
-        n = len(mean)
-        L = linalg.cholesky(cov, lower=True)
-        beta = np.sum(np.log(np.diag(L)))
-        dev = x - mean
-        alpha = dev.dot(linalg.cho_solve((L, True), dev))
-        log_lik = -0.5 * alpha - beta - n / 2. * np.log(2 * np.pi)
-
-        return log_lik
-
-    # -------------------------------------------------------------------------
-    def __posteriorPlot(self, posterior, par_names, key):
 
         # Initialization
-        newpath = (r'Outputs_SeqPosteriorComparison/posterior')
+        newpath = r'Outputs_SeqPosteriorComparison/posterior'
         os.makedirs(newpath, exist_ok=True)
 
-        bound_tuples = self.MetaModel.bound_tuples
+        bound_tuples = self.ExpDesign.bound_tuples
         n_params = len(par_names)
         font_size = 40
         if n_params == 2:
@@ -1826,57 +2011,36 @@ class MetaModelEngine():
         return figPosterior
 
     # -------------------------------------------------------------------------
-    def __hellinger_distance(self, P, Q):
+    def _BME_Calculator(self, obs_data, sigma2Dict, rmse=None):
         """
-        Hellinger distance between two continuous distributions.
-
-        The maximum distance 1 is achieved when P assigns probability zero to
-        every set to which Q assigns a positive probability, and vice versa.
-        0 (identical) and 1 (maximally different)
+        This function computes the Bayesian model evidence (BME) via Monte
+        Carlo integration.
 
         Parameters
         ----------
-        P : array
-            Reference likelihood.
-        Q : array
-            Estimated likelihood.
+        obs_data : dict of 1d np arrays
+            Observed data.
+        sigma2Dict : pandas dataframe, matches obs_data
+            Estimated uncertainty for the observed data.
+        rmse : dict of floats, optional
+            RMSE values for each output-key. The dafault is None.
 
         Returns
         -------
-        float
-            Hellinger distance of two distributions.
-
-        """
-        mu1 = P.mean()
-        Sigma1 = np.std(P)
-
-        mu2 = Q.mean()
-        Sigma2 = np.std(Q)
-
-        term1 = np.sqrt(2*Sigma1*Sigma2 / (Sigma1**2 + Sigma2**2))
-
-        term2 = np.exp(-.25 * (mu1 - mu2)**2 / (Sigma1**2 + Sigma2**2))
-
-        H_squared = 1 - term1 * term2
-
-        return np.sqrt(H_squared)
-
-    # -------------------------------------------------------------------------
-    def __BME_Calculator(self, MetaModel, obs_data, sigma2Dict, rmse=None):
-        """
-        This function computes the Bayesian model evidence (BME) via Monte
-        Carlo integration.
-
+        (logBME, KLD, X_Posterior, Likelihoods, distHellinger)
+        
         """
         # Initializations
-        if hasattr(MetaModel, 'valid_likelihoods'):
-            valid_likelihoods = MetaModel.valid_likelihoods
+        # TODO: this just does not make sense, recheck from old commits
+        if self.valid_likelihoods is not None:
+            valid_likelihoods = self.valid_likelihoods
         else:
             valid_likelihoods = []
+        valid_likelihoods = np.array(valid_likelihoods)
 
-        post_snapshot = MetaModel.ExpDesign.post_snapshot
-        if post_snapshot or len(valid_likelihoods) != 0:
-            newpath = (r'Outputs_SeqPosteriorComparison/likelihood_vs_ref')
+        post_snapshot = self.ExpDesign.post_snapshot
+        if post_snapshot or valid_likelihoods.shape[0] != 0:
+            newpath = r'Outputs_SeqPosteriorComparison/likelihood_vs_ref'
             os.makedirs(newpath, exist_ok=True)
 
         SamplingMethod = 'random'
@@ -1887,21 +2051,21 @@ class MetaModelEngine():
         while (ESS > MCsize) or (ESS < 1):
 
             # Generate samples for Monte Carlo simulation
-            X_MC = MetaModel.ExpDesign.generate_samples(
+            X_MC = self.ExpDesign.generate_samples(
                 MCsize, SamplingMethod
-                )
+            )
 
             # Monte Carlo simulation for the candidate design
-            Y_MC, std_MC = MetaModel.eval_metamodel(samples=X_MC)
+            Y_MC, std_MC = self.MetaModel.eval_metamodel(samples=X_MC)
 
             # Likelihood computation (Comparison of data and
             # simulation results via PCE with candidate design)
-            Likelihoods = self.__normpdf(
+            Likelihoods = self._normpdf(
                 Y_MC, std_MC, obs_data, sigma2Dict, rmse
-                )
+            )
 
             # Check the Effective Sample Size (1000<ESS<MCsize)
-            ESS = 1 / np.sum(np.square(Likelihoods/np.sum(Likelihoods)))
+            ESS = 1 / np.sum(np.square(Likelihoods / np.sum(Likelihoods)))
 
             # Enlarge sample size if it doesn't fulfill the criteria
             if (ESS > MCsize) or (ESS < 1):
@@ -1914,7 +2078,7 @@ class MetaModelEngine():
         unif = np.random.rand(1, MCsize)[0]
 
         # Reject the poorly performed prior
-        accepted = (Likelihoods/np.max(Likelihoods)) >= unif
+        accepted = (Likelihoods / np.max(Likelihoods)) >= unif
         X_Posterior = X_MC[accepted]
 
         # ------------------------------------------------------------
@@ -1930,26 +2094,29 @@ class MetaModelEngine():
         postExpLikelihoods = np.mean(np.log(Likelihoods[accepted]))
 
         # Posterior-based expectation of prior densities
-        postExpPrior = np.mean(
-            np.log(MetaModel.ExpDesign.JDist.pdf(X_Posterior.T))
-            )
+        # TODO: this is commented out, as it is not used again
+        # postExpPrior = np.mean(
+        #     np.log(self.ExpDesign.JDist.pdf(X_Posterior.T))
+        # )
 
         # Calculate Kullback-Leibler Divergence
         # KLD = np.mean(np.log(Likelihoods[Likelihoods!=0])- logBME)
         KLD = postExpLikelihoods - logBME
 
         # Information Entropy based on Entropy paper Eq. 38
-        infEntropy = logBME - postExpPrior - postExpLikelihoods
+        # infEntropy = logBME - postExpPrior - postExpLikelihoods
 
         # If post_snapshot is True, plot likelihood vs refrence
         if post_snapshot or valid_likelihoods:
             # Hellinger distance
-            ref_like = np.log(valid_likelihoods[valid_likelihoods > 0])
+            valid_likelihoods = np.array(valid_likelihoods)
+            ref_like = np.log(valid_likelihoods[(valid_likelihoods > 0)])
             est_like = np.log(Likelihoods[Likelihoods > 0])
-            distHellinger = self.__hellinger_distance(ref_like, est_like)
+            distHellinger = hellinger_distance(ref_like, est_like)
 
             idx = len([name for name in os.listdir(newpath) if 'Likelihoods_'
                        in name and os.path.isfile(os.path.join(newpath, name))])
+
             fig, ax = plt.subplots()
             try:
                 sns.kdeplot(np.log(valid_likelihoods[valid_likelihoods > 0]),
@@ -1975,11 +2142,9 @@ class MetaModelEngine():
             distHellinger = 0.0
 
         # Bayesian inference with Emulator only for 2D problem
-        if post_snapshot and MetaModel.n_params == 2 and not idx % 5:
-            from bayes_inference.bayes_inference import BayesInference
-            from bayes_inference.discrepancy import Discrepancy
-            import pandas as pd
-            BayesOpts = BayesInference(MetaModel)
+        if post_snapshot and self.MetaModel.n_params == 2 and not idx % 5:
+            BayesOpts = BayesInference(self)
+
             BayesOpts.emulator = True
             BayesOpts.plot_post_pred = False
 
@@ -1992,155 +2157,95 @@ class MetaModelEngine():
                 'n_walkers': 30,
                 'moves': emcee.moves.KDEMove(),
                 'verbose': False
-                }
+            }
 
             # ----- Define the discrepancy model -------
-            obs_data = pd.DataFrame(obs_data, columns=self.Model.Output.names)
+            # TODO: check with Farid if this first line is how it should be
+            BayesOpts.measured_data = obs_data
+            obs_data = pd.DataFrame(obs_data, columns=self.out_names)
             BayesOpts.measurement_error = obs_data
+            # TODO: shouldn't the uncertainty be sigma2Dict instead of obs_data?
 
             # # -- (Option B) --
             DiscrepancyOpts = Discrepancy('')
             DiscrepancyOpts.type = 'Gaussian'
-            DiscrepancyOpts.parameters = obs_data**2
+            DiscrepancyOpts.parameters = obs_data ** 2
             BayesOpts.Discrepancy = DiscrepancyOpts
             # Start the calibration/inference
             Bayes_PCE = BayesOpts.create_inference()
             X_Posterior = Bayes_PCE.posterior_df.values
 
-        return (logBME, KLD, X_Posterior, Likelihoods, distHellinger)
+        return logBME, KLD, X_Posterior, Likelihoods, distHellinger
 
     # -------------------------------------------------------------------------
-    def __validError(self, MetaModel):
+    def _validError(self):
+        """
+        Evaluate the metamodel on the validation samples and calculate the
+        error against the corresponding model runs
 
-        # MetaModel = self.MetaModel
-        Model = MetaModel.ModelObj
-        OutputName = Model.Output.names
+        Returns
+        -------
+        rms_error : dict
+            RMSE for each validation run.
+        valid_error : dict
+            Normed (?)RMSE for each validation run.
 
+        """
         # Extract the original model with the generated samples
-        valid_samples = MetaModel.valid_samples
-        valid_model_runs = MetaModel.valid_model_runs
+        valid_model_runs = self.ExpDesign.valid_model_runs
 
         # Run the PCE model with the generated samples
-        valid_PCE_runs, _ = MetaModel.eval_metamodel(samples=valid_samples)
+        valid_PCE_runs, _ = self.MetaModel.eval_metamodel(samples=self.ExpDesign.valid_samples)
 
         rms_error = {}
         valid_error = {}
         # Loop over the keys and compute RMSE error.
-        for key in OutputName:
+        for key in self.out_names:
             rms_error[key] = mean_squared_error(
                 valid_model_runs[key], valid_PCE_runs[key],
                 multioutput='raw_values',
                 sample_weight=None,
                 squared=False)
             # Validation error
-            valid_error[key] = (rms_error[key]**2)
+            valid_error[key] = (rms_error[key] ** 2)
             valid_error[key] /= np.var(valid_model_runs[key], ddof=1, axis=0)
 
             # Print a report table
             print("\n>>>>> Updated Errors of {} <<<<<".format(key))
             print("\nIndex  |  RMSE   |  Validation Error")
-            print('-'*35)
-            print('\n'.join(f'{i+1}  |  {k:.3e}  |  {j:.3e}' for i, (k, j)
+            print('-' * 35)
+            print('\n'.join(f'{i + 1}  |  {k:.3e}  |  {j:.3e}' for i, (k, j)
                             in enumerate(zip(rms_error[key],
                                              valid_error[key]))))
 
         return rms_error, valid_error
 
     # -------------------------------------------------------------------------
-    def __error_Mean_Std(self):
+    def _error_Mean_Std(self):
+        """
+        Calculates the error in the overall mean and std approximation of the
+        surrogate against the mc-reference provided to the model.
+        This can only be applied to metamodels of polynomial type
 
-        MetaModel = self.MetaModel
-        # Extract the mean and std provided by user
-        df_MCReference = MetaModel.ModelObj.mc_reference
+        Returns
+        -------
+        RMSE_Mean : float
+            RMSE of the means 
+        RMSE_std : float
+            RMSE of the standard deviations
 
+        """
         # Compute the mean and std based on the MetaModel
-        pce_means, pce_stds = self._compute_pce_moments(MetaModel)
+        pce_means, pce_stds = self.MetaModel._compute_pce_moments()
 
         # Compute the root mean squared error
-        for output in MetaModel.ModelObj.Output.names:
-
+        for output in self.out_names:
             # Compute the error between mean and std of MetaModel and OrigModel
             RMSE_Mean = mean_squared_error(
-                df_MCReference['mean'], pce_means[output], squared=False
-                )
+                self.Model.mc_reference['mean'], pce_means[output], squared=False
+            )
             RMSE_std = mean_squared_error(
-                df_MCReference['std'], pce_means[output], squared=False
-                )
+                self.Model.mc_reference['std'], pce_stds[output], squared=False
+            )
 
         return RMSE_Mean, RMSE_std
-
-    # -------------------------------------------------------------------------
-    def _compute_pce_moments(self, MetaModel):
-        """
-        Computes the first two moments using the PCE-based meta-model.
-
-        Returns
-        -------
-        pce_means: dict
-            The first moment (mean) of the surrogate.
-        pce_stds: dict
-            The second moment (standard deviation) of the surrogate.
-
-        """
-        outputs = MetaModel.ModelObj.Output.names
-        pce_means_b = {}
-        pce_stds_b = {}
-
-        # Loop over bootstrap iterations
-        for b_i in range(MetaModel.n_bootstrap_itrs):
-            # Loop over the metamodels
-            coeffs_dicts = MetaModel.coeffs_dict[f'b_{b_i+1}'].items()
-            means = {}
-            stds = {}
-            for output, coef_dict in coeffs_dicts:
-
-                pce_mean = np.zeros((len(coef_dict)))
-                pce_var = np.zeros((len(coef_dict)))
-
-                for index, values in coef_dict.items():
-                    idx = int(index.split('_')[1]) - 1
-                    coeffs = MetaModel.coeffs_dict[f'b_{b_i+1}'][output][index]
-
-                    # Mean = c_0
-                    if coeffs[0] != 0:
-                        pce_mean[idx] = coeffs[0]
-                    else:
-                        clf_poly = MetaModel.clf_poly[f'b_{b_i+1}'][output]
-                        pce_mean[idx] = clf_poly[index].intercept_
-                    # Var = sum(coeffs[1:]**2)
-                    pce_var[idx] = np.sum(np.square(coeffs[1:]))
-
-                # Save predictions for each output
-                if MetaModel.dim_red_method.lower() == 'pca':
-                    PCA = MetaModel.pca[f'b_{b_i+1}'][output]
-                    means[output] = PCA.inverse_transform(pce_mean)
-                    stds[output] = PCA.inverse_transform(np.sqrt(pce_var))
-                else:
-                    means[output] = pce_mean
-                    stds[output] = np.sqrt(pce_var)
-
-            # Save predictions for each bootstrap iteration
-            pce_means_b[b_i] = means
-            pce_stds_b[b_i] = stds
-
-        # Change the order of nesting
-        mean_all = {}
-        for i in sorted(pce_means_b):
-            for k, v in pce_means_b[i].items():
-                if k not in mean_all:
-                    mean_all[k] = [None] * len(pce_means_b)
-                mean_all[k][i] = v
-        std_all = {}
-        for i in sorted(pce_stds_b):
-            for k, v in pce_stds_b[i].items():
-                if k not in std_all:
-                    std_all[k] = [None] * len(pce_stds_b)
-                std_all[k][i] = v
-
-        # Back transformation if PCA is selected.
-        pce_means, pce_stds = {}, {}
-        for output in outputs:
-            pce_means[output] = np.mean(mean_all[output], axis=0)
-            pce_stds[output] = np.mean(std_all[output], axis=0)
-
-        return pce_means, pce_stds
diff --git a/src/bayesvalidrox/surrogate_models/exp_designs.py b/src/bayesvalidrox/surrogate_models/exp_designs.py
index a078aec9c19c5a85a637ba50d02c48459ceea6d3..ce1745903c776049c797e5585b60d45463d93325 100644
--- a/src/bayesvalidrox/surrogate_models/exp_designs.py
+++ b/src/bayesvalidrox/surrogate_models/exp_designs.py
@@ -1,31 +1,61 @@
 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
+"""
+Experimental design with associated sampling methods
+"""
 
-import numpy as np
-import math
 import itertools
+import math
+
 import chaospy
-import scipy.stats as st
-from tqdm import tqdm
+import h5py
+import numpy as np
 
 from .apoly_construction import apoly_construction
+from .input_space import InputSpace
 
 
-class ExpDesigns:
+# -------------------------------------------------------------------------
+def check_ranges(theta, ranges):
+    """
+    This function checks if theta lies in the given ranges.
+
+    Parameters
+    ----------
+    theta : array
+        Proposed parameter set.
+    ranges : nested list
+        The parameter ranges.
+
+    Returns
+    -------
+    c : bool
+        If it lies in the given range, it returns True else False.
+
+    """
+    c = True
+    # traverse in the list1
+    for i, bounds in enumerate(ranges):
+        x = theta[i]
+        # condition check
+        if x < bounds[0] or x > bounds[1]:
+            c = False
+            return c
+    return c
+
+
+class ExpDesigns(InputSpace):
     """
     This class generates samples from the prescribed marginals for the model
     parameters using the `Input` object.
 
     Attributes
     ----------
-    Input : obj
+    input_object : obj
         Input object containing the parameter marginals, i.e. name,
         distribution type and distribution parameters or available raw data.
-    method : str
-        Type of the experimental design. The default is `'normal'`. Other
-        option is `'sequential'`.
-    meta_Model : str
-        Type of the meta_model.
+    meta_Model_type : str
+        Type of the meta_Model_type.
     sampling_method : str
         Name of the sampling method for the experimental design. The following
         sampling method are supported:
@@ -112,17 +142,18 @@ class ExpDesigns:
     - K-Opt (K-Optimality)
     """
 
-    def __init__(self, Input, method='normal', meta_Model='pce',
-                 sampling_method='random', hdf5_file=None,
-                 n_new_samples=1, n_max_samples=None, mod_LOO_threshold=1e-16,
-                 tradeoff_scheme=None, n_canddidate=1, explore_method='random',
-                 exploit_method='Space-filling', util_func='Space-filling',
-                 n_cand_groups=4, n_replication=1, post_snapshot=False,
-                 step_snapshot=1, max_a_post=[], adapt_verbose=False):
-
-        self.InputObj = Input
-        self.method = method
-        self.meta_Model = meta_Model
+    def __init__(self, input_object, meta_Model_type='pce', sampling_method='random', hdf5_file=None,
+                 n_new_samples=1, n_max_samples=None, mod_LOO_threshold=1e-16, tradeoff_scheme=None, n_canddidate=1,
+                 explore_method='random', exploit_method='Space-filling', util_func='Space-filling', n_cand_groups=4,
+                 n_replication=1, post_snapshot=False, step_snapshot=1, max_a_post=None, adapt_verbose=False,
+                 max_func_itr=1):
+
+        super().__init__(input_object, meta_Model_type)
+        if max_a_post is None:
+            max_a_post = []
+
+        self.InputObj = input_object
+        self.meta_Model_type = meta_Model_type
         self.sampling_method = sampling_method
         self.hdf5_file = hdf5_file
         self.n_new_samples = n_new_samples
@@ -139,10 +170,21 @@ class ExpDesigns:
         self.step_snapshot = step_snapshot
         self.max_a_post = max_a_post
         self.adapt_verbose = adapt_verbose
+        self.max_func_itr = max_func_itr
+
+        # Other 
+        self.apce = None
+        self.n_init_samples = None
+        self.n_samples = None
+        self.ndim = None
+        self.X = None
+        self.Y = None
+
+        # Init 
+        self.check_valid_inputs()
 
     # -------------------------------------------------------------------------
-    def generate_samples(self, n_samples, sampling_method='random',
-                         transform=False):
+    def generate_samples(self, n_samples, sampling_method='random'):
         """
         Generates samples with given sampling method
 
@@ -152,9 +194,6 @@ class ExpDesigns:
             Number of requested samples.
         sampling_method : str, optional
             Sampling method. The default is `'random'`.
-        transform : bool, optional
-            Transformation via an isoprobabilistic transformation method. The
-            default is `False`.
 
         Returns
         -------
@@ -165,15 +204,14 @@ class ExpDesigns:
         try:
             samples = chaospy.generate_samples(
                 int(n_samples), domain=self.origJDist, rule=sampling_method
-                )
+            )
         except:
             samples = self.random_sampler(int(n_samples)).T
 
         return samples.T
 
     # -------------------------------------------------------------------------
-    def generate_ED(self, n_samples, sampling_method='random', transform=False,
-                    max_pce_deg=None):
+    def generate_ED(self, n_samples, max_pce_deg=None):
         """
         Generates experimental designs (training set) with the given method.
 
@@ -181,49 +219,33 @@ class ExpDesigns:
         ----------
         n_samples : int
             Number of requested training points.
-        sampling_method : str, optional
-            Sampling method. The default is `'random'`.
-        transform : bool, optional
-            Isoprobabilistic transformation. The default is `False`.
         max_pce_deg : int, optional
             Maximum PCE polynomial degree. The default is `None`.
-
+            
         Returns
         -------
-        samples : array of shape (n_samples, n_params)
-            Selected training samples.
+        None
 
         """
-        Inputs = self.InputObj
-        self.ndim = len(Inputs.Marginals)
-        if not hasattr(self, 'n_init_samples'):
-            self.n_init_samples = self.ndim + 1
+        if n_samples < 0:
+            raise ValueError('A negative number of samples cannot be created. Please provide positive n_samples')
         n_samples = int(n_samples)
 
-        # Check if PCE or aPCE metamodel is selected.
-        if self.meta_Model.lower() == 'apce':
-            self.apce = True
-        else:
-            self.apce = False
-
-        # Check if input is given as dist or input_data.
-        if len(Inputs.Marginals[0].input_data):
-            self.input_data_given = True
-        else:
-            self.input_data_given = False
-
-        # Get the bounds if input_data are directly defined by user:
-        if self.input_data_given:
-            for i in range(self.ndim):
-                low_bound = np.min(Inputs.Marginals[i].input_data)
-                up_bound = np.max(Inputs.Marginals[i].input_data)
-                Inputs.Marginals[i].parameters = [low_bound, up_bound]
+        if self.n_init_samples is None:
+            self.n_init_samples = n_samples
 
         # Generate the samples based on requested method
-        self.raw_data, self.bound_tuples = self.init_param_space(max_pce_deg)
+        self.init_param_space(max_pce_deg)
 
+        samples = None
+        sampling_method = self.sampling_method
         # Pass user-defined samples as ED
         if sampling_method == 'user':
+            if self.X is None:
+                raise AttributeError('User-defined sampling cannot proceed as no samples provided. Please add them to '
+                                     'this class as attribute X')
+            if not self.X.ndim == 2:
+                raise AttributeError('The provided samples shuld have 2 dimensions')
             samples = self.X
             self.n_samples = len(samples)
 
@@ -236,7 +258,7 @@ class ExpDesigns:
 
             elif sampling_method == 'PCM' or \
                     sampling_method == 'LSCM':
-                samples = self.pcm_sampler(max_pce_deg)
+                samples = self.pcm_sampler(n_samples, max_pce_deg)
 
             else:
                 # Create ExpDesign in the actual space using chaospy
@@ -252,208 +274,62 @@ class ExpDesigns:
             samples = chaospy.generate_samples(n_samples, domain=self.JDist,
                                                rule=sampling_method).T
 
-        # Transform samples to the original space
-        if transform:
-            tr_samples = self.transform(
-                samples,
-                method=sampling_method
-                )
-            if sampling_method == 'user' or not self.apce:
-                return samples, tr_samples
-            else:
-                return tr_samples, samples
-        else:
-            return samples
+        self.X = samples
 
-    # -------------------------------------------------------------------------
-    def init_param_space(self, max_deg=None):
+    def read_from_file(self, out_names):
         """
-        Initializes parameter space.
+        Reads in the ExpDesign from a provided h5py file and saves the results.
 
         Parameters
         ----------
-        max_deg : int, optional
-            Maximum degree. The default is `None`.
+        out_names : list of strings
+            The keys that are in the outputs (y) saved in the provided file.
 
         Returns
         -------
-        raw_data : array of shape (n_params, n_samples)
-            Raw data.
-        bound_tuples : list of tuples
-            A list containing lower and upper bounds of parameters.
+        None.
 
         """
-        Inputs = self.InputObj
-        ndim = self.ndim
-        rosenblatt_flag = Inputs.Rosenblatt
-        mc_size = 50000
-
-        # Save parameter names
-        self.par_names = []
-        for parIdx in range(ndim):
-            self.par_names.append(Inputs.Marginals[parIdx].name)
-
-        # Create a multivariate probability distribution
-        if max_deg is not None:
-            JDist, poly_types = self.build_dist(rosenblatt=rosenblatt_flag)
-            self.JDist, self.poly_types = JDist, poly_types
-
-        if self.input_data_given:
-
-            self.MCSize = len(Inputs.Marginals[0].input_data)
-            self.raw_data = np.zeros((ndim, self.MCSize))
-
-            for parIdx in range(ndim):
-                # Save parameter names
-                try:
-                    self.raw_data[parIdx] = np.array(
-                        Inputs.Marginals[parIdx].input_data)
-                except:
-                    self.raw_data[parIdx] = self.JDist[parIdx].sample(mc_size)
-
-        else:
-            # Generate random samples based on parameter distributions
-            self.raw_data = chaospy.generate_samples(mc_size,
-                                                     domain=self.JDist)
-
-        # Create orthogonal polynomial coefficients if necessary
-        if self.apce and max_deg is not None and Inputs.poly_coeffs_flag:
-            self.polycoeffs = {}
-            for parIdx in tqdm(range(ndim), ascii=True,
-                               desc="Computing orth. polynomial coeffs"):
-                poly_coeffs = apoly_construction(
-                    self.raw_data[parIdx],
-                    max_deg
-                    )
-                self.polycoeffs[f'p_{parIdx+1}'] = poly_coeffs
-
-        # Extract moments
-        for parIdx in range(ndim):
-            mu = np.mean(self.raw_data[parIdx])
-            std = np.std(self.raw_data[parIdx])
-            self.InputObj.Marginals[parIdx].moments = [mu, std]
-
-        # Generate the bounds based on given inputs for marginals
-        bound_tuples = []
-        for i in range(ndim):
-            if Inputs.Marginals[i].dist_type == 'unif':
-                low_bound, up_bound = Inputs.Marginals[i].parameters
-            else:
-                low_bound = np.min(self.raw_data[i])
-                up_bound = np.max(self.raw_data[i])
-
-            bound_tuples.append((low_bound, up_bound))
-
-        self.bound_tuples = tuple(bound_tuples)
+        if self.hdf5_file is None:
+            raise AttributeError('ExpDesign cannot be read in, please provide hdf5 file first')
 
-        return self.raw_data, self.bound_tuples
+        # Read hdf5 file
+        f = h5py.File(self.hdf5_file, 'r+')
 
-    # -------------------------------------------------------------------------
-    def build_dist(self, rosenblatt):
-        """
-        Creates the polynomial types to be passed to univ_basis_vals method of
-        the MetaModel object.
-
-        Parameters
-        ----------
-        rosenblatt : bool
-            Rosenblatt transformation flag.
+        # Read EDX and pass it to ExpDesign object
+        try:
+            self.X = np.array(f["EDX/New_init_"])
+        except KeyError:
+            self.X = np.array(f["EDX/init_"])
 
-        Returns
-        -------
-        orig_space_dist : object
-            A chaospy JDist object or a gaussian_kde object.
-        poly_types : list
-            List of polynomial types for the parameters.
+        # Update number of initial samples
+        self.n_init_samples = self.X.shape[0]
 
-        """
-        Inputs = self.InputObj
-        all_data = []
-        all_dist_types = []
-        orig_joints = []
-        poly_types = []
-
-        for parIdx in range(self.ndim):
-
-            if Inputs.Marginals[parIdx].dist_type is None:
-                data = Inputs.Marginals[parIdx].input_data
-                all_data.append(data)
-                dist_type = None
-            else:
-                dist_type = Inputs.Marginals[parIdx].dist_type
-                params = Inputs.Marginals[parIdx].parameters
-
-            if rosenblatt:
-                polytype = 'hermite'
-                dist = chaospy.Normal()
-
-            elif dist_type is None:
-                polytype = 'arbitrary'
-                dist = None
-
-            elif 'unif' in dist_type.lower():
-                polytype = 'legendre'
-                dist = chaospy.Uniform(lower=params[0], upper=params[1])
-
-            elif 'norm' in dist_type.lower() and \
-                 'log' not in dist_type.lower():
-                polytype = 'hermite'
-                dist = chaospy.Normal(mu=params[0], sigma=params[1])
-
-            elif 'gamma' in dist_type.lower():
-                polytype = 'laguerre'
-                dist = chaospy.Gamma(shape=params[0],
-                                     scale=params[1],
-                                     shift=params[2])
-
-            elif 'beta' in dist_type.lower():
-                polytype = 'jacobi'
-                dist = chaospy.Beta(alpha=params[0], beta=params[1],
-                                    lower=params[2], upper=params[3])
-
-            elif 'lognorm' in dist_type.lower():
-                polytype = 'hermite'
-                mu = np.log(params[0]**2/np.sqrt(params[0]**2 + params[1]**2))
-                sigma = np.sqrt(np.log(1 + params[1]**2 / params[0]**2))
-                dist = chaospy.LogNormal(mu, sigma)
-                # dist = chaospy.LogNormal(mu=params[0], sigma=params[1])
-
-            elif 'expon' in dist_type.lower():
-                polytype = 'arbitrary'
-                dist = chaospy.Exponential(scale=params[0], shift=params[1])
-
-            elif 'weibull' in dist_type.lower():
-                polytype = 'arbitrary'
-                dist = chaospy.Weibull(shape=params[0], scale=params[1],
-                                       shift=params[2])
+        # Read EDX and pass it to ExpDesign object
+        self.Y = {}
 
-            else:
-                message = (f"DistType {dist_type} for parameter"
-                           f"{parIdx+1} is not available.")
-                raise ValueError(message)
-
-            if self.input_data_given or self.apce:
-                polytype = 'arbitrary'
-
-            # Store dists and poly_types
-            orig_joints.append(dist)
-            poly_types.append(polytype)
-            all_dist_types.append(dist_type)
-
-        # Prepare final output to return
-        if None in all_dist_types:
-            # Naive approach: Fit a gaussian kernel to the provided data
-            Data = np.asarray(all_data)
-            orig_space_dist = st.gaussian_kde(Data)
-            self.prior_space = orig_space_dist
-        else:
-            orig_space_dist = chaospy.J(*orig_joints)
-            self.prior_space = st.gaussian_kde(orig_space_dist.sample(10000))
-
-        return orig_space_dist, poly_types
+        # Extract x values
+        try:
+            self.Y["x_values"] = dict()
+            for varIdx, var in enumerate(out_names):
+                x = np.array(f[f"x_values/{var}"])
+                self.Y["x_values"][var] = x
+        except KeyError:
+            self.Y["x_values"] = np.array(f["x_values"])
+
+        # Store the output
+        for varIdx, var in enumerate(out_names):
+            try:
+                y = np.array(f[f"EDY/{var}/New_init_"])
+            except KeyError:
+                y = np.array(f[f"EDY/{var}/init_"])
+            self.Y[var] = y
+        f.close()
+        print(f'Experimental Design is read in from file {self.hdf5_file}')
+        print('')
 
     # -------------------------------------------------------------------------
-    def random_sampler(self, n_samples):
+    def random_sampler(self, n_samples, max_deg=None):
         """
         Samples the given raw data randomly.
 
@@ -461,6 +337,11 @@ class ExpDesigns:
         ----------
         n_samples : int
             Number of requested samples.
+            
+        max_deg : int, optional
+            Maximum degree. The default is `None`.
+            This will be used to run init_param_space, if it has not been done
+            until now.
 
         Returns
         -------
@@ -468,6 +349,11 @@ class ExpDesigns:
             The sampling locations in the input space.
 
         """
+        if self.raw_data is None:
+            self.init_param_space(max_deg)
+        else:
+            if np.array(self.raw_data).ndim != 2:
+                raise AttributeError('The given raw data for sampling should have two dimensions')
         samples = np.zeros((n_samples, self.ndim))
         sample_size = self.raw_data.shape[1]
 
@@ -479,20 +365,28 @@ class ExpDesigns:
                 # store the raw data with given random indices
                 samples[:, pa_idx] = self.raw_data[pa_idx, rand_idx]
         else:
+            if self.JDist is None:
+                raise AttributeError('Sampling cannot proceed, build ExpDesign with max_deg != 0 to create JDist!')
             try:
+                # Use resample if JDist is of type gaussian_kde
                 samples = self.JDist.resample(int(n_samples)).T
             except AttributeError:
+                # Use sample if JDist is of type chaospy.J
                 samples = self.JDist.sample(int(n_samples)).T
+            # If there is only one input transform the samples
+            if self.ndim == 1:
+                samples = np.swapaxes(np.atleast_2d(samples), 0, 1)
+
             # Check if all samples are in the bound_tuples
             for idx, param_set in enumerate(samples):
-                if not self._check_ranges(param_set, self.bound_tuples):
+                if not check_ranges(param_set, self.bound_tuples):
                     try:
                         proposed_sample = chaospy.generate_samples(
                             1, domain=self.JDist, rule='random').T[0]
                     except:
                         proposed_sample = self.JDist.resample(1).T[0]
-                    while not self._check_ranges(proposed_sample,
-                                                 self.bound_tuples):
+                    while not check_ranges(proposed_sample,
+                                           self.bound_tuples):
                         try:
                             proposed_sample = chaospy.generate_samples(
                                 1, domain=self.JDist, rule='random').T[0]
@@ -503,15 +397,18 @@ class ExpDesigns:
         return samples
 
     # -------------------------------------------------------------------------
-    def pcm_sampler(self, max_deg):
+    def pcm_sampler(self, n_samples, max_deg):
         """
         Generates collocation points based on the root of the polynomial
         degrees.
 
         Parameters
         ----------
+        n_samples : int
+            Number of requested samples.
         max_deg : int
-            Maximum degree defined by user.
+            Maximum degree defined by user. Will also be used to run 
+            init_param_space if that has not been done beforehand.
 
         Returns
         -------
@@ -520,40 +417,64 @@ class ExpDesigns:
 
         """
 
+        if self.raw_data is None:
+            self.init_param_space(max_deg)
+
         raw_data = self.raw_data
 
         # Guess the closest degree to self.n_samples
         def M_uptoMax(deg):
+            """
+            ??
+            Parameters
+            ----------
+            deg : int
+                Degree.
+
+            Returns
+            -------
+            list of ..?
+            """
             result = []
-            for d in range(1, deg+1):
-                result.append(math.factorial(self.ndim+d) //
+            for d in range(1, deg + 1):
+                result.append(math.factorial(self.ndim + d) //
                               (math.factorial(self.ndim) * math.factorial(d)))
             return np.array(result)
 
-        guess_Deg = np.where(M_uptoMax(max_deg) > self.n_samples)[0][0]
+        guess_Deg = np.where(M_uptoMax(max_deg) > n_samples)[0][0]
 
-        c_points = np.zeros((guess_Deg+1, self.ndim))
+        c_points = np.zeros((guess_Deg + 1, self.ndim))
 
         def PolynomialPa(parIdx):
+            """
+            ???
+            Parameters
+            ----------
+            parIdx
+
+            Returns
+            -------
+
+            """
             return apoly_construction(self.raw_data[parIdx], max_deg)
 
         for i in range(self.ndim):
-            poly_coeffs = PolynomialPa(i)[guess_Deg+1][::-1]
+            poly_coeffs = PolynomialPa(i)[guess_Deg + 1][::-1]
             c_points[:, i] = np.trim_zeros(np.roots(poly_coeffs))
 
         #  Construction of optimal integration points
-        Prod = itertools.product(np.arange(1, guess_Deg+2), repeat=self.ndim)
+        Prod = itertools.product(np.arange(1, guess_Deg + 2), repeat=self.ndim)
         sort_dig_unique_combos = np.array(list(filter(lambda x: x, Prod)))
 
         # Ranking relatively mean
-        Temp = np.empty(shape=[0, guess_Deg+1])
+        Temp = np.empty(shape=[0, guess_Deg + 1])
         for j in range(self.ndim):
-            s = abs(c_points[:, j]-np.mean(raw_data[j]))
+            s = abs(c_points[:, j] - np.mean(raw_data[j]))
             Temp = np.append(Temp, [s], axis=0)
         temp = Temp.T
 
         index_CP = np.sort(temp, axis=0)
-        sort_cpoints = np.empty((0, guess_Deg+1))
+        sort_cpoints = np.empty((0, guess_Deg + 1))
 
         for j in range(self.ndim):
             sort_cp = c_points[index_CP[:, j], j]
@@ -563,8 +484,9 @@ class ExpDesigns:
         sort_unique_combos = np.empty(shape=[0, self.ndim])
         for i in range(len(sort_dig_unique_combos)):
             sort_un_comb = []
+            sort_uni_comb = None
             for j in range(self.ndim):
-                SortUC = sort_cpoints[j, sort_dig_unique_combos[i, j]-1]
+                SortUC = sort_cpoints[j, sort_dig_unique_combos[i, j] - 1]
                 sort_un_comb.append(SortUC)
                 sort_uni_comb = np.asarray(sort_un_comb)
             sort_unique_combos = np.vstack((sort_unique_combos, sort_uni_comb))
@@ -576,162 +498,3 @@ class ExpDesigns:
             opt_col_points = sort_unique_combos[0:self.n_samples]
 
         return opt_col_points
-
-    # -------------------------------------------------------------------------
-    def transform(self, X, params=None, method=None):
-        """
-        Transform the samples via either a Rosenblatt or an isoprobabilistic
-        transformation.
-
-        Parameters
-        ----------
-        X : array of shape (n_samples,n_params)
-            Samples to be transformed.
-        method : string
-            If transformation method is 'user' transform X, else just pass X.
-
-        Returns
-        -------
-        tr_X: array of shape (n_samples,n_params)
-            Transformed samples.
-
-        """
-        if self.InputObj.Rosenblatt:
-            self.origJDist, _ = self.build_dist(False)
-            if method == 'user':
-                tr_X = self.JDist.inv(self.origJDist.fwd(X.T)).T
-            else:
-                # Inverse to original spcace -- generate sample ED
-                tr_X = self.origJDist.inv(self.JDist.fwd(X.T)).T
-        else:
-            # Transform samples via an isoprobabilistic transformation
-            n_samples, n_params = X.shape
-            Inputs = self.InputObj
-            origJDist = self.JDist
-            poly_types = self.poly_types
-
-            disttypes = []
-            for par_i in range(n_params):
-                disttypes.append(Inputs.Marginals[par_i].dist_type)
-
-            # Pass non-transformed X, if arbitrary PCE is selected.
-            if None in disttypes or self.input_data_given or self.apce:
-                return X
-
-            cdfx = np.zeros((X.shape))
-            tr_X = np.zeros((X.shape))
-
-            for par_i in range(n_params):
-
-                # Extract the parameters of the original space
-                disttype = disttypes[par_i]
-                if disttype is not None:
-                    dist = origJDist[par_i]
-                else:
-                    dist = None
-                polytype = poly_types[par_i]
-                cdf = np.vectorize(lambda x: dist.cdf(x))
-
-                # Extract the parameters of the transformation space based on
-                # polyType
-                if polytype == 'legendre' or disttype == 'uniform':
-                    # Generate Y_Dists based
-                    params_Y = [-1, 1]
-                    dist_Y = st.uniform(loc=params_Y[0],
-                                        scale=params_Y[1]-params_Y[0])
-                    inv_cdf = np.vectorize(lambda x: dist_Y.ppf(x))
-
-                elif polytype == 'hermite' or disttype == 'norm':
-                    params_Y = [0, 1]
-                    dist_Y = st.norm(loc=params_Y[0], scale=params_Y[1])
-                    inv_cdf = np.vectorize(lambda x: dist_Y.ppf(x))
-
-                elif polytype == 'laguerre' or disttype == 'gamma':
-                    params_Y = [1, params[1]]
-                    dist_Y = st.gamma(loc=params_Y[0], scale=params_Y[1])
-                    inv_cdf = np.vectorize(lambda x: dist_Y.ppf(x))
-
-                # Compute CDF_x(X)
-                cdfx[:, par_i] = cdf(X[:, par_i])
-
-                # Compute invCDF_y(cdfx)
-                tr_X[:, par_i] = inv_cdf(cdfx[:, par_i])
-
-        return tr_X
-
-    # -------------------------------------------------------------------------
-    def fit_dist(self, y):
-        """
-        Fits the known distributions to the data.
-
-        Parameters
-        ----------
-        y : array of shape (n_samples)
-            Data to be fitted.
-
-        Returns
-        -------
-        sel_dist: string
-            Selected distribution type from `lognorm`, `norm`, `uniform` or
-            `expon`.
-        params : list
-            Parameters corresponding to the selected distibution type.
-
-        """
-        dist_results = []
-        params = {}
-        dist_names = ['lognorm', 'norm', 'uniform', 'expon']
-        for dist_name in dist_names:
-            dist = getattr(st, dist_name)
-
-            try:
-                if dist_name != 'lognorm':
-                    param = dist.fit(y)
-                else:
-                    param = dist.fit(np.exp(y), floc=0)
-            except:
-                param = dist.fit(y)
-
-            params[dist_name] = param
-            # Applying the Kolmogorov-Smirnov test
-            D, p = st.kstest(y, dist_name, args=param)
-            dist_results.append((dist_name, D))
-
-        # select the best fitted distribution
-        sel_dist, D = (min(dist_results, key=lambda item: item[1]))
-
-        if sel_dist == 'uniform':
-            params[sel_dist] = [params[sel_dist][0], params[sel_dist][0] +
-                                params[sel_dist][1]]
-        if D < 0.05:
-            return sel_dist, params[sel_dist]
-        else:
-            return None, None
-
-    # -------------------------------------------------------------------------
-    def _check_ranges(self, theta, ranges):
-        """
-        This function checks if theta lies in the given ranges.
-
-        Parameters
-        ----------
-        theta : array
-            Proposed parameter set.
-        ranges : nested list
-            List of the praremeter ranges.
-
-        Returns
-        -------
-        c : bool
-            If it lies in the given range, it return True else False.
-
-        """
-        c = True
-        # traverse in the list1
-        for i, bounds in enumerate(ranges):
-            x = theta[i]
-            # condition check
-            if x < bounds[0] or x > bounds[1]:
-                c = False
-                return c
-        return c
diff --git a/src/bayesvalidrox/surrogate_models/exploration.py b/src/bayesvalidrox/surrogate_models/exploration.py
index cb3ccfcd4a15e26b2292973167d01efedd5a9a62..67decae2bfef6d397bafbc10abdcb35ff77a63a3 100644
--- a/src/bayesvalidrox/surrogate_models/exploration.py
+++ b/src/bayesvalidrox/surrogate_models/exploration.py
@@ -1,5 +1,8 @@
 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
+"""
+Exploration for sequential training of metamodels
+"""
 
 import numpy as np
 from scipy.spatial import distance
@@ -16,8 +19,8 @@ class Exploration:
 
     Attributes
     ----------
-    MetaModel : obj
-        MetaModel object.
+    ExpDesign : obj
+        ExpDesign object.
     n_candidate : int
         Number of candidate samples.
     mc_criterion : str
@@ -28,10 +31,10 @@ class Exploration:
         training set.
     """
 
-    def __init__(self, MetaModel, n_candidate,
+    def __init__(self, ExpDesign, n_candidate,
                  mc_criterion='mc-intersite-proj-th'):
-        self.MetaModel = MetaModel
-        self.Marginals = []
+        self.closestPoints = None
+        self.ExpDesign = ExpDesign
         self.n_candidate = n_candidate
         self.mc_criterion = mc_criterion
         self.w = 100
@@ -48,8 +51,7 @@ class Exploration:
         exploration_scores: arrays of shape (n_candidate)
             Exploration scores.
         """
-        MetaModel = self.MetaModel
-        explore_method = MetaModel.ExpDesign.explore_method
+        explore_method = self.ExpDesign.explore_method
 
         print("\n")
         print(f' The {explore_method}-Method is selected as the exploration '
@@ -82,7 +84,7 @@ class Exploration:
         mc_criterion = self.mc_criterion
         n_candidate = self.n_candidate
         # Get the Old ExpDesign #samples
-        old_ED_X = self.MetaModel.ExpDesign.X
+        old_ED_X = self.ExpDesign.X
         ndim = old_ED_X.shape[1]
 
         # calculate error #averageErrors
@@ -202,8 +204,7 @@ class Exploration:
         exploration_scores: arrays of shape (n_candidate)
             Exploration scores.
         """
-        MetaModel = self.MetaModel
-        explore_method = MetaModel.ExpDesign.explore_method
+        explore_method = self.ExpDesign.explore_method
         mc_criterion = self.mc_criterion
         if all_candidates is None:
             n_candidate = self.n_candidate
@@ -211,13 +212,13 @@ class Exploration:
             n_candidate = all_candidates.shape[0]
 
         # Get the Old ExpDesign #samples
-        old_ED_X = MetaModel.ExpDesign.X
+        old_ED_X = self.ExpDesign.X
         ndim = old_ED_X.shape[1]
 
         # ----- Compute the number of random points -----
         if all_candidates is None:
             # Generate MC Samples
-            all_candidates = MetaModel.ExpDesign.generate_samples(
+            all_candidates = self.ExpDesign.generate_samples(
                 self.n_candidate, explore_method
                 )
         self.all_candidates = all_candidates
@@ -294,15 +295,13 @@ class Exploration:
         all_candidates: list of arrays
             A list of samples in each voronoi cell.
         """
-        MetaModel = self.MetaModel
-
         n_samples = samples.shape[0]
         ndim = samples.shape[1]
 
         # Compute the number of random points
         n_points = w * samples.shape[0]
         # Generate w random points in the domain for each sample
-        points = MetaModel.ExpDesign.generate_samples(n_points, 'random')
+        points = self.ExpDesign.generate_samples(n_points, 'random')
         self.all_candidates = points
 
         # Calculate the nearest sample to each point
@@ -367,102 +366,3 @@ class Exploration:
         else:
             return distances**2
 
-#if __name__ == "__main__":
-#    import scipy.stats as stats
-#    import matplotlib.pyplot as plt
-#    import matplotlib as mpl
-#    import matplotlib.cm as cm
-#    plt.rc('font', family='sans-serif', serif='Arial')
-#    plt.rc('figure', figsize = (12, 8))
-#    
-#    def plotter(old_ED_X, all_candidates, exploration_scores):
-#        global Bounds
-#        
-#        from scipy.spatial import Voronoi, voronoi_plot_2d
-#        vor = Voronoi(old_ED_X)
-#        
-#        fig = voronoi_plot_2d(vor)
-#        
-#        # find min/max values for normalization
-##        minima = min(exploration_scores)
-##        maxima = max(exploration_scores)
-##        
-##        # normalize chosen colormap
-##        norm = mpl.colors.Normalize(vmin=minima, vmax=maxima, clip=True)
-##        mapper = cm.ScalarMappable(norm=norm, cmap=cm.Blues_r)
-##        
-##        for r in range(len(vor.point_region)):
-##            region = vor.regions[vor.point_region[r]]
-##            if not -1 in region:
-##                polygon = [vor.vertices[i] for i in region]
-##                plt.fill(*zip(*polygon), color=mapper.to_rgba(exploration_scores[r]))
-#        
-#        
-#        ax1 = fig.add_subplot(111)
-#        
-#        ax1.scatter(old_ED_X[:,0], old_ED_X[:,1], s=10, c='r', marker="s", label='Old Design Points')
-#        for i in range(old_ED_X.shape[0]):
-#            txt = 'p'+str(i+1)
-#            ax1.annotate(txt, (old_ED_X[i,0],old_ED_X[i,1]))
-#            
-##        for i in range(NrofCandGroups):
-##            Candidates = all_candidates['group_'+str(i+1)]
-##            ax1.scatter(Candidates[:,0],Candidates[:,1], s=10, c='b', marker="o", label='Design candidates')
-#        ax1.scatter(all_candidates[:,0],all_candidates[:,1], s=10, c='b', marker="o", label='Design candidates')
-#        
-#        ax1.set_xlim(Bounds[0][0], Bounds[0][1])
-#        ax1.set_ylim(Bounds[1][0], Bounds[1][1])
-#        
-#        plt.legend(loc='best');
-#        plt.show()
-#        
-#    def voronoi_volumes(points):
-#        from scipy.spatial import Voronoi, ConvexHull
-#        v = Voronoi(points)
-#        vol = np.zeros(v.npoints)
-#        
-#        for i, reg_num in enumerate(v.point_region):
-#            indices = v.regions[reg_num]
-#            if -1 in indices: # some regions can be opened
-#                vol[i] = np.inf
-#            else:
-#                
-#                #print("reg_num={0: 3.3f} X1={1: 3.3f} X2={2: 3.3f}".format(reg_num, v.points[reg_num-1, 0], v.points[reg_num-1, 1]))
-#                vol[i] = ConvexHull(v.vertices[indices]).volume
-#        
-#        print('-'*40)
-#        for i in range(nrofSamples):
-#            print("idx={0:d} X1={1: 3.3f} X2={2: 3.3f} Volume={3: 3.3f}".format(i+1, v.points[i, 0], v.points[i, 1], vol[i]))
-#        
-#        return vol    
-#    
-#    NofPa = 2
-#    
-#    Bounds = ((-5,10), (0,15))
-#    
-#    nrofSamples = 10
-#    old_ED_X = np.zeros((nrofSamples, NofPa))
-#    for idx in range(NofPa):
-#        Loc = Bounds[idx][0]
-#        Scale = Bounds[idx][1] - Bounds[idx][0]
-#        old_ED_X[:,idx] = stats.uniform(loc=Loc, scale=Scale).rvs(size=nrofSamples)
-#    
-#    
-#    nNewCandidate = 40
-#    
-#    # New Function
-#    volumes = voronoi_volumes(old_ED_X)
-#    
-#    
-#    # SUMO
-#    Exploration = Exploration(Bounds, old_ED_X, nNewCandidate)
-#    
-#    #all_candidates, Score = Exploration.get_vornoi_samples()
-#    all_candidates, Score = Exploration.get_mc_samples()
-#    
-#    print('-'*40)
-##    for i in range(nrofSamples):
-##        print("idx={0:d} X1={1: 3.3f} X2={2: 3.3f} Volume={3: 3.3f}".format(i+1, old_ED_X[i,0], old_ED_X[i,1], vornoi.areas[i]))
-#        
-#    plotter(old_ED_X, all_candidates, volumes)
-    
diff --git a/src/bayesvalidrox/surrogate_models/glexindex.py b/src/bayesvalidrox/surrogate_models/glexindex.py
index 6d9ba3c2f3c02be8e2ca04be6f95779ed0825ad8..90877331ec121750e7f81e32a4b69edbc9a110ba 100644
--- a/src/bayesvalidrox/surrogate_models/glexindex.py
+++ b/src/bayesvalidrox/surrogate_models/glexindex.py
@@ -58,16 +58,8 @@ def glexindex(start, stop=None, dimensions=1, cross_truncation=1.,
     start, stop, _ = numpy.broadcast_arrays(start, stop, numpy.empty(dimensions))
 
     cross_truncation = cross_truncation*numpy.ones(2)
-    indices = _glexindex(start, stop, cross_truncation)
-    if indices.size:
-        indices = indices[glexsort(indices.T, graded=graded, reverse=reverse)]
-    return indices
-
-
-def _glexindex(start, stop, cross_truncation=1.):
-    """Backend for the glexindex function."""
-    # At the beginning the current list of indices just ranges over the
-    # last dimension.
+    
+    # Moved here from _glexindex
     bound = stop.max()
     dimensions = len(start)
     start = numpy.clip(start, a_min=0, a_max=None)
@@ -100,8 +92,21 @@ def _glexindex(start, stop, cross_truncation=1.):
         upper = cross_truncate(indices, stop-1, cross_truncation[1])
         indices = indices[lower ^ upper]
 
-    return numpy.array(indices, dtype=int).reshape(-1, dimensions)
-
+    indices = numpy.array(indices, dtype=int).reshape(-1, dimensions)
+    if indices.size:
+        # moved here from glexsort
+        keys = indices.T
+        keys_ = numpy.atleast_2d(keys)
+        if reverse:
+            keys_ = keys_[::-1]
+    
+        indices_sort = numpy.array(numpy.lexsort(keys_))
+        if graded:
+            indices_sort = indices_sort[numpy.argsort(
+                numpy.sum(keys_[:, indices_sort], axis=0))].T
+        
+        indices = indices[indices_sort]
+    return indices
 
 def cross_truncate(indices, bound, norm):
     r"""
@@ -154,57 +159,3 @@ def cross_truncate(indices, bound, norm):
     assert numpy.all(out[numpy.all(indices == 0, axis=-1)])
 
     return out
-
-
-def glexsort(
-    keys: numpy.typing.ArrayLike,
-    graded: bool = False,
-    reverse: bool = False,
-) -> numpy.ndarray:
-    """
-    Sort keys using graded lexicographical ordering.
-    Same as ``numpy.lexsort``, but also support graded and reverse
-    lexicographical ordering.
-    Args:
-        keys:
-            Values to sort.
-        graded:
-            Graded sorting, meaning the indices are always sorted by the index
-            sum. E.g. ``(2, 2, 2)`` has a sum of 6, and will therefore be
-            consider larger than both ``(3, 1, 1)`` and ``(1, 1, 3)``.
-        reverse:
-            Reverse lexicographical sorting meaning that ``(1, 3)`` is
-            considered smaller than ``(3, 1)``, instead of the opposite.
-    Returns:
-        Array of indices that sort the keys along the specified axis.
-    Examples:
-        >>> indices = numpy.array([[0, 0, 0, 1, 2, 1],
-        ...                        [1, 2, 0, 0, 0, 1]])
-        >>> indices[:, numpy.lexsort(indices)]
-        array([[0, 1, 2, 0, 1, 0],
-               [0, 0, 0, 1, 1, 2]])
-        >>> indices[:, numpoly.glexsort(indices)]
-        array([[0, 1, 2, 0, 1, 0],
-               [0, 0, 0, 1, 1, 2]])
-        >>> indices[:, numpoly.glexsort(indices, reverse=True)]
-        array([[0, 0, 0, 1, 1, 2],
-               [0, 1, 2, 0, 1, 0]])
-        >>> indices[:, numpoly.glexsort(indices, graded=True)]
-        array([[0, 1, 0, 2, 1, 0],
-               [0, 0, 1, 0, 1, 2]])
-        >>> indices[:, numpoly.glexsort(indices, graded=True, reverse=True)]
-        array([[0, 0, 1, 0, 1, 2],
-               [0, 1, 0, 2, 1, 0]])
-        >>> indices = numpy.array([4, 5, 6, 3, 2, 1])
-        >>> indices[numpoly.glexsort(indices)]
-        array([1, 2, 3, 4, 5, 6])
-    """
-    keys_ = numpy.atleast_2d(keys)
-    if reverse:
-        keys_ = keys_[::-1]
-
-    indices = numpy.array(numpy.lexsort(keys_))
-    if graded:
-        indices = indices[numpy.argsort(
-            numpy.sum(keys_[:, indices], axis=0))].T
-    return indices
diff --git a/src/bayesvalidrox/surrogate_models/input_space.py b/src/bayesvalidrox/surrogate_models/input_space.py
new file mode 100644
index 0000000000000000000000000000000000000000..9576462d8de15b292aa6210072c905fca68a2382
--- /dev/null
+++ b/src/bayesvalidrox/surrogate_models/input_space.py
@@ -0,0 +1,411 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Input space built from set prior distributions
+"""
+
+import numpy as np
+import chaospy
+import scipy.stats as st
+from tqdm import tqdm
+
+
+# noinspection SpellCheckingInspection
+class InputSpace:
+    """
+    This class generates the input space for the metamodel from the
+    distributions provided using the `Input` object.
+
+    Attributes
+    ----------
+    Input : obj
+        Input object containing the parameter marginals, i.e. name,
+        distribution type and distribution parameters or available raw data.
+    meta_Model_type : str
+        Type of the meta_Model_type.
+
+    """
+
+    def __init__(self, input_object, meta_Model_type='pce'):
+        self.InputObj = input_object
+        self.meta_Model_type = meta_Model_type
+
+        # Other 
+        self.apce = None
+        self.bound_tuples = None
+        self.input_data_given = None
+        self.JDist = None
+        self.MCSize = None
+        self.ndim = None
+        self.origJDist = None
+        self.par_names = None
+        self.poly_types = None
+        self.prior_space = None
+        self.raw_data = None
+
+        # Init 
+        self.check_valid_inputs()
+
+    def check_valid_inputs(self) -> None:
+        """
+        Check if the given InputObj is valid to use for further calculations:
+        1) Has some Marginals
+        2) The Marginals have valid priors
+        3) All Marginals given as the same type (samples vs dist)
+
+        Returns
+        -------
+        None
+
+        """
+        Inputs = self.InputObj
+        self.ndim = len(Inputs.Marginals)
+
+        # Check if PCE or aPCE metamodel is selected.
+        # TODO: test also for 'pce'??
+        if self.meta_Model_type.lower() == 'apce':
+            self.apce = True
+        else:
+            self.apce = False
+
+        # check if marginals given 
+        if not self.ndim >= 1:
+            raise AssertionError('Cannot build distributions if no marginals are given')
+
+        # check that each marginal is valid
+        for marginals in Inputs.Marginals:
+            if len(marginals.input_data) == 0:
+                if marginals.dist_type is None:
+                    raise AssertionError('Not all marginals were provided priors')
+            if np.array(marginals.input_data).shape[0] and (marginals.dist_type is not None):
+                raise AssertionError('Both samples and distribution type are given. Please choose only one.')
+
+        # Check if input is given as dist or input_data.
+        self.input_data_given = -1
+        for marg in Inputs.Marginals:
+            size = np.array(marg.input_data).shape[0]
+            if size and abs(self.input_data_given) != 1:
+                self.input_data_given = 2
+                break
+            if (not size) and self.input_data_given > 0:
+                self.input_data_given = 2
+                break
+            if not size:
+                self.input_data_given = 0
+            if size:
+                self.input_data_given = 1
+
+        if self.input_data_given == 2:
+            raise AssertionError('Distributions cannot be built as the priors have different types')
+
+        # Get the bounds if input_data are directly defined by user:
+        if self.input_data_given:
+            for i in range(self.ndim):
+                low_bound = np.min(Inputs.Marginals[i].input_data)
+                up_bound = np.max(Inputs.Marginals[i].input_data)
+                Inputs.Marginals[i].parameters = [low_bound, up_bound]
+
+    # -------------------------------------------------------------------------
+    def init_param_space(self, max_deg=None):
+        """
+        Initializes parameter space.
+
+        Parameters
+        ----------
+        max_deg : int, optional
+            Maximum degree. The default is `None`.
+
+        Returns
+        -------
+        raw_data : array of shape (n_params, n_samples)
+            Raw data.
+        bound_tuples : list of tuples
+            A list containing lower and upper bounds of parameters.
+
+        """
+        # Recheck all before running!
+        self.check_valid_inputs()
+
+        Inputs = self.InputObj
+        ndim = self.ndim
+        rosenblatt_flag = Inputs.Rosenblatt
+        mc_size = 50000
+
+        # Save parameter names
+        self.par_names = []
+        for parIdx in range(ndim):
+            self.par_names.append(Inputs.Marginals[parIdx].name)
+
+        # Create a multivariate probability distribution
+        # TODO: change this to make max_deg obligatory? at least in some specific cases?
+        if max_deg is not None:
+            JDist, poly_types = self.build_polytypes(rosenblatt=rosenblatt_flag)
+            self.JDist, self.poly_types = JDist, poly_types
+
+        if self.input_data_given:
+            self.MCSize = len(Inputs.Marginals[0].input_data)
+            self.raw_data = np.zeros((ndim, self.MCSize))
+
+            for parIdx in range(ndim):
+                # Save parameter names
+                try:
+                    self.raw_data[parIdx] = np.array(
+                        Inputs.Marginals[parIdx].input_data)
+                except:
+                    self.raw_data[parIdx] = self.JDist[parIdx].sample(mc_size)
+
+        else:
+            # Generate random samples based on parameter distributions
+            self.raw_data = chaospy.generate_samples(mc_size,
+                                                     domain=self.JDist)
+
+        # Extract moments
+        for parIdx in range(ndim):
+            mu = np.mean(self.raw_data[parIdx])
+            std = np.std(self.raw_data[parIdx])
+            self.InputObj.Marginals[parIdx].moments = [mu, std]
+
+        # Generate the bounds based on given inputs for marginals
+        bound_tuples = []
+        for i in range(ndim):
+            if Inputs.Marginals[i].dist_type == 'unif':
+                low_bound = Inputs.Marginals[i].parameters[0]
+                up_bound = Inputs.Marginals[i].parameters[1]
+            else:
+                low_bound = np.min(self.raw_data[i])
+                up_bound = np.max(self.raw_data[i])
+
+            bound_tuples.append((low_bound, up_bound))
+
+        self.bound_tuples = tuple(bound_tuples)
+
+    # -------------------------------------------------------------------------
+    def build_polytypes(self, rosenblatt):
+        """
+        Creates the polynomial types to be passed to univ_basis_vals method of
+        the MetaModel object.
+
+        Parameters
+        ----------
+        rosenblatt : bool
+            Rosenblatt transformation flag.
+
+        Returns
+        -------
+        orig_space_dist : object
+            A chaospy JDist object or a gaussian_kde object.
+        poly_types : list
+            A list of polynomial types for the parameters.
+
+        """
+        Inputs = self.InputObj
+
+        all_data = []
+        all_dist_types = []
+        orig_joints = []
+        poly_types = []
+        params = None
+
+        for parIdx in range(self.ndim):
+
+            if Inputs.Marginals[parIdx].dist_type is None:
+                data = Inputs.Marginals[parIdx].input_data
+                all_data.append(data)
+                dist_type = None
+            else:
+                dist_type = Inputs.Marginals[parIdx].dist_type
+                params = Inputs.Marginals[parIdx].parameters
+
+            if rosenblatt:
+                polytype = 'hermite'
+                dist = chaospy.Normal()
+
+            elif dist_type is None:
+                polytype = 'arbitrary'
+                dist = None
+
+            elif 'unif' in dist_type.lower():
+                polytype = 'legendre'
+                if not np.array(params).shape[0] >= 2:
+                    raise AssertionError('Distribution has too few parameters!')
+                dist = chaospy.Uniform(lower=params[0], upper=params[1])
+
+            elif 'norm' in dist_type.lower() and \
+                    'log' not in dist_type.lower():
+                if not np.array(params).shape[0] >= 2:
+                    raise AssertionError('Distribution has too few parameters!')
+                polytype = 'hermite'
+                dist = chaospy.Normal(mu=params[0], sigma=params[1])
+
+            elif 'gamma' in dist_type.lower():
+                polytype = 'laguerre'
+                if not np.array(params).shape[0] >= 3:
+                    raise AssertionError('Distribution has too few parameters!')
+                dist = chaospy.Gamma(shape=params[0],
+                                     scale=params[1],
+                                     shift=params[2])
+
+            elif 'beta' in dist_type.lower():
+                if not np.array(params).shape[0] >= 4:
+                    raise AssertionError('Distribution has too few parameters!')
+                polytype = 'jacobi'
+                dist = chaospy.Beta(alpha=params[0], beta=params[1],
+                                    lower=params[2], upper=params[3])
+
+            elif 'lognorm' in dist_type.lower():
+                polytype = 'hermite'
+                if not np.array(params).shape[0] >= 2:
+                    raise AssertionError('Distribution has too few parameters!')
+                mu = np.log(params[0] ** 2 / np.sqrt(params[0] ** 2 + params[1] ** 2))
+                sigma = np.sqrt(np.log(1 + params[1] ** 2 / params[0] ** 2))
+                dist = chaospy.LogNormal(mu, sigma)
+                # dist = chaospy.LogNormal(mu=params[0], sigma=params[1])
+
+            elif 'expon' in dist_type.lower():
+                polytype = 'exponential'
+                if not np.array(params).shape[0] >= 2:
+                    raise AssertionError('Distribution has too few parameters!')
+                dist = chaospy.Exponential(scale=params[0], shift=params[1])
+
+            elif 'weibull' in dist_type.lower():
+                polytype = 'weibull'
+                if not np.array(params).shape[0] >= 3:
+                    raise AssertionError('Distribution has too few parameters!')
+                dist = chaospy.Weibull(shape=params[0], scale=params[1],
+                                       shift=params[2])
+
+            else:
+                message = (f"DistType {dist_type} for parameter"
+                           f"{parIdx + 1} is not available.")
+                raise ValueError(message)
+
+            if self.input_data_given or self.apce:
+                polytype = 'arbitrary'
+
+            # Store dists and poly_types
+            orig_joints.append(dist)
+            poly_types.append(polytype)
+            all_dist_types.append(dist_type)
+
+        # Prepare final output to return
+        if None in all_dist_types:
+            # Naive approach: Fit a gaussian kernel to the provided data
+            Data = np.asarray(all_data)
+            try:
+                orig_space_dist = st.gaussian_kde(Data)
+            except:
+                raise ValueError('The samples provided to the Marginals should be 1D only')
+            self.prior_space = orig_space_dist
+        else:
+            orig_space_dist = chaospy.J(*orig_joints)
+            try:
+                self.prior_space = st.gaussian_kde(orig_space_dist.sample(10000))
+            except:
+                raise ValueError('Parameter values are not valid, please set differently')
+
+        return orig_space_dist, poly_types
+
+    # -------------------------------------------------------------------------
+    def transform(self, X, params=None, method=None):
+        """
+        Transforms the samples via either a Rosenblatt or an isoprobabilistic
+        transformation.
+
+        Parameters
+        ----------
+        X : array of shape (n_samples,n_params)
+            Samples to be transformed.
+        params : list
+            Parameters for laguerre/gamma-type distribution.
+        method : string
+            If transformation method is 'user' transform X, else just pass X.
+
+        Returns
+        -------
+        tr_X: array of shape (n_samples,n_params)
+            Transformed samples.
+
+        """
+        # Check for built JDist
+        if self.JDist is None:
+            raise AttributeError('Call function init_param_space first to create JDist')
+
+        # Check if X is 2d
+        if X.ndim != 2:
+            raise AttributeError('X should have two dimensions')
+
+        # Check if size of X matches Marginals
+        if X.shape[1] != self.ndim:
+            raise AttributeError(
+                'The second dimension of X should be the same size as the number of marginals in the InputObj')
+
+        if self.InputObj.Rosenblatt:
+            self.origJDist, _ = self.build_polytypes(False)
+            if method == 'user':
+                tr_X = self.JDist.inv(self.origJDist.fwd(X.T)).T
+            else:
+                # Inverse to original spcace -- generate sample ED
+                tr_X = self.origJDist.inv(self.JDist.fwd(X.T)).T
+        else:
+            # Transform samples via an isoprobabilistic transformation
+            n_samples, n_params = X.shape
+            Inputs = self.InputObj
+            origJDist = self.JDist
+            poly_types = self.poly_types
+
+            disttypes = []
+            for par_i in range(n_params):
+                disttypes.append(Inputs.Marginals[par_i].dist_type)
+
+            # Pass non-transformed X, if arbitrary PCE is selected.
+            if None in disttypes or self.input_data_given or self.apce:
+                return X
+
+            cdfx = np.zeros(X.shape)
+            tr_X = np.zeros(X.shape)
+
+            # TODO: this transformation takes quite a while,
+            #       especially for many samples to transform, can it be improved?
+            for par_i in range(n_params):#tqdm(range(n_params),
+                         #     desc='Transforming the input samples'):
+
+                # Extract the parameters of the original space
+                disttype = disttypes[par_i]
+                if disttype is not None:
+                    dist = origJDist[par_i]
+                else:
+                    dist = None
+                polytype = poly_types[par_i]
+                cdf = np.vectorize(lambda x: dist.cdf(x))
+
+                # Extract the parameters of the transformation space based on
+                # polyType
+                inv_cdf = None
+                if polytype == 'legendre' or disttype == 'uniform':
+                    # Generate Y_Dists based
+                    params_Y = [-1, 1]
+                    dist_Y = st.uniform(loc=params_Y[0],
+                                        scale=params_Y[1] - params_Y[0])
+                    inv_cdf = np.vectorize(lambda x: dist_Y.ppf(x))
+
+                elif polytype == 'hermite' or disttype == 'norm':
+                    params_Y = [0, 1]
+                    dist_Y = st.norm(loc=params_Y[0], scale=params_Y[1])
+                    inv_cdf = np.vectorize(lambda x: dist_Y.ppf(x))
+
+                elif polytype == 'laguerre' or disttype == 'gamma':
+                    if params is None:
+                        raise AttributeError('Additional parameters have to be set for the gamma distribution!')
+                    params_Y = [1, params[1]]
+
+                    # TOOD: update the call to the gamma function, seems like source code has been changed!
+                    dist_Y = st.gamma(loc=params_Y[0], scale=params_Y[1])
+                    inv_cdf = np.vectorize(lambda x: dist_Y.ppf(x))
+
+                # Compute CDF_x(X)
+                cdfx[:, par_i] = cdf(X[:, par_i])
+
+                # Compute invCDF_y(cdfx)
+                tr_X[:, par_i] = inv_cdf(cdfx[:, par_i])
+
+        return tr_X
diff --git a/src/bayesvalidrox/surrogate_models/inputs.py b/src/bayesvalidrox/surrogate_models/inputs.py
index 783e82b053cc458be712b588b7fde3a0f3c8decb..40ae36337fa84c0bb9758e488f983ba29cdb9e77 100644
--- a/src/bayesvalidrox/surrogate_models/inputs.py
+++ b/src/bayesvalidrox/surrogate_models/inputs.py
@@ -1,5 +1,9 @@
 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
+"""
+Inputs and related marginal distributions
+"""
+
 
 class Input:
     """
@@ -17,17 +21,18 @@ class Input:
     -------
     Marginals can be defined as following:
 
-    >>> Inputs.add_marginals()
-    >>> Inputs.Marginals[0].name = 'X_1'
-    >>> Inputs.Marginals[0].dist_type = 'uniform'
-    >>> Inputs.Marginals[0].parameters = [-5, 5]
+    >>> inputs = Inputs()
+    >>> inputs.add_marginals()
+    >>> inputs.Marginals[0].name = 'X_1'
+    >>> inputs.Marginals[0].dist_type = 'uniform'
+    >>> inputs.Marginals[0].parameters = [-5, 5]
 
     If there is no common data is avaliable, the input data can be given
     as following:
 
-    >>> Inputs.add_marginals()
-    >>> Inputs.Marginals[0].name = 'X_1'
-    >>> Inputs.Marginals[0].input_data = input_data
+    >>> inputs.add_marginals()
+    >>> inputs.Marginals[0].name = 'X_1'
+    >>> inputs.Marginals[0].input_data = [0,0,1,0]
     """
     poly_coeffs_flag = True
 
@@ -60,12 +65,12 @@ class Marginal:
     dist_type : string
         Name of the distribution. The default is `None`.
     parameters : list
-        List of the parameters corresponding to the distribution type. The
+        Parameters corresponding to the distribution type. The
         default is `None`.
     input_data : array
         Available input data. The default is `[]`.
     moments : list
-        List of the moments.
+        Moments of the distribution. The default is `None`.
     """
 
     def __init__(self):
diff --git a/src/bayesvalidrox/surrogate_models/orthogonal_matching_pursuit.py b/src/bayesvalidrox/surrogate_models/orthogonal_matching_pursuit.py
index d4f99b8a19bb5dbdf41f093bd454c80c63a321bb..96ef9c1d50b10b587ad0846d41733fc7f1cedfe8 100644
--- a/src/bayesvalidrox/surrogate_models/orthogonal_matching_pursuit.py
+++ b/src/bayesvalidrox/surrogate_models/orthogonal_matching_pursuit.py
@@ -282,7 +282,7 @@ class OrthogonalMatchingPursuit(LinearModel, RegressorMixin):
         # only the trace is, to save memory)
         PsiM = np.dot(psi, inv_inf_matrix)
 
-        h = np.sum(np.multiply(PsiM, psi), axis=1, dtype=np.float128)
+        h = np.sum(np.multiply(PsiM, psi), axis=1, dtype=np.longdouble)
 
         # ------ Calculate Error Loocv for each measurement point ----
         # Residuals
diff --git a/src/bayesvalidrox/surrogate_models/reg_fast_ard.py b/src/bayesvalidrox/surrogate_models/reg_fast_ard.py
index 44073da8e78642ba3b3914f6ce55a2d01986b1f1..fdd0ee7470dc5d0bdccd354cee16f6257ec01b02 100755
--- a/src/bayesvalidrox/surrogate_models/reg_fast_ard.py
+++ b/src/bayesvalidrox/surrogate_models/reg_fast_ard.py
@@ -236,7 +236,7 @@ class RegressionFastARD(LinearModel, RegressorMixin):
             self.var_y = False
 
         A = np.PINF * np.ones(n_features)
-        active = np.zeros(n_features, dtype=np.bool)
+        active = np.zeros(n_features, dtype=bool)
 
         if self.start is not None and not hasattr(self, 'active_'):
             start = self.start
@@ -286,9 +286,9 @@ class RegressionFastARD(LinearModel, RegressorMixin):
             # raise warning in case cholesky fails
             if warning_flag == 1:
                 warnings.warn(("Cholesky decomposition failed! Algorithm uses "
-                               "pinvh, which is significantly slower, if you "
+                               "pinvh, which is significantly slower. If you "
                                "use RVR it is advised to change parameters of "
-                               "kernel"))
+                               "the kernel!"))
 
             # compute quality & sparsity parameters
             s, q, S, Q = self._sparsity_quality(XX, XXd, XY, XYa, Aa, Ri,
@@ -319,7 +319,7 @@ class RegressionFastARD(LinearModel, RegressorMixin):
 
             if converged or i == self.n_iter - 1:
                 if converged and self.verbose:
-                    print('Algorithm converged !')
+                    print('Algorithm converged!')
                 break
 
         # after last update of alpha & beta update parameters
diff --git a/src/bayesvalidrox/surrogate_models/reg_fast_laplace.py b/src/bayesvalidrox/surrogate_models/reg_fast_laplace.py
index bdff324ede818a42d226e9aa55aaf01666ca8fc8..7fdcb5cf6e93c396d32eae2b0aad87a194a9cba4 100644
--- a/src/bayesvalidrox/surrogate_models/reg_fast_laplace.py
+++ b/src/bayesvalidrox/surrogate_models/reg_fast_laplace.py
@@ -75,7 +75,7 @@ class RegressionFastLaplace():
 
     def _center_data(self, X, y):
         ''' Centers data'''
-        X = as_float_array(X, self.copy_X)
+        X = as_float_array(X, copy = self.copy_X)
 
         # normalisation should be done in preprocessing!
         X_std = np.ones(X.shape[1], dtype=X.dtype)
@@ -307,7 +307,7 @@ class RegressionFastLaplace():
                 # recomputation
                 # zero if regressor has not been chosen yet
                 if not ind_global_to_local[ind_L_max]:
-                    raise Exception('cannot recompute index{0} -- not yet\
+                    raise Exception('Cannot recompute index{0} -- not yet\
                                     part of the model!'.format(ind_L_max))
                 Sigma = np.atleast_2d(Sigma)
                 mu = np.atleast_2d(mu)
diff --git a/src/bayesvalidrox/surrogate_models/sequential_design.py b/src/bayesvalidrox/surrogate_models/sequential_design.py
deleted file mode 100644
index fc81dcd4529ca0708dfba47385aef4415992eb3e..0000000000000000000000000000000000000000
--- a/src/bayesvalidrox/surrogate_models/sequential_design.py
+++ /dev/null
@@ -1,2187 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-Created on Fri Jan 28 09:21:18 2022
-
-@author: farid
-"""
-import numpy as np
-from scipy import stats, signal, linalg, sparse
-from scipy.spatial import distance
-from copy import deepcopy, copy
-from tqdm import tqdm
-import scipy.optimize as opt
-from sklearn.metrics import mean_squared_error
-import multiprocessing
-import matplotlib.pyplot as plt
-import sys
-import os
-import gc
-import seaborn as sns
-from joblib import Parallel, delayed
-import resource
-from .exploration import Exploration
-
-
-class SeqDesign():
-    """ Sequential experimental design
-    This class provieds method for trainig the meta-model in an iterative
-    manners.
-    The main method to execute the task is `train_seq_design`, which
-      recieves a model object and returns the trained metamodel.
-    """
-
-    # -------------------------------------------------------------------------
-    def train_seq_design(self, MetaModel):
-        """
-        Starts the adaptive sequential design for refining the surrogate model
-        by selecting training points in a sequential manner.
-
-        Parameters
-        ----------
-        Model : object
-            An object containing all model specifications.
-
-        Returns
-        -------
-        MetaModel : object
-            Meta model object.
-
-        """
-        # MetaModel = self
-        Model = MetaModel.ModelObj
-        self.MetaModel = MetaModel
-        self.Model = Model
-
-        # Initialization
-        MetaModel.SeqModifiedLOO = {}
-        MetaModel.seqValidError = {}
-        MetaModel.SeqBME = {}
-        MetaModel.SeqKLD = {}
-        MetaModel.SeqDistHellinger = {}
-        MetaModel.seqRMSEMean = {}
-        MetaModel.seqRMSEStd = {}
-        MetaModel.seqMinDist = []
-        pce = True if MetaModel.meta_model_type.lower() != 'gpe' else False
-        mc_ref = True if bool(Model.mc_reference) else False
-        if mc_ref:
-            Model.read_mc_reference()
-
-        if not hasattr(MetaModel, 'valid_likelihoods'):
-            MetaModel.valid_samples = []
-            MetaModel.valid_model_runs = []
-            MetaModel.valid_likelihoods = []
-
-        # Get the parameters
-        max_n_samples = MetaModel.ExpDesign.n_max_samples
-        mod_LOO_threshold = MetaModel.ExpDesign.mod_LOO_threshold
-        n_canddidate = MetaModel.ExpDesign.n_canddidate
-        post_snapshot = MetaModel.ExpDesign.post_snapshot
-        n_replication = MetaModel.ExpDesign.n_replication
-        util_func = MetaModel.ExpDesign.util_func
-        output_name = Model.Output.names
-        validError = None
-        # Handle if only one UtilityFunctions is provided
-        if not isinstance(util_func, list):
-            util_func = [MetaModel.ExpDesign.util_func]
-
-        # Read observations or MCReference
-        if len(Model.observations) != 0 or Model.meas_file is not None:
-            self.observations = Model.read_observation()
-            obs_data = self.observations
-        else:
-            obs_data = []
-            TotalSigma2 = {}
-        # ---------- Initial MetaModel ----------
-        initMetaModel = deepcopy(MetaModel)
-
-        # Validation error if validation set is provided.
-        if len(MetaModel.valid_model_runs) != 0:
-            init_rmse, init_valid_error = self.__validError(initMetaModel)
-            init_valid_error = list(init_valid_error.values())
-        else:
-            init_rmse = None
-
-        # Check if discrepancy is provided
-        if len(obs_data) != 0 and hasattr(MetaModel, 'Discrepancy'):
-            TotalSigma2 = MetaModel.Discrepancy.parameters
-
-            # Calculate the initial BME
-            out = self.__BME_Calculator(
-                initMetaModel, obs_data, TotalSigma2, init_rmse)
-            init_BME, init_KLD, init_post, init_likes, init_dist_hellinger = out
-            print(f"\nInitial BME: {init_BME:.2f}")
-            print(f"Initial KLD: {init_KLD:.2f}")
-
-            # Posterior snapshot (initial)
-            if post_snapshot:
-                parNames = MetaModel.ExpDesign.par_names
-                print('Posterior snapshot (initial) is being plotted...')
-                self.__posteriorPlot(init_post, parNames, 'SeqPosterior_init')
-
-        # Check the convergence of the Mean & Std
-        if mc_ref and pce:
-            init_rmse_mean, init_rmse_std = self.__error_Mean_Std()
-            print(f"Initial Mean and Std error: {init_rmse_mean},"
-                  f" {init_rmse_std}")
-
-        # Read the initial experimental design
-        Xinit = initMetaModel.ExpDesign.X
-        init_n_samples = len(MetaModel.ExpDesign.X)
-        initYprev = initMetaModel.ModelOutputDict
-        initLCerror = initMetaModel.LCerror
-        n_itrs = max_n_samples - init_n_samples
-
-        # Read the initial ModifiedLOO
-        if pce:
-            Scores_all, varExpDesignY = [], []
-            for out_name in output_name:
-                y = initMetaModel.ExpDesign.Y[out_name]
-                Scores_all.append(list(
-                    initMetaModel.score_dict['b_1'][out_name].values()))
-                if MetaModel.dim_red_method.lower() == 'pca':
-                    pca = MetaModel.pca['b_1'][out_name]
-                    components = pca.transform(y)
-                    varExpDesignY.append(np.var(components, axis=0))
-                else:
-                    varExpDesignY.append(np.var(y, axis=0))
-
-            Scores = [item for sublist in Scores_all for item in sublist]
-            weights = [item for sublist in varExpDesignY for item in sublist]
-            init_mod_LOO = [np.average([1-score for score in Scores],
-                                       weights=weights)]
-
-        prevMetaModel_dict = {}
-        # Replicate the sequential design
-        for repIdx in range(n_replication):
-            print(f'\n>>>> Replication: {repIdx+1}<<<<')
-
-            # To avoid changes ub original aPCE object
-            MetaModel.ExpDesign.X = Xinit
-            MetaModel.ExpDesign.Y = initYprev
-            MetaModel.LCerror = initLCerror
-
-            for util_f in util_func:
-                print(f'\n>>>> Utility Function: {util_f} <<<<')
-                # To avoid changes ub original aPCE object
-                MetaModel.ExpDesign.X = Xinit
-                MetaModel.ExpDesign.Y = initYprev
-                MetaModel.LCerror = initLCerror
-
-                # Set the experimental design
-                Xprev = Xinit
-                total_n_samples = init_n_samples
-                Yprev = initYprev
-
-                Xfull = []
-                Yfull = []
-
-                # Store the initial ModifiedLOO
-                if pce:
-                    print("\nInitial ModifiedLOO:", init_mod_LOO)
-                    SeqModifiedLOO = np.array(init_mod_LOO)
-
-                if len(MetaModel.valid_model_runs) != 0:
-                    SeqValidError = np.array(init_valid_error)
-
-                # Check if data is provided
-                if len(obs_data) != 0:
-                    SeqBME = np.array([init_BME])
-                    SeqKLD = np.array([init_KLD])
-                    SeqDistHellinger = np.array([init_dist_hellinger])
-
-                if mc_ref and pce:
-                    seqRMSEMean = np.array([init_rmse_mean])
-                    seqRMSEStd = np.array([init_rmse_std])
-
-                # ------- Start Sequential Experimental Design -------
-                postcnt = 1
-                for itr_no in range(1, n_itrs+1):
-                    print(f'\n>>>> Iteration number {itr_no} <<<<')
-
-                    # Save the metamodel prediction before updating
-                    prevMetaModel_dict[itr_no] = deepcopy(MetaModel)
-                    if itr_no > 1:
-                        pc_model = prevMetaModel_dict[itr_no-1]
-                        self._y_hat_prev, _ = pc_model.eval_metamodel(
-                            samples=Xfull[-1].reshape(1, -1))
-
-                    # Optimal Bayesian Design
-                    m_1 = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss/1024
-                    MetaModel.ExpDesignFlag = 'sequential'
-                    Xnew, updatedPrior = self.opt_SeqDesign(TotalSigma2,
-                                                            n_canddidate,
-                                                            util_f)
-                    m_2 = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss/1024
-                    S = np.min(distance.cdist(Xinit, Xnew, 'euclidean'))
-                    MetaModel.seqMinDist.append(S)
-                    print(f"\nmin Dist from OldExpDesign: {S:2f}")
-                    print("\n")
-
-                    # Evaluate the full model response at the new sample
-                    Ynew, _ = Model.run_model_parallel(
-                        Xnew, prevRun_No=total_n_samples
-                        )
-                    total_n_samples += Xnew.shape[0]
-                    # ------ Plot the surrogate model vs Origninal Model ------
-                    if hasattr(MetaModel, 'adapt_verbose') and \
-                       MetaModel.adapt_verbose:
-                        from .adaptPlot import adaptPlot
-                        y_hat, std_hat = MetaModel.eval_metamodel(samples=Xnew)
-                        adaptPlot(MetaModel, Ynew, y_hat, std_hat, plotED=False)
-
-                    # -------- Retrain the surrogate model -------
-                    # Extend new experimental design
-                    Xfull = np.vstack((Xprev, Xnew))
-
-                    # Updating experimental design Y
-                    for out_name in output_name:
-                        Yfull = np.vstack((Yprev[out_name], Ynew[out_name]))
-                        MetaModel.ModelOutputDict[out_name] = Yfull
-
-                    # Pass new design to the metamodel object
-                    MetaModel.ExpDesign.sampling_method = 'user'
-                    MetaModel.ExpDesign.X = Xfull
-                    MetaModel.ExpDesign.Y = MetaModel.ModelOutputDict
-
-                    # Save the Experimental Design for next iteration
-                    Xprev = Xfull
-                    Yprev = MetaModel.ModelOutputDict
-
-                    # Pass the new prior as the input
-                    MetaModel.input_obj.poly_coeffs_flag = False
-                    if updatedPrior is not None:
-                        MetaModel.input_obj.poly_coeffs_flag = True
-                        print("updatedPrior:", updatedPrior.shape)
-                        # Arbitrary polynomial chaos
-                        for i in range(updatedPrior.shape[1]):
-                            MetaModel.input_obj.Marginals[i].dist_type = None
-                            x = updatedPrior[:, i]
-                            MetaModel.input_obj.Marginals[i].raw_data = x
-
-                    # Train the surrogate model for new ExpDesign
-                    MetaModel.train_norm_design(parallel=False)
-                    m_3 = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss/1024
-
-                    # -------- Evaluate the retrained surrogate model -------
-                    # Extract Modified LOO from Output
-                    if pce:
-                        Scores_all, varExpDesignY = [], []
-                        for out_name in output_name:
-                            y = MetaModel.ExpDesign.Y[out_name]
-                            Scores_all.append(list(
-                                MetaModel.score_dict['b_1'][out_name].values()))
-                            if MetaModel.dim_red_method.lower() == 'pca':
-                                pca = MetaModel.pca['b_1'][out_name]
-                                components = pca.transform(y)
-                                varExpDesignY.append(np.var(components,
-                                                            axis=0))
-                            else:
-                                varExpDesignY.append(np.var(y, axis=0))
-                        Scores = [item for sublist in Scores_all for item
-                                  in sublist]
-                        weights = [item for sublist in varExpDesignY for item
-                                   in sublist]
-                        ModifiedLOO = [np.average(
-                            [1-score for score in Scores], weights=weights)]
-
-                        print('\n')
-                        print(f"Updated ModifiedLOO {util_f}:\n", ModifiedLOO)
-                        print('\n')
-
-                    # Compute the validation error
-                    if len(MetaModel.valid_model_runs) != 0:
-                        rmse, validError = self.__validError(MetaModel)
-                        ValidError = list(validError.values())
-                    else:
-                        rmse = None
-
-                    # Store updated ModifiedLOO
-                    if pce:
-                        SeqModifiedLOO = np.vstack(
-                            (SeqModifiedLOO, ModifiedLOO))
-                        if len(MetaModel.valid_model_runs) != 0:
-                            SeqValidError = np.vstack(
-                                (SeqValidError, ValidError))
-                    m_4 = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss/1024
-                    # -------- Caclulation of BME as accuracy metric -------
-                    # Check if data is provided
-                    if len(obs_data) != 0:
-                        # Calculate the initial BME
-                        out = self.__BME_Calculator(MetaModel, obs_data,
-                                                    TotalSigma2, rmse)
-                        BME, KLD, Posterior, likes, DistHellinger = out
-                        print('\n')
-                        print(f"Updated BME: {BME:.2f}")
-                        print(f"Updated KLD: {KLD:.2f}")
-                        print('\n')
-
-                        # Plot some snapshots of the posterior
-                        step_snapshot = MetaModel.ExpDesign.step_snapshot
-                        if post_snapshot and postcnt % step_snapshot == 0:
-                            parNames = MetaModel.ExpDesign.par_names
-                            print('Posterior snapshot is being plotted...')
-                            self.__posteriorPlot(Posterior, parNames,
-                                                 f'SeqPosterior_{postcnt}')
-                        postcnt += 1
-                    m_5 = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss/1024
-
-                    # Check the convergence of the Mean&Std
-                    if mc_ref and pce:
-                        print('\n')
-                        RMSE_Mean, RMSE_std = self.__error_Mean_Std()
-                        print(f"Updated Mean and Std error: {RMSE_Mean:.2f}, "
-                              f"{RMSE_std:.2f}")
-                        print('\n')
-
-                    # Store the updated BME & KLD
-                    # Check if data is provided
-                    if len(obs_data) != 0:
-                        SeqBME = np.vstack((SeqBME, BME))
-                        SeqKLD = np.vstack((SeqKLD, KLD))
-                        SeqDistHellinger = np.vstack((SeqDistHellinger,
-                                                      DistHellinger))
-                    if mc_ref and pce:
-                        seqRMSEMean = np.vstack((seqRMSEMean, RMSE_Mean))
-                        seqRMSEStd = np.vstack((seqRMSEStd, RMSE_std))
-
-                    if pce and any(LOO < mod_LOO_threshold
-                                   for LOO in ModifiedLOO):
-                        break
-
-                    print(f"Memory itr {itr_no}: I: {m_2-m_1:.2f} MB")
-                    print(f"Memory itr {itr_no}: II: {m_3-m_2:.2f} MB")
-                    print(f"Memory itr {itr_no}: III: {m_4-m_3:.2f} MB")
-                    print(f"Memory itr {itr_no}: IV: {m_5-m_4:.2f} MB")
-                    m_6 = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss/1024
-                    print(f"Memory itr {itr_no}: total: {m_6:.2f} MB")
-
-                    # Clean up
-                    if len(obs_data) != 0:
-                        del out
-                    gc.collect()
-                    print()
-                    print('-'*50)
-                    print()
-
-                # Store updated ModifiedLOO and BME in dictonary
-                strKey = f'{util_f}_rep_{repIdx+1}'
-                if pce:
-                    MetaModel.SeqModifiedLOO[strKey] = SeqModifiedLOO
-                if len(MetaModel.valid_model_runs) != 0:
-                    MetaModel.seqValidError[strKey] = SeqValidError
-
-                # Check if data is provided
-                if len(obs_data) != 0:
-                    MetaModel.SeqBME[strKey] = SeqBME
-                    MetaModel.SeqKLD[strKey] = SeqKLD
-                if len(MetaModel.valid_likelihoods) != 0:
-                    MetaModel.SeqDistHellinger[strKey] = SeqDistHellinger
-                if mc_ref and pce:
-                    MetaModel.seqRMSEMean[strKey] = seqRMSEMean
-                    MetaModel.seqRMSEStd[strKey] = seqRMSEStd
-
-        return MetaModel
-
-    # -------------------------------------------------------------------------
-    def util_VarBasedDesign(self, X_can, index, util_func='Entropy'):
-        """
-        Computes the exploitation scores based on:
-        active learning MacKay(ALM) and active learning Cohn (ALC)
-        Paper: Sequential Design with Mutual Information for Computer
-        Experiments (MICE): Emulation of a Tsunami Model by Beck and Guillas
-        (2016)
-
-        Parameters
-        ----------
-        X_can : array of shape (n_samples, n_params)
-            Candidate samples.
-        index : int
-            Model output index.
-        UtilMethod : string, optional
-            Exploitation utility function. The default is 'Entropy'.
-
-        Returns
-        -------
-        float
-            Score.
-
-        """
-        MetaModel = self.MetaModel
-        ED_X = MetaModel.ExpDesign.X
-        out_dict_y = MetaModel.ExpDesign.Y
-        out_names = MetaModel.ModelObj.Output.names
-
-        # Run the Metamodel for the candidate
-        X_can = X_can.reshape(1, -1)
-        Y_PC_can, std_PC_can = MetaModel.eval_metamodel(samples=X_can)
-
-        if util_func.lower() == 'alm':
-            # ----- Entropy/MMSE/active learning MacKay(ALM)  -----
-            # Compute perdiction variance of the old model
-            canPredVar = {key: std_PC_can[key]**2 for key in out_names}
-
-            varPCE = np.zeros((len(out_names), X_can.shape[0]))
-            for KeyIdx, key in enumerate(out_names):
-                varPCE[KeyIdx] = np.max(canPredVar[key], axis=1)
-            score = np.max(varPCE, axis=0)
-
-        elif util_func.lower() == 'eigf':
-            # ----- Expected Improvement for Global fit -----
-            # Find closest EDX to the candidate
-            distances = distance.cdist(ED_X, X_can, 'euclidean')
-            index = np.argmin(distances)
-
-            # Compute perdiction error and variance of the old model
-            predError = {key: Y_PC_can[key] for key in out_names}
-            canPredVar = {key: std_PC_can[key]**2 for key in out_names}
-
-            # Compute perdiction error and variance of the old model
-            # Eq (5) from Liu et al.(2018)
-            EIGF_PCE = np.zeros((len(out_names), X_can.shape[0]))
-            for KeyIdx, key in enumerate(out_names):
-                residual = predError[key] - out_dict_y[key][int(index)]
-                var = canPredVar[key]
-                EIGF_PCE[KeyIdx] = np.max(residual**2 + var, axis=1)
-            score = np.max(EIGF_PCE, axis=0)
-
-        return -1 * score   # -1 is for minimization instead of maximization
-
-    # -------------------------------------------------------------------------
-    def util_BayesianActiveDesign(self, X_can, sigma2Dict, var='DKL'):
-        """
-        Computes scores based on Bayesian active design criterion (var).
-
-        It is based on the following paper:
-        Oladyshkin, Sergey, Farid Mohammadi, Ilja Kroeker, and Wolfgang Nowak.
-        "Bayesian3 active learning for the gaussian process emulator using
-        information theory." Entropy 22, no. 8 (2020): 890.
-
-        Parameters
-        ----------
-        X_can : array of shape (n_samples, n_params)
-            Candidate samples.
-        sigma2Dict : dict
-            A dictionary containing the measurement errors (sigma^2).
-        var : string, optional
-            BAL design criterion. The default is 'DKL'.
-
-        Returns
-        -------
-        float
-            Score.
-
-        """
-
-        # Evaluate the PCE metamodels at that location ???
-        Y_mean_can, Y_std_can = self.MetaModel.eval_metamodel(
-            samples=np.array([X_can])
-            )
-
-        # Get the data
-        obs_data = self.observations
-        n_obs = self.Model.n_obs
-        # TODO: Analytical DKL
-        # Sample a distribution for a normal dist
-        # with Y_mean_can as the mean and Y_std_can as std.
-
-        # priorMean, priorSigma2, Obs = np.empty((0)),np.empty((0)),np.empty((0))
-
-        # for key in list(Y_mean_can):
-        #     # concatenate the measurement error
-        #     Obs = np.hstack((Obs,ObservationData[key]))
-
-        #     # concatenate the mean and variance of prior predictive
-        #     means, stds = Y_mean_can[key][0], Y_std_can[key][0]
-        #     priorMean = np.hstack((priorSigma2,means))
-        #     priorSigma2 = np.hstack((priorSigma2,stds**2))
-
-        # # Covariance Matrix of prior
-        # covPrior = np.zeros((priorSigma2.shape[0], priorSigma2.shape[0]), float)
-        # np.fill_diagonal(covPrior, priorSigma2)
-
-        # # Covariance Matrix of Likelihood
-        # covLikelihood = np.zeros((sigma2Dict.shape[0], sigma2Dict.shape[0]), float)
-        # np.fill_diagonal(covLikelihood, sigma2Dict)
-
-        # # Calculate moments of the posterior (Analytical derivation)
-        # n = priorSigma2.shape[0]
-        # covPost = np.dot(np.dot(covPrior,np.linalg.inv(covPrior+(covLikelihood/n))),covLikelihood/n)
-
-        # meanPost = np.dot(np.dot(covPrior,np.linalg.inv(covPrior+(covLikelihood/n))) , Obs) + \
-        #             np.dot(np.dot(covPrior,np.linalg.inv(covPrior+(covLikelihood/n))),
-        #                     priorMean/n)
-        # # Compute DKL from prior to posterior
-        # term1 = np.trace(np.dot(np.linalg.inv(covPrior),covPost))
-        # deltaMean = priorMean-meanPost
-        # term2 = np.dot(np.dot(deltaMean,np.linalg.inv(covPrior)),deltaMean[:,None])
-        # term3 = np.log(np.linalg.det(covPrior)/np.linalg.det(covPost))
-        # DKL = 0.5 * (term1 + term2 - n + term3)[0]
-
-        # ---------- Inner MC simulation for computing Utility Value ----------
-        # Estimation of the integral via Monte Varlo integration
-        MCsize = 20000
-        ESS = 0
-
-        while ((ESS > MCsize) or (ESS < 1)):
-
-            # Sample a distribution for a normal dist
-            # with Y_mean_can as the mean and Y_std_can as std.
-            Y_MC, std_MC = {}, {}
-            logPriorLikelihoods = np.zeros((MCsize))
-            for key in list(Y_mean_can):
-                means, stds = Y_mean_can[key][0], Y_std_can[key][0]
-                # cov = np.zeros((means.shape[0], means.shape[0]), float)
-                # np.fill_diagonal(cov, stds**2)
-
-                Y_MC[key] = np.zeros((MCsize, n_obs))
-                logsamples = np.zeros((MCsize, n_obs))
-                for i in range(n_obs):
-                    NormalDensity = stats.norm(means[i], stds[i])
-                    Y_MC[key][:, i] = NormalDensity.rvs(MCsize)
-                    logsamples[:, i] = NormalDensity.logpdf(Y_MC[key][:, i])
-
-                logPriorLikelihoods = np.sum(logsamples, axis=1)
-                std_MC[key] = np.zeros((MCsize, means.shape[0]))
-
-            #  Likelihood computation (Comparison of data and simulation
-            #  results via PCE with candidate design)
-            likelihoods = self.__normpdf(Y_MC, std_MC, obs_data, sigma2Dict)
-
-            # Check the Effective Sample Size (1<ESS<MCsize)
-            ESS = 1 / np.sum(np.square(likelihoods/np.nansum(likelihoods)))
-
-            # Enlarge sample size if it doesn't fulfill the criteria
-            if ((ESS > MCsize) or (ESS < 1)):
-                MCsize *= 10
-                ESS = 0
-
-        # Rejection Step
-        # Random numbers between 0 and 1
-        unif = np.random.rand(1, MCsize)[0]
-
-        # Reject the poorly performed prior
-        accepted = (likelihoods/np.max(likelihoods)) >= unif
-
-        # Prior-based estimation of BME
-        logBME = np.log(np.nanmean(likelihoods))
-
-        # Posterior-based expectation of likelihoods
-        postLikelihoods = likelihoods[accepted]
-        postExpLikelihoods = np.mean(np.log(postLikelihoods))
-
-        # Posterior-based expectation of prior densities
-        postExpPrior = np.mean(logPriorLikelihoods[accepted])
-
-        # Utility function Eq.2 in Ref. (2)
-        # Posterior covariance matrix after observing data y
-        # Kullback-Leibler Divergence (Sergey's paper)
-        if var == 'DKL':
-
-            # TODO: Calculate the correction factor for BME
-            # BMECorrFactor = self.BME_Corr_Weight(PCE_SparseBayes_can,
-            #                                      ObservationData, sigma2Dict)
-            # BME += BMECorrFactor
-            # Haun et al implementation
-            # U_J_d = np.mean(np.log(Likelihoods[Likelihoods!=0])- logBME)
-            U_J_d = postExpLikelihoods - logBME
-
-        # Marginal log likelihood
-        elif var == 'BME':
-            U_J_d = logBME
-
-        # Entropy-based information gain
-        elif var == 'infEntropy':
-            logBME = np.log(np.nanmean(likelihoods))
-            infEntropy = logBME - postExpPrior - postExpLikelihoods
-            U_J_d = infEntropy * -1  # -1 for minimization
-
-        # Bayesian information criterion
-        elif var == 'BIC':
-            coeffs = self.MetaModel.coeffs_dict.values()
-            nModelParams = max(len(v) for val in coeffs for v in val.values())
-            maxL = np.nanmax(likelihoods)
-            U_J_d = -2 * np.log(maxL) + np.log(n_obs) * nModelParams
-
-        # Akaike information criterion
-        elif var == 'AIC':
-            coeffs = self.MetaModel.coeffs_dict.values()
-            nModelParams = max(len(v) for val in coeffs for v in val.values())
-            maxlogL = np.log(np.nanmax(likelihoods))
-            AIC = -2 * maxlogL + 2 * nModelParams
-            # 2 * nModelParams * (nModelParams+1) / (n_obs-nModelParams-1)
-            penTerm = 0
-            U_J_d = 1*(AIC + penTerm)
-
-        # Deviance information criterion
-        elif var == 'DIC':
-            # D_theta_bar = np.mean(-2 * Likelihoods)
-            N_star_p = 0.5 * np.var(np.log(likelihoods[likelihoods != 0]))
-            Likelihoods_theta_mean = self.__normpdf(
-                Y_mean_can, Y_std_can, obs_data, sigma2Dict
-                )
-            DIC = -2 * np.log(Likelihoods_theta_mean) + 2 * N_star_p
-
-            U_J_d = DIC
-
-        else:
-            print('The algorithm you requested has not been implemented yet!')
-
-        # Handle inf and NaN (replace by zero)
-        if np.isnan(U_J_d) or U_J_d == -np.inf or U_J_d == np.inf:
-            U_J_d = 0.0
-
-        # Clear memory
-        del likelihoods
-        del Y_MC
-        del std_MC
-        gc.collect(generation=2)
-
-        return -1 * U_J_d   # -1 is for minimization instead of maximization
-
-    # -------------------------------------------------------------------------
-    def update_metamodel(self, MetaModel, output, y_hat_can, univ_p_val, index,
-                         new_pca=False):
-        BasisIndices = MetaModel.basis_dict[output]["y_"+str(index+1)]
-        clf_poly = MetaModel.clf_poly[output]["y_"+str(index+1)]
-        Mn = clf_poly.coef_
-        Sn = clf_poly.sigma_
-        beta = clf_poly.alpha_
-        active = clf_poly.active_
-        Psi = self.MetaModel.create_psi(BasisIndices, univ_p_val)
-
-        Sn_new_inv = np.linalg.inv(Sn)
-        Sn_new_inv += beta * np.dot(Psi[:, active].T, Psi[:, active])
-        Sn_new = np.linalg.inv(Sn_new_inv)
-
-        Mn_new = np.dot(Sn_new_inv, Mn[active]).reshape(-1, 1)
-        Mn_new += beta * np.dot(Psi[:, active].T, y_hat_can)
-        Mn_new = np.dot(Sn_new, Mn_new).flatten()
-
-        # Compute the old and new moments of PCEs
-        mean_old = Mn[0]
-        mean_new = Mn_new[0]
-        std_old = np.sqrt(np.sum(np.square(Mn[1:])))
-        std_new = np.sqrt(np.sum(np.square(Mn_new[1:])))
-
-        # Back transformation if PCA is selected.
-        if MetaModel.dim_red_method.lower() == 'pca':
-            old_pca = MetaModel.pca[output]
-            mean_old = old_pca.mean_[index]
-            mean_old += np.sum(mean_old * old_pca.components_[:, index])
-            std_old = np.sqrt(np.sum(std_old**2 *
-                                     old_pca.components_[:, index]**2))
-            mean_new = new_pca.mean_[index]
-            mean_new += np.sum(mean_new * new_pca.components_[:, index])
-            std_new = np.sqrt(np.sum(std_new**2 *
-                                     new_pca.components_[:, index]**2))
-            # print(f"mean_old: {mean_old:.2f} mean_new: {mean_new:.2f}")
-            # print(f"std_old: {std_old:.2f} std_new: {std_new:.2f}")
-        # Store the old and new moments of PCEs
-        results = {
-            'mean_old': mean_old,
-            'mean_new': mean_new,
-            'std_old': std_old,
-            'std_new': std_new
-            }
-        return results
-
-    # -------------------------------------------------------------------------
-    def util_BayesianDesign_old(self, X_can, X_MC, sigma2Dict, var='DKL'):
-        """
-        Computes scores based on Bayesian sequential design criterion (var).
-
-        Parameters
-        ----------
-        X_can : array of shape (n_samples, n_params)
-            Candidate samples.
-        sigma2Dict : dict
-            A dictionary containing the measurement errors (sigma^2).
-        var : string, optional
-            Bayesian design criterion. The default is 'DKL'.
-
-        Returns
-        -------
-        float
-            Score.
-
-        """
-
-        # To avoid changes ub original aPCE object
-        Model = self.Model
-        MetaModel = deepcopy(self.MetaModel)
-        old_EDY = MetaModel.ExpDesign.Y
-
-        # Evaluate the PCE metamodels using the candidate design
-        Y_PC_can, Y_std_can = self.MetaModel.eval_metamodel(
-            samples=np.array([X_can])
-            )
-
-        # Generate y from posterior predictive
-        m_size = 100
-        y_hat_samples = {}
-        for idx, key in enumerate(Model.Output.names):
-            means, stds = Y_PC_can[key][0], Y_std_can[key][0]
-            y_hat_samples[key] = np.random.multivariate_normal(
-                means, np.diag(stds), m_size)
-
-        # Create the SparseBayes-based PCE metamodel:
-        MetaModel.input_obj.poly_coeffs_flag = False
-        univ_p_val = self.MetaModel.univ_basis_vals(X_can)
-        G_n_m_all = np.zeros((m_size, len(Model.Output.names), Model.n_obs))
-
-        for i in range(m_size):
-            for idx, key in enumerate(Model.Output.names):
-                if MetaModel.dim_red_method.lower() == 'pca':
-                    # Equal number of components
-                    new_outputs = np.vstack(
-                        (old_EDY[key], y_hat_samples[key][i])
-                        )
-                    new_pca, _ = MetaModel.pca_transformation(new_outputs)
-                    target = new_pca.transform(
-                        y_hat_samples[key][i].reshape(1, -1)
-                        )[0]
-                else:
-                    new_pca, target = False, y_hat_samples[key][i]
-
-                for j in range(len(target)):
-
-                    # Update surrogate
-                    result = self.update_metamodel(
-                        MetaModel, key, target[j], univ_p_val, j, new_pca)
-
-                    # Compute Expected Information Gain (Eq. 39)
-                    G_n_m = np.log(result['std_old']/result['std_new']) - 1./2
-                    G_n_m += result['std_new']**2 / (2*result['std_old']**2)
-                    G_n_m += (result['mean_new'] - result['mean_old'])**2 /\
-                        (2*result['std_old']**2)
-
-                    G_n_m_all[i, idx, j] = G_n_m
-
-        U_J_d = G_n_m_all.mean(axis=(1, 2)).mean()
-        return -1 * U_J_d
-
-    # -------------------------------------------------------------------------
-    def util_BayesianDesign(self, X_can, X_MC, sigma2Dict, var='DKL'):
-        """
-        Computes scores based on Bayesian sequential design criterion (var).
-
-        Parameters
-        ----------
-        X_can : array of shape (n_samples, n_params)
-            Candidate samples.
-        sigma2Dict : dict
-            A dictionary containing the measurement errors (sigma^2).
-        var : string, optional
-            Bayesian design criterion. The default is 'DKL'.
-
-        Returns
-        -------
-        float
-            Score.
-
-        """
-
-        # To avoid changes ub original aPCE object
-        Model = self.Model
-        MetaModel = deepcopy(self.MetaModel)
-        out_names = MetaModel.ModelObj.Output.names
-        if X_can.ndim == 1:
-            X_can = X_can.reshape(1, -1)
-
-        # Compute the mean and std based on the MetaModel
-        # pce_means, pce_stds = self._compute_pce_moments(MetaModel)
-        if var == 'ALC':
-            Y_MC, Y_MC_std = MetaModel.eval_metamodel(samples=X_MC)
-
-        # Old Experimental design
-        oldExpDesignX = MetaModel.ExpDesign.X
-        oldExpDesignY = MetaModel.ExpDesign.Y
-
-        # Evaluate the PCE metamodels at that location ???
-        Y_PC_can, Y_std_can = MetaModel.eval_metamodel(samples=X_can)
-
-        # Add all suggestion as new ExpDesign
-        NewExpDesignX = np.vstack((oldExpDesignX, X_can))
-
-        NewExpDesignY = {}
-        for key in oldExpDesignY.keys():
-            try:
-                NewExpDesignY[key] = np.vstack((oldExpDesignY[key],
-                                                Y_PC_can[key]))
-            except:
-                NewExpDesignY[key] = oldExpDesignY[key]
-
-        MetaModel.ExpDesign.sampling_method = 'user'
-        MetaModel.ExpDesign.X = NewExpDesignX
-        MetaModel.ExpDesign.Y = NewExpDesignY
-
-        # Train the model for the observed data using x_can
-        MetaModel.input_obj.poly_coeffs_flag = False
-        MetaModel.train_norm_design(parallel=False)
-        PCE_Model_can = MetaModel
-
-        if var.lower() == 'mi':
-            # Mutual information based on Krause et al
-            # Adapted from Beck & Guillas (MICE) paper
-            _, std_PC_can = PCE_Model_can.eval_metamodel(samples=X_can)
-            std_can = {key: std_PC_can[key] for key in out_names}
-
-            std_old = {key: Y_std_can[key] for key in out_names}
-
-            varPCE = np.zeros((len(out_names)))
-            for i, key in enumerate(out_names):
-                varPCE[i] = np.mean(std_old[key]**2/std_can[key]**2)
-            score = np.mean(varPCE)
-
-            return -1 * score
-
-        elif var.lower() == 'alc':
-            # Active learning based on Gramyc and Lee
-            # Adaptive design and analysis of supercomputer experiments Techno-
-            # metrics, 51 (2009), pp. 130–145.
-
-            # Evaluate the MetaModel at the given samples
-            Y_MC_can, Y_MC_std_can = PCE_Model_can.eval_metamodel(samples=X_MC)
-
-            # Compute the score
-            score = []
-            for i, key in enumerate(out_names):
-                pce_var = Y_MC_std_can[key]**2
-                pce_var_can = Y_MC_std[key]**2
-                score.append(np.mean(pce_var-pce_var_can, axis=0))
-            score = np.mean(score)
-
-            return -1 * score
-
-        # ---------- Inner MC simulation for computing Utility Value ----------
-        # Estimation of the integral via Monte Varlo integration
-        MCsize = X_MC.shape[0]
-        ESS = 0
-
-        while ((ESS > MCsize) or (ESS < 1)):
-
-            # Enriching Monte Carlo samples if need be
-            if ESS != 0:
-                X_MC = self.MetaModel.ExpDesign.generate_samples(
-                    MCsize, 'random'
-                    )
-
-            # Evaluate the MetaModel at the given samples
-            Y_MC, std_MC = PCE_Model_can.eval_metamodel(samples=X_MC)
-
-            # Likelihood computation (Comparison of data and simulation
-            # results via PCE with candidate design)
-            likelihoods = self.__normpdf(
-                Y_MC, std_MC, self.observations, sigma2Dict
-                )
-
-            # Check the Effective Sample Size (1<ESS<MCsize)
-            ESS = 1 / np.sum(np.square(likelihoods/np.sum(likelihoods)))
-
-            # Enlarge sample size if it doesn't fulfill the criteria
-            if ((ESS > MCsize) or (ESS < 1)):
-                print("--- increasing MC size---")
-                MCsize *= 10
-                ESS = 0
-
-        # Rejection Step
-        # Random numbers between 0 and 1
-        unif = np.random.rand(1, MCsize)[0]
-
-        # Reject the poorly performed prior
-        accepted = (likelihoods/np.max(likelihoods)) >= unif
-
-        # -------------------- Utility functions --------------------
-        # Utility function Eq.2 in Ref. (2)
-        # Kullback-Leibler Divergence (Sergey's paper)
-        if var == 'DKL':
-
-            # Prior-based estimation of BME
-            logBME = np.log(np.nanmean(likelihoods, dtype=np.float128))
-
-            # Posterior-based expectation of likelihoods
-            postLikelihoods = likelihoods[accepted]
-            postExpLikelihoods = np.mean(np.log(postLikelihoods))
-
-            # Haun et al implementation
-            U_J_d = np.mean(np.log(likelihoods[likelihoods != 0]) - logBME)
-
-            # U_J_d = np.sum(G_n_m_all)
-            # Ryan et al (2014) implementation
-            # importanceWeights = Likelihoods[Likelihoods!=0]/np.sum(Likelihoods[Likelihoods!=0])
-            # U_J_d = np.mean(importanceWeights*np.log(Likelihoods[Likelihoods!=0])) - logBME
-
-            # U_J_d = postExpLikelihoods - logBME
-
-        # Marginal likelihood
-        elif var == 'BME':
-
-            # Prior-based estimation of BME
-            logBME = np.log(np.nanmean(likelihoods))
-            U_J_d = logBME
-
-        # Bayes risk likelihood
-        elif var == 'BayesRisk':
-
-            U_J_d = -1 * np.var(likelihoods)
-
-        # Entropy-based information gain
-        elif var == 'infEntropy':
-            # Prior-based estimation of BME
-            logBME = np.log(np.nanmean(likelihoods))
-
-            # Posterior-based expectation of likelihoods
-            postLikelihoods = likelihoods[accepted] / np.nansum(likelihoods[accepted])
-            postExpLikelihoods = np.mean(np.log(postLikelihoods))
-
-            # Posterior-based expectation of prior densities
-            postExpPrior = np.mean(logPriorLikelihoods[accepted])
-
-            infEntropy = logBME - postExpPrior - postExpLikelihoods
-
-            U_J_d = infEntropy * -1  # -1 for minimization
-
-        # D-Posterior-precision
-        elif var == 'DPP':
-            X_Posterior = X_MC[accepted]
-            # covariance of the posterior parameters
-            U_J_d = -np.log(np.linalg.det(np.cov(X_Posterior)))
-
-        # A-Posterior-precision
-        elif var == 'APP':
-            X_Posterior = X_MC[accepted]
-            # trace of the posterior parameters
-            U_J_d = -np.log(np.trace(np.cov(X_Posterior)))
-
-        else:
-            print('The algorithm you requested has not been implemented yet!')
-
-        # Clear memory
-        del likelihoods
-        del Y_MC
-        del std_MC
-        gc.collect(generation=2)
-
-        return -1 * U_J_d   # -1 is for minimization instead of maximization
-
-    # -------------------------------------------------------------------------
-    def subdomain(self, Bounds, n_new_samples):
-        """
-        Divides a domain defined by Bounds into sub domains.
-
-        Parameters
-        ----------
-        Bounds : list of tuples
-            List of lower and upper bounds.
-        n_new_samples : TYPE
-            DESCRIPTION.
-
-        Returns
-        -------
-        Subdomains : TYPE
-            DESCRIPTION.
-
-        """
-        n_params = self.MetaModel.n_params
-        n_subdomains = n_new_samples + 1
-        LinSpace = np.zeros((n_params, n_subdomains))
-
-        for i in range(n_params):
-            LinSpace[i] = np.linspace(start=Bounds[i][0], stop=Bounds[i][1],
-                                      num=n_subdomains)
-        Subdomains = []
-        for k in range(n_subdomains-1):
-            mylist = []
-            for i in range(n_params):
-                mylist.append((LinSpace[i, k+0], LinSpace[i, k+1]))
-            Subdomains.append(tuple(mylist))
-
-        return Subdomains
-
-    # -------------------------------------------------------------------------
-    def run_util_func(self, method, candidates, index, sigma2Dict=None,
-                      var=None, X_MC=None):
-        """
-        Runs the utility function based on the given method.
-
-        Parameters
-        ----------
-        method : string
-            Exploitation method: `VarOptDesign`, `BayesActDesign` and
-            `BayesOptDesign`.
-        candidates : array of shape (n_samples, n_params)
-            All candidate parameter sets.
-        index : int
-            ExpDesign index.
-        sigma2Dict : dict, optional
-            A dictionary containing the measurement errors (sigma^2). The
-            default is None.
-        var : string, optional
-            Utility function. The default is None.
-        X_MC : TYPE, optional
-            DESCRIPTION. The default is None.
-
-        Returns
-        -------
-        index : TYPE
-            DESCRIPTION.
-        List
-            Scores.
-
-        """
-
-        if method.lower() == 'varoptdesign':
-            # U_J_d = self.util_VarBasedDesign(candidates, index, var)
-            U_J_d = np.zeros((candidates.shape[0]))
-            for idx, X_can in tqdm(enumerate(candidates), ascii=True,
-                                   desc="varoptdesign"):
-                U_J_d[idx] = self.util_VarBasedDesign(X_can, index, var)
-
-        elif method.lower() == 'bayesactdesign':
-            NCandidate = candidates.shape[0]
-            U_J_d = np.zeros((NCandidate))
-            for idx, X_can in tqdm(enumerate(candidates), ascii=True,
-                                   desc="OptBayesianDesign"):
-                U_J_d[idx] = self.util_BayesianActiveDesign(X_can, sigma2Dict,
-                                                            var)
-        elif method.lower() == 'bayesoptdesign':
-            NCandidate = candidates.shape[0]
-            U_J_d = np.zeros((NCandidate))
-            for idx, X_can in tqdm(enumerate(candidates), ascii=True,
-                                   desc="OptBayesianDesign"):
-                U_J_d[idx] = self.util_BayesianDesign(X_can, X_MC, sigma2Dict,
-                                                      var)
-        return (index, -1 * U_J_d)
-
-    # -------------------------------------------------------------------------
-    def dual_annealing(self, method, Bounds, sigma2Dict, var, Run_No,
-                       verbose=False):
-        """
-        Exploration algorithim to find the optimum parameter space.
-
-        Parameters
-        ----------
-        method : string
-            Exploitation method: `VarOptDesign`, `BayesActDesign` and
-            `BayesOptDesign`.
-        Bounds : list of tuples
-            List of lower and upper boundaries of parameters.
-        sigma2Dict : dict
-            A dictionary containing the measurement errors (sigma^2).
-        Run_No : int
-            Run number.
-        verbose : bool, optional
-            Print out a summary. The default is False.
-
-        Returns
-        -------
-        Run_No : int
-            Run number.
-        array
-            Optimial candidate.
-
-        """
-
-        Model = self.Model
-        max_func_itr = self.MetaModel.ExpDesign.max_func_itr
-
-        if method == 'VarOptDesign':
-            Res_Global = opt.dual_annealing(self.util_VarBasedDesign,
-                                            bounds=Bounds,
-                                            args=(Model, var),
-                                            maxfun=max_func_itr)
-
-        elif method == 'BayesOptDesign':
-            Res_Global = opt.dual_annealing(self.util_BayesianDesign,
-                                            bounds=Bounds,
-                                            args=(Model, sigma2Dict, var),
-                                            maxfun=max_func_itr)
-
-        if verbose:
-            print(f"global minimum: xmin = {Res_Global.x}, "
-                  f"f(xmin) = {Res_Global.fun:.6f}, nfev = {Res_Global.nfev}")
-
-        return (Run_No, Res_Global.x)
-
-    # -------------------------------------------------------------------------
-    def tradoff_weights(self, tradeoff_scheme, old_EDX, old_EDY):
-        """
-        Calculates weights for exploration scores based on the requested
-        scheme: `None`, `equal`, `epsilon-decreasing` and `adaptive`.
-
-        `None`: No exploration.
-        `equal`: Same weights for exploration and exploitation scores.
-        `epsilon-decreasing`: Start with more exploration and increase the
-            influence of exploitation along the way with a exponential decay
-            function
-        `adaptive`: An adaptive method based on:
-            Liu, Haitao, Jianfei Cai, and Yew-Soon Ong. "An adaptive sampling
-            approach for Kriging metamodeling by maximizing expected prediction
-            error." Computers & Chemical Engineering 106 (2017): 171-182.
-
-        Parameters
-        ----------
-        tradeoff_scheme : string
-            Trade-off scheme for exloration and exploitation scores.
-        old_EDX : array (n_samples, n_params)
-            Old experimental design (training points).
-        old_EDY : dict
-            Old model responses (targets).
-
-        Returns
-        -------
-        exploration_weight : float
-            Exploration weight.
-        exploitation_weight: float
-            Exploitation weight.
-
-        """
-        if tradeoff_scheme is None:
-            exploration_weight = 0
-
-        elif tradeoff_scheme == 'equal':
-            exploration_weight = 0.5
-
-        elif tradeoff_scheme == 'epsilon-decreasing':
-            # epsilon-decreasing scheme
-            # Start with more exploration and increase the influence of
-            # exploitation along the way with a exponential decay function
-            initNSamples = self.MetaModel.ExpDesign.n_init_samples
-            n_max_samples = self.MetaModel.ExpDesign.n_max_samples
-
-            itrNumber = (self.MetaModel.ExpDesign.X.shape[0] - initNSamples)
-            itrNumber //= self.MetaModel.ExpDesign.n_new_samples
-
-            tau2 = -(n_max_samples-initNSamples-1) / np.log(1e-8)
-            exploration_weight = signal.exponential(n_max_samples-initNSamples,
-                                                    0, tau2, False)[itrNumber]
-
-        elif tradeoff_scheme == 'adaptive':
-
-            # Extract itrNumber
-            initNSamples = self.MetaModel.ExpDesign.n_init_samples
-            n_max_samples = self.MetaModel.ExpDesign.n_max_samples
-            itrNumber = (self.MetaModel.ExpDesign.X.shape[0] - initNSamples)
-            itrNumber //= self.MetaModel.ExpDesign.n_new_samples
-
-            if itrNumber == 0:
-                exploration_weight = 0.5
-            else:
-                # New adaptive trade-off according to Liu et al. (2017)
-                # Mean squared error for last design point
-                last_EDX = old_EDX[-1].reshape(1, -1)
-                lastPCEY, _ = self.MetaModel.eval_metamodel(samples=last_EDX)
-                pce_y = np.array(list(lastPCEY.values()))[:, 0]
-                y = np.array(list(old_EDY.values()))[:, -1, :]
-                mseError = mean_squared_error(pce_y, y)
-
-                # Mean squared CV - error for last design point
-                pce_y_prev = np.array(list(self._y_hat_prev.values()))[:, 0]
-                mseCVError = mean_squared_error(pce_y_prev, y)
-
-                exploration_weight = min([0.5*mseError/mseCVError, 1])
-
-        # Exploitation weight
-        exploitation_weight = 1 - exploration_weight
-
-        return exploration_weight, exploitation_weight
-
-    # -------------------------------------------------------------------------
-    def opt_SeqDesign(self, sigma2, n_candidates=5, var='DKL'):
-        """
-        Runs optimal sequential design.
-
-        Parameters
-        ----------
-        sigma2 : dict, optional
-            A dictionary containing the measurement errors (sigma^2). The
-            default is None.
-        n_candidates : int, optional
-            Number of candidate samples. The default is 5.
-        var : string, optional
-            Utility function. The default is None.
-
-        Raises
-        ------
-        NameError
-            Wrong utility function.
-
-        Returns
-        -------
-        Xnew : array (n_samples, n_params)
-            Selected new training point(s).
-        """
-
-        # Initialization
-        MetaModel = self.MetaModel
-        Bounds = MetaModel.bound_tuples
-        n_new_samples = MetaModel.ExpDesign.n_new_samples
-        explore_method = MetaModel.ExpDesign.explore_method
-        exploit_method = MetaModel.ExpDesign.exploit_method
-        n_cand_groups = MetaModel.ExpDesign.n_cand_groups
-        tradeoff_scheme = MetaModel.ExpDesign.tradeoff_scheme
-
-        old_EDX = MetaModel.ExpDesign.X
-        old_EDY = MetaModel.ExpDesign.Y.copy()
-        ndim = MetaModel.ExpDesign.X.shape[1]
-        OutputNames = MetaModel.ModelObj.Output.names
-
-        # -----------------------------------------
-        # ----------- CUSTOMIZED METHODS ----------
-        # -----------------------------------------
-        # Utility function exploit_method provided by user
-        if exploit_method.lower() == 'user':
-
-            Xnew, filteredSamples = MetaModel.ExpDesign.ExploitFunction(self)
-
-            print("\n")
-            print("\nXnew:\n", Xnew)
-
-            return Xnew, filteredSamples
-
-        # -----------------------------------------
-        # ---------- EXPLORATION METHODS ----------
-        # -----------------------------------------
-        if explore_method == 'dual annealing':
-            # ------- EXPLORATION: OPTIMIZATION -------
-            import time
-            start_time = time.time()
-
-            # Divide the domain to subdomains
-            args = []
-            subdomains = self.subdomain(Bounds, n_new_samples)
-            for i in range(n_new_samples):
-                args.append((exploit_method, subdomains[i], sigma2, var, i))
-
-            # Multiprocessing
-            pool = multiprocessing.Pool(multiprocessing.cpu_count())
-
-            # With Pool.starmap_async()
-            results = pool.starmap_async(self.dual_annealing, args).get()
-
-            # Close the pool
-            pool.close()
-
-            Xnew = np.array([results[i][1] for i in range(n_new_samples)])
-
-            print("\nXnew:\n", Xnew)
-
-            elapsed_time = time.time() - start_time
-            print("\n")
-            print(f"elapsed_time: {round(elapsed_time,2)} sec.")
-            print('-'*20)
-
-        elif explore_method == 'LOOCV':
-            # -----------------------------------------------------------------
-            # TODO: LOOCV model construnction based on Feng et al. (2020)
-            # 'LOOCV':
-            # Initilize the ExploitScore array
-
-            # Generate random samples
-            allCandidates = MetaModel.ExpDesign.generate_samples(n_candidates,
-                                                                'random')
-
-            # Construct error model based on LCerror
-            errorModel = MetaModel.create_ModelError(old_EDX, self.LCerror)
-            self.errorModel.append(copy(errorModel))
-
-            # Evaluate the error models for allCandidates
-            eLCAllCands, _ = errorModel.eval_errormodel(allCandidates)
-            # Select the maximum as the representative error
-            eLCAllCands = np.dstack(eLCAllCands.values())
-            eLCAllCandidates = np.max(eLCAllCands, axis=1)[:, 0]
-
-            # Normalize the error w.r.t the maximum error
-            scoreExploration = eLCAllCandidates / np.sum(eLCAllCandidates)
-
-        else:
-            # ------- EXPLORATION: SPACE-FILLING DESIGN -------
-            # Generate candidate samples from Exploration class
-            explore = Exploration(MetaModel, n_candidates)
-            explore.w = 100  # * ndim #500
-            # Select criterion (mc-intersite-proj-th, mc-intersite-proj)
-            explore.mc_criterion = 'mc-intersite-proj'
-            allCandidates, scoreExploration = explore.get_exploration_samples()
-
-            # Temp: ---- Plot all candidates -----
-            if ndim == 2:
-                def plotter(points, allCandidates, Method,
-                            scoreExploration=None):
-                    if Method == 'Voronoi':
-                        from scipy.spatial import Voronoi, voronoi_plot_2d
-                        vor = Voronoi(points)
-                        fig = voronoi_plot_2d(vor)
-                        ax1 = fig.axes[0]
-                    else:
-                        fig = plt.figure()
-                        ax1 = fig.add_subplot(111)
-                    ax1.scatter(points[:, 0], points[:, 1], s=10, c='r',
-                                marker="s", label='Old Design Points')
-                    ax1.scatter(allCandidates[:, 0], allCandidates[:, 1], s=10,
-                                c='b', marker="o", label='Design candidates')
-                    for i in range(points.shape[0]):
-                        txt = 'p'+str(i+1)
-                        ax1.annotate(txt, (points[i, 0], points[i, 1]))
-                    if scoreExploration is not None:
-                        for i in range(allCandidates.shape[0]):
-                            txt = str(round(scoreExploration[i], 5))
-                            ax1.annotate(txt, (allCandidates[i, 0],
-                                               allCandidates[i, 1]))
-
-                    plt.xlim(self.bound_tuples[0])
-                    plt.ylim(self.bound_tuples[1])
-                    # plt.show()
-                    plt.legend(loc='upper left')
-
-        # -----------------------------------------
-        # --------- EXPLOITATION METHODS ----------
-        # -----------------------------------------
-        if exploit_method == 'BayesOptDesign' or\
-           exploit_method == 'BayesActDesign':
-
-            # ------- Calculate Exoploration weight -------
-            # Compute exploration weight based on trade off scheme
-            explore_w, exploit_w = self.tradoff_weights(tradeoff_scheme,
-                                                        old_EDX,
-                                                        old_EDY)
-            print(f"\n Exploration weight={explore_w:0.3f} "
-                  f"Exploitation weight={exploit_w:0.3f}\n")
-
-            # ------- EXPLOITATION: BayesOptDesign & ActiveLearning -------
-            if explore_w != 1.0:
-
-                # Create a sample pool for rejection sampling
-                MCsize = 15000
-                X_MC = MetaModel.ExpDesign.generate_samples(MCsize, 'random')
-                candidates = MetaModel.ExpDesign.generate_samples(
-                    MetaModel.ExpDesign.max_func_itr, 'latin_hypercube')
-
-                # Split the candidates in groups for multiprocessing
-                split_cand = np.array_split(
-                    candidates, n_cand_groups, axis=0
-                    )
-
-                results = Parallel(n_jobs=-1, backend='threading')(
-                        delayed(self.run_util_func)(
-                            exploit_method, split_cand[i], i, sigma2, var, X_MC)
-                        for i in range(n_cand_groups))
-                # out = map(self.run_util_func,
-                #           [exploit_method]*n_cand_groups,
-                #           split_cand,
-                #           range(n_cand_groups),
-                #           [sigma2] * n_cand_groups,
-                #           [var] * n_cand_groups,
-                #           [X_MC] * n_cand_groups
-                #           )
-                # results = list(out)
-
-                # Retrieve the results and append them
-                U_J_d = np.concatenate([results[NofE][1] for NofE in
-                                        range(n_cand_groups)])
-
-                # Check if all scores are inf
-                if np.isinf(U_J_d).all() or np.isnan(U_J_d).all():
-                    U_J_d = np.ones(len(U_J_d))
-
-                # Get the expected value (mean) of the Utility score
-                # for each cell
-                if explore_method == 'Voronoi':
-                    U_J_d = np.mean(U_J_d.reshape(-1, n_candidates), axis=1)
-
-                # create surrogate model for U_J_d
-                from sklearn.preprocessing import MinMaxScaler
-                # Take care of inf entries
-                good_indices = [i for i, arr in enumerate(U_J_d)
-                                if np.isfinite(arr).all()]
-                scaler = MinMaxScaler()
-                X_S = scaler.fit_transform(candidates[good_indices])
-                gp = MetaModel.gaussian_process_emulator(
-                    X_S, U_J_d[good_indices], autoSelect=True
-                    )
-                U_J_d = gp.predict(scaler.transform(allCandidates))
-
-                # Normalize U_J_d
-                norm_U_J_d = U_J_d / np.sum(U_J_d)
-                print("norm_U_J_d:\n", norm_U_J_d)
-            else:
-                norm_U_J_d = np.zeros((len(scoreExploration)))
-
-            # ------- Calculate Total score -------
-            # ------- Trade off between EXPLORATION & EXPLOITATION -------
-            # Total score
-            totalScore = exploit_w * norm_U_J_d
-            totalScore += explore_w * scoreExploration
-
-            # temp: Plot
-            # dim = self.ExpDesign.X.shape[1]
-            # if dim == 2:
-            #     plotter(self.ExpDesign.X, allCandidates, explore_method)
-
-            # ------- Select the best candidate -------
-            # find an optimal point subset to add to the initial design by
-            # maximization of the utility score and taking care of NaN values
-            temp = totalScore.copy()
-            temp[np.isnan(totalScore)] = -np.inf
-            sorted_idxtotalScore = np.argsort(temp)[::-1]
-            bestIdx = sorted_idxtotalScore[:n_new_samples]
-
-            # select the requested number of samples
-            if explore_method == 'Voronoi':
-                Xnew = np.zeros((n_new_samples, ndim))
-                for i, idx in enumerate(bestIdx):
-                    X_can = explore.closestPoints[idx]
-
-                    # Calculate the maxmin score for the region of interest
-                    newSamples, maxminScore = explore.get_mc_samples(X_can)
-
-                    # select the requested number of samples
-                    Xnew[i] = newSamples[np.argmax(maxminScore)]
-            else:
-                Xnew = allCandidates[sorted_idxtotalScore[:n_new_samples]]
-
-        elif exploit_method == 'VarOptDesign':
-            # ------- EXPLOITATION: VarOptDesign -------
-            UtilMethod = var
-
-            # ------- Calculate Exoploration weight -------
-            # Compute exploration weight based on trade off scheme
-            explore_w, exploit_w = self.tradoff_weights(tradeoff_scheme,
-                                                        old_EDX,
-                                                        old_EDY)
-            print(f"\nweightExploration={explore_w:0.3f} "
-                  f"weightExploitation={exploit_w:0.3f}")
-
-            # Generate candidate samples from Exploration class
-            nMeasurement = old_EDY[OutputNames[0]].shape[1]
-
-            # Find sensitive region
-            if UtilMethod == 'LOOCV':
-                LCerror = MetaModel.LCerror
-                allModifiedLOO = np.zeros((len(old_EDX), len(OutputNames),
-                                           nMeasurement))
-                for y_idx, y_key in enumerate(OutputNames):
-                    for idx, key in enumerate(LCerror[y_key].keys()):
-                        allModifiedLOO[:, y_idx, idx] = abs(
-                            LCerror[y_key][key])
-
-                ExploitScore = np.max(np.max(allModifiedLOO, axis=1), axis=1)
-
-            elif UtilMethod in ['EIGF', 'ALM']:
-                # ----- All other in  ['EIGF', 'ALM'] -----
-                # Initilize the ExploitScore array
-                ExploitScore = np.zeros((len(old_EDX), len(OutputNames)))
-
-                # Split the candidates in groups for multiprocessing
-                if explore_method != 'Voronoi':
-                    split_cand = np.array_split(allCandidates,
-                                                n_cand_groups,
-                                                axis=0)
-                    goodSampleIdx = range(n_cand_groups)
-                else:
-                    # Find indices of the Vornoi cells with samples
-                    goodSampleIdx = []
-                    for idx in range(len(explore.closest_points)):
-                        if len(explore.closest_points[idx]) != 0:
-                            goodSampleIdx.append(idx)
-                    split_cand = explore.closest_points
-
-                # Split the candidates in groups for multiprocessing
-                args = []
-                for index in goodSampleIdx:
-                    args.append((exploit_method, split_cand[index], index,
-                                 sigma2, var))
-
-                # Multiprocessing
-                pool = multiprocessing.Pool(multiprocessing.cpu_count())
-                # With Pool.starmap_async()
-                results = pool.starmap_async(self.run_util_func, args).get()
-
-                # Close the pool
-                pool.close()
-                # out = map(self.run_util_func,
-                #           [exploit_method]*len(goodSampleIdx),
-                #           split_cand,
-                #           range(len(goodSampleIdx)),
-                #           [sigma2] * len(goodSampleIdx),
-                #           [var] * len(goodSampleIdx)
-                #           )
-                # results = list(out)
-
-                # Retrieve the results and append them
-                if explore_method == 'Voronoi':
-                    ExploitScore = [np.mean(results[k][1]) for k in
-                                    range(len(goodSampleIdx))]
-                else:
-                    ExploitScore = np.concatenate(
-                        [results[k][1] for k in range(len(goodSampleIdx))])
-
-            else:
-                raise NameError('The requested utility function is not '
-                                'available.')
-
-            # print("ExploitScore:\n", ExploitScore)
-
-            # find an optimal point subset to add to the initial design by
-            # maximization of the utility score and taking care of NaN values
-            # Total score
-            # Normalize U_J_d
-            ExploitScore = ExploitScore / np.sum(ExploitScore)
-            totalScore = exploit_w * ExploitScore
-            totalScore += explore_w * scoreExploration
-
-            temp = totalScore.copy()
-            sorted_idxtotalScore = np.argsort(temp, axis=0)[::-1]
-            bestIdx = sorted_idxtotalScore[:n_new_samples]
-
-            Xnew = np.zeros((n_new_samples, ndim))
-            if explore_method != 'Voronoi':
-                Xnew = allCandidates[bestIdx]
-            else:
-                for i, idx in enumerate(bestIdx.flatten()):
-                    X_can = explore.closest_points[idx]
-                    # plotter(self.ExpDesign.X, X_can, explore_method,
-                    # scoreExploration=None)
-
-                    # Calculate the maxmin score for the region of interest
-                    newSamples, maxminScore = explore.get_mc_samples(X_can)
-
-                    # select the requested number of samples
-                    Xnew[i] = newSamples[np.argmax(maxminScore)]
-
-        elif exploit_method == 'alphabetic':
-            # ------- EXPLOITATION: ALPHABETIC -------
-            Xnew = self.util_AlphOptDesign(allCandidates, var)
-
-        elif exploit_method == 'Space-filling':
-            # ------- EXPLOITATION: SPACE-FILLING -------
-            totalScore = scoreExploration
-
-            # ------- Select the best candidate -------
-            # find an optimal point subset to add to the initial design by
-            # maximization of the utility score and taking care of NaN values
-            temp = totalScore.copy()
-            temp[np.isnan(totalScore)] = -np.inf
-            sorted_idxtotalScore = np.argsort(temp)[::-1]
-
-            # select the requested number of samples
-            Xnew = allCandidates[sorted_idxtotalScore[:n_new_samples]]
-
-        else:
-            raise NameError('The requested design method is not available.')
-
-        print("\n")
-        print("\nRun No. {}:".format(old_EDX.shape[0]+1))
-        print("Xnew:\n", Xnew)
-        gc.collect()
-
-        return Xnew, None
-
-    # -------------------------------------------------------------------------
-    def util_AlphOptDesign(self, candidates, var='D-Opt'):
-        """
-        Enriches the Experimental design with the requested alphabetic
-        criterion based on exploring the space with number of sampling points.
-
-        Ref: Hadigol, M., & Doostan, A. (2018). Least squares polynomial chaos
-        expansion: A review of sampling strategies., Computer Methods in
-        Applied Mechanics and Engineering, 332, 382-407.
-
-        Arguments
-        ---------
-        NCandidate : int
-            Number of candidate points to be searched
-
-        var : string
-            Alphabetic optimality criterion
-
-        Returns
-        -------
-        X_new : array of shape (1, n_params)
-            The new sampling location in the input space.
-        """
-        MetaModelOrig = self
-        Model = self.Model
-        n_new_samples = MetaModelOrig.ExpDesign.n_new_samples
-        NCandidate = candidates.shape[0]
-
-        # TODO: Loop over outputs
-        OutputName = Model.Output.names[0]
-
-        # To avoid changes ub original aPCE object
-        MetaModel = deepcopy(MetaModelOrig)
-
-        # Old Experimental design
-        oldExpDesignX = MetaModel.ExpDesign.X
-
-        # TODO: Only one psi can be selected.
-        # Suggestion: Go for the one with the highest LOO error
-        Scores = list(MetaModel.score_dict[OutputName].values())
-        ModifiedLOO = [1-score for score in Scores]
-        outIdx = np.argmax(ModifiedLOO)
-
-        # Initialize Phi to save the criterion's values
-        Phi = np.zeros((NCandidate))
-
-        BasisIndices = MetaModelOrig.basis_dict[OutputName]["y_"+str(outIdx+1)]
-        P = len(BasisIndices)
-
-        # ------ Old Psi ------------
-        univ_p_val = MetaModelOrig.univ_basis_vals(oldExpDesignX)
-        Psi = MetaModelOrig.create_psi(BasisIndices, univ_p_val)
-
-        # ------ New candidates (Psi_c) ------------
-        # Assemble Psi_c
-        univ_p_val_c = self.univ_basis_vals(candidates)
-        Psi_c = self.create_psi(BasisIndices, univ_p_val_c)
-
-        for idx in range(NCandidate):
-
-            # Include the new row to the original Psi
-            Psi_cand = np.vstack((Psi, Psi_c[idx]))
-
-            # Information matrix
-            PsiTPsi = np.dot(Psi_cand.T, Psi_cand)
-            M = PsiTPsi / (len(oldExpDesignX)+1)
-
-            if np.linalg.cond(PsiTPsi) > 1e-12 \
-               and np.linalg.cond(PsiTPsi) < 1 / sys.float_info.epsilon:
-                # faster
-                invM = linalg.solve(M, sparse.eye(PsiTPsi.shape[0]).toarray())
-            else:
-                # stabler
-                invM = np.linalg.pinv(M)
-
-            # ---------- Calculate optimality criterion ----------
-            # Optimality criteria according to Section 4.5.1 in Ref.
-
-            # D-Opt
-            if var == 'D-Opt':
-                Phi[idx] = (np.linalg.det(invM)) ** (1/P)
-
-            # A-Opt
-            elif var == 'A-Opt':
-                Phi[idx] = np.trace(invM)
-
-            # K-Opt
-            elif var == 'K-Opt':
-                Phi[idx] = np.linalg.cond(M)
-
-            else:
-                raise Exception('The optimality criterion you requested has '
-                      'not been implemented yet!')
-
-        # find an optimal point subset to add to the initial design
-        # by minimization of the Phi
-        sorted_idxtotalScore = np.argsort(Phi)
-
-        # select the requested number of samples
-        Xnew = candidates[sorted_idxtotalScore[:n_new_samples]]
-
-        return Xnew
-
-    # -------------------------------------------------------------------------
-    def __normpdf(self, y_hat_pce, std_pce, obs_data, total_sigma2s,
-                  rmse=None):
-
-        Model = self.Model
-        likelihoods = 1.0
-
-        # Loop over the outputs
-        for idx, out in enumerate(Model.Output.names):
-
-            # (Meta)Model Output
-            nsamples, nout = y_hat_pce[out].shape
-
-            # Prepare data and remove NaN
-            try:
-                data = obs_data[out].values[~np.isnan(obs_data[out])]
-            except AttributeError:
-                data = obs_data[out][~np.isnan(obs_data[out])]
-
-            # Prepare sigma2s
-            non_nan_indices = ~np.isnan(total_sigma2s[out])
-            tot_sigma2s = total_sigma2s[out][non_nan_indices][:nout].values
-
-            # Surrogate error if valid dataset is given.
-            if rmse is not None:
-                tot_sigma2s += rmse[out]**2
-
-            likelihoods *= stats.multivariate_normal.pdf(
-                y_hat_pce[out], data, np.diag(tot_sigma2s),
-                allow_singular=True)
-        self.Likelihoods = likelihoods
-
-        return likelihoods
-
-    # -------------------------------------------------------------------------
-    def __corr_factor_BME(self, obs_data, total_sigma2s, logBME):
-        """
-        Calculates the correction factor for BMEs.
-        """
-        MetaModel = self.MetaModel
-        samples = MetaModel.ExpDesign.X  # valid_samples
-        model_outputs = MetaModel.ExpDesign.Y  # valid_model_runs
-        Model = MetaModel.ModelObj
-        n_samples = samples.shape[0]
-
-        # Extract the requested model outputs for likelihood calulation
-        output_names = Model.Output.names
-
-        # TODO: Evaluate MetaModel on the experimental design and ValidSet
-        OutputRS, stdOutputRS = MetaModel.eval_metamodel(samples=samples)
-
-        logLik_data = np.zeros((n_samples))
-        logLik_model = np.zeros((n_samples))
-        # Loop over the outputs
-        for idx, out in enumerate(output_names):
-
-            # (Meta)Model Output
-            nsamples, nout = model_outputs[out].shape
-
-            # Prepare data and remove NaN
-            try:
-                data = obs_data[out].values[~np.isnan(obs_data[out])]
-            except AttributeError:
-                data = obs_data[out][~np.isnan(obs_data[out])]
-
-            # Prepare sigma2s
-            non_nan_indices = ~np.isnan(total_sigma2s[out])
-            tot_sigma2s = total_sigma2s[out][non_nan_indices][:nout]
-
-            # Covariance Matrix
-            covMatrix_data = np.diag(tot_sigma2s)
-
-            for i, sample in enumerate(samples):
-
-                # Simulation run
-                y_m = model_outputs[out][i]
-
-                # Surrogate prediction
-                y_m_hat = OutputRS[out][i]
-
-                # CovMatrix with the surrogate error
-                # covMatrix = np.diag(stdOutputRS[out][i]**2)
-                covMatrix = np.diag((y_m-y_m_hat)**2)
-                covMatrix = np.diag(
-                    np.mean((model_outputs[out]-OutputRS[out]), axis=0)**2
-                    )
-
-                # Compute likelilhood output vs data
-                logLik_data[i] += self.__logpdf(
-                    y_m_hat, data, covMatrix_data
-                    )
-
-                # Compute likelilhood output vs surrogate
-                logLik_model[i] += self.__logpdf(y_m_hat, y_m, covMatrix)
-
-        # Weight
-        logLik_data -= logBME
-        weights = np.exp(logLik_model+logLik_data)
-
-        return np.log(np.mean(weights))
-
-    # -------------------------------------------------------------------------
-    def __logpdf(self, x, mean, cov):
-        """
-        computes the likelihood based on a multivariate normal distribution.
-
-        Parameters
-        ----------
-        x : TYPE
-            DESCRIPTION.
-        mean : array_like
-            Observation data.
-        cov : 2d array
-            Covariance matrix of the distribution.
-
-        Returns
-        -------
-        log_lik : float
-            Log likelihood.
-
-        """
-        n = len(mean)
-        L = linalg.cholesky(cov, lower=True)
-        beta = np.sum(np.log(np.diag(L)))
-        dev = x - mean
-        alpha = dev.dot(linalg.cho_solve((L, True), dev))
-        log_lik = -0.5 * alpha - beta - n / 2. * np.log(2 * np.pi)
-
-        return log_lik
-
-    # -------------------------------------------------------------------------
-    def __posteriorPlot(self, posterior, par_names, key):
-
-        # Initialization
-        newpath = (r'Outputs_SeqPosteriorComparison/posterior')
-        os.makedirs(newpath, exist_ok=True)
-
-        bound_tuples = self.MetaModel.bound_tuples
-        n_params = len(par_names)
-        font_size = 40
-        if n_params == 2:
-
-            figPosterior, ax = plt.subplots(figsize=(15, 15))
-
-            sns.kdeplot(x=posterior[:, 0], y=posterior[:, 1],
-                        fill=True, ax=ax, cmap=plt.cm.jet,
-                        clip=bound_tuples)
-            # Axis labels
-            plt.xlabel(par_names[0], fontsize=font_size)
-            plt.ylabel(par_names[1], fontsize=font_size)
-
-            # Set axis limit
-            plt.xlim(bound_tuples[0])
-            plt.ylim(bound_tuples[1])
-
-            # Increase font size
-            plt.xticks(fontsize=font_size)
-            plt.yticks(fontsize=font_size)
-
-            # Switch off the grids
-            plt.grid(False)
-
-        else:
-            import corner
-            figPosterior = corner.corner(posterior, labels=par_names,
-                                         title_fmt='.2e', show_titles=True,
-                                         title_kwargs={"fontsize": 12})
-
-        figPosterior.savefig(f'./{newpath}/{key}.pdf', bbox_inches='tight')
-        plt.close()
-
-        # Save the posterior as .npy
-        np.save(f'./{newpath}/{key}.npy', posterior)
-
-        return figPosterior
-
-    # -------------------------------------------------------------------------
-    def __hellinger_distance(self, P, Q):
-        """
-        Hellinger distance between two continuous distributions.
-
-        The maximum distance 1 is achieved when P assigns probability zero to
-        every set to which Q assigns a positive probability, and vice versa.
-        0 (identical) and 1 (maximally different)
-
-        Parameters
-        ----------
-        P : array
-            Reference likelihood.
-        Q : array
-            Estimated likelihood.
-
-        Returns
-        -------
-        float
-            Hellinger distance of two distributions.
-
-        """
-        mu1 = P.mean()
-        Sigma1 = np.std(P)
-
-        mu2 = Q.mean()
-        Sigma2 = np.std(Q)
-
-        term1 = np.sqrt(2*Sigma1*Sigma2 / (Sigma1**2 + Sigma2**2))
-
-        term2 = np.exp(-.25 * (mu1 - mu2)**2 / (Sigma1**2 + Sigma2**2))
-
-        H_squared = 1 - term1 * term2
-
-        return np.sqrt(H_squared)
-
-    # -------------------------------------------------------------------------
-    def __BME_Calculator(self, MetaModel, obs_data, sigma2Dict, rmse=None):
-        """
-        This function computes the Bayesian model evidence (BME) via Monte
-        Carlo integration.
-
-        """
-        # Initializations
-        valid_likelihoods = MetaModel.valid_likelihoods
-
-        post_snapshot = MetaModel.ExpDesign.post_snapshot
-        if post_snapshot or len(valid_likelihoods) != 0:
-            newpath = (r'Outputs_SeqPosteriorComparison/likelihood_vs_ref')
-            os.makedirs(newpath, exist_ok=True)
-
-        SamplingMethod = 'random'
-        MCsize = 10000
-        ESS = 0
-
-        # Estimation of the integral via Monte Varlo integration
-        while (ESS > MCsize) or (ESS < 1):
-
-            # Generate samples for Monte Carlo simulation
-            X_MC = MetaModel.ExpDesign.generate_samples(
-                MCsize, SamplingMethod
-                )
-
-            # Monte Carlo simulation for the candidate design
-            m_1 = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss/1024
-            Y_MC, std_MC = MetaModel.eval_metamodel(samples=X_MC)
-            m_2 = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss/1024
-            print(f"\nMemory eval_metamodel in BME: {m_2-m_1:.2f} MB")
-
-            # Likelihood computation (Comparison of data and
-            # simulation results via PCE with candidate design)
-            Likelihoods = self.__normpdf(
-                Y_MC, std_MC, obs_data, sigma2Dict, rmse
-                )
-
-            # Check the Effective Sample Size (1000<ESS<MCsize)
-            ESS = 1 / np.sum(np.square(Likelihoods/np.sum(Likelihoods)))
-
-            # Enlarge sample size if it doesn't fulfill the criteria
-            if (ESS > MCsize) or (ESS < 1):
-                print(f'ESS={ESS} MC size should be larger.')
-                MCsize *= 10
-                ESS = 0
-
-        # Rejection Step
-        # Random numbers between 0 and 1
-        unif = np.random.rand(1, MCsize)[0]
-
-        # Reject the poorly performed prior
-        accepted = (Likelihoods/np.max(Likelihoods)) >= unif
-        X_Posterior = X_MC[accepted]
-
-        # ------------------------------------------------------------
-        # --- Kullback-Leibler Divergence & Information Entropy ------
-        # ------------------------------------------------------------
-        # Prior-based estimation of BME
-        logBME = np.log(np.nanmean(Likelihoods))
-
-        # TODO: Correction factor
-        # log_weight = self.__corr_factor_BME(obs_data, sigma2Dict, logBME)
-
-        # Posterior-based expectation of likelihoods
-        postExpLikelihoods = np.mean(np.log(Likelihoods[accepted]))
-
-        # Posterior-based expectation of prior densities
-        postExpPrior = np.mean(
-            np.log(MetaModel.ExpDesign.JDist.pdf(X_Posterior.T))
-            )
-
-        # Calculate Kullback-Leibler Divergence
-        # KLD = np.mean(np.log(Likelihoods[Likelihoods!=0])- logBME)
-        KLD = postExpLikelihoods - logBME
-
-        # Information Entropy based on Entropy paper Eq. 38
-        infEntropy = logBME - postExpPrior - postExpLikelihoods
-
-        # If post_snapshot is True, plot likelihood vs refrence
-        if post_snapshot or len(valid_likelihoods) != 0:
-            # Hellinger distance
-            ref_like = np.log(valid_likelihoods[valid_likelihoods > 0])
-            est_like = np.log(Likelihoods[Likelihoods > 0])
-            distHellinger = self.__hellinger_distance(ref_like, est_like)
-
-            idx = len([name for name in os.listdir(newpath) if 'Likelihoods_'
-                       in name and os.path.isfile(os.path.join(newpath, name))])
-            fig, ax = plt.subplots()
-            try:
-                sns.kdeplot(np.log(valid_likelihoods[valid_likelihoods > 0]),
-                            shade=True, color="g", label='Ref. Likelihood')
-                sns.kdeplot(np.log(Likelihoods[Likelihoods > 0]), shade=True,
-                            color="b", label='Likelihood with PCE')
-            except:
-                pass
-
-            text = f"Hellinger Dist.={distHellinger:.3f}\n logBME={logBME:.3f}"
-            "\n DKL={KLD:.3f}"
-
-            plt.text(0.05, 0.75, text, bbox=dict(facecolor='wheat',
-                                                 edgecolor='black',
-                                                 boxstyle='round,pad=1'),
-                     transform=ax.transAxes)
-
-            fig.savefig(f'./{newpath}/Likelihoods_{idx}.pdf',
-                        bbox_inches='tight')
-            plt.close()
-
-        else:
-            distHellinger = 0.0
-
-        # Bayesian inference with Emulator only for 2D problem
-        if post_snapshot and MetaModel.n_params == 2 and not idx % 5:
-            from bayes_inference.bayes_inference import BayesInference
-            from bayes_inference.discrepancy import Discrepancy
-            import pandas as pd
-            BayesOpts = BayesInference(MetaModel)
-            BayesOpts.emulator = True
-            BayesOpts.plot_post_pred = False
-
-            # Select the inference method
-            import emcee
-            BayesOpts.inference_method = "MCMC"
-            # Set the MCMC parameters passed to self.mcmc_params
-            BayesOpts.mcmc_params = {
-                'n_steps': 1e5,
-                'n_walkers': 30,
-                'moves': emcee.moves.KDEMove(),
-                'verbose': False
-                }
-
-            # ----- Define the discrepancy model -------
-            obs_data = pd.DataFrame(obs_data, columns=self.Model.Output.names)
-            BayesOpts.measurement_error = obs_data
-
-            # # -- (Option B) --
-            DiscrepancyOpts = Discrepancy('')
-            DiscrepancyOpts.type = 'Gaussian'
-            DiscrepancyOpts.parameters = obs_data**2
-            BayesOpts.Discrepancy = DiscrepancyOpts
-            # Start the calibration/inference
-            Bayes_PCE = BayesOpts.create_inference()
-            X_Posterior = Bayes_PCE.posterior_df.values
-
-        # Clean up
-        del Y_MC, std_MC
-        gc.collect()
-
-        return (logBME, KLD, X_Posterior, Likelihoods, distHellinger)
-
-    # -------------------------------------------------------------------------
-    def __validError(self, MetaModel):
-
-        # MetaModel = self.MetaModel
-        Model = MetaModel.ModelObj
-        OutputName = Model.Output.names
-
-        # Extract the original model with the generated samples
-        valid_samples = MetaModel.valid_samples
-        valid_model_runs = MetaModel.valid_model_runs
-
-        # Run the PCE model with the generated samples
-        m_1 = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss/1024
-        valid_PCE_runs, valid_PCE_std = MetaModel.eval_metamodel(samples=valid_samples)
-        m_2 = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss/1024
-        print(f"\nMemory eval_metamodel: {m_2-m_1:.2f} MB")
-
-        rms_error = {}
-        valid_error = {}
-        # Loop over the keys and compute RMSE error.
-        for key in OutputName:
-            rms_error[key] = mean_squared_error(
-                valid_model_runs[key], valid_PCE_runs[key],
-                multioutput='raw_values',
-                sample_weight=None,
-                squared=False)
-
-            # Validation error
-            valid_error[key] = (rms_error[key]**2)
-            valid_error[key] /= np.var(valid_model_runs[key], ddof=1, axis=0)
-
-            # Print a report table
-            print("\n>>>>> Updated Errors of {} <<<<<".format(key))
-            print("\nIndex  |  RMSE   |  Validation Error")
-            print('-'*35)
-            print('\n'.join(f'{i+1}  |  {k:.3e}  |  {j:.3e}' for i, (k, j)
-                            in enumerate(zip(rms_error[key],
-                                             valid_error[key]))))
-
-        return rms_error, valid_error
-
-    # -------------------------------------------------------------------------
-    def __error_Mean_Std(self):
-
-        MetaModel = self.MetaModel
-        # Extract the mean and std provided by user
-        df_MCReference = MetaModel.ModelObj.mc_reference
-
-        # Compute the mean and std based on the MetaModel
-        pce_means, pce_stds = self._compute_pce_moments(MetaModel)
-
-        # Compute the root mean squared error
-        for output in MetaModel.ModelObj.Output.names:
-
-            # Compute the error between mean and std of MetaModel and OrigModel
-            RMSE_Mean = mean_squared_error(
-                df_MCReference['mean'], pce_means[output], squared=False
-                )
-            RMSE_std = mean_squared_error(
-                df_MCReference['std'], pce_means[output], squared=False
-                )
-
-        return RMSE_Mean, RMSE_std
-
-    # -------------------------------------------------------------------------
-    def _compute_pce_moments(self, MetaModel):
-        """
-        Computes the first two moments using the PCE-based meta-model.
-
-        Returns
-        -------
-        pce_means: dict
-            The first moment (mean) of the surrogate.
-        pce_stds: dict
-            The second moment (standard deviation) of the surrogate.
-
-        """
-        outputs = MetaModel.ModelObj.Output.names
-        pce_means_b = {}
-        pce_stds_b = {}
-
-        # Loop over bootstrap iterations
-        for b_i in range(MetaModel.n_bootstrap_itrs):
-            # Loop over the metamodels
-            coeffs_dicts = MetaModel.coeffs_dict[f'b_{b_i+1}'].items()
-            means = {}
-            stds = {}
-            for output, coef_dict in coeffs_dicts:
-
-                pce_mean = np.zeros((len(coef_dict)))
-                pce_var = np.zeros((len(coef_dict)))
-
-                for index, values in coef_dict.items():
-                    idx = int(index.split('_')[1]) - 1
-                    coeffs = MetaModel.coeffs_dict[f'b_{b_i+1}'][output][index]
-
-                    # Mean = c_0
-                    if coeffs[0] != 0:
-                        pce_mean[idx] = coeffs[0]
-                    else:
-                        clf_poly = MetaModel.clf_poly[f'b_{b_i+1}'][output]
-                        pce_mean[idx] = clf_poly[index].intercept_
-                    # Var = sum(coeffs[1:]**2)
-                    pce_var[idx] = np.sum(np.square(coeffs[1:]))
-
-                # Save predictions for each output
-                if MetaModel.dim_red_method.lower() == 'pca':
-                    PCA = MetaModel.pca[f'b_{b_i+1}'][output]
-                    means[output] = PCA.mean_ + np.dot(
-                        pce_mean, PCA.components_)
-                    stds[output] = np.sqrt(np.dot(pce_var,
-                                                  PCA.components_**2))
-                else:
-                    means[output] = pce_mean
-                    stds[output] = np.sqrt(pce_var)
-
-            # Save predictions for each bootstrap iteration
-            pce_means_b[b_i] = means
-            pce_stds_b[b_i] = stds
-
-        # Change the order of nesting
-        mean_all = {}
-        for i in sorted(pce_means_b):
-            for k, v in pce_means_b[i].items():
-                if k not in mean_all:
-                    mean_all[k] = [None] * len(pce_means_b)
-                mean_all[k][i] = v
-        std_all = {}
-        for i in sorted(pce_stds_b):
-            for k, v in pce_stds_b[i].items():
-                if k not in std_all:
-                    std_all[k] = [None] * len(pce_stds_b)
-                std_all[k][i] = v
-
-        # Back transformation if PCA is selected.
-        pce_means, pce_stds = {}, {}
-        for output in outputs:
-            pce_means[output] = np.mean(mean_all[output], axis=0)
-            pce_stds[output] = np.mean(std_all[output], axis=0)
-
-        return pce_means, pce_stds
diff --git a/src/bayesvalidrox/surrogate_models/surrogate_models.py b/src/bayesvalidrox/surrogate_models/surrogate_models.py
index c51ea8c6679aaeec685da069154e8f460c7c4450..eb22b9085aaebc6701f50696dd5a093cfc218d90 100644
--- a/src/bayesvalidrox/surrogate_models/surrogate_models.py
+++ b/src/bayesvalidrox/surrogate_models/surrogate_models.py
@@ -1,36 +1,287 @@
 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
+"""
+Implementation of metamodel as either PC, aPC or GPE
+"""
 
+import copy
+import os
 import warnings
-import numpy as np
-import math
-import h5py
+
 import matplotlib.pyplot as plt
-from sklearn.preprocessing import MinMaxScaler
+import numpy as np
 import scipy as sp
-from tqdm import tqdm
-from sklearn.decomposition import PCA as sklearnPCA
-import sklearn.linear_model as lm
-from sklearn.gaussian_process import GaussianProcessRegressor
 import sklearn.gaussian_process.kernels as kernels
-import os
+import sklearn.linear_model as lm
 from joblib import Parallel, delayed
-import copy
+from scipy.optimize import minimize, NonlinearConstraint
+from sklearn.decomposition import PCA as sklearnPCA
+from sklearn.gaussian_process import GaussianProcessRegressor
+from sklearn.preprocessing import MinMaxScaler
+from tqdm import tqdm
 
-from .exp_designs import ExpDesigns
-from .glexindex import glexindex
+from .apoly_construction import apoly_construction
+from .bayes_linear import VBLinearRegression, EBLinearRegression
 from .eval_rec_rule import eval_univ_basis
+from .glexindex import glexindex
+from .input_space import InputSpace
+from .orthogonal_matching_pursuit import OrthogonalMatchingPursuit
 from .reg_fast_ard import RegressionFastARD
 from .reg_fast_laplace import RegressionFastLaplace
-from .orthogonal_matching_pursuit import OrthogonalMatchingPursuit
-from .bayes_linear import VBLinearRegression, EBLinearRegression
+
 warnings.filterwarnings("ignore")
 # Load the mplstyle
+# noinspection SpellCheckingInspection
 plt.style.use(os.path.join(os.path.split(__file__)[0],
                            '../', 'bayesvalidrox.mplstyle'))
 
 
-class MetaModel():
+# noinspection SpellCheckingInspection
+def corr_loocv_error(clf, psi, coeffs, y):
+    """
+    Calculates the corrected LOO error for regression on regressor
+    matrix `psi` that generated the coefficients based on [1] and [2].
+
+    [1] Blatman, G., 2009. Adaptive sparse polynomial chaos expansions for
+        uncertainty propagation and sensitivity analysis (Doctoral
+        dissertation, Clermont-Ferrand 2).
+
+    [2] Blatman, G. and Sudret, B., 2011. Adaptive sparse polynomial chaos
+        expansion based on least angle regression. Journal of computational
+        Physics, 230(6), pp.2345-2367.
+
+    Parameters
+    ----------
+    clf : object
+        Fitted estimator.
+    psi : array of shape (n_samples, n_features)
+        The multivariate orthogonal polynomials (regressor).
+    coeffs : array-like of shape (n_features,)
+        Estimated cofficients.
+    y : array of shape (n_samples,)
+        Target values.
+
+    Returns
+    -------
+    R_2 : float
+        LOOCV Validation score (1-LOOCV erro).
+    residual : array of shape (n_samples,)
+        Residual values (y - predicted targets).
+
+    """
+    psi = np.array(psi, dtype=float)
+
+    # Create PSI_Sparse by removing redundent terms
+    nnz_idx = np.nonzero(coeffs)[0]
+    if len(nnz_idx) == 0:
+        nnz_idx = [0]
+    psi_sparse = psi[:, nnz_idx]
+
+    # NrCoeffs of aPCEs
+    P = len(nnz_idx)
+    # NrEvaluation (Size of experimental design)
+    N = psi.shape[0]
+
+    # Build the projection matrix
+    PsiTPsi = np.dot(psi_sparse.T, psi_sparse)
+
+    if np.linalg.cond(PsiTPsi) > 1e-12:  # and \
+        # np.linalg.cond(PsiTPsi) < 1/sys.float_info.epsilon:
+        # faster
+        try:
+            M = sp.linalg.solve(PsiTPsi,
+                                sp.sparse.eye(PsiTPsi.shape[0]).toarray())
+        except:
+            raise AttributeError(
+                'There are too few samples for the corrected loo-cv error. Fit surrogate on at least as many '
+                'samples as parameters to use this')
+    else:
+        # stabler
+        M = np.linalg.pinv(PsiTPsi)
+
+    # h factor (the full matrix is not calculated explicitly,
+    # only the trace is, to save memory)
+    PsiM = np.dot(psi_sparse, M)
+
+    h = np.sum(np.multiply(PsiM, psi_sparse), axis=1, dtype=np.longdouble)  # float128)
+
+    # ------ Calculate Error Loocv for each measurement point ----
+    # Residuals
+    try:
+        residual = clf.predict(psi) - y
+    except:
+        residual = np.dot(psi, coeffs) - y
+
+    # Variance
+    var_y = np.var(y)
+
+    if var_y == 0:
+        # norm_emp_error = 0
+        loo_error = 0
+        LCerror = np.zeros(y.shape)
+        return 1 - loo_error, LCerror
+    else:
+        # norm_emp_error = np.mean(residual ** 2) / var_y
+
+        # LCerror = np.divide(residual, (1-h))
+        LCerror = residual / (1 - h)
+        loo_error = np.mean(np.square(LCerror)) / var_y
+        # if there are NaNs, just return an infinite LOO error (this
+        # happens, e.g., when a strongly underdetermined problem is solved)
+        if np.isnan(loo_error):
+            loo_error = np.inf
+
+    # Corrected Error for over-determined system
+    tr_M = np.trace(M)
+    if tr_M < 0 or abs(tr_M) > 1e6:
+        tr_M = np.trace(np.linalg.pinv(np.dot(psi.T, psi)))
+
+    # Over-determined system of Equation
+    if N > P:
+        T_factor = N / (N - P) * (1 + tr_M)
+
+    # Under-determined system of Equation
+    else:
+        T_factor = np.inf
+
+    corrected_loo_error = loo_error * T_factor
+
+    R_2 = 1 - corrected_loo_error
+
+    return R_2, LCerror
+
+
+def create_psi(basis_indices, univ_p_val):
+    """
+    This function assemble the design matrix Psi from the given basis index
+    set INDICES and the univariate polynomial evaluations univ_p_val.
+
+    Parameters
+    ----------
+    basis_indices : array of shape (n_terms, n_params)
+        Multi-indices of multivariate polynomials.
+    univ_p_val : array of (n_samples, n_params, n_max+1)
+        All univariate regressors up to `n_max`.
+
+    Raises
+    ------
+    ValueError
+        n_terms in arguments do not match.
+
+    Returns
+    -------
+    psi : array of shape (n_samples, n_terms)
+        Multivariate regressors.
+
+    """
+    # Check if BasisIndices is a sparse matrix
+    sparsity = sp.sparse.issparse(basis_indices)
+    if sparsity:
+        basis_indices = basis_indices.toarray()
+
+    # Initialization and consistency checks
+    # number of input variables
+    n_params = univ_p_val.shape[1]
+
+    # Size of the experimental design
+    n_samples = univ_p_val.shape[0]
+
+    # number of basis terms
+    n_terms = basis_indices.shape[0]
+
+    # check that the variables have consistent sizes
+    if n_params != basis_indices.shape[1]:
+        raise ValueError(
+            f"The shapes of basis_indices ({basis_indices.shape[1]}) and "
+            f"univ_p_val ({n_params}) don't match!!"
+        )
+
+    # Preallocate the Psi matrix for performance
+    psi = np.ones((n_samples, n_terms))
+    # Assemble the Psi matrix
+    for m in range(basis_indices.shape[1]):
+        aa = np.where(basis_indices[:, m] > 0)[0]
+        try:
+            basisIdx = basis_indices[aa, m]
+            bb = univ_p_val[:, m, basisIdx].reshape(psi[:, aa].shape)
+            psi[:, aa] = np.multiply(psi[:, aa], bb)
+        except ValueError as err:
+            raise err
+    return psi
+
+
+def gaussian_process_emulator(X, y, nug_term=None, autoSelect=False,
+                              varIdx=None):
+    """
+    Fits a Gaussian Process Emulator to the target given the training
+     points.
+
+    Parameters
+    ----------
+    X : array of shape (n_samples, n_params)
+        Training points.
+    y : array of shape (n_samples,)
+        Target values.
+    nug_term : float, optional
+        Nugget term. The default is None, i.e. variance of y.
+    autoSelect : bool, optional
+        Loop over some kernels and select the best. The default is False.
+    varIdx : int, optional
+        The index number. The default is None.
+
+    Returns
+    -------
+    gp : object
+        Fitted estimator.
+
+    """
+
+    nug_term = nug_term if nug_term else np.var(y)
+
+    Kernels = [nug_term * kernels.RBF(length_scale=1.0,
+                                      length_scale_bounds=(1e-25, 1e15)),
+               nug_term * kernels.RationalQuadratic(length_scale=0.2,
+                                                    alpha=1.0),
+               nug_term * kernels.Matern(length_scale=1.0,
+                                         length_scale_bounds=(1e-15, 1e5),
+                                         nu=1.5)]
+
+    # Automatic selection of the kernel
+    if autoSelect:
+        gp = {}
+        BME = []
+        for i, kernel in enumerate(Kernels):
+            gp[i] = GaussianProcessRegressor(kernel=kernel,
+                                             n_restarts_optimizer=3,
+                                             normalize_y=False)
+
+            # Fit to data using Maximum Likelihood Estimation
+            gp[i].fit(X, y)
+
+            # Store the MLE as BME score
+            BME.append(gp[i].log_marginal_likelihood())
+
+        gp = gp[np.argmax(BME)]
+
+    else:
+        gp = GaussianProcessRegressor(kernel=Kernels[0],
+                                      n_restarts_optimizer=3,
+                                      normalize_y=False)
+        gp.fit(X, y)
+
+    # Compute score
+    if varIdx is not None:
+        Score = gp.score(X, y)
+        print('-' * 50)
+        print(f'Output variable {varIdx}:')
+        print('The estimation of GPE coefficients converged,')
+        print(f'with the R^2 score: {Score:.3f}')
+        print('-' * 50)
+
+    return gp
+
+
+class MetaModel:
     """
     Meta (surrogate) model
 
@@ -77,10 +328,14 @@ class MetaModel():
         `'no'`. There are two ways to select number of components: use
         percentage of the explainable variance threshold (between 0 and 100)
         (Option A) or direct prescription of components' number (Option B):
-
+            >>> MetaModelOpts = MetaModel()
             >>> MetaModelOpts.dim_red_method = 'PCA'
             >>> MetaModelOpts.var_pca_threshold = 99.999  # Option A
             >>> MetaModelOpts.n_pca_components = 12 # Option B
+    apply_constraints : bool
+        If set to true constraints will be applied during training. 
+        In this case the training uses OLS. In this version the constraints 
+        need to be set explicitly in this class.
 
     verbose : bool
         Prints summary of the regression results. Default is `False`.
@@ -90,21 +345,21 @@ class MetaModel():
     To define the sampling methods and the training set, an experimental design
     instance shall be defined. This can be done by:
 
-    >>> MetaModelOpts.add_ExpDesign()
+    >>> MetaModelOpts.add_InputSpace()
 
     Two experimental design schemes are supported: one-shot (`normal`) and
     adaptive sequential (`sequential`) designs.
-    For experimental design refer to `ExpDesigns`.
+    For experimental design refer to `InputSpace`.
 
     """
 
-    def __init__(self, input_obj, model_obj, meta_model_type='PCE',
+    def __init__(self, input_obj, meta_model_type='PCE',
                  pce_reg_method='OLS', bootstrap_method='fast',
                  n_bootstrap_itrs=1, pce_deg=1, pce_q_norm=1.0,
-                 dim_red_method='no', verbose=False):
+                 dim_red_method='no', apply_constraints=False,
+                 verbose=False):
 
         self.input_obj = input_obj
-        self.ModelObj = model_obj
         self.meta_model_type = meta_model_type
         self.pce_reg_method = pce_reg_method
         self.bootstrap_method = bootstrap_method
@@ -112,70 +367,79 @@ class MetaModel():
         self.pce_deg = pce_deg
         self.pce_q_norm = pce_q_norm
         self.dim_red_method = dim_red_method
-        self.verbose = False
-
-    # -------------------------------------------------------------------------
-    def create_metamodel(self):
+        self.apply_constraints = apply_constraints
+        self.verbose = verbose
+
+        # Other params
+        self.InputSpace = None
+        self.var_pca_threshold = None
+        self.polycoeffs = None
+        self.errorScale = None
+        self.errorclf_poly = None
+        self.errorRegMethod = None
+        self.nlc = None
+        self.univ_p_val = None
+        self.n_pca_components = None
+        self.out_names = None
+        self.allBasisIndices = None
+        self.deg_array = None
+        self.n_samples = None
+        self.CollocationPoints = None
+        self.pca = None
+        self.LCerror = None
+        self.clf_poly = None
+        self.score_dict = None
+        self.basis_dict = None
+        self.coeffs_dict = None
+        self.q_norm_dict = None
+        self.deg_dict = None
+        self.x_scaler = None
+        self.gp_poly = None
+        self.n_params = None
+        self.ndim = None
+        self.init_type = None
+        self.rmse = None
+
+    def build_metamodel(self, n_init_samples=None) -> None:
         """
-        Starts the training of the meta-model for the model objects containg
-         the given computational model.
+        Builds the parts for the metamodel (polynomes,...) that are neede before fitting.
 
         Returns
         -------
-        metamodel : obj
-            The meta model object.
+        None
+            DESCRIPTION.
 
         """
-        Model = self.ModelObj
-        self.n_params = len(self.input_obj.Marginals)
-        self.ExpDesignFlag = 'normal'
-        # --- Prepare pce degree ---
-        if self.meta_model_type.lower() == 'pce':
-            if type(self.pce_deg) is not np.ndarray:
-                self.pce_deg = np.array(self.pce_deg)
-
-        if self.ExpDesign.method == 'sequential':
-            raise Exception(
-                "Please use MetaModelEngine class for the sequential design!"
-                )
 
-        elif self.ExpDesign.method == 'normal':
-            self.ExpDesignFlag = 'normal'
-            self.train_norm_design(Model, verbose=True)
+        # Generate general warnings
+        if self.apply_constraints or self.pce_reg_method.lower() == 'ols':
+            print('There are no estimations of surrogate uncertainty available'
+                  ' for the chosen regression options. This might lead to issues'
+                  ' in later steps.')
 
-        else:
-            raise Exception("The method for experimental design you requested"
-                            " has not been implemented yet.")
-
-        # Zip the model run directories
-        if self.ModelObj.link_type.lower() == 'pylink' and\
-           self.ExpDesign.sampling_method.lower() != 'user':
-            Model.zip_subdirs(Model.name, f'{Model.name}_')
+        if self.CollocationPoints is None:
+            raise AttributeError('Please provide samples to the metamodel before building it.')
+        self.CollocationPoints = np.array(self.CollocationPoints)
 
-        return self
+        # Add InputSpace to MetaModel if it does not have any
+        if self.InputSpace is None:
+            if n_init_samples is None:
+                n_init_samples = self.CollocationPoints.shape[0]
+            self.InputSpace = InputSpace(self.input_obj)
+            self.InputSpace.n_init_samples = n_init_samples
+            self.InputSpace.init_param_space(np.max(self.pce_deg))
 
-    # -------------------------------------------------------------------------
-    def train_norm_design(self, parallel=True, verbose=False):
-        """
-        This function loops over the outputs and each time step/point and fits
-        the meta model.
+        self.ndim = self.InputSpace.ndim
 
-        Parameters
-        ----------
-        parallel : bool
-            The parallel computation of coefficents. The default is True.
-        verbose : bool, optional
-            Flag for a sequential design in silent mode. The default is False.
+        # Transform input samples
+        # TODO: this is probably not yet correct! Make 'method' variable
+        self.CollocationPoints = self.InputSpace.transform(self.CollocationPoints, method='user')
 
-        Returns
-        -------
-        self: obj
-            Meta-model object.
+        self.n_params = len(self.input_obj.Marginals)
 
-        """
-        Model = self.ModelObj
-        # Get the collocation points to run the forward model
-        CollocationPoints, OutputDict = self.generate_ExpDesign(Model)
+        # Generate polynomials
+        if self.meta_model_type.lower() != 'gpe':
+            self.generate_polynomials(np.max(self.pce_deg))
 
         # Initialize the nested dictionaries
         if self.meta_model_type.lower() == 'gpe':
@@ -194,8 +458,14 @@ class MetaModel():
             self.pca = self.auto_vivification()
 
         # Define an array containing the degrees
-        n_samples, ndim = CollocationPoints.shape
-        self.deg_array = self.__select_degree(ndim, n_samples)
+        self.CollocationPoints = np.array(self.CollocationPoints)
+        self.n_samples, ndim = self.CollocationPoints.shape
+        if self.ndim != ndim:
+            raise AttributeError(
+                'The given samples do not match the given number of priors. The samples should be a 2D array of size'
+                '(#samples, #priors)')
+
+        self.deg_array = self.__select_degree(ndim, self.n_samples)
 
         # Generate all basis indices
         self.allBasisIndices = self.auto_vivification()
@@ -204,17 +474,60 @@ class MetaModel():
             if deg not in np.fromiter(keys, dtype=float):
                 # Generate the polynomial basis indices
                 for qidx, q in enumerate(self.pce_q_norm):
-                    basis_indices = self.create_basis_indices(degree=deg,
-                                                              q_norm=q)
+                    basis_indices = glexindex(start=0, stop=deg + 1,
+                                              dimensions=self.n_params,
+                                              cross_truncation=q,
+                                              reverse=False, graded=True)
                     self.allBasisIndices[str(deg)][str(q)] = basis_indices
 
-        # Evaluate the univariate polynomials on ExpDesign
-        if self.meta_model_type.lower() != 'gpe':
-            univ_p_val = self.univ_basis_vals(CollocationPoints)
+    def fit(self, X: np.array, y: dict, parallel=False, verbose=False):
+        """
+        Fits the surrogate to the given data (samples X, outputs y).
+        Note here that the samples X should be the transformed samples provided
+        by the experimental design if the transformation is used there.
+
+        Parameters
+        ----------
+        X : 2D list or np.array of shape (#samples, #dim)
+            The parameter value combinations that the model was evaluated at.
+        y : dict of 2D lists or arrays of shape (#samples, #timesteps)
+            The respective model evaluations.
+        parallel : bool
+            Set to True to run the training in parallel for various keys.
+            The default is False.
+        verbose : bool
+            Set to True to obtain more information during runtime.
+            The default is False.
+
+        Returns
+        -------
+        None.
 
-        if 'x_values' in OutputDict:
-            self.ExpDesign.x_values = OutputDict['x_values']
-            del OutputDict['x_values']
+        """
+        #        print(X)
+        #        print(X.shape)
+        #        print(y)
+        #        print(y['Z'].shape)
+        X = np.array(X)
+        for key in y.keys():
+            y_val = np.array(y[key])
+            if y_val.ndim != 2:
+                raise ValueError('The given outputs y should be 2D')
+            y[key] = np.array(y[key])
+
+        # Output names are the same as the keys in y
+        self.out_names = list(y.keys())
+
+        # Build the MetaModel on the static samples
+        self.CollocationPoints = X
+
+        # TODO: other option: rebuild every time
+        if self.deg_array is None:
+            self.build_metamodel(n_init_samples=X.shape[1])
+
+        # Evaluate the univariate polynomials on InputSpace
+        if self.meta_model_type.lower() != 'gpe':
+            self.univ_p_val = self.univ_basis_vals(self.CollocationPoints)
 
         # --- Loop through data points and fit the surrogate ---
         if verbose:
@@ -227,10 +540,10 @@ class MetaModel():
             self.n_bootstrap_itrs = 100
 
         # Check if fast version (update coeffs with OLS) is selected.
+        n_comp_dict = {}
+        first_out = {}
         if self.bootstrap_method.lower() == 'fast':
             fast_bootstrap = True
-            first_out = {}
-            n_comp_dict = {}
         else:
             fast_bootstrap = False
 
@@ -238,7 +551,7 @@ class MetaModel():
         if verbose and self.n_bootstrap_itrs > 1:
             enum_obj = tqdm(range(self.n_bootstrap_itrs),
                             total=self.n_bootstrap_itrs,
-                            desc="Boostraping the metamodel",
+                            desc="Bootstrapping the metamodel",
                             ascii=True)
         else:
             enum_obj = range(self.n_bootstrap_itrs)
@@ -246,16 +559,16 @@ class MetaModel():
         # Loop over the bootstrap iterations
         for b_i in enum_obj:
             if b_i > 0:
-                b_indices = np.random.randint(n_samples, size=n_samples)
+                b_indices = np.random.randint(self.n_samples, size=self.n_samples)
             else:
-                b_indices = np.arange(len(CollocationPoints))
+                b_indices = np.arange(len(X))
 
-            X_train_b = CollocationPoints[b_indices]
+            X_train_b = X[b_indices]
 
             if verbose and self.n_bootstrap_itrs == 1:
-                items = tqdm(OutputDict.items(), desc="Fitting regression")
+                items = tqdm(y.items(), desc="Fitting regression")
             else:
-                items = OutputDict.items()
+                items = y.items()
 
             # For loop over the components/outputs
             for key, Output in items:
@@ -270,8 +583,8 @@ class MetaModel():
                     # Start transformation
                     pca, target, n_comp = self.pca_transformation(
                         Output[b_indices], verbose=False
-                        )
-                    self.pca[f'b_{b_i+1}'][key] = pca
+                    )
+                    self.pca[f'b_{b_i + 1}'][key] = pca
                     # Store the number of components for fast bootsrtrapping
                     if fast_bootstrap and b_i == 0:
                         n_comp_dict[key] = n_comp
@@ -279,39 +592,40 @@ class MetaModel():
                     target = Output[b_indices]
 
                 # Parallel fit regression
+                out = None
                 if self.meta_model_type.lower() == 'gpe':
                     # Prepare the input matrix
                     scaler = MinMaxScaler()
                     X_S = scaler.fit_transform(X_train_b)
 
-                    self.x_scaler[f'b_{b_i+1}'][key] = scaler
+                    self.x_scaler[f'b_{b_i + 1}'][key] = scaler
                     if parallel:
                         out = Parallel(n_jobs=-1, backend='multiprocessing')(
-                            delayed(self.gaussian_process_emulator)(
+                            delayed(gaussian_process_emulator)(
                                 X_S, target[:, idx]) for idx in
                             range(target.shape[1]))
                     else:
-                        results = map(self.gaussian_process_emulator,
-                                      [X_train_b]*target.shape[1],
+                        results = map(gaussian_process_emulator,
+                                      [X_train_b] * target.shape[1],
                                       [target[:, idx] for idx in
                                        range(target.shape[1])]
                                       )
                         out = list(results)
 
                     for idx in range(target.shape[1]):
-                        self.gp_poly[f'b_{b_i+1}'][key][f"y_{idx+1}"] = out[idx]
+                        self.gp_poly[f'b_{b_i + 1}'][key][f"y_{idx + 1}"] = out[idx]
 
                 else:
-                    self.univ_p_val = univ_p_val[b_indices]
+                    self.univ_p_val = self.univ_p_val[b_indices]
                     if parallel and (not fast_bootstrap or b_i == 0):
                         out = Parallel(n_jobs=-1, backend='multiprocessing')(
-                            delayed(self.adaptive_regression)(X_train_b,
-                                                              target[:, idx],
-                                                              idx)
+                            delayed(self.adaptive_regression)(  # X_train_b,
+                                target[:, idx],
+                                idx)
                             for idx in range(target.shape[1]))
                     elif not parallel and (not fast_bootstrap or b_i == 0):
                         results = map(self.adaptive_regression,
-                                      [X_train_b]*target.shape[1],
+                                      # [X_train_b] * target.shape[1],
                                       [target[:, idx] for idx in
                                        range(target.shape[1])],
                                       range(target.shape[1]))
@@ -322,30 +636,29 @@ class MetaModel():
                         first_out[key] = copy.deepcopy(out)
 
                     if b_i > 0 and fast_bootstrap:
-
                         # fast bootstrap
                         out = self.update_pce_coeffs(
                             X_train_b, target, first_out[key])
 
                     for i in range(target.shape[1]):
                         # Create a dict to pass the variables
-                        self.deg_dict[f'b_{b_i+1}'][key][f"y_{i+1}"] = out[i]['degree']
-                        self.q_norm_dict[f'b_{b_i+1}'][key][f"y_{i+1}"] = out[i]['qnorm']
-                        self.coeffs_dict[f'b_{b_i+1}'][key][f"y_{i+1}"] = out[i]['coeffs']
-                        self.basis_dict[f'b_{b_i+1}'][key][f"y_{i+1}"] = out[i]['multi_indices']
-                        self.score_dict[f'b_{b_i+1}'][key][f"y_{i+1}"] = out[i]['LOOCVScore']
-                        self.clf_poly[f'b_{b_i+1}'][key][f"y_{i+1}"] = out[i]['clf_poly']
-                        #self.LCerror[f'b_{b_i+1}'][key][f"y_{i+1}"] = out[i]['LCerror']
+                        self.deg_dict[f'b_{b_i + 1}'][key][f"y_{i + 1}"] = out[i]['degree']
+                        self.q_norm_dict[f'b_{b_i + 1}'][key][f"y_{i + 1}"] = out[i]['qnorm']
+                        self.coeffs_dict[f'b_{b_i + 1}'][key][f"y_{i + 1}"] = out[i]['coeffs']
+                        self.basis_dict[f'b_{b_i + 1}'][key][f"y_{i + 1}"] = out[i]['multi_indices']
+                        self.score_dict[f'b_{b_i + 1}'][key][f"y_{i + 1}"] = out[i]['LOOCVScore']
+                        self.clf_poly[f'b_{b_i + 1}'][key][f"y_{i + 1}"] = out[i]['clf_poly']
+                        # self.LCerror[f'b_{b_i+1}'][key][f"y_{i+1}"] = out[i]['LCerror']
 
         if verbose:
             print(f"\n>>>> Training the {self.meta_model_type} metamodel"
                   " sucessfully completed. <<<<<<\n")
 
     # -------------------------------------------------------------------------
-    def update_pce_coeffs(self, X, y, out_dict):
+    def update_pce_coeffs(self, X, y, out_dict=None):
         """
         Updates the PCE coefficents using only the ordinary least square method
-        for the fast version of the bootsrtrapping.
+        for the fast version of the bootstrapping.
 
         Parameters
         ----------
@@ -363,6 +676,7 @@ class MetaModel():
             The updated training output dictionary.
 
         """
+        # TODO: why is X not used here?
         # Make a copy
         final_out_dict = copy.deepcopy(out_dict)
 
@@ -375,13 +689,13 @@ class MetaModel():
                 basis_indices = out_dict[i]['multi_indices']
 
                 # Evaluate the multivariate polynomials on CollocationPoints
-                psi = self.create_psi(basis_indices, self.univ_p_val)
+                psi = create_psi(basis_indices, self.univ_p_val)
 
                 # Calulate the cofficients of surrogate model
-                updated_out = self.fit(
+                updated_out = self.regression(
                     psi, y[:, i], basis_indices, reg_method='OLS',
                     sparsity=False
-                    )
+                )
 
                 # Update coeffs in out_dict
                 final_out_dict[i]['coeffs'][nnz_idx] = updated_out['coeffs']
@@ -389,33 +703,7 @@ class MetaModel():
         return final_out_dict
 
     # -------------------------------------------------------------------------
-    def create_basis_indices(self, degree, q_norm):
-        """
-        Creates set of selected multi-indices of multivariate polynomials for
-        certain parameter numbers, polynomial degree, hyperbolic (or q-norm)
-        truncation scheme.
-
-        Parameters
-        ----------
-        degree : int
-            Polynomial degree.
-        q_norm : float
-            hyperbolic (or q-norm) truncation.
-
-        Returns
-        -------
-        basis_indices : array of shape (n_terms, n_params)
-            Multi-indices of multivariate polynomials.
-
-        """
-        basis_indices = glexindex(start=0, stop=degree+1,
-                                  dimensions=self.n_params,
-                                  cross_truncation=q_norm,
-                                  reverse=False, graded=True)
-        return basis_indices
-
-    # -------------------------------------------------------------------------
-    def add_ExpDesign(self):
+    def add_InputSpace(self):
         """
         Instanciates experimental design object.
 
@@ -424,101 +712,8 @@ class MetaModel():
         None.
 
         """
-        self.ExpDesign = ExpDesigns(self.input_obj,
-                                    meta_Model=self.meta_model_type)
-
-    # -------------------------------------------------------------------------
-    def generate_ExpDesign(self, Model):
-        """
-        Prepares the experimental design either by reading from the prescribed
-        data or running simulations.
-
-        Parameters
-        ----------
-        Model : obj
-            Model object.
-
-        Raises
-        ------
-        Exception
-            If model sumulations are not provided properly.
-
-        Returns
-        -------
-        ED_X_tr: array of shape (n_samples, n_params)
-            Training samples transformed by an isoprobabilistic transformation.
-        ED_Y: dict
-            Model simulations (target) for all outputs.
-        """
-        ExpDesign = self.ExpDesign
-        if self.ExpDesignFlag != 'sequential':
-            # Read ExpDesign (training and targets) from the provided hdf5
-            if ExpDesign.hdf5_file is not None:
-
-                # Read hdf5 file
-                f = h5py.File(ExpDesign.hdf5_file, 'r+')
-
-                # Read EDX and pass it to ExpDesign object
-                try:
-                    ExpDesign.X = np.array(f["EDX/New_init_"])
-                except KeyError:
-                    ExpDesign.X = np.array(f["EDX/init_"])
-
-                # Update number of initial samples
-                ExpDesign.n_init_samples = ExpDesign.X.shape[0]
-
-                # Read EDX and pass it to ExpDesign object
-                out_names = self.ModelObj.Output.names
-                ExpDesign.Y = {}
-
-                # Extract x values
-                try:
-                    ExpDesign.Y["x_values"] = dict()
-                    for varIdx, var in enumerate(out_names):
-                        x = np.array(f[f"x_values/{var}"])
-                        ExpDesign.Y["x_values"][var] = x
-                except KeyError:
-                    ExpDesign.Y["x_values"] = np.array(f["x_values"])
-
-                # Store the output
-                for varIdx, var in enumerate(out_names):
-                    try:
-                        y = np.array(f[f"EDY/{var}/New_init_"])
-                    except KeyError:
-                        y = np.array(f[f"EDY/{var}/init_"])
-                    ExpDesign.Y[var] = y
-                f.close()
-            else:
-                # Check if an old hdf5 file exists: if yes, rename it
-                hdf5file = f'ExpDesign_{self.ModelObj.name}.hdf5'
-                if os.path.exists(hdf5file):
-                    os.rename(hdf5file, 'old_'+hdf5file)
-
-        # ---- Prepare X samples ----
-        ED_X, ED_X_tr = ExpDesign.generate_ED(ExpDesign.n_init_samples,
-                                              ExpDesign.sampling_method,
-                                              transform=True,
-                                              max_pce_deg=np.max(self.pce_deg))
-        ExpDesign.X = ED_X
-        ExpDesign.collocationPoints = ED_X_tr
-        self.bound_tuples = ExpDesign.bound_tuples
-
-        # ---- Run simulations at X ----
-        if not hasattr(ExpDesign, 'Y') or ExpDesign.Y is None:
-            print('\n Now the forward model needs to be run!\n')
-            ED_Y, up_ED_X = Model.run_model_parallel(ED_X)
-            ExpDesign.X = up_ED_X
-            self.ModelOutputDict = ED_Y
-            ExpDesign.Y = ED_Y
-        else:
-            # Check if a dict has been passed.
-            if type(ExpDesign.Y) is dict:
-                self.ModelOutputDict = ExpDesign.Y
-            else:
-                raise Exception('Please provide either a dictionary or a hdf5'
-                                'file to ExpDesign.hdf5_file argument.')
-
-        return ED_X_tr, self.ModelOutputDict
+        self.InputSpace = InputSpace(self.input_obj,
+                                     meta_Model_type=self.meta_model_type)
 
     # -------------------------------------------------------------------------
     def univ_basis_vals(self, samples, n_max=None):
@@ -538,14 +733,14 @@ class MetaModel():
             All univariate regressors up to n_max.
         """
         # Extract information
-        poly_types = self.ExpDesign.poly_types
+        poly_types = self.InputSpace.poly_types
         if samples.ndim != 2:
             samples = samples.reshape(1, len(samples))
         n_max = np.max(self.pce_deg) if n_max is None else n_max
 
         # Extract poly coeffs
-        if self.ExpDesign.input_data_given or self.ExpDesign.apce:
-            apolycoeffs = self.ExpDesign.polycoeffs
+        if self.InputSpace.input_data_given or self.InputSpace.apce:
+            apolycoeffs = self.polycoeffs
         else:
             apolycoeffs = None
 
@@ -555,66 +750,9 @@ class MetaModel():
         return univ_basis
 
     # -------------------------------------------------------------------------
-    def create_psi(self, basis_indices, univ_p_val):
-        """
-        This function assemble the design matrix Psi from the given basis index
-        set INDICES and the univariate polynomial evaluations univ_p_val.
-
-        Parameters
-        ----------
-        basis_indices : array of shape (n_terms, n_params)
-            Multi-indices of multivariate polynomials.
-        univ_p_val : array of (n_samples, n_params, n_max+1)
-            All univariate regressors up to `n_max`.
-
-        Raises
-        ------
-        ValueError
-            n_terms in arguments do not match.
-
-        Returns
-        -------
-        psi : array of shape (n_samples, n_terms)
-            Multivariate regressors.
-
-        """
-        # Check if BasisIndices is a sparse matrix
-        sparsity = sp.sparse.issparse(basis_indices)
-        if sparsity:
-            basis_indices = basis_indices.toarray()
-
-        # Initialization and consistency checks
-        # number of input variables
-        n_params = univ_p_val.shape[1]
-
-        # Size of the experimental design
-        n_samples = univ_p_val.shape[0]
-
-        # number of basis terms
-        n_terms = basis_indices.shape[0]
-
-        # check that the variables have consistent sizes
-        if n_params != basis_indices.shape[1]:
-            raise ValueError(
-                f"The shapes of basis_indices ({basis_indices.shape[1]}) and "
-                f"univ_p_val ({n_params}) don't match!!"
-                )
-
-        # Preallocate the Psi matrix for performance
-        psi = np.ones((n_samples, n_terms))
-        # Assemble the Psi matrix
-        for m in range(basis_indices.shape[1]):
-            aa = np.where(basis_indices[:, m] > 0)[0]
-            try:
-                basisIdx = basis_indices[aa, m]
-                bb = univ_p_val[:, m, basisIdx].reshape(psi[:, aa].shape)
-                psi[:, aa] = np.multiply(psi[:, aa], bb)
-            except ValueError as err:
-                raise err
-        return psi
 
     # -------------------------------------------------------------------------
-    def fit(self, X, y, basis_indices, reg_method=None, sparsity=True):
+    def regression(self, X, y, basis_indices, reg_method=None, sparsity=True):
         """
         Fit regression using the regression method provided.
 
@@ -629,6 +767,8 @@ class MetaModel():
             Multi-indices of multivariate polynomials.
         reg_method : str, optional
             DESCRIPTION. The default is None.
+        sparsity : bool
+            Use with sparsity-inducing training methods. The default is True
 
         Returns
         -------
@@ -650,20 +790,23 @@ class MetaModel():
             Lambda = 1e-6
 
         # Bayes sparse adaptive aPCE
+        clf_poly = None
         if reg_method.lower() == 'ols':
             clf_poly = lm.LinearRegression(fit_intercept=False)
         elif reg_method.lower() == 'brr':
             clf_poly = lm.BayesianRidge(n_iter=1000, tol=1e-7,
                                         fit_intercept=False,
-                                        normalize=True,
+                                        # normalize=True,
                                         compute_score=compute_score,
                                         alpha_1=1e-04, alpha_2=1e-04,
                                         lambda_1=Lambda, lambda_2=Lambda)
             clf_poly.converged = True
 
         elif reg_method.lower() == 'ard':
+            if X.shape[0] < 2:
+                raise ValueError('Regression with ARD can only be performed for more than 2 samples')
             clf_poly = lm.ARDRegression(fit_intercept=False,
-                                        normalize=True,
+                                        # normalize=True,
                                         compute_score=compute_score,
                                         n_iter=1000, tol=0.0001,
                                         alpha_1=1e-3, alpha_2=1e-3,
@@ -676,11 +819,15 @@ class MetaModel():
                                          n_iter=300, tol=1e-10)
 
         elif reg_method.lower() == 'bcs':
+            if X.shape[0] < 10:
+                raise ValueError('Regression with BCS can only be performed for more than 10 samples')
             clf_poly = RegressionFastLaplace(fit_intercept=False,
                                              bias_term=bias_term,
                                              n_iter=1000, tol=1e-7)
 
         elif reg_method.lower() == 'lars':
+            if X.shape[0] < 10:
+                raise ValueError('Regression with LARS can only be performed for more than 5 samples')
             clf_poly = lm.LassoLarsCV(fit_intercept=False)
 
         elif reg_method.lower() == 'sgdr':
@@ -696,8 +843,31 @@ class MetaModel():
         elif reg_method.lower() == 'ebl':
             clf_poly = EBLinearRegression(optimizer='em')
 
-        # Fit
-        clf_poly.fit(X, y)
+        # Training with constraints automatically uses L2
+        if self.apply_constraints:
+            # TODO: set the constraints here
+            # Define the nonlin. constraint     
+            nlc = NonlinearConstraint(lambda x: np.matmul(X, x), -1, 1.1)
+            self.nlc = nlc
+
+            fun = lambda x: (np.linalg.norm(np.matmul(X, x) - y, ord=2)) ** 2
+            res = None
+            if self.init_type == 'zeros':
+                res = minimize(fun, np.zeros(X.shape[1]), method='trust-constr', constraints=self.nlc)
+            if self.init_type == 'nonpi':
+                clf_poly.fit(X, y)
+                coeff = clf_poly.coef_
+                res = minimize(fun, coeff, method='trust-constr', constraints=self.nlc)
+
+            coeff = np.array(res.x)
+            clf_poly.coef_ = coeff
+            clf_poly.X = X
+            clf_poly.y = y
+            clf_poly.intercept_ = 0
+
+        # Training without constraints uses chosen regression method
+        else:
+            clf_poly.fit(X, y)
 
         # Select the nonzero entries of coefficients
         if sparsity:
@@ -724,15 +894,13 @@ class MetaModel():
         return return_out_dict
 
     # --------------------------------------------------------------------------------------------------------
-    def adaptive_regression(self, ED_X, ED_Y, varIdx, verbose=False):
+    def adaptive_regression(self, ED_Y, varIdx, verbose=False):
         """
         Adaptively fits the PCE model by comparing the scores of different
         degrees and q-norm.
 
         Parameters
         ----------
-        ED_X : array of shape (n_samples, n_params)
-            Experimental design.
         ED_Y : array of shape (n_samples,)
             Target values, i.e. simulation results for the Experimental design.
         varIdx : int
@@ -748,7 +916,7 @@ class MetaModel():
 
         """
 
-        n_samples, n_params = ED_X.shape
+        # n_samples, n_params = ED_X.shape
         # Initialization
         qAllCoeffs, AllCoeffs = {}, {}
         qAllIndices_Sparse, AllIndices_Sparse = {}, {}
@@ -756,7 +924,7 @@ class MetaModel():
         qAllnTerms, AllnTerms = {}, {}
         qAllLCerror, AllLCerror = {}, {}
 
-        # Extract degree array and qnorm array
+        # Extract degree array and q-norm array
         deg_array = np.array([*self.allBasisIndices], dtype=int)
         qnorm = [*self.allBasisIndices[str(int(deg_array[0]))]]
 
@@ -768,7 +936,7 @@ class MetaModel():
         n_checks_qNorm = 2
         nqnorms = len(qnorm)
         qNormEarlyStop = True
-        if nqnorms < n_checks_qNorm+1:
+        if nqnorms < n_checks_qNorm + 1:
             qNormEarlyStop = False
 
         # =====================================================================
@@ -776,6 +944,7 @@ class MetaModel():
         # polynomial degree until the highest accuracy is reached
         # =====================================================================
         # For each degree check all q-norms and choose the best one
+        best_q = None
         scores = -np.inf * np.ones(deg_array.shape[0])
         qNormScores = -np.inf * np.ones(nqnorms)
 
@@ -788,38 +957,38 @@ class MetaModel():
                 BasisIndices = self.allBasisIndices[str(deg)][str(q)]
 
                 # Assemble the Psi matrix
-                Psi = self.create_psi(BasisIndices, self.univ_p_val)
+                Psi = create_psi(BasisIndices, self.univ_p_val)
 
-                # Calulate the cofficients of the meta model
-                outs = self.fit(Psi, ED_Y, BasisIndices)
+                # Calulate the cofficients of the metamodel
+                outs = self.regression(Psi, ED_Y, BasisIndices)
 
                 # Calculate and save the score of LOOCV
-                score, LCerror = self.corr_loocv_error(outs['clf_poly'],
-                                                       outs['sparePsi'],
-                                                       outs['coeffs'],
-                                                       ED_Y)
+                score, LCerror = corr_loocv_error(outs['clf_poly'],
+                                                  outs['sparePsi'],
+                                                  outs['coeffs'],
+                                                  ED_Y)
 
                 # Check the convergence of noise for FastARD
                 if self.pce_reg_method == 'FastARD' and \
-                   outs['clf_poly'].alpha_ < np.finfo(np.float32).eps:
+                        outs['clf_poly'].alpha_ < np.finfo(np.float32).eps:
                     score = -np.inf
 
                 qNormScores[qidx] = score
-                qAllCoeffs[str(qidx+1)] = outs['coeffs']
-                qAllIndices_Sparse[str(qidx+1)] = outs['spareMulti-Index']
-                qAllclf_poly[str(qidx+1)] = outs['clf_poly']
-                qAllnTerms[str(qidx+1)] = BasisIndices.shape[0]
-                qAllLCerror[str(qidx+1)] = LCerror
+                qAllCoeffs[str(qidx + 1)] = outs['coeffs']
+                qAllIndices_Sparse[str(qidx + 1)] = outs['spareMulti-Index']
+                qAllclf_poly[str(qidx + 1)] = outs['clf_poly']
+                qAllnTerms[str(qidx + 1)] = BasisIndices.shape[0]
+                qAllLCerror[str(qidx + 1)] = LCerror
 
                 # EarlyStop check
                 # if there are at least n_checks_qNorm entries after the
                 # best one, we stop
                 if qNormEarlyStop and \
-                   sum(np.isfinite(qNormScores)) > n_checks_qNorm:
+                        sum(np.isfinite(qNormScores)) > n_checks_qNorm:
                     # If the error has increased the last two iterations, stop!
                     qNormScores_nonInf = qNormScores[np.isfinite(qNormScores)]
                     deltas = np.sign(np.diff(qNormScores_nonInf))
-                    if sum(deltas[-n_checks_qNorm+1:]) == 2:
+                    if sum(deltas[-n_checks_qNorm + 1:]) == 2:
                         # stop the q-norm loop here
                         break
                 if np.var(ED_Y) == 0:
@@ -829,11 +998,11 @@ class MetaModel():
             best_q = np.nanargmax(qNormScores)
             scores[degIdx] = qNormScores[best_q]
 
-            AllCoeffs[str(degIdx+1)] = qAllCoeffs[str(best_q+1)]
-            AllIndices_Sparse[str(degIdx+1)] = qAllIndices_Sparse[str(best_q+1)]
-            Allclf_poly[str(degIdx+1)] = qAllclf_poly[str(best_q+1)]
-            AllnTerms[str(degIdx+1)] = qAllnTerms[str(best_q+1)]
-            AllLCerror[str(degIdx+1)] = qAllLCerror[str(best_q+1)]
+            AllCoeffs[str(degIdx + 1)] = qAllCoeffs[str(best_q + 1)]
+            AllIndices_Sparse[str(degIdx + 1)] = qAllIndices_Sparse[str(best_q + 1)]
+            Allclf_poly[str(degIdx + 1)] = qAllclf_poly[str(best_q + 1)]
+            AllnTerms[str(degIdx + 1)] = qAllnTerms[str(best_q + 1)]
+            AllLCerror[str(degIdx + 1)] = qAllLCerror[str(best_q + 1)]
 
             # Check the direction of the error (on average):
             # if it increases consistently stop the iterations
@@ -841,7 +1010,7 @@ class MetaModel():
                 scores_nonInf = scores[scores != -np.inf]
                 ss = np.sign(scores_nonInf - np.max(scores_nonInf))
                 # ss<0 error decreasing
-                errorIncreases = np.sum(np.sum(ss[-2:])) <= -1*n_checks_degree
+                errorIncreases = np.sum(np.sum(ss[-2:])) <= -1 * n_checks_degree
 
             if errorIncreases:
                 break
@@ -852,7 +1021,7 @@ class MetaModel():
 
         # ------------------ Summary of results ------------------
         # Select the one with the best score and save the necessary outputs
-        best_deg = np.nanargmax(scores)+1
+        best_deg = np.nanargmax(scores) + 1
         coeffs = AllCoeffs[str(best_deg)]
         basis_indices = AllIndices_Sparse[str(best_deg)]
         clf_poly = Allclf_poly[str(best_deg)]
@@ -868,24 +1037,24 @@ class MetaModel():
             nnz_idx = np.nonzero(coeffs)[0]
             BasisIndices_Sparse = basis_indices[nnz_idx]
 
-            print(f'Output variable {varIdx+1}:')
+            print(f'Output variable {varIdx + 1}:')
             print('The estimation of PCE coefficients converged at polynomial '
-                  f'degree {deg_array[best_deg-1]} with '
+                  f'degree {deg_array[best_deg - 1]} with '
                   f'{len(BasisIndices_Sparse)} terms (Sparsity index = '
-                  f'{round(len(BasisIndices_Sparse)/P, 3)}).')
+                  f'{round(len(BasisIndices_Sparse) / P, 3)}).')
 
-            print(f'Final ModLOO error estimate: {1-max(scores):.3e}')
-            print('\n'+'-'*50)
+            print(f'Final ModLOO error estimate: {1 - max(scores):.3e}')
+            print('\n' + '-' * 50)
 
         if verbose:
-            print('='*50)
-            print(' '*10 + ' Summary of results ')
-            print('='*50)
-
-            print("scores:\n", scores)
-            print("Best score's degree:", self.deg_array[best_deg-1])
-            print("NO. of terms:", len(basis_indices))
-            print("Sparsity index:", round(len(basis_indices)/P, 3))
+            print('=' * 50)
+            print(' ' * 10 + ' Summary of results ')
+            print('=' * 50)
+
+            print("Scores:\n", scores)
+            print("Degree of best score:", self.deg_array[best_deg - 1])
+            print("No. of terms:", len(basis_indices))
+            print("Sparsity index:", round(len(basis_indices) / P, 3))
             print("Best Indices:\n", basis_indices)
 
             if self.pce_reg_method in ['BRR', 'ARD']:
@@ -904,7 +1073,7 @@ class MetaModel():
 
                 plt.text(0.75, 0.5, text, fontsize=18, transform=ax.transAxes)
                 plt.show()
-            print('='*80)
+            print('=' * 80)
 
         # Create a dict to pass the outputs
         returnVars = dict()
@@ -918,115 +1087,6 @@ class MetaModel():
 
         return returnVars
 
-    # -------------------------------------------------------------------------
-    def corr_loocv_error(self, clf, psi, coeffs, y):
-        """
-        Calculates the corrected LOO error for regression on regressor
-        matrix `psi` that generated the coefficients based on [1] and [2].
-
-        [1] Blatman, G., 2009. Adaptive sparse polynomial chaos expansions for
-            uncertainty propagation and sensitivity analysis (Doctoral
-            dissertation, Clermont-Ferrand 2).
-
-        [2] Blatman, G. and Sudret, B., 2011. Adaptive sparse polynomial chaos
-            expansion based on least angle regression. Journal of computational
-            Physics, 230(6), pp.2345-2367.
-
-        Parameters
-        ----------
-        clf : object
-            Fitted estimator.
-        psi : array of shape (n_samples, n_features)
-            The multivariate orthogonal polynomials (regressor).
-        coeffs : array-like of shape (n_features,)
-            Estimated cofficients.
-        y : array of shape (n_samples,)
-            Target values.
-
-        Returns
-        -------
-        R_2 : float
-            LOOCV Validation score (1-LOOCV erro).
-        residual : array of shape (n_samples,)
-            Residual values (y - predicted targets).
-
-        """
-        psi = np.array(psi, dtype=float)
-
-        # Create PSI_Sparse by removing redundent terms
-        nnz_idx = np.nonzero(coeffs)[0]
-        if len(nnz_idx) == 0:
-            nnz_idx = [0]
-        psi_sparse = psi[:, nnz_idx]
-
-        # NrCoeffs of aPCEs
-        P = len(nnz_idx)
-        # NrEvaluation (Size of experimental design)
-        N = psi.shape[0]
-
-        # Build the projection matrix
-        PsiTPsi = np.dot(psi_sparse.T, psi_sparse)
-
-        if np.linalg.cond(PsiTPsi) > 1e-12: #and \
-           # np.linalg.cond(PsiTPsi) < 1/sys.float_info.epsilon:
-            # faster
-            M = sp.linalg.solve(PsiTPsi,
-                                sp.sparse.eye(PsiTPsi.shape[0]).toarray())
-        else:
-            # stabler
-            M = np.linalg.pinv(PsiTPsi)
-
-        # h factor (the full matrix is not calculated explicitly,
-        # only the trace is, to save memory)
-        PsiM = np.dot(psi_sparse, M)
-
-        h = np.sum(np.multiply(PsiM, psi_sparse), axis=1, dtype=np.float128)
-
-        # ------ Calculate Error Loocv for each measurement point ----
-        # Residuals
-        try:
-            residual = clf.predict(psi) - y
-        except:
-            residual = np.dot(psi, coeffs) - y
-
-        # Variance
-        var_y = np.var(y)
-
-        if var_y == 0:
-            norm_emp_error = 0
-            loo_error = 0
-            LCerror = np.zeros((y.shape))
-            return 1-loo_error, LCerror
-        else:
-            norm_emp_error = np.mean(residual**2)/var_y
-
-            # LCerror = np.divide(residual, (1-h))
-            LCerror = residual / (1-h)
-            loo_error = np.mean(np.square(LCerror)) / var_y
-            # if there are NaNs, just return an infinite LOO error (this
-            # happens, e.g., when a strongly underdetermined problem is solved)
-            if np.isnan(loo_error):
-                loo_error = np.inf
-
-        # Corrected Error for over-determined system
-        tr_M = np.trace(M)
-        if tr_M < 0 or abs(tr_M) > 1e6:
-            tr_M = np.trace(np.linalg.pinv(np.dot(psi.T, psi)))
-
-        # Over-determined system of Equation
-        if N > P:
-            T_factor = N/(N-P) * (1 + tr_M)
-
-        # Under-determined system of Equation
-        else:
-            T_factor = np.inf
-
-        corrected_loo_error = loo_error * T_factor
-
-        R_2 = 1 - corrected_loo_error
-
-        return R_2, LCerror
-
     # -------------------------------------------------------------------------
     def pca_transformation(self, target, verbose=False):
         """
@@ -1036,6 +1096,9 @@ class MetaModel():
         ----------
         target : array of shape (n_samples,)
             Target values.
+        verbose : bool
+            Set to True to get more information during functtion call.
+            The default is False.
 
         Returns
         -------
@@ -1048,20 +1111,20 @@ class MetaModel():
 
         """
         # Transform via Principal Component Analysis
-        if hasattr(self, 'var_pca_threshold'):
+        if self.var_pca_threshold is None:
             var_pca_threshold = self.var_pca_threshold
         else:
             var_pca_threshold = 100.0
         n_samples, n_features = target.shape
 
-        if hasattr(self, 'n_pca_components'):
+        if self.n_pca_components is None:
             n_pca_components = self.n_pca_components
         else:
             # Instantiate and fit sklearnPCA object
             covar_matrix = sklearnPCA(n_components=None)
             covar_matrix.fit(target)
             var = np.cumsum(np.round(covar_matrix.explained_variance_ratio_,
-                                     decimals=5)*100)
+                                     decimals=5) * 100)
             # Find the number of components to explain self.varPCAThreshold of
             # variance
             try:
@@ -1087,95 +1150,15 @@ class MetaModel():
         return pca, scaled_target, n_pca_components
 
     # -------------------------------------------------------------------------
-    def gaussian_process_emulator(self, X, y, nug_term=None, autoSelect=False,
-                                  varIdx=None):
+    def eval_metamodel(self, samples):
         """
-        Fits a Gaussian Process Emulator to the target given the training
-         points.
-
-        Parameters
-        ----------
-        X : array of shape (n_samples, n_params)
-            Training points.
-        y : array of shape (n_samples,)
-            Target values.
-        nug_term : float, optional
-            Nugget term. The default is None, i.e. variance of y.
-        autoSelect : bool, optional
-            Loop over some kernels and select the best. The default is False.
-        varIdx : int, optional
-            The index number. The default is None.
-
-        Returns
-        -------
-        gp : object
-            Fitted estimator.
-
-        """
-
-        nug_term = nug_term if nug_term else np.var(y)
-
-        Kernels = [nug_term * kernels.RBF(length_scale=1.0,
-                                          length_scale_bounds=(1e-25, 1e15)),
-                   nug_term * kernels.RationalQuadratic(length_scale=0.2,
-                                                        alpha=1.0),
-                   nug_term * kernels.Matern(length_scale=1.0,
-                                             length_scale_bounds=(1e-15, 1e5),
-                                             nu=1.5)]
-
-        # Automatic selection of the kernel
-        if autoSelect:
-            gp = {}
-            BME = []
-            for i, kernel in enumerate(Kernels):
-                gp[i] = GaussianProcessRegressor(kernel=kernel,
-                                                 n_restarts_optimizer=3,
-                                                 normalize_y=False)
-
-                # Fit to data using Maximum Likelihood Estimation
-                gp[i].fit(X, y)
-
-                # Store the MLE as BME score
-                BME.append(gp[i].log_marginal_likelihood())
-
-            gp = gp[np.argmax(BME)]
-
-        else:
-            gp = GaussianProcessRegressor(kernel=Kernels[0],
-                                          n_restarts_optimizer=3,
-                                          normalize_y=False)
-            gp.fit(X, y)
-
-        # Compute score
-        if varIdx is not None:
-            Score = gp.score(X, y)
-            print('-'*50)
-            print(f'Output variable {varIdx}:')
-            print('The estimation of GPE coefficients converged,')
-            print(f'with the R^2 score: {Score:.3f}')
-            print('-'*50)
-
-        return gp
-
-    # -------------------------------------------------------------------------
-    def eval_metamodel(self, samples=None, nsamples=None,
-                       sampling_method='random', return_samples=False):
-        """
-        Evaluates meta-model at the requested samples. One can also generate
+        Evaluates metamodel at the requested samples. One can also generate
         nsamples.
 
         Parameters
         ----------
         samples : array of shape (n_samples, n_params), optional
-            Samples to evaluate meta-model at. The default is None.
-        nsamples : int, optional
-            Number of samples to generate, if no `samples` is provided. The
-            default is None.
-        sampling_method : str, optional
-            Type of sampling, if no `samples` is provided. The default is
-            'random'.
-        return_samples : bool, optional
-            Retun samples, if no `samples` is provided. The default is False.
+            Samples to evaluate metamodel at. The default is None.
 
         Returns
         -------
@@ -1184,77 +1167,77 @@ class MetaModel():
         std_pred : dict
             Standard deviatioon of the predictions.
         """
-        outputs = self.ModelObj.Output.names
-
-        # Generate or transform (if need be) samples
-        if samples is None:
-            # Generate
-            samples = self.ExpDesign.generate_samples(
-                nsamples,
-                sampling_method
-                )
+        # Transform into np array - can also be given as list
+        samples = np.array(samples)
 
         # Transform samples to the independent space
-        samples = self.ExpDesign.transform(
+        samples = self.InputSpace.transform(
             samples,
             method='user'
-            )
-        # print(samples)
-
+        )
         # Compute univariate bases for the given samples
+        #print('Creating the univariate basis.')
+        univ_p_val = None
         if self.meta_model_type.lower() != 'gpe':
             univ_p_val = self.univ_basis_vals(
                 samples,
                 n_max=np.max(self.pce_deg)
-                )
+            )
 
+        mean_pred = None
+        std_pred = None
         mean_pred_b = {}
         std_pred_b = {}
+        b_i = 0
         # Loop over bootstrap iterations
+        #print('Looping over bootstrap iterations.')
         for b_i in range(self.n_bootstrap_itrs):
 
             # Extract model dictionary
             if self.meta_model_type.lower() == 'gpe':
-                model_dict = self.gp_poly[f'b_{b_i+1}']
+                model_dict = self.gp_poly[f'b_{b_i + 1}']
             else:
-                model_dict = self.coeffs_dict[f'b_{b_i+1}']
+                model_dict = self.coeffs_dict[f'b_{b_i + 1}']
 
             # Loop over outputs
             mean_pred = {}
             std_pred = {}
+            #print(model_dict.items())
+            #print('Looping over the output timesteps')
             for output, values in model_dict.items():
 
                 mean = np.empty((len(samples), len(values)))
                 std = np.empty((len(samples), len(values)))
                 idx = 0
+                #print('Looping over ??')
                 for in_key, InIdxValues in values.items():
 
-                    # Perdiction with GPE
+                    # Prediction with GPE
                     if self.meta_model_type.lower() == 'gpe':
-                        X_T = self.x_scaler[f'b_{b_i+1}'][output].transform(samples)
-                        gp = self.gp_poly[f'b_{b_i+1}'][output][in_key]
+                        X_T = self.x_scaler[f'b_{b_i + 1}'][output].transform(samples)
+                        gp = self.gp_poly[f'b_{b_i + 1}'][output][in_key]
                         y_mean, y_std = gp.predict(X_T, return_std=True)
 
                     else:
-                        # Perdiction with PCE
+                        # Prediction with PCE
                         # Assemble Psi matrix
-                        basis = self.basis_dict[f'b_{b_i+1}'][output][in_key]
-                        psi = self.create_psi(basis, univ_p_val)
+                        basis = self.basis_dict[f'b_{b_i + 1}'][output][in_key]
+                        psi = create_psi(basis, univ_p_val)
 
-                        # Perdiction
+                        # Prediction
                         if self.bootstrap_method != 'fast' or b_i == 0:
                             # with error bar, i.e. use clf_poly
-                            clf_poly = self.clf_poly[f'b_{b_i+1}'][output][in_key]
+                            clf_poly = self.clf_poly[f'b_{b_i + 1}'][output][in_key]
                             try:
                                 y_mean, y_std = clf_poly.predict(
                                     psi, return_std=True
-                                    )
+                                )
                             except TypeError:
                                 y_mean = clf_poly.predict(psi)
                                 y_std = np.zeros_like(y_mean)
                         else:
                             # without error bar
-                            coeffs = self.coeffs_dict[f'b_{b_i+1}'][output][in_key]
+                            coeffs = self.coeffs_dict[f'b_{b_i + 1}'][output][in_key]
                             y_mean = np.dot(psi, coeffs)
                             y_std = np.zeros_like(y_mean)
 
@@ -1264,7 +1247,7 @@ class MetaModel():
 
                 # Save predictions for each output
                 if self.dim_red_method.lower() == 'pca':
-                    PCA = self.pca[f'b_{b_i+1}'][output]
+                    PCA = self.pca[f'b_{b_i + 1}'][output]
                     mean_pred[output] = PCA.inverse_transform(mean)
                     std_pred[output] = np.zeros(mean.shape)
                 else:
@@ -1284,7 +1267,7 @@ class MetaModel():
                 mean_pred_all[k][i] = v
 
         # Compute the moments of predictions over the predictions
-        for output in outputs:
+        for output in self.out_names:
             # Only use bootstraps with finite values
             finite_rows = np.isfinite(
                 mean_pred_all[output]).all(axis=2).all(axis=1)
@@ -1295,15 +1278,13 @@ class MetaModel():
             if self.n_bootstrap_itrs > 1:
                 std_pred[output] = np.std(outs, axis=0)
             else:
+                # TODO: this b_i seems off here
                 std_pred[output] = std_pred_b[b_i][output]
 
-        if return_samples:
-            return mean_pred, std_pred, samples
-        else:
-            return mean_pred, std_pred
+        return mean_pred, std_pred
 
     # -------------------------------------------------------------------------
-    def create_model_error(self, X, y, name='Calib'):
+    def create_model_error(self, X, y, MeasuredData):
         """
         Fits a GPE-based model error.
 
@@ -1314,8 +1295,7 @@ class MetaModel():
              extracted data.
         y : array of shape (n_outputs,)
             The model response for the MAP parameter set.
-        name : str, optional
-            Calibration or validation. The default is `'Calib'`.
+        MeasuredData :
 
         Returns
         -------
@@ -1323,14 +1303,14 @@ class MetaModel():
             Self object.
 
         """
-        Model = self.ModelObj
-        outputNames = Model.Output.names
+        outputNames = self.out_names
         self.errorRegMethod = 'GPE'
         self.errorclf_poly = self.auto_vivification()
         self.errorScale = self.auto_vivification()
 
         # Read data
-        MeasuredData = Model.read_observation(case=name)
+        # TODO: do this call outside the metamodel
+        # MeasuredData = Model.read_observation(case=name)
 
         # Fitting GPR based bias model
         for out in outputNames:
@@ -1346,7 +1326,7 @@ class MetaModel():
             delta = data  # - y[out][0]
             BiasInputs = np.hstack((X[out], y[out].reshape(-1, 1)))
             X_S = scaler.fit_transform(BiasInputs)
-            gp = self.gaussian_process_emulator(X_S, delta)
+            gp = gaussian_process_emulator(X_S, delta)
 
             self.errorScale[out]["y_1"] = scaler
             self.errorclf_poly[out]["y_1"] = gp
@@ -1416,31 +1396,25 @@ class MetaModel():
                 return value
 
     # -------------------------------------------------------------------------
-    def copy_meta_model_opts(self, InputObj, ModelObj):
+    def copy_meta_model_opts(self):
         """
         This method is a convinient function to copy the metamodel options.
 
-        Parameters
-        ----------
-        InputObj : object
-            The input object.
-        ModelObj : object
-            The Model object.
-
         Returns
         -------
         new_MetaModelOpts : object
             The copied object.
 
         """
+        # TODO: what properties should be moved to the new object?
         new_MetaModelOpts = copy.deepcopy(self)
-        new_MetaModelOpts.ModelObj = ModelObj
-        new_MetaModelOpts.input_obj = InputObj
-        new_MetaModelOpts.ExpDesign.meta_Model = 'aPCE'
-        new_MetaModelOpts.ExpDesign.InputObj = InputObj
-        new_MetaModelOpts.ExpDesign.ndim = len(InputObj.Marginals)
-        new_MetaModelOpts.n_params = len(InputObj.Marginals)
-        new_MetaModelOpts.ExpDesign.hdf5_file = None
+        new_MetaModelOpts.input_obj = self.input_obj  # InputObj
+        new_MetaModelOpts.InputSpace = self.InputSpace
+        # new_MetaModelOpts.InputSpace.meta_Model = 'aPCE'
+        # new_MetaModelOpts.InputSpace.InputObj = self.input_obj
+        # new_MetaModelOpts.InputSpace.ndim = len(self.input_obj.Marginals)
+        new_MetaModelOpts.n_params = len(self.input_obj.Marginals)
+        # new_MetaModelOpts.InputSpace.hdf5_file = None
 
         return new_MetaModelOpts
 
@@ -1460,13 +1434,15 @@ class MetaModel():
         Returns
         -------
         deg_array: array
-            Array containing the arrays.
+            The selected degrees.
 
         """
         # Define the deg_array
         max_deg = np.max(self.pce_deg)
         min_Deg = np.min(self.pce_deg)
-        nitr = n_samples - self.ExpDesign.n_init_samples
+
+        # TODO: remove the options for sequential?
+        nitr = n_samples - self.InputSpace.n_init_samples
 
         # Check q-norm
         if not np.isscalar(self.pce_q_norm):
@@ -1474,24 +1450,134 @@ class MetaModel():
         else:
             self.pce_q_norm = np.array([self.pce_q_norm])
 
-        def M_uptoMax(maxDeg):
-            n_combo = np.zeros(maxDeg)
-            for i, d in enumerate(range(1, maxDeg+1)):
-                n_combo[i] = math.factorial(ndim+d)
-                n_combo[i] /= math.factorial(ndim) * math.factorial(d)
-            return n_combo
+        # def M_uptoMax(maxDeg):
+        #    n_combo = np.zeros(maxDeg)
+        #    for i, d in enumerate(range(1, maxDeg + 1)):
+        #        n_combo[i] = math.factorial(ndim + d)
+        #        n_combo[i] /= math.factorial(ndim) * math.factorial(d)
+        #    return n_combo
 
-        if self.ExpDesignFlag != 'sequential':
-            deg_new = max_deg
-        else:
-            d = nitr if nitr != 0 and self.n_params > 5 else 1
-            min_index = np.argmin(abs(M_uptoMax(max_deg)-ndim*n_samples*d))
-            deg_new = max_deg
-            # deg_new = range(1, max_deg+1)[min_index]
+        deg_new = max_deg
+        # d = nitr if nitr != 0 and self.n_params > 5 else 1
+        # d = 1
+        # min_index = np.argmin(abs(M_uptoMax(max_deg)-ndim*n_samples*d))
+        # deg_new = range(1, max_deg+1)[min_index]
 
         if deg_new > min_Deg and self.pce_reg_method.lower() != 'fastard':
-            deg_array = np.arange(min_Deg, deg_new+1)
+            deg_array = np.arange(min_Deg, deg_new + 1)
         else:
             deg_array = np.array([deg_new])
 
         return deg_array
+
+    def generate_polynomials(self, max_deg=None):
+        """
+        Generates (univariate) polynomials.
+
+        Parameters
+        ----------
+        max_deg : int
+            Maximum polynomial degree.
+
+        Returns
+        -------
+        None
+        """
+        # Check for InputSpace
+        if self.InputSpace is None:
+            raise AttributeError('Generate or add InputSpace before generating polynomials')
+
+        ndim = self.InputSpace.ndim
+        # Create orthogonal polynomial coefficients if necessary
+        if (self.meta_model_type.lower() != 'gpe') and max_deg is not None:  # and self.input_obj.poly_coeffs_flag:
+            self.polycoeffs = {}
+            for parIdx in tqdm(range(ndim), ascii=True,
+                               desc="Computing orth. polynomial coeffs"):
+                poly_coeffs = apoly_construction(
+                    self.InputSpace.raw_data[parIdx],
+                    max_deg
+                )
+                self.polycoeffs[f'p_{parIdx + 1}'] = poly_coeffs
+        else:
+            raise AttributeError('MetaModel cannot generate polynomials in the given scenario!')
+
+    # -------------------------------------------------------------------------
+    def _compute_pce_moments(self):
+        """
+        Computes the first two moments using the PCE-based metamodel.
+
+        Returns
+        -------
+        pce_means: dict
+            The first moment (mean) of the surrogate.
+        pce_stds: dict
+            The second moment (standard deviation) of the surrogate.
+
+        """
+
+        # Check if it's truly a pce-surrogate
+        if self.meta_model_type.lower() == 'gpe':
+            raise AttributeError('Moments can only be computed for pce-type surrogates')
+
+        outputs = self.out_names
+        pce_means_b = {}
+        pce_stds_b = {}
+
+        # Loop over bootstrap iterations
+        for b_i in range(self.n_bootstrap_itrs):
+            # Loop over the metamodels
+            coeffs_dicts = self.coeffs_dict[f'b_{b_i + 1}'].items()
+            means = {}
+            stds = {}
+            for output, coef_dict in coeffs_dicts:
+
+                pce_mean = np.zeros((len(coef_dict)))
+                pce_var = np.zeros((len(coef_dict)))
+
+                for index, values in coef_dict.items():
+                    idx = int(index.split('_')[1]) - 1
+                    coeffs = self.coeffs_dict[f'b_{b_i + 1}'][output][index]
+
+                    # Mean = c_0
+                    if coeffs[0] != 0:
+                        pce_mean[idx] = coeffs[0]
+                    else:
+                        clf_poly = self.clf_poly[f'b_{b_i + 1}'][output]
+                        pce_mean[idx] = clf_poly[index].intercept_
+                    # Var = sum(coeffs[1:]**2)
+                    pce_var[idx] = np.sum(np.square(coeffs[1:]))
+
+                # Save predictions for each output
+                if self.dim_red_method.lower() == 'pca':
+                    PCA = self.pca[f'b_{b_i + 1}'][output]
+                    means[output] = PCA.inverse_transform(pce_mean)
+                    stds[output] = PCA.inverse_transform(np.sqrt(pce_var))
+                else:
+                    means[output] = pce_mean
+                    stds[output] = np.sqrt(pce_var)
+
+            # Save predictions for each bootstrap iteration
+            pce_means_b[b_i] = means
+            pce_stds_b[b_i] = stds
+
+        # Change the order of nesting
+        mean_all = {}
+        for i in sorted(pce_means_b):
+            for k, v in pce_means_b[i].items():
+                if k not in mean_all:
+                    mean_all[k] = [None] * len(pce_means_b)
+                mean_all[k][i] = v
+        std_all = {}
+        for i in sorted(pce_stds_b):
+            for k, v in pce_stds_b[i].items():
+                if k not in std_all:
+                    std_all[k] = [None] * len(pce_stds_b)
+                std_all[k][i] = v
+
+        # Back transformation if PCA is selected.
+        pce_means, pce_stds = {}, {}
+        for output in outputs:
+            pce_means[output] = np.mean(mean_all[output], axis=0)
+            pce_stds[output] = np.mean(std_all[output], axis=0)
+
+        return pce_means, pce_stds
diff --git a/tests/MCrefs_MeanStd.csv b/tests/MCrefs_MeanStd.csv
new file mode 100644
index 0000000000000000000000000000000000000000..e9592bf45db032790f95259b8cedd7f961e70a81
--- /dev/null
+++ b/tests/MCrefs_MeanStd.csv
@@ -0,0 +1,12 @@
+x [m],mean,std
+0,0,0
+0.1,-0.002623091088022,8.06E-04
+0.2,-0.004962749295994,0.001525818175278
+0.3,-0.006794367435948,0.002088956887598
+0.4,-0.007957511802197,0.002446570522429
+0.5,-0.008355922171325,0.002569063468612
+0.6,-0.007957511802197,0.002446570522429
+0.7,-0.006794367435948,0.002088956887598
+0.8,-0.004962749295994,0.001525818175278
+0.9,-0.002623091088022,8.06E-04
+1,0,0
diff --git a/tests/MeasuredData.csv b/tests/MeasuredData.csv
new file mode 100644
index 0000000000000000000000000000000000000000..5774f51566a8dfc04976e30e56fbca293ac296e4
--- /dev/null
+++ b/tests/MeasuredData.csv
@@ -0,0 +1,12 @@
+x [m],Deflection [m]
+0,0
+0.555555555555556,-0.002507972252554
+1.11111111111111,-0.004744950561407
+1.66666666666667,-0.006496185008909
+2.22222222222222,-0.007608282796739
+2.77777777777778,-0.007989208245903
+3.33333333333333,-0.007608282796739
+3.88888888888889,-0.006496185008909
+4.44444444444444,-0.004744950561407
+5,-0.002507972252554
+5.55555555555556,0
diff --git a/tests/MeasuredData_Valid.csv b/tests/MeasuredData_Valid.csv
new file mode 100644
index 0000000000000000000000000000000000000000..426ba7ed46ff82621baadb3435f79c2a0f47810b
--- /dev/null
+++ b/tests/MeasuredData_Valid.csv
@@ -0,0 +1,12 @@
+x [m],Deflection [m]
+0,0
+0.555555555555556,-0.002623491033022
+1.11111111111111,-0.004962750295994
+1.66666666666667,-0.006794369935948
+2.22222222222222,-0.007956511802197
+2.77777777777778,-0.008355582171325
+3.33333333333333,-0.007957591802197
+3.88888888888889,-0.006794363675948
+4.44444444444444,-0.004962749995994
+5,-0.00262091088022
+5.55555555555556,0
diff --git a/tests/SBeam_Deflection.tpl.inp b/tests/SBeam_Deflection.tpl.inp
new file mode 100644
index 0000000000000000000000000000000000000000..6bfc3fe96c62923b0a89bde26b5dd83375a418db
--- /dev/null
+++ b/tests/SBeam_Deflection.tpl.inp
@@ -0,0 +1,6 @@
+% Input file for the simply supported beam model
+<X1> % b in m
+<X2> % h in m
+5 % L in m
+<X3> % E in Pa
+<X4> % p in N/m
diff --git a/tests/test_BayesInference.py b/tests/test_BayesInference.py
new file mode 100644
index 0000000000000000000000000000000000000000..2f22f9158190c930fe6827fe892e3a87027e33c5
--- /dev/null
+++ b/tests/test_BayesInference.py
@@ -0,0 +1,1105 @@
+# -*- coding: utf-8 -*-
+"""
+Test the BayesInference class for bayesvalidrox
+
+Tests are available for the following functions
+    _logpdf                 - x
+    _kernel_rbf             - x
+class BayesInference:
+    setup_inference         - x
+    create_inference        - x
+    perform_bootstrap       Need working model for tests without emulator
+    _perturb_data           - x
+    create_error_model      Error in the MetaModel
+    _eval_model             Need working model to test this
+    normpdf                 - x
+    _corr_factor_BME_old    - removed
+    _corr_factor_BME        - x
+    _rejection_sampling     - x
+    _posterior_predictive   - x
+    plot_post_params        - x 
+    plot_log_BME            - x
+    _plot_max_a_posteriori  Need working model to test this
+    _plot_post_predictive   - x
+"""
+import sys
+import pytest
+import numpy as np
+import pandas as pd
+
+from bayesvalidrox.surrogate_models.inputs import Input
+from bayesvalidrox.surrogate_models.exp_designs import ExpDesigns
+from bayesvalidrox.surrogate_models.surrogate_models import MetaModel
+from bayesvalidrox.pylink.pylink import PyLinkForwardModel as PL
+from bayesvalidrox.surrogate_models.engine import Engine
+from bayesvalidrox.bayes_inference.discrepancy import Discrepancy
+from bayesvalidrox.bayes_inference.mcmc import MCMC
+from bayesvalidrox.bayes_inference.bayes_inference import BayesInference
+from bayesvalidrox.bayes_inference.bayes_inference import _logpdf, _kernel_rbf
+
+sys.path.append("src/")
+sys.path.append("../src/")
+
+
+#%% Test _logpdf
+
+def test_logpdf() -> None:
+    """
+    Calculate loglikelihood
+
+    """
+    _logpdf([0], [0], [1])
+
+
+#%% Test _kernel_rbf
+
+def test_kernel_rbf() -> None:
+    """
+    Create RBF kernel
+    """
+    X = [[0, 0], [1, 1.5]]
+    pars = [1, 0.5, 1]
+    _kernel_rbf(X, pars)
+
+
+def test_kernel_rbf_lesspar() -> None:
+    """
+    Create RBF kernel with too few parameters
+    """
+    X = [[0, 0], [1, 1.5]]
+    pars = [1, 2]
+    with pytest.raises(AttributeError) as excinfo:
+        _kernel_rbf(X, pars)
+    assert str(excinfo.value) == 'Provide 3 parameters for the RBF kernel!'
+
+
+#%% Test MCMC init
+
+def test_BayesInference() -> None:
+    """
+    Construct a BayesInference object
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mod = PL()
+    mm = MetaModel(inp)
+    expdes = ExpDesigns(inp)
+    engine = Engine(mm, mod, expdes)
+    BayesInference(engine)
+
+
+#%% Test create_inference
+# TODO: disabled this test!
+def test_create_inference() -> None:
+    """
+    Run inference
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.x_values = np.array([0])  # Error in plots if this is not available
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+
+    mod = PL()
+    mod.observations = {'Z': np.array([0.45])}
+    mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}  # Error if x_values not given
+    mod.Output.names = ['Z']
+
+    engine = Engine(mm, mod, expdes)
+
+    obsData = pd.DataFrame(mod.observations, columns=mod.Output.names)
+    DiscrepancyOpts = Discrepancy('')
+    DiscrepancyOpts.type = 'Gaussian'
+    DiscrepancyOpts.parameters = (obsData * 0.15) ** 2
+
+    bi = BayesInference(engine)
+    bi.Discrepancy = DiscrepancyOpts  # Error if this not class 'DiscrepancyOpts' or dict(?)
+    bi.bootstrap = True  # Error if this and bayes_loocv and just_analysis are all False?
+    bi.plot_post_pred = False  # Remaining issue in the violinplot
+    bi.create_inference()
+    # Remaining issue in the violinplot in plot_post_predictive
+
+
+#%% Test rejection_sampling
+def test_rejection_sampling_nologlik() -> None:
+    """
+    Perform rejection sampling without given log likelihood
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mod = PL()
+    mm = MetaModel(inp)
+    expdes = ExpDesigns(inp)
+    expdes.init_param_space(max_deg=1)
+    engine = Engine(mm, mod, expdes)
+    bi = BayesInference(engine)
+    bi.prior_samples = expdes.generate_samples(100, 'random')
+    with pytest.raises(AttributeError) as excinfo:
+        bi._rejection_sampling()
+    assert str(excinfo.value) == 'No log-likelihoods available!'
+
+
+def test_rejection_sampling_noprior() -> None:
+    """
+    Perform rejection sampling without prior samples
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mod = PL()
+    mm = MetaModel(inp)
+    expdes = ExpDesigns(inp)
+    engine = Engine(mm, mod, expdes)
+    bi = BayesInference(engine)
+    with pytest.raises(AttributeError) as excinfo:
+        bi._rejection_sampling()
+    assert str(excinfo.value) == 'No prior samples available!'
+
+
+def test_rejection_sampling() -> None:
+    """
+    Perform rejection sampling
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mod = PL()
+    mm = MetaModel(inp)
+    expdes = ExpDesigns(inp)
+    expdes.init_param_space(max_deg=1)
+    engine = Engine(mm, mod, expdes)
+    bi = BayesInference(engine)
+    bi.prior_samples = expdes.generate_samples(100, 'random')
+    bi.log_likes = np.swapaxes(np.atleast_2d(np.log(np.random.random(100) * 3)), 0, 1)
+    bi._rejection_sampling()
+
+
+#%% Test _perturb_data
+
+def test_perturb_data() -> None:
+    """
+    Perturb data
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mod = PL()
+    mm = MetaModel(inp)
+    expdes = ExpDesigns(inp)
+    engine = Engine(mm, mod, expdes)
+
+    bi = BayesInference(engine)
+    data = pd.DataFrame()
+    data['Z'] = [0.45]
+    bi._perturb_data(data, ['Z'])
+
+
+def test_perturb_data_loocv() -> None:
+    """
+    Perturb data with bayes_loocv
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mod = PL()
+    mm = MetaModel(inp)
+    expdes = ExpDesigns(inp)
+    engine = Engine(mm, mod, expdes)
+
+    bi = BayesInference(engine)
+    data = pd.DataFrame()
+    data['Z'] = [0.45]
+    bi.bayes_loocv = True
+    bi._perturb_data(data, ['Z'])
+
+
+#%% Test _eval_model
+
+def test_eval_model() -> None:
+    """
+    Run model with descriptive key
+    """
+    # TODO: need functioning example model to test this
+    None
+
+
+#%% Test corr_factor_BME
+
+def test_corr_factor_BME() -> None:
+    """
+    Calculate correction factor
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.init_param_space(max_deg=1)
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+
+    obs_data = {'Z': np.array([0.45])}
+    total_sigma2s = {'Z': np.array([0.15])}
+    logBME = [0, 0, 0]
+
+    bi = BayesInference(engine)
+    bi.selected_indices = {'Z': 0}
+    bi._corr_factor_BME(obs_data, total_sigma2s, logBME)
+
+
+def test_corr_factor_BME_selectedindices() -> None:
+    """
+    Calculate correction factor
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.init_param_space(max_deg=1)
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+
+    obs_data = {'Z': np.array([0.45])}
+    total_sigma2s = {'Z': np.array([0.15])}
+    logBME = [0, 0, 0]
+
+    bi = BayesInference(engine)
+    bi.selected_indices = {'Z': 0}
+    bi._corr_factor_BME(obs_data, total_sigma2s, logBME)
+
+
+#%% Test normpdf
+
+def test_normpdf_nosigmas() -> None:
+    """
+    Run normpdf without any additional sigmas
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.init_param_space(max_deg=1)
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': np.array([[0.4], [0.5], [0.45]])}
+
+    mm = MetaModel(inp)
+    mod = PL()
+    mod.Output.names = ['Z']
+    engine = Engine(mm, mod, expdes)
+
+    obs_data = {'Z': np.array([0.45])}
+    total_sigma2s = {'Z': np.array([0.15])}
+
+    bi = BayesInference(engine)
+    bi.normpdf(expdes.Y, obs_data, total_sigma2s, sigma2=None, std=None)
+
+
+def test_normpdf_sigma2() -> None:
+    """
+    Run normpdf with sigma2
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.init_param_space(max_deg=1)
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': np.array([[0.4], [0.5], [0.45]])}
+
+    mm = MetaModel(inp)
+    mod = PL()
+    mod.Output.names = ['Z']
+    engine = Engine(mm, mod, expdes)
+
+    obs_data = {'Z': np.array([0.45])}
+    total_sigma2s = {'Z': np.array([0.15])}
+    sigma2 = [[0]]
+
+    bi = BayesInference(engine)
+    bi.normpdf(expdes.Y, obs_data, total_sigma2s, sigma2=sigma2, std=None)
+
+
+def test_normpdf_allsigmas() -> None:
+    """
+    Run normpdf with all additional sigmas
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.init_param_space(max_deg=1)
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': np.array([[0.4], [0.5], [0.45]])}
+
+    mm = MetaModel(inp)
+    mod = PL()
+    mod.Output.names = ['Z']
+    engine = Engine(mm, mod, expdes)
+
+    obs_data = {'Z': np.array([0.45])}
+    total_sigma2s = {'Z': np.array([0.15])}
+    sigma2 = [[0]]
+
+    bi = BayesInference(engine)
+    bi.normpdf(expdes.Y, obs_data, total_sigma2s, sigma2=sigma2, std=total_sigma2s)
+
+
+#%% Test setup_inference
+
+def test_setup_inference_noobservation() -> None:
+    """
+    Test the object setup without given observations
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+
+    mod = PL()
+    mod.Output.names = ['Z']
+
+    engine = Engine(mm, mod, expdes)
+
+    obsData = pd.DataFrame(mod.observations, columns=mod.Output.names)
+    DiscrepancyOpts = Discrepancy('')
+    DiscrepancyOpts.type = 'Gaussian'
+    DiscrepancyOpts.parameters = (obsData * 0.15) ** 2
+
+    bi = BayesInference(engine)
+    bi.Discrepancy = DiscrepancyOpts
+    with pytest.raises(Exception) as excinfo:
+        bi.setup_inference()
+    assert str(
+        excinfo.value) == ('Please provide the observation data as a dictionary via observations attribute or pass the '
+                           'csv-file path to MeasurementFile attribute')
+
+
+def test_setup_inference() -> None:
+    """
+    Test the object setup with observations
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+
+    mod = PL()
+    mod.observations = {'Z': np.array([0.45])}
+    mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}
+    mod.Output.names = ['Z']
+
+    engine = Engine(mm, mod, expdes)
+
+    obsData = pd.DataFrame(mod.observations, columns=mod.Output.names)
+    DiscrepancyOpts = Discrepancy('')
+    DiscrepancyOpts.type = 'Gaussian'
+    DiscrepancyOpts.parameters = (obsData * 0.15) ** 2
+
+    bi = BayesInference(engine)
+    bi.Discrepancy = DiscrepancyOpts
+    bi.setup_inference()
+
+
+def test_setup_inference_priorsamples() -> None:
+    """
+    Test the object setup with prior samples set by hand
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+
+    mod = PL()
+    mod.observations = {'Z': np.array([0.45])}
+    mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}
+    mod.Output.names = ['Z']
+
+    engine = Engine(mm, mod, expdes)
+
+    obsData = pd.DataFrame(mod.observations, columns=mod.Output.names)
+    DiscrepancyOpts = Discrepancy('')
+    DiscrepancyOpts.type = 'Gaussian'
+    DiscrepancyOpts.parameters = (obsData * 0.15) ** 2
+
+    bi = BayesInference(engine)
+    bi.prior_samples = np.swapaxes(np.array([np.random.normal(0, 1, 100)]), 0, 1)
+    bi.Discrepancy = DiscrepancyOpts
+    bi.setup_inference()
+
+
+def test_setup_inference_valid() -> None:
+    """
+    Test the object setup for valid
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+
+    mod = PL()
+    mod.observations_valid = {'Z': np.array([0.45])}
+    mod.observations_valid = {'Z': np.array([0.45]), 'x_values': np.array([0])}
+    mod.Output.names = ['Z']
+
+    engine = Engine(mm, mod, expdes)
+
+    obsData = pd.DataFrame(mod.observations, columns=mod.Output.names)
+    DiscrepancyOpts = Discrepancy('')
+    DiscrepancyOpts.type = 'Gaussian'
+    DiscrepancyOpts.parameters = (obsData * 0.15) ** 2
+
+    bi = BayesInference(engine)
+    bi.Discrepancy = DiscrepancyOpts
+    bi.name = 'valid'
+    bi.setup_inference()
+
+
+def test_setup_inference_noname() -> None:
+    """
+    Test the object setup for an invalid inference name
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+
+    mod = PL()
+    mod.observations = {'Z': np.array([0.45])}
+    mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}
+    mod.Output.names = ['Z']
+
+    engine = Engine(mm, mod, expdes)
+
+    obsData = pd.DataFrame(mod.observations, columns=mod.Output.names)
+    DiscrepancyOpts = Discrepancy('')
+    DiscrepancyOpts.type = 'Gaussian'
+    DiscrepancyOpts.parameters = (obsData * 0.15) ** 2
+
+    bi = BayesInference(engine)
+    bi.Discrepancy = DiscrepancyOpts
+    bi.name = ''
+    with pytest.raises(Exception) as excinfo:
+        bi.setup_inference()
+    assert str(excinfo.value) == 'The set inference type is not known! Use either `calib` or `valid`'
+
+
+#%% Test perform_bootstrap
+
+def test_perform_bootstrap() -> None:
+    """
+    Do bootstrap
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.x_values = np.array([0])  # Error in plots if this is not available
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+
+    mod = PL()
+    mod.observations = {'Z': np.array([0.45])}
+    mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}  # Error if x_values not given
+    mod.Output.names = ['Z']
+    mod.n_obs = 1
+
+    engine = Engine(mm, mod, expdes)
+
+    obsData = pd.DataFrame(mod.observations, columns=mod.Output.names)
+    DiscrepancyOpts = Discrepancy('')
+    DiscrepancyOpts.type = 'Gaussian'
+    DiscrepancyOpts.parameters = (obsData * 0.15) ** 2
+
+    bi = BayesInference(engine)
+    bi.Discrepancy = DiscrepancyOpts
+    bi.bootstrap = True
+    bi.plot_post_pred = False
+    total_sigma2s = {'Z': np.array([0.15])}
+    bi.setup_inference()
+    bi.perform_bootstrap(total_sigma2s)
+
+
+def test_perform_bootstrap_bayesloocv() -> None:
+    """
+    Do bootstrap
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.x_values = np.array([0])  # Error in plots if this is not available
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+
+    mod = PL()
+    mod.observations = {'Z': np.array([0.45])}
+    mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}  # Error if x_values not given
+    mod.Output.names = ['Z']
+    mod.n_obs = 1
+
+    engine = Engine(mm, mod, expdes)
+
+    obsData = pd.DataFrame(mod.observations, columns=mod.Output.names)
+    DiscrepancyOpts = Discrepancy('')
+    DiscrepancyOpts.type = 'Gaussian'
+    DiscrepancyOpts.parameters = (obsData * 0.15) ** 2
+
+    bi = BayesInference(engine)
+    bi.Discrepancy = DiscrepancyOpts
+    bi.bootstrap = True
+    bi.plot_post_pred = False
+    total_sigma2s = {'Z': np.array([0.15])}
+    bi.setup_inference()
+    bi.bayes_loocv = True
+    bi.perform_bootstrap(total_sigma2s)
+
+
+#%% Test create_error_model
+
+def create_error_model_prior() -> None:
+    """ 
+    Test creating MetaModel error-model for 'prior'
+    """
+    # TODO: there are issues with the expected formats from the MetaModel
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+
+    mod = PL()
+    mod.observations = {'Z': np.array([0.45])}
+    mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}
+    mod.Output.names = ['Z']
+    mod.n_obs = 1
+
+    engine = Engine(mm, mod, expdes)
+
+    obsData = pd.DataFrame(mod.observations, columns=mod.Output.names)
+    DiscrepancyOpts = Discrepancy('')
+    DiscrepancyOpts.type = 'Gaussian'
+    DiscrepancyOpts.parameters = (obsData * 0.15) ** 2
+
+    bi = BayesInference(engine)
+    bi.Discrepancy = DiscrepancyOpts
+    bi.bootstrap = True
+    bi.setup_inference()
+    bi.bias_inputs = expdes.X
+    bi.create_error_model(type_='prior', opt_sigma='B', sampler=None)
+
+
+def create_error_model_posterior() -> None:
+    """ 
+    Test creating MetaModel error-model for 'posterior'
+    """
+    # TODO: there are issues with the expected formats from the MetaModel
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+
+    mod = PL()
+    mod.observations = {'Z': np.array([0.45])}
+    mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}
+    mod.Output.names = ['Z']
+    mod.n_obs = 1
+
+    engine = Engine(mm, mod, expdes)
+
+    obsData = pd.DataFrame(mod.observations, columns=mod.Output.names)
+    DiscrepancyOpts = Discrepancy('')
+    DiscrepancyOpts.type = 'Gaussian'
+    DiscrepancyOpts.parameters = (obsData * 0.15) ** 2
+
+    posterior = pd.DataFrame()
+    posterior[None] = [0, 1, 0.5]
+
+    bi = BayesInference(engine)
+    bi.Discrepancy = DiscrepancyOpts
+    bi.bootstrap = True
+    bi.setup_inference()
+    bi.bias_inputs = expdes.X
+    bi.posterior_df = posterior
+    bi.create_error_model(type_='posterior', opt_sigma='B', sampler=None)
+
+
+#%% Test _posterior_predictive
+
+def test_posterior_predictive() -> None:
+    """
+    Test posterior predictions
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    prior_samples = np.swapaxes(np.array([np.random.normal(0, 1, 10)]), 0, 1)
+
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.x_values = np.array([0])  # Error in plots if this is not available
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+    y_hat, y_std = mm.eval_metamodel(prior_samples)
+
+    mod = PL()
+    mod.observations = {'Z': np.array([0.45])}
+    mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}  # Error if x_values not given
+    mod.Output.names = ['Z']
+    mod.n_obs = 1
+
+    engine = Engine(mm, mod, expdes)
+
+    total_sigma2s = {'Z': np.array([0.15])}
+    posterior = pd.DataFrame()
+    posterior[None] = [0, 1, 0.5]
+    obsData = pd.DataFrame(mod.observations, columns=mod.Output.names)
+    DiscrepancyOpts = Discrepancy('')
+    DiscrepancyOpts.type = 'Gaussian'
+    DiscrepancyOpts.parameters = (obsData * 0.15) ** 2
+
+    bi = BayesInference(engine)
+    bi.Discrepancy = DiscrepancyOpts
+    bi.bootstrap = True
+    bi.plot_post_pred = False
+    bi.posterior_df = posterior
+    bi.bias_inputs = expdes.X
+    bi._mean_pce_prior_pred = y_hat
+    bi._std_pce_prior_pred = y_std
+    bi.Discrepancy.total_sigma2 = total_sigma2s
+    bi.setup_inference()
+    bi._posterior_predictive()
+
+
+def test_posterior_predictive_rejection() -> None:
+    """
+    Test posterior predictions with rejection inference
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    prior_samples = np.swapaxes(np.array([np.random.normal(0, 1, 10)]), 0, 1)
+
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.x_values = np.array([0])  # Error in plots if this is not available
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+    y_hat, y_std = mm.eval_metamodel(prior_samples)
+
+    mod = PL()
+    mod.observations = {'Z': np.array([0.45])}
+    mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}  # Error if x_values not given
+    mod.Output.names = ['Z']
+    mod.n_obs = 1
+
+    engine = Engine(mm, mod, expdes)
+
+    total_sigma2s = {'Z': np.array([0.15])}
+    posterior = pd.DataFrame()
+    posterior[None] = [0, 1, 0.5]
+    obsData = pd.DataFrame(mod.observations, columns=mod.Output.names)
+    DiscrepancyOpts = Discrepancy('')
+    DiscrepancyOpts.type = 'Gaussian'
+    DiscrepancyOpts.parameters = (obsData * 0.15) ** 2
+
+    bi = BayesInference(engine)
+    bi.Discrepancy = DiscrepancyOpts
+    bi.bootstrap = True
+    bi.plot_post_pred = False
+    bi.posterior_df = posterior
+    bi.bias_inputs = expdes.X
+    bi._mean_pce_prior_pred = y_hat
+    bi._std_pce_prior_pred = y_std
+    bi.Discrepancy.total_sigma2 = total_sigma2s
+    bi.inference_method = 'rejection'
+    bi.setup_inference()
+    bi._posterior_predictive()
+
+
+#%% Test plot_post_params
+
+def test_plot_post_params() -> None:
+    """
+    Plot posterior dist
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.init_param_space(max_deg=1)
+    expdes.n_init_samples = 2
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+
+    bi = BayesInference(engine)
+    posterior = pd.DataFrame()
+    posterior[None] = [0, 1, 0.5]
+    bi.posterior_df = posterior
+    bi.plot_post_params('B')
+
+
+def test_plot_post_params_noemulator() -> None:
+    """
+    Plot posterior dist with emulator = False
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.init_param_space(max_deg=1)
+    expdes.n_init_samples = 2
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+
+    bi = BayesInference(engine)
+    posterior = pd.DataFrame()
+    posterior[None] = [0, 1, 0.5]
+    bi.posterior_df = posterior
+    bi.emulator = False
+    bi.plot_post_params('B')
+
+
+#%% Test plot_log_BME
+
+def test_plot_log_BME() -> None:
+    """
+    Show the log_BME from bootstrapping
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.init_param_space(max_deg=1)
+    expdes.n_init_samples = 2
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+
+    bi = BayesInference(engine)
+    bi.log_BME = np.array([[0, 0.2], [0, 0.2]])
+    bi.n_tot_measurement = 1
+    bi.plot_log_BME()
+
+
+def test_plot_log_BME_noemulator() -> None:
+    """
+    Show the log_BME from bootstrapping with emulator = False
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.init_param_space(max_deg=1)
+    expdes.n_init_samples = 2
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+
+    bi = BayesInference(engine)
+    bi.log_BME = np.array([[0, 0.2], [0, 0.2]])
+    bi.n_tot_measurement = 1
+    bi.emulator = False
+    bi.plot_log_BME()
+
+
+#%% Test _plot_max_a_posteriori
+
+def test_plot_max_a_posteriori_rejection() -> None:
+    """
+    Plot MAP estimate for rejection
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.init_param_space(max_deg=1)
+    expdes.n_init_samples = 2
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+
+    bi = BayesInference(engine)
+    bi.inference_method = 'rejection'
+    bi._plot_post_predictive()
+
+
+def test_plot_max_a_posteriori() -> None:
+    """
+    Plot MAP estimate
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.init_param_space(max_deg=1)
+    expdes.n_init_samples = 2
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+
+    bi = BayesInference(engine)
+    bi._plot_post_predictive()
+
+
+#%% Test _plot_post_predictive
+
+
+def test_plot_post_predictive_rejection() -> None:
+    """
+    Plot posterior predictions for rejection
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.init_param_space(max_deg=1)
+    expdes.n_init_samples = 2
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+
+    bi = BayesInference(engine)
+    bi.inference_method = 'rejection'
+    bi._plot_post_predictive()
+
+
+def test_plot_post_predictive() -> None:
+    """
+    Plot posterior predictions
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.init_param_space(max_deg=1)
+    expdes.n_init_samples = 2
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+
+    bi = BayesInference(engine)
+    bi._plot_post_predictive()
+
+
+#%% Main runs
+if __name__ == '__main__':
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    # prior_samples = np.swapaxes(np.array([np.random.normal(0,1,10)]),0,1)
+
+    expdes = ExpDesigns(inp)
+    expdes.init_param_space(max_deg=1)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.x_values = np.array([0])  # Error in plots if this is not
+
+    mm = MetaModel(inp)
+    mm.n_params = 1
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(1))
+    # y_hat, y_std = mm.eval_metamodel(prior_samples)
+
+    mod = PL()
+    mod.observations = {'Z': np.array([0.45])}
+    mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}  # Error if x_values not given
+    mod.Output.names = ['Z']
+    mod.n_obs = 1
+
+    engine = Engine(mm, mod, expdes)
+
+    sigma2Dict = {'Z': np.array([0.05])}
+    sigma2Dict = pd.DataFrame(sigma2Dict, columns=['Z'])
+    obsData = pd.DataFrame({'Z': np.array([0.45]), 'x_values': np.array([0])}, columns=mod.Output.names)
+    DiscrepancyOpts = Discrepancy('')
+    DiscrepancyOpts.type = 'Gaussian'
+    DiscrepancyOpts.parameters = (obsData * 0.15) ** 2
+    DiscrepancyOpts.opt_sigma = 'B'
+
+    bi = BayesInference(engine)
+    bi.Discrepancy = DiscrepancyOpts  # Error if this not class 'DiscrepancyOpts' or dict(?)
+    bi.bootstrap = True  # Error if this and bayes_loocv and just_analysis are all False?
+    bi.plot_post_pred = False  # Remaining issue in the violinplot
+    bi.error_model = False
+    bi.bayes_loocv = True
+    if 1:
+        bi.create_inference()
+    # opt_sigma = 'B'
+    # total_sigma2s = {'Z':np.array([0.15])}
+    # data = pd.DataFrame()
+    # data['Z'] = [0.45]
+    # data['x_values'] = [0.3]
+    # bi.setup_inference()
+    # bi.perform_bootstrap(total_sigma2s)
+    posterior = pd.DataFrame()
+    posterior[None] = [0, 1, 0.5]
+    bi.posterior_df = posterior
+    # bi.bias_inputs = expdes.X
+    # bi._mean_pce_prior_pred = y_hat
+    # bi._std_pce_prior_pred = y_std
+    # bi.Discrepancy.total_sigma2 = total_sigma2s
+    # bi.create_error_model(type_ = 'posterior', opt_sigma = 'B', sampler = None)
+    # bi._posterior_predictive()
+    # bi.plot_post_params('B')
+    # bi.log_BME = np.array([[0,0.2],[0,0.2]])
+    # bi.n_tot_measurement = 1
+    # bi.plot_log_BME()
+    bi.inference_method = 'rejection'
+    bi._plot_max_a_posteriori()
diff --git a/tests/test_BayesModelComparison.py b/tests/test_BayesModelComparison.py
new file mode 100644
index 0000000000000000000000000000000000000000..91f328ec7ae39cf7cded6b228edc1442053a2dfb
--- /dev/null
+++ b/tests/test_BayesModelComparison.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+"""
+Test the BayesModelComparison class in bayesvalidrox.
+Tests are available for the following functions
+Class BayesModelComparison: 
+    create_model_comparison
+    compare_models
+    generate_dataset
+    __perturb_data
+    cal_model_weight
+    plot_just_analysis
+    plot_model_weights
+    plot_bayes_factor
+    
+"""
+import sys
+sys.path.append("src/")
+import pytest
+import numpy as np
+
+from bayesvalidrox.bayes_inference.bayes_model_comparison import BayesModelComparison
+#from bayesvalidrox.surrogate_models.input_space import InputSpace
+
+def test_BMC() -> None:
+    """
+    Build BMC without inputs
+    """
+    BayesModelComparison()
\ No newline at end of file
diff --git a/tests/test_Discrepancy.py b/tests/test_Discrepancy.py
new file mode 100644
index 0000000000000000000000000000000000000000..7fb948d905031e7d7e6235857c27792fb29ece57
--- /dev/null
+++ b/tests/test_Discrepancy.py
@@ -0,0 +1,43 @@
+# -*- coding: utf-8 -*-
+"""
+Test the Discrepancy class in bayesvalidrox.
+Tests are available for the following functions
+Class Discrepancy: 
+    get_sample
+
+"""
+import sys
+sys.path.append("src/")
+import pytest
+
+from bayesvalidrox.bayes_inference.discrepancy import Discrepancy
+from bayesvalidrox.surrogate_models.inputs import Input
+
+#%% Test Discrepancy init
+
+def test_discrepancy() -> None:
+    """
+    Construct a Discrepancy object
+    """
+    disc = Discrepancy()
+    
+#%% Test Discrepancy.get_sample
+
+def test_get_sample_noinput() -> None:
+    """
+    Get discrepancy sample without input dist
+    """
+    disc = Discrepancy()
+    with pytest.raises(AttributeError) as excinfo:
+        disc.get_sample(2)
+    assert str(excinfo.value) == 'Cannot create new samples, please provide input distributions'
+    
+def test_get_sample() -> None:
+    """
+    Get discrepancy sample
+    """
+    disc = Discrepancy()
+    with pytest.raises(AttributeError) as excinfo:
+        disc.get_sample(2)
+    assert str(excinfo.value) == 'Cannot create new samples, please provide input distributions'
+    
\ No newline at end of file
diff --git a/tests/test_Engine.py b/tests/test_Engine.py
new file mode 100644
index 0000000000000000000000000000000000000000..6b03a26237d1b1ff741bcfd69e8ffff188cc8d7d
--- /dev/null
+++ b/tests/test_Engine.py
@@ -0,0 +1,1066 @@
+# -*- coding: utf-8 -*-
+"""
+Tests the class Engine in bayesvalidrox
+Tests are available for the following functions:
+    hellinger_distance   - x
+    logpdf               - x
+    subdomain            - x
+Engine:
+    start_engine         - x
+    train_normal
+    train_sequential
+    eval_metamodel
+    train_seq_design
+    util_VarBasedDesign
+    util_BayesianActiveDesign
+    util_BayesianDesign
+    run_util_func
+    dual_annealing
+    tradoff_weights      - x
+    choose_next_sample
+        plotter
+    util_AlphOptDesign
+    _normpdf            - x    Also move outside the class?
+    _corr_factor_BME           Not used again in this class
+    _posteriorPlot      - x
+    _BME_Calculator     - x
+    _validError         - x
+    _error_Mean_Std     - x 
+
+"""
+import math
+import numpy as np
+import pandas as pd
+import sys
+
+from bayesvalidrox.surrogate_models.inputs import Input
+from bayesvalidrox.surrogate_models.exp_designs import ExpDesigns
+from bayesvalidrox.surrogate_models.surrogate_models import MetaModel
+from bayesvalidrox.pylink.pylink import PyLinkForwardModel as PL
+from bayesvalidrox.surrogate_models.engine import Engine
+from bayesvalidrox.surrogate_models.engine import hellinger_distance, logpdf, subdomain
+
+sys.path.append("src/")
+
+
+#%% Test Engine constructor
+
+
+def test_engine() -> None:
+    """
+    Build Engine without inputs
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mod = PL()
+    mm = MetaModel(inp)
+    expdes = ExpDesigns(inp)
+    Engine(mm, mod, expdes)
+
+
+#%% Test Engine.start_engine
+
+def test_start_engine() -> None:
+    """
+    Build Engine without inputs
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mod = PL()
+    mm = MetaModel(inp)
+    expdes = ExpDesigns(inp)
+    engine = Engine(mm, mod, expdes)
+    engine.start_engine()
+
+
+#%% Test Engine.train_normal
+# TODO: build mock model to do this? - test again in full-length examples
+
+#%% Test Engine._error_Mean_Std
+
+def test__error_Mean_Std() -> None:
+    """
+    Compare moments of surrogate and reference
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.fit([[0.0], [1.0]], {'Z': [[0.5], [0.5]]})
+    expdes = ExpDesigns(inp)
+    mod = PL()
+    mod.mc_reference['mean'] = [0.5]
+    mod.mc_reference['std'] = [0.0]
+    mod.Output.names = ['Z']
+    engine = Engine(mm, mod, expdes)
+    engine.start_engine()
+    mean, std = engine._error_Mean_Std()
+    assert mean < 0.01 and std < 0.01
+
+
+#%% Test Engine._validError
+
+def test__validError() -> None:
+    """
+    Calculate validation error
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.fit([[0.0], [1.0]], {'Z': [[0.5], [0.5]]})
+    expdes = ExpDesigns(inp)
+    mod = PL()
+    expdes.valid_samples = [[0.5]]
+    expdes.valid_model_runs = {'Z': [[0.5]]}
+    mod.Output.names = ['Z']
+    engine = Engine(mm, mod, expdes)
+    engine.start_engine()
+    mean, std = engine._validError()
+    assert mean['Z'][0] < 0.01  # and std['Z'][0] <0.01
+
+
+#%% Test Engine._BME_Calculator
+
+def test__BME_Calculator() -> None:
+    """
+    Calculate BME
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.fit([[0.0], [0.5], [1.0]], {'Z': [[0.5], [0.4], [0.5]]})
+    expdes = ExpDesigns(inp)
+    expdes.generate_ED(2, max_pce_deg=1)
+    mod = PL()
+    mod.Output.names = ['Z']
+    engine = Engine(mm, mod, expdes)
+    engine.start_engine()
+    obs_data = {'Z': np.array([0.45])}
+    sigma2Dict = {'Z': np.array([0.05])}
+    sigma2Dict = pd.DataFrame(sigma2Dict, columns=['Z'])
+    engine._BME_Calculator(obs_data, sigma2Dict)
+    # Note: if error appears here it might also be due to inoptimal choice of training samples
+
+
+def test__BME_Calculator_rmse() -> None:
+    """
+    Calculate BME with given RMSE
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.fit([[0.0], [0.5], [1.0]], {'Z': [[0.5], [0.4], [0.5]]})
+    expdes = ExpDesigns(inp)
+    expdes.generate_ED(2, max_pce_deg=1)
+    mod = PL()
+    mod.Output.names = ['Z']
+    engine = Engine(mm, mod, expdes)
+    engine.start_engine()
+    obs_data = {'Z': np.array([0.45])}
+    sigma2Dict = {'Z': np.array([0.05])}
+    sigma2Dict = pd.DataFrame(sigma2Dict, columns=['Z'])
+    engine._BME_Calculator(obs_data, sigma2Dict, rmse={'Z': 0.1})
+    # Note: if error appears here it might also be due to inoptimal choice of training samples
+
+
+def test__BME_Calculator_lik() -> None:
+    """
+    Calculate BME with given validation likelihood and post-snapshot
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.fit([[0.0], [0.5], [1.0]], {'Z': [[0.5], [0.4], [0.5]]})
+    expdes = ExpDesigns(inp)
+    expdes.generate_ED(2, max_pce_deg=1)
+    mod = PL()
+    mod.Output.names = ['Z']
+    engine = Engine(mm, mod, expdes)
+    engine.start_engine()
+    obs_data = {'Z': np.array([0.45])}
+    sigma2Dict = {'Z': np.array([0.05])}
+    sigma2Dict = pd.DataFrame(sigma2Dict, columns=['Z'])
+    expdes.post_snapshot = True
+
+    engine.valid_likelihoods = [0.1]
+    engine._BME_Calculator(obs_data, sigma2Dict)
+
+
+def test__BME_Calculator_2d() -> None:
+    """
+    Calculate BME with given validation likelihood and post-snapshot, 2d input
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    inp.add_marginals()
+    inp.Marginals[1].dist_type = 'normal'
+    inp.Marginals[1].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.fit([[0.0, 0.0], [0.5, 0.1], [1.0, 0.9]], {'Z': [[0.5], [0.4], [0.5]]})
+    expdes = ExpDesigns(inp)
+    expdes.generate_ED(2, max_pce_deg=1)
+    mod = PL()
+    mod.n_obs = 1
+    mod.Output.names = ['Z']
+    engine = Engine(mm, mod, expdes)
+    engine.start_engine()
+    obs_data = {'Z': np.array([0.45])}
+    sigma2Dict = {'Z': np.array([0.05])}
+    sigma2Dict = pd.DataFrame(sigma2Dict, columns=['Z'])
+    expdes.post_snapshot = True
+
+    engine.valid_likelihoods = [0.1]
+    engine._BME_Calculator(obs_data, sigma2Dict)
+
+
+#%% Test hellinger_distance
+
+def test_hellinger_distance_isnan() -> None:
+    """
+    Calculate Hellinger distance-nan
+    """
+    P = [0]
+    Q = [1]
+    math.isnan(hellinger_distance(P, Q))
+
+
+def test_hellinger_distance_0() -> None:
+    """
+    Calculate Hellinger distance-0
+    """
+    P = [0, 1, 2]
+    Q = [1, 0, 2]
+    assert hellinger_distance(P, Q) == 0.0
+
+
+def test_hellinger_distance_1() -> None:
+    """
+    Calculate Hellinger distance-1
+    """
+    P = [0, 1, 2]
+    Q = [0, 0, 0]
+    assert hellinger_distance(P, Q) == 1.0
+
+
+#%% Test Engine._normpdf
+
+def test__normpdf() -> None:
+    """
+    Likelihoods based on gaussian dist
+    """
+
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    expdes = ExpDesigns(inp)
+    mod = PL()
+    mod.Output.names = ['Z']
+
+    y_hat_pce = {'Z': np.array([[0.12]])}
+    std_pce = {'Z': np.array([[0.05]])}
+    obs_data = {'Z': np.array([0.1])}
+    sigma2Dict = {'Z': np.array([0.05])}
+    total_sigma2s = pd.DataFrame(sigma2Dict, columns=['Z'])
+
+    engine = Engine(mm, mod, expdes)
+    engine.start_engine()
+    engine._normpdf(y_hat_pce, std_pce, obs_data, total_sigma2s)
+
+
+def test__normpdf_rmse() -> None:
+    """
+    Likelihoods based on gaussian dist with rmse
+    """
+
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    expdes = ExpDesigns(inp)
+    mod = PL()
+    mod.Output.names = ['Z']
+
+    y_hat_pce = {'Z': np.array([[0.12]])}
+    std_pce = {'Z': np.array([[0.05]])}
+    obs_data = {'Z': np.array([0.1])}
+    sigma2Dict = {'Z': np.array([0.05])}
+    total_sigma2s = pd.DataFrame(sigma2Dict, columns=['Z'])
+
+    engine = Engine(mm, mod, expdes)
+    engine.start_engine()
+    engine._normpdf(y_hat_pce, std_pce, obs_data, total_sigma2s, rmse={'Z': 0.1})
+
+
+#%% Test Engine._posteriorPlot
+
+def test__posteriorPlot() -> None:
+    """
+    Plot posterior
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    expdes = ExpDesigns(inp)
+    expdes.generate_ED(2, max_pce_deg=1)
+    mod = PL()
+    posterior = np.array([[0], [0.1], [0.2]])
+    engine = Engine(mm, mod, expdes)
+    engine._posteriorPlot(posterior, ['i'], 'Z')
+
+
+def test__posteriorPlot_2d() -> None:
+    """
+    Plot posterior for 2 params
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    inp.add_marginals()
+    inp.Marginals[1].dist_type = 'normal'
+    inp.Marginals[1].parameters = [0, 1]
+    mm = MetaModel(inp)
+    expdes = ExpDesigns(inp)
+    expdes.generate_ED(2, max_pce_deg=1)
+    mod = PL()
+    posterior = np.array([[0, 0], [0.1, 1.0], [0.2, 0.5]])
+    engine = Engine(mm, mod, expdes)
+    engine._posteriorPlot(posterior, ['i', 'j'], 'Z')
+
+
+#%% Test logpdf
+
+def test_logpdf() -> None:
+    """
+    Calculate log-pdf
+    """
+    logpdf(np.array([0.1]), np.array([0.2]), np.array([0.1]))
+
+
+#%% Test Engine._corr_factor_BME
+# TODO: not used again here?
+
+#%% Test subdomain
+
+def test_subdomain() -> None:
+    """
+    Create subdomains from bounds
+    """
+    subdomain([(0, 1), (0, 1)], 2)
+
+
+#%% Test Engine.tradeoff_weights
+
+def test_tradeoff_weights_None() -> None:
+    """
+    Tradeoff weights with no scheme
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    expdes = ExpDesigns(inp)
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    weights = engine.tradeoff_weights(None, [[0], [1]], {'Z': [[0.4], [0.5]]})
+    assert weights[0] == 0 and weights[1] == 1
+
+
+def test_tradeoff_weights_equal() -> None:
+    """
+    Tradeoff weights with 'equal' scheme
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    expdes = ExpDesigns(inp)
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    weights = engine.tradeoff_weights('equal', [[0], [1]], {'Z': [[0.4], [0.5]]})
+    assert weights[0] == 0.5 and weights[1] == 0.5
+
+
+def test_tradeoff_weights_epsdecr() -> None:
+    """
+    Tradeoff weights with 'epsilon-decreasing' scheme
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 3
+    expdes.X = np.array([[0], [1]])
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    weights = engine.tradeoff_weights('epsilon-decreasing', expdes.X, {'Z': [[0.4], [0.5]]})
+    assert weights[0] == 1.0 and weights[1] == 0.0
+
+
+def test_tradeoff_weights_adaptive() -> None:
+    """
+    Tradeoff weights with 'adaptive' scheme
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 3
+    expdes.X = np.array([[0], [1]])
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    weights = engine.tradeoff_weights('adaptive', expdes.X, {'Z': [[0.4], [0.5]]})
+    assert weights[0] == 0.5 and weights[1] == 0.5
+
+
+def test_tradeoff_weights_adaptiveit1() -> None:
+    """
+    Tradeoff weights with 'adaptive' scheme for later iteration (not the first)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine._y_hat_prev, _ = mm.eval_metamodel(samples=np.array([[0.1], [0.2], [0.6]]))
+    engine.tradeoff_weights('adaptive', expdes.X, expdes.Y)
+
+
+#%% Test Engine.choose_next_sample
+
+def test_choose_next_sample() -> None:
+    """
+    Chooses new sample using all standard settings (exploration, random, space-filling,...)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.explore_method = 'random'
+    expdes.exploit_method = 'Space-filling'
+    expdes.util_func = 'Space-filling'
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    x, nan = engine.choose_next_sample()
+    assert x.shape[0] == 1 and x.shape[1] == 1
+
+
+def test_choose_next_sample_da_spaceparallel() -> None:
+    """
+    Chooses new sample using dual-annealing and space-filling, parallel=True
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.explore_method = 'dual-annealing'
+    expdes.exploit_method = 'Space-filling'
+    expdes.util_func = 'Space-filling'
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    engine.parallel = True
+    x, nan = engine.choose_next_sample()
+    assert x.shape[0] == 1 and x.shape[1] == 1
+
+
+def test_choose_next_sample_da_spacenoparallel() -> None:
+    """
+    Chooses new sample using dual-annealing and space-filling, parallel = False
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.explore_method = 'dual-annealing'
+    expdes.exploit_method = 'Space-filling'
+    expdes.util_func = 'Space-filling'
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    engine.parallel = False
+    x, nan = engine.choose_next_sample()
+    assert x.shape[0] == 1 and x.shape[1] == 1
+
+
+def test_choose_next_sample_loo_space() -> None:
+    """
+    Chooses new sample using all LOO-CV and space-filling
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.explore_method = 'LOO-CV'
+    expdes.exploit_method = 'Space-filling'
+    expdes.util_func = 'Space-filling'
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    x, nan = engine.choose_next_sample()
+    assert x.shape[0] == 1 and x.shape[1] == 1
+
+
+def test_choose_next_sample_vor_space() -> None:
+    """
+    Chooses new sample using voronoi, space-filling
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.explore_method = 'voronoi'
+    expdes.exploit_method = 'Space-filling'
+    expdes.util_func = 'Space-filling'
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    x, nan = engine.choose_next_sample()
+    assert x.shape[0] == 1 and x.shape[1] == 1
+
+
+def test_choose_next_sample_latin_space() -> None:
+    """
+    Chooses new sample using all latin-hypercube, space-filling
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.explore_method = 'latin-hypercube'
+    expdes.exploit_method = 'Space-filling'
+    expdes.util_func = 'Space-filling'
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    x, nan = engine.choose_next_sample()
+    assert x.shape[0] == 1 and x.shape[1] == 1
+
+
+def test_choose_next_sample_latin_alphD() -> None:
+    """
+    Chooses new sample using all latin-hypercube, alphabetic (D)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.explore_method = 'latin-hypercube'
+    expdes.exploit_method = 'alphabetic'
+    expdes.util_func = 'D-Opt'
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    x, nan = engine.choose_next_sample(var=expdes.util_func)
+    assert x.shape[0] == 1 and x.shape[1] == 1
+
+
+def test_choose_next_sample_latin_alphK() -> None:
+    """
+    Chooses new sample using all latin-hypercube, alphabetic (K)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.explore_method = 'latin-hypercube'
+    expdes.exploit_method = 'alphabetic'
+    expdes.util_func = 'K-Opt'
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    x, nan = engine.choose_next_sample(var=expdes.util_func)
+    assert x.shape[0] == 1 and x.shape[1] == 1
+
+
+def test_choose_next_sample_latin_alphA() -> None:
+    """
+    Chooses new sample using all latin-hypercube, alphabetic (A)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.explore_method = 'latin-hypercube'
+    expdes.exploit_method = 'alphabetic'
+    expdes.util_func = 'A-Opt'
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    x, nan = engine.choose_next_sample(var=expdes.util_func)
+    assert x.shape[0] == 1 and x.shape[1] == 1
+
+
+def test_choose_next_sample_latin_VarALM() -> None:
+    """
+    Chooses new sample using all latin-hypercube, VarDesign (ALM)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.tradeoff_scheme = 'equal'
+    expdes.explore_method = 'latin-hypercube'
+    expdes.exploit_method = 'VarOptDesign'
+    expdes.util_func = 'ALM'
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    x, nan = engine.choose_next_sample(var=expdes.util_func)
+    assert x.shape[0] == 1 and x.shape[1] == 1
+
+
+def test_choose_next_sample_latin_VarEIGF() -> None:
+    """
+    Chooses new sample using all latin-hypercube, VarDesign (EIGF)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.tradeoff_scheme = 'equal'
+    expdes.explore_method = 'latin-hypercube'
+    expdes.exploit_method = 'VarOptDesign'
+    expdes.util_func = 'EIGF'
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    x, nan = engine.choose_next_sample(var=expdes.util_func)
+    assert x.shape[0] == 1 and x.shape[1] == 1
+
+
+def test_choose_next_sample_latin_VarLOO() -> None:
+    """
+    Chooses new sample using all latin-hypercube, VarDesign (LOOCV)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.tradeoff_scheme = 'equal'
+    expdes.explore_method = 'latin-hypercube'
+    expdes.exploit_method = 'VarOptDesign'
+    expdes.util_func = 'LOOCV'
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    x, nan = engine.choose_next_sample(var=expdes.util_func)
+    assert x.shape[0] == 1 and x.shape[1] == 1
+
+
+def test_choose_next_sample_latin_BODMI() -> None:
+    """
+    Chooses new sample using all latin-hypercube, BayesOptDesign (MI)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.tradeoff_scheme = 'equal'
+    expdes.explore_method = 'latin-hypercube'
+    expdes.exploit_method = 'BayesOptDesign'
+    expdes.util_func = 'MI'
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    engine.observations = {'Z': np.array([0.45])}
+    # engine.choose_next_sample(sigma2=None, n_candidates=5, var='DKL')
+    sigma2Dict = {'Z': np.array([0.05])}
+    sigma2Dict = pd.DataFrame(sigma2Dict, columns=['Z'])
+    engine.choose_next_sample(sigma2=sigma2Dict, var=expdes.util_func)
+
+
+def test_choose_next_sample_latin_BODALC() -> None:
+    """
+    Chooses new sample using all latin-hypercube, BayesOptDesign (ALC)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.tradeoff_scheme = 'equal'
+    expdes.explore_method = 'latin-hypercube'
+    expdes.exploit_method = 'BayesOptDesign'
+    expdes.util_func = 'ALC'
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    engine.observations = {'Z': np.array([0.45])}
+    # engine.choose_next_sample(sigma2=None, n_candidates=5, var='DKL')
+    sigma2Dict = {'Z': np.array([0.05])}
+    sigma2Dict = pd.DataFrame(sigma2Dict, columns=['Z'])
+    engine.choose_next_sample(sigma2=sigma2Dict, var=expdes.util_func)
+
+
+def test_choose_next_sample_latin_BODDKL() -> None:
+    """
+    Chooses new sample using all latin-hypercube, BayesOptDesign (DKL)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.tradeoff_scheme = 'equal'
+    expdes.explore_method = 'latin-hypercube'
+    expdes.exploit_method = 'BayesOptDesign'
+    expdes.util_func = 'DKL'
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    engine.observations = {'Z': np.array([0.45])}
+    # engine.choose_next_sample(sigma2=None, n_candidates=5, var='DKL')
+    sigma2Dict = {'Z': np.array([0.05])}
+    sigma2Dict = pd.DataFrame(sigma2Dict, columns=['Z'])
+    engine.choose_next_sample(sigma2=sigma2Dict, var=expdes.util_func)
+
+
+def test_choose_next_sample_latin_BODDPP() -> None:
+    """
+    Chooses new sample using all latin-hypercube, BayesOptDesign (DPP)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.tradeoff_scheme = 'equal'
+    expdes.explore_method = 'latin-hypercube'
+    expdes.exploit_method = 'BayesOptDesign'
+    expdes.util_func = 'DPP'
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    engine.observations = {'Z': np.array([0.45])}
+    # engine.choose_next_sample(sigma2=None, n_candidates=5, var='DKL')
+    sigma2Dict = {'Z': np.array([0.05])}
+    sigma2Dict = pd.DataFrame(sigma2Dict, columns=['Z'])
+    engine.choose_next_sample(sigma2=sigma2Dict, var=expdes.util_func)
+
+
+def test_choose_next_sample_latin_BODAPP() -> None:
+    """
+    Chooses new sample using all latin-hypercube, BayesOptDesign (APP)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.tradeoff_scheme = 'equal'
+    expdes.explore_method = 'latin-hypercube'
+    expdes.exploit_method = 'BayesOptDesign'
+    expdes.util_func = 'APP'
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    engine.observations = {'Z': np.array([0.45])}
+    # engine.choose_next_sample(sigma2=None, n_candidates=5, var='DKL')
+    sigma2Dict = {'Z': np.array([0.05])}
+    sigma2Dict = pd.DataFrame(sigma2Dict, columns=['Z'])
+    engine.choose_next_sample(sigma2=sigma2Dict, var=expdes.util_func)
+
+
+def test_choose_next_sample_latin_BODMI_() -> None:
+    """
+    Chooses new sample using all latin-hypercube, BayesOptDesign (MI)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.tradeoff_scheme = 'equal'
+    expdes.explore_method = 'latin-hypercube'
+    expdes.exploit_method = 'BayesOptDesign'
+    expdes.util_func = 'MI'
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    engine.observations = {'Z': np.array([0.45])}
+    # engine.choose_next_sample(sigma2=None, n_candidates=5, var='DKL')
+    sigma2Dict = {'Z': np.array([0.05])}
+    sigma2Dict = pd.DataFrame(sigma2Dict, columns=['Z'])
+    engine.choose_next_sample(sigma2=sigma2Dict, var=expdes.util_func)
+
+
+def test_choose_next_sample_latin_BADBME() -> None:
+    """
+    Chooses new sample using all latin-hypercube, BayesActDesign (BME)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.tradeoff_scheme = 'equal'
+    expdes.explore_method = 'latin-hypercube'
+    expdes.exploit_method = 'BayesActDesign'
+    expdes.util_func = 'BME'
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    engine.observations = {'Z': np.array([0.45])}
+    # engine.choose_next_sample(sigma2=None, n_candidates=5, var='DKL')
+    sigma2Dict = {'Z': np.array([0.05])}
+    sigma2Dict = pd.DataFrame(sigma2Dict, columns=['Z'])
+    engine.n_obs = 1
+    engine.choose_next_sample(sigma2=sigma2Dict, var=expdes.util_func)
+
+
+def test_choose_next_sample_latin_BADDKL() -> None:
+    """
+    Chooses new sample using all latin-hypercube, BayesActDesign (DKL)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.tradeoff_scheme = 'equal'
+    expdes.explore_method = 'latin-hypercube'
+    expdes.exploit_method = 'BayesActDesign'
+    expdes.util_func = 'DKL'
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    engine.observations = {'Z': np.array([0.45])}
+    # engine.choose_next_sample(sigma2=None, n_candidates=5, var='DKL')
+    sigma2Dict = {'Z': np.array([0.05])}
+    sigma2Dict = pd.DataFrame(sigma2Dict, columns=['Z'])
+    engine.n_obs = 1
+    engine.choose_next_sample(sigma2=sigma2Dict, var=expdes.util_func)
+
+
+def test_choose_next_sample_latin_BADinfEntropy() -> None:
+    """
+    Chooses new sample using all latin-hypercube, BayesActDesign (infEntropy)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.tradeoff_scheme = 'equal'
+    expdes.explore_method = 'latin-hypercube'
+    expdes.exploit_method = 'BayesActDesign'
+    expdes.util_func = 'infEntropy'
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+    mod = PL()
+    engine = Engine(mm, mod, expdes)
+    engine.out_names = ['Z']
+    engine.observations = {'Z': np.array([0.45])}
+    # engine.choose_next_sample(sigma2=None, n_candidates=5, var='DKL')
+    sigma2Dict = {'Z': np.array([0.05])}
+    sigma2Dict = pd.DataFrame(sigma2Dict, columns=['Z'])
+    engine.n_obs = 1
+    engine.choose_next_sample(sigma2=sigma2Dict, var=expdes.util_func)
diff --git a/tests/test_ExpDesign.py b/tests/test_ExpDesign.py
new file mode 100644
index 0000000000000000000000000000000000000000..68255b3380881a8182ecd5a3de7411842fcedebd
--- /dev/null
+++ b/tests/test_ExpDesign.py
@@ -0,0 +1,397 @@
+# -*- coding: utf-8 -*-
+"""
+Test the ExpDesigns class in bayesvalidrox.
+Tests are available for the following functions:
+    _check_ranges       - x
+    fit_dist            - x
+    
+Class ExpDesigns: 
+    generate_samples
+    generate_ED
+    read_from_file
+    random_sampler
+    pcm_sampler
+Other function tests to be found in parent class 'InputSpace'
+
+"""
+import sys
+sys.path.append("src/")
+import pytest
+import numpy as np
+
+from bayesvalidrox.surrogate_models.inputs import Input
+import bayesvalidrox.surrogate_models.exp_designs as exp
+from bayesvalidrox.surrogate_models.exp_designs import ExpDesigns
+
+#%% Test check_ranges
+
+def test_check_ranges() -> None:
+    """
+    Check to see if theta lies in expected ranges
+    """
+    theta = [0.5,1.2]
+    ranges = [[0,1],[1,2]]
+    assert exp.check_ranges(theta, ranges) == True
+    
+def test_check_ranges_inv() -> None:
+    """
+    Check to see if theta lies not in expected ranges
+    """
+    theta = [1.5,1.2]
+    ranges = [[0,1],[1,2]]
+    assert exp.check_ranges(theta, ranges) == False
+ 
+#%% Test ExpDesign.pcm_sampler
+
+def test_pcm_sampler_noinit() -> None:
+    """
+    Sample via pcm without init_param_space
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp)
+    exp.pcm_sampler(4,2)
+    
+def test_pcm_sampler_lowdeg() -> None:
+    """
+    Sample via pcm with init_param_space and small max_deg
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp)
+    exp.init_param_space()
+    exp.pcm_sampler(4,2)
+    
+def test_pcm_sampler_highdeg() -> None:
+    """
+    Sample via pcm with init_param_space and high max_deg
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp)
+    exp.init_param_space()
+    exp.pcm_sampler(4,4)
+    
+def test_pcm_sampler_lscm() -> None:
+    """
+    Sample via pcm with init_param_space and samplin gmethod 'lscm'
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp)
+    exp.init_param_space()
+    exp.sampling_method = 'lscm'
+    exp.pcm_sampler(4,4)
+    
+def test_pcm_sampler_rawdata() -> None:
+    """
+    Sample via pcm, init_param_space implicitly, has raw data
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp)
+    exp.raw_data = np.random.uniform(0,1,1000)
+    with pytest.raises(AttributeError) as excinfo:
+        exp.pcm_sampler(4,4)   
+    assert str(excinfo.value) == 'Data should be a 1D array'
+
+def test_pcm_sampler_rawdata_1d() -> None:
+    """
+    Sample via pcm, init_param_space implicitly, has raw data
+    """
+    x = np.random.uniform(0,1,(1,1000))
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp)
+    exp.raw_data = np.random.uniform(0,1,1000)
+    exp.pcm_sampler(4,4)   
+    
+    
+#%% Test ExpDesign.random_sampler
+
+def test_random_sampler() -> None:
+    """
+    Sample randomly, init_param_space implicitly
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp)
+    exp.random_sampler(4)
+    
+def test_random_sampler_largedatanoJDist() -> None:
+    """
+    Sample randomly, init_param_space implicitly, more samples wanted than given, no JDist available
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp)
+    with pytest.raises(AttributeError) as excinfo:
+        exp.random_sampler(100000) 
+    assert str(excinfo.value) == 'Sampling cannot proceed, build ExpDesign with max_deg != 0 to create JDist!'
+    
+def test_random_sampler_largedataJDist0() -> None:
+    """
+    Sample randomly, init_param_space implicitly, more samples wanted than given, 
+    JDist available, priors given via samples
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp)
+    exp.init_param_space(max_deg = 1)
+    exp.random_sampler(100000) 
+    
+def test_random_sampler_largedataJDist1() -> None:
+    """
+    Sample randomly, init_param_space implicitly, more samples wanted than given, 
+    JDist available, prior distributions given
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0,1]
+    exp = ExpDesigns(inp)
+    exp.init_param_space(max_deg = 1)
+    exp.random_sampler(100000) 
+     
+        
+        
+def test_random_sampler_rawdata() -> None:
+    """
+    Sample randomly, init_param_space implicitly, has 2d raw data
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp)
+    exp.raw_data = np.random.uniform(0,1,(1,1000))
+    exp.random_sampler(4)   
+ 
+def test_random_sampler_rawdata1d() -> None:
+    """
+    Sample randomly, init_param_space implicitly, has raw data, but only 1d
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp)
+    exp.raw_data = np.random.uniform(0,1,1000)
+    with pytest.raises(AttributeError) as excinfo:
+        exp.random_sampler(4) 
+    assert str(excinfo.value) == 'The given raw data for sampling should have two dimensions'
+    
+
+def test_random_sampler_fewdata() -> None:
+    """
+    Sample randomly, init_param_space implicitly, has few 2d raw datapoints
+    """
+    x = np.random.uniform(0,1,5)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp)
+    exp.raw_data = np.random.uniform(0,1,(1,1000))
+    exp.random_sampler(7)   
+ 
+    
+#%% Test ExpDesign.generate_samples
+
+def test_generate_samples() -> None:
+    """
+    Generate samples according to chosen scheme
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp)
+    exp.generate_samples(4)
+
+
+#%% Test ExpDesign.generate_ED
+
+def test_generate_ED() -> None:
+    """
+    Generate ED as is
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp)
+    exp.generate_ED(4)
+    
+def test_generate_ED_negsamplenum():
+    """
+    Generate ED for neg number of samples
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp, sampling_method = 'user')   
+    with pytest.raises(ValueError) as excinfo:
+        exp.generate_ED(-1)
+    assert str(excinfo.value) == 'A negative number of samples cannot be created. Please provide positive n_samples'
+    
+    
+
+def test_generate_ED_usernoX() -> None:
+    """
+    User-defined ED without samples
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp, sampling_method = 'user')
+    with pytest.raises(AttributeError) as excinfo:
+        exp.generate_ED(4)
+    assert str(excinfo.value) == 'User-defined sampling cannot proceed as no samples provided. Please add them to this class as attribute X'
+
+def test_generate_ED_userXdimerr() -> None:
+    """
+    User-defined ED with wrong shape of samples
+    """
+    x = np.random.uniform(0,1,1000)
+    X = np.random.uniform(0,1,(2,1,1000))
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp, sampling_method = 'user')
+    exp.X = X
+    with pytest.raises(AttributeError) as excinfo:
+        exp.generate_ED(4)
+    assert str(excinfo.value) == 'The provided samples shuld have 2 dimensions'
+    
+# TODO: this does not give any issues???
+def test_generate_ED_userX() -> None:
+    """
+    User-defined ED with wrong shape of samples
+    """
+    x = np.random.uniform(0,1,1000)
+    X = np.random.uniform(0,1,(3,1000))
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp, sampling_method = 'user')
+    exp.X = X
+    exp.generate_ED(4)
+    
+# TODO: this looks like a pcm-sampler issue
+def test_generate_ED_PCM() -> None:
+    """
+    PCM-defined ED 
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp, sampling_method = 'PCM')
+    exp.generate_ED(4)
+    
+def test_generate_ED_random() -> None:
+    """
+    Random-defined ED 
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp, sampling_method = 'random')
+    exp.generate_ED(4)
+
+def test_generate_ED_usertrafo() -> None:
+    """
+    User-defined ED 
+    """
+    x = np.random.uniform(0,1,1000)
+    X = np.random.uniform(0,1,(1,1000))
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp, sampling_method = 'user')
+    exp.meta_Model_type = 'gpe'
+    exp.X = X
+    exp.generate_ED(4)
+    
+def test_generate_ED_randomtrafo() -> None:
+    """
+    User-defined ED 
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp, sampling_method = 'random')
+    exp.generate_ED(4)
+    
+def test_generate_ED_latin() -> None:
+    """
+    latin-hypercube-defined ED 
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp, sampling_method = 'latin-hypercube')
+    exp.generate_ED(4)
+    
+#%% Test ExpDesign.read_from_file
+
+def test_read_from_file_nofile():
+    """
+    No file given to read in
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp, sampling_method = 'user')
+    with pytest.raises(AttributeError) as excinfo:
+        exp.read_from_file(['Out'])
+    assert str(excinfo.value) == 'ExpDesign cannot be read in, please provide hdf5 file first'
+    
+def test_read_from_file_wrongcomp():
+    """
+    Correct file, incorrect output name
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp, sampling_method = 'user')
+    exp.hdf5_file = 'ExpDesign_testfile.hdf5'
+    with pytest.raises(KeyError) as excinfo:
+        exp.read_from_file(['Out'])
+    assert str(excinfo.value) == "'Unable to open object (component not found)'"
+    
+def test_read_from_file():
+    """
+    Read from testfile
+    """
+    x = np.random.uniform(0,1,1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = ExpDesigns(inp, sampling_method = 'user')
+    exp.hdf5_file = 'ExpDesign_testfile.hdf5'
+    exp.read_from_file(['Z'])
diff --git a/tests/test_Input.py b/tests/test_Input.py
new file mode 100644
index 0000000000000000000000000000000000000000..41c0e5ab84a5178b1934504bc63b5d5c03d19078
--- /dev/null
+++ b/tests/test_Input.py
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+"""
+Test the Input and associated Marginal classes in bayesvalidrox.
+Tests are available for the following functions
+Class Marginal contains no functions - no tests to write.
+Class Input: 
+    add_marginals
+
+@author: Rebecca Kohlhaas
+"""
+import sys
+
+from bayesvalidrox.surrogate_models.inputs import Input
+
+sys.path.append("src/")
+
+
+def test_addmarginals() -> None:
+    """
+    Tests function 'Input.add_marginals()'
+    Ensure that marginals get appended
+    """
+    inp = Input()
+    inp.add_marginals()
+    assert len(inp.Marginals) == 1
diff --git a/tests/test_InputSpace.py b/tests/test_InputSpace.py
new file mode 100644
index 0000000000000000000000000000000000000000..ae31f8e90d051e39dd67c2e55f900a3eb0e11958
--- /dev/null
+++ b/tests/test_InputSpace.py
@@ -0,0 +1,610 @@
+# -*- coding: utf-8 -*-
+"""
+Test the InputSpace class in bayesvalidrox.
+Tests are available for the following functions
+Class InputSpace: 
+    check_valid_inputs  - x
+    init_param_space    - x
+    build_polytypes     - x
+    transform           - x
+
+"""
+import sys
+import pytest
+import numpy as np
+
+from bayesvalidrox.surrogate_models.inputs import Input
+from bayesvalidrox.surrogate_models.input_space import InputSpace
+
+sys.path.append("src/")
+sys.path.append("../src/")
+
+
+#%% Test ExpDesign.check_valid_input
+
+def test_check_valid_input_hasmarg() -> None:
+    """
+    Distribution not built if no marginals set
+    """
+    inp = Input()
+    with pytest.raises(AssertionError) as excinfo:
+        InputSpace(inp)
+    assert str(excinfo.value) == 'Cannot build distributions if no marginals are given'
+
+
+def test_check_valid_input_haspriors() -> None:
+    """
+    Distribution not built if no distribution set for the marginals
+    """
+    inp = Input()
+    inp.add_marginals()
+    with pytest.raises(AssertionError) as excinfo:
+        InputSpace(inp)
+    assert str(excinfo.value) == 'Not all marginals were provided priors'
+
+
+def test_check_valid_input_priorsmatch() -> None:
+    """
+    Distribution not built if dist types do not align
+    """
+    x = np.random.uniform(0, 1, 1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    inp.add_marginals()
+    inp.Marginals[1].dist_type = 'normal'
+    inp.Marginals[1].parameters = [0, 1]
+    with pytest.raises(AssertionError) as excinfo:
+        InputSpace(inp)
+    assert str(excinfo.value) == 'Distributions cannot be built as the priors have different types'
+
+
+def test_check_valid_input_samples() -> None:
+    """
+    Design built correctly - samples
+    """
+    x = np.random.uniform(0, 1, 1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    inp.add_marginals()
+    inp.Marginals[1].input_data = x + 2
+    InputSpace(inp)
+
+
+def test_check_valid_input_both() -> None:
+    """
+    Design no built - samples and dist type given
+    """
+    x = np.random.uniform(0, 1, 1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    inp.Marginals[0].dist_type = 'normal'
+    with pytest.raises(AssertionError) as excinfo:
+        InputSpace(inp)
+    assert str(excinfo.value) == 'Both samples and distribution type are given. Please choose only one.'
+
+
+# def test_check_valid_input_distnotok() -> None:
+#    """
+#    Design built incorrectly - dist types without parameters
+#    """
+#    inp = Input()
+#    inp.add_marginals()
+#    inp.Marginals[0].dist_type = 'normal'
+#    inp.add_marginals()
+#    inp.Marginals[1].dist_type = 'normal'
+#    with pytest.raises(AssertionError) as excinfo:
+#        exp = ExpDesigns(inp)
+#    assert str(excinfo.value) == 'Some distributions do not have characteristic values'
+
+def test_check_valid_input_distok() -> None:
+    """
+    Design built correctly - dist types
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    inp.add_marginals()
+    inp.Marginals[1].dist_type = 'normal'
+    inp.Marginals[1].parameters = [0, 1]
+    InputSpace(inp)
+
+
+def test_check_valid_input_noapc() -> None:
+    """
+    Design built correctly - no apc
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    inp.add_marginals()
+    inp.Marginals[1].dist_type = 'normal'
+    inp.Marginals[1].parameters = [0, 1]
+    InputSpace(inp, meta_Model_type='gpe')
+
+
+#%% Test ExpDesign.build_polytypes
+def test_build_polytypes_normalerr() -> None:
+    """
+    Build dist 'normal' - too few params
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = []
+    exp = InputSpace(inp)
+    with pytest.raises(AssertionError) as excinfo:
+        exp.build_polytypes(False)
+    assert str(excinfo.value) == 'Distribution has too few parameters!'
+
+
+def test_build_polytypes_normal() -> None:
+    """
+    Build dist 'normal'
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    exp = InputSpace(inp)
+    exp.build_polytypes(False)
+
+
+def test_build_polytypes_uniferr() -> None:
+    """
+    Build dist 'unif' - too few params
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'unif'
+    inp.Marginals[0].parameters = []
+    exp = InputSpace(inp)
+    with pytest.raises(AssertionError) as excinfo:
+        exp.build_polytypes(False)
+    assert str(excinfo.value) == 'Distribution has too few parameters!'
+
+
+def test_build_polytypes_unif() -> None:
+    """
+    Build dist 'unif'
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'unif'
+    inp.Marginals[0].parameters = [0, 1]
+    exp = InputSpace(inp)
+    exp.build_polytypes(False)
+
+
+def test_build_polytypes_gammaerr() -> None:
+    """
+    Build dist 'gamma' - too few params
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'gamma'
+    inp.Marginals[0].parameters = []
+    exp = InputSpace(inp)
+    with pytest.raises(AssertionError) as excinfo:
+        exp.build_polytypes(False)
+    assert str(excinfo.value) == 'Distribution has too few parameters!'
+
+
+# noinspection SpellCheckingInspection
+def test_build_polytypes_gamma() -> None:
+    """
+    Build dist 'gamma'
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'gamma'
+    inp.Marginals[0].parameters = [0, 1, 0]
+    exp = InputSpace(inp)
+    with pytest.raises(ValueError) as excinfo:
+        exp.build_polytypes(False)
+    assert str(excinfo.value) == 'Parameter values are not valid, please set differently'
+
+
+# noinspection SpellCheckingInspection
+def test_build_polytypes_betaerr() -> None:
+    """
+    Build dist 'beta' - too few params
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'beta'
+    inp.Marginals[0].parameters = []
+    exp = InputSpace(inp)
+    with pytest.raises(AssertionError) as excinfo:
+        exp.build_polytypes(False)
+    assert str(excinfo.value) == 'Distribution has too few parameters!'
+
+
+def test_build_polytypes_beta() -> None:
+    """
+    Build dist 'beta'
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'beta'
+    inp.Marginals[0].parameters = [0.5, 1, 2, 3]
+    exp = InputSpace(inp)
+    exp.build_polytypes(False)
+
+
+# noinspection SpellCheckingInspection
+def test_build_polytypes_lognormerr() -> None:
+    """
+    Build dist 'lognorm' - too few params
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'lognorm'
+    inp.Marginals[0].parameters = []
+    exp = InputSpace(inp)
+    with pytest.raises(AssertionError) as excinfo:
+        exp.build_polytypes(False)
+    assert str(excinfo.value) == 'Distribution has too few parameters!'
+
+
+def test_build_polytypes_lognorm() -> None:
+    """
+    Build dist 'lognorm'
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'lognorm'
+    inp.Marginals[0].parameters = [0.5, 1, 2, 3]
+    exp = InputSpace(inp)
+    exp.build_polytypes(False)
+
+
+def test_build_polytypes_exponerr() -> None:
+    """
+    Build dist 'expon' - too few params
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'beta'
+    inp.Marginals[0].parameters = []
+    exp = InputSpace(inp)
+    with pytest.raises(AssertionError) as excinfo:
+        exp.build_polytypes(False)
+    assert str(excinfo.value) == 'Distribution has too few parameters!'
+
+
+def test_build_polytypes_expon() -> None:
+    """
+    Build dist 'expon'
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'expon'
+    inp.Marginals[0].parameters = [0.5, 1, 2, 3]
+    exp = InputSpace(inp)
+    exp.build_polytypes(False)
+
+
+def test_build_polytypes_weibullerr() -> None:
+    """
+    Build dist 'weibull' - too few params
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'weibull'
+    inp.Marginals[0].parameters = []
+    exp = InputSpace(inp)
+    with pytest.raises(AssertionError) as excinfo:
+        exp.build_polytypes(False)
+    assert str(excinfo.value) == 'Distribution has too few parameters!'
+
+
+def test_build_polytypes_weibull() -> None:
+    """
+    Build dist 'weibull'
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'weibull'
+    inp.Marginals[0].parameters = [0.5, 1, 2, 3]
+    exp = InputSpace(inp)
+    exp.build_polytypes(False)
+
+
+def test_build_polytypes_arbitrary() -> None:
+    """
+    Build poly 'arbitrary'
+    """
+    x = np.random.uniform(0, 1, 1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = InputSpace(inp)
+    exp.build_polytypes(False)
+
+
+def test_build_polytypes_rosenblatt() -> None:
+    """
+    Build dist with rosenblatt
+    """
+    x = np.random.uniform(0, 1, 1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = InputSpace(inp)
+    exp.build_polytypes(True)
+
+
+def test_build_polytypes_samples() -> None:
+    """
+    Build dist from samples
+    """
+    x = np.random.uniform(0, 1, 1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = InputSpace(inp)
+    exp.build_polytypes(False)
+
+
+def test_build_polytypes_samples2d() -> None:
+    """
+    Build dist from samples - samples too high dim
+    """
+    x = np.random.uniform(0, 1, (2, 1000))
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = InputSpace(inp)
+    with pytest.raises(ValueError) as excinfo:
+        exp.build_polytypes(False)
+    assert str(excinfo.value) == 'The samples provided to the Marginals should be 1D only'
+
+
+#%% Test ExpDesign.init_param_space
+
+def test_init_param_space_nomaxdegsample() -> None:
+    """
+    Init param space without max_deg for given samples
+    """
+    x = np.random.uniform(0, 1, 1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = InputSpace(inp)
+    exp.init_param_space()
+
+
+def test_init_param_space_nomaxdegdist() -> None:
+    """
+    Init param space without max_deg for given dist
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'expon'
+    inp.Marginals[0].parameters = [0.5, 1, 2, 3]
+    exp = InputSpace(inp)
+    exp.init_param_space()
+
+
+def test_init_param_space_maxdeg() -> None:
+    """
+    Init param space with max_deg for given samples
+    """
+    x = np.random.uniform(0, 1, 1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = InputSpace(inp)
+    exp.init_param_space(max_deg=2)
+
+
+def test_init_param_space_maxdegdist() -> None:
+    """
+    Init param space with max_deg for given dist (not uniform)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'expon'
+    inp.Marginals[0].parameters = [0.5, 1, 2, 3]
+    exp = InputSpace(inp)
+    exp.init_param_space(max_deg=2)
+
+
+def test_init_param_space_maxdegdistunif() -> None:
+    """
+    Init param space with max_deg for given dist (uniform)
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'unif'
+    inp.Marginals[0].parameters = [0.5, 1, 2, 3]
+    exp = InputSpace(inp)
+    exp.init_param_space(max_deg=2)
+
+
+#%% Test ExpDesign.transform
+
+def test_transform_noparamspace() -> None:
+    """
+    Call transform without a built JDist
+    """
+    x = np.random.uniform(0, 1, 1000)
+    y = np.random.uniform(0, 1, (2, 1000))
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = InputSpace(inp)
+    with pytest.raises(AttributeError) as excinfo:
+        exp.transform(y)
+    assert str(excinfo.value) == 'Call function init_param_space first to create JDist'
+
+
+def test_transform_dimerrlow() -> None:
+    """
+    Call transform with too few dimensions
+    """
+    x = np.random.uniform(0, 1, 1000)
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = InputSpace(inp)
+    exp.init_param_space(max_deg=2)
+    with pytest.raises(AttributeError) as excinfo:
+        exp.transform(x)
+    assert str(excinfo.value) == 'X should have two dimensions'
+
+
+def test_transform_dimerrhigh() -> None:
+    """
+    Call transform with too many dimensions
+    """
+    x = np.random.uniform(0, 1, 1000)
+    y = np.random.uniform(0, 1, (1, 1, 1000))
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = InputSpace(inp)
+    exp.init_param_space(max_deg=2)
+    with pytest.raises(AttributeError) as excinfo:
+        exp.transform(y)
+    assert str(excinfo.value) == 'X should have two dimensions'
+
+
+def test_transform_dimerr0() -> None:
+    """
+    Call transform with wrong X.shape[0]
+    """
+    x = np.random.uniform(0, 1, 1000)
+    y = np.random.uniform(0, 1, (2, 1000))
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = InputSpace(inp)
+    exp.init_param_space(max_deg=2)
+    with pytest.raises(AttributeError) as excinfo:
+        exp.transform(y)
+    assert str(
+        excinfo.value) == 'The second dimension of X should be the same size as the number of marginals in the InputObj'
+
+
+def test_transform_paramspace() -> None:
+    """
+    Transform successfully
+    """
+    x = np.random.uniform(0, 1, 1000)
+    y = np.random.uniform(0, 1, (1000, 1))
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = InputSpace(inp)
+    exp.init_param_space(max_deg=2)
+    exp.transform(y)
+
+
+def test_transform_rosenblatt() -> None:
+    """
+    Transform with rosenblatt
+    """
+    x = np.random.uniform(0, 1, 1000)
+    y = np.random.uniform(0, 1, (1000, 1))
+    inp = Input()
+    inp.Rosenblatt = True
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = InputSpace(inp)
+    exp.init_param_space(max_deg=2)
+    exp.transform(y)
+
+
+def test_transform_user() -> None:
+    """
+    Transform with method 'user'
+    """
+    x = np.random.uniform(0, 1, 1000)
+    y = np.random.uniform(0, 1, (1000, 1))
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = InputSpace(inp)
+    exp.init_param_space(max_deg=2)
+    exp.transform(y, method='user')
+
+
+# noinspection SpellCheckingInspection
+def test_transform_rosenblattuser() -> None:
+    """
+    Transform with rosenblatt and method 'user'
+    """
+    x = np.random.uniform(0, 1, 1000)
+    y = np.random.uniform(0, 1, (1000, 1))
+    inp = Input()
+    inp.Rosenblatt = True
+    inp.add_marginals()
+    inp.Marginals[0].input_data = x
+    exp = InputSpace(inp)
+    exp.init_param_space(max_deg=2)
+    exp.transform(y, method='user')
+
+
+def test_transform_uniform() -> None:
+    """
+    Transform uniform dist
+    """
+    y = np.random.uniform(0, 1, (1000, 1))
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'unif'
+    inp.Marginals[0].parameters = [0, 1]
+    exp = InputSpace(inp)
+    exp.init_param_space(max_deg=2)
+    exp.transform(y)
+
+
+def test_transform_norm() -> None:
+    """
+    Transform normal dist
+    """
+    y = np.random.uniform(0, 1, (1000, 1))
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'norm'
+    inp.Marginals[0].parameters = [0, 1]
+    exp = InputSpace(inp)
+    exp.init_param_space(max_deg=2)
+    exp.transform(y)
+
+
+# TODO: what are these other params here???
+def test_transform_gammanoparam() -> None:
+    """
+    Transform gamma dist - no parameters
+    """
+    y = np.random.uniform(0, 1, (1000, 1))
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'gamma'
+    inp.Marginals[0].parameters = [1, 1, 0]
+    exp = InputSpace(inp)
+    exp.init_param_space(max_deg=2)
+    with pytest.raises(AttributeError) as excinfo:
+        exp.transform(y)
+    assert str(excinfo.value) == 'Additional parameters have to be set for the gamma distribution!'
+
+
+def test_transform_gammaparam() -> None:
+    """
+    Transform gamma dist - with parameters
+    """
+    y = np.random.uniform(0, 1, (1000, 1))
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'gamma'
+    inp.Marginals[0].parameters = [1, 1, 0]
+    exp = InputSpace(inp)
+    exp.init_param_space(max_deg=2)
+    exp.transform(y, params=[1, 1])
diff --git a/tests/test_MCMC.py b/tests/test_MCMC.py
new file mode 100644
index 0000000000000000000000000000000000000000..3485a615b34150f63f8c8f428167453393531c09
--- /dev/null
+++ b/tests/test_MCMC.py
@@ -0,0 +1,223 @@
+# -*- coding: utf-8 -*-
+"""
+Test the MCM class of bayesvalidrox
+Tests are available for the following functions
+_check_ranges           - x
+gelmain_rubin
+_iterative_scheme
+_my_ESS                 - x
+Class MCMC: 
+    run_sampler
+    log_prior
+    log_likelihood
+    log_posterior
+    eval_model
+    train_error_model
+    marginal_llk_emcee
+"""
+import sys
+import pandas as pd
+import numpy as np
+
+from bayesvalidrox.surrogate_models.inputs import Input
+from bayesvalidrox.surrogate_models.exp_designs import ExpDesigns
+from bayesvalidrox.surrogate_models.surrogate_models import MetaModel
+from bayesvalidrox.pylink.pylink import PyLinkForwardModel as PL
+from bayesvalidrox.surrogate_models.engine import Engine
+from bayesvalidrox.bayes_inference.discrepancy import Discrepancy
+from bayesvalidrox.bayes_inference.mcmc import MCMC
+from bayesvalidrox.bayes_inference.bayes_inference import BayesInference
+from bayesvalidrox.bayes_inference.mcmc import _check_ranges, gelman_rubin
+
+sys.path.append("src/")
+sys.path.append("../src/")
+
+
+#%% Test MCMC init
+
+def test_MCMC() -> None:
+    """
+    Construct an MCMC object
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.x_values = np.array([0])
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+
+    mod = PL()
+    mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}
+    mod.Output.names = ['Z']
+    engine = Engine(mm, mod, expdes)
+
+    obsData = pd.DataFrame(mod.observations, columns=mod.Output.names)
+    disc = Discrepancy('')
+    disc.type = 'Gaussian'
+    disc.parameters = (obsData * 0.15) ** 2
+    disc.opt_sigma = 'B'
+
+    bi = BayesInference(engine)
+    bi.Discrepancy = disc
+    bi.inference_method = 'mcmc'
+    bi.setup_inference()
+    MCMC(bi)
+
+
+#%% Test run_sampler
+
+def test_run_sampler() -> None:
+    """
+    Run short MCMC
+
+    Returns
+    -------
+    None
+        DESCRIPTION.
+
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    expdes.x_values = np.array([0])
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+
+    mod = PL()
+    mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}
+    mod.Output.names = ['Z']
+    engine = Engine(mm, mod, expdes)
+
+    obsData = pd.DataFrame(mod.observations, columns=mod.Output.names)
+    disc = Discrepancy('')
+    disc.type = 'Gaussian'
+    disc.parameters = (obsData * 0.15) ** 2
+    disc.opt_sigma = 'B'
+
+    bi = BayesInference(engine)
+    bi.Discrepancy = disc
+    bi.inference_method = 'mcmc'
+    bi.setup_inference()
+    total_sigma2s = {'Z': np.array([0.15])}
+    mcmc = MCMC(bi)
+    mcmc.nburn = 10
+    mcmc.nsteps = 50
+    mcmc.run_sampler(mod.observations, total_sigma2s)
+
+
+#%% Test log_prior
+
+#%% Test log_likelihood
+
+#%% Test log_posterior
+
+#%% Test eval_model
+
+#%% Test train_error_model
+
+#%% Test gelmain_rubin
+
+def test_gelman_rubin() -> None:
+    """
+    Calculate gelman-rubin
+    """
+    chain = [[[1], [2]]]
+    gelman_rubin(chain)
+
+
+def test_gelman_rubin_returnvar() -> None:
+    """
+    Calculate gelman-rubin returning var
+    """
+    chain = [[[1], [2]]]
+    gelman_rubin(chain, return_var=True)
+
+
+#%% Test marginal_llk_emcee
+
+#%% Test _check_ranges
+
+def test_check_ranges() -> None:
+    """
+    Check to see if theta lies in expected ranges
+    """
+    theta = [0.5, 1.2]
+    ranges = [[0, 1], [1, 2]]
+    assert _check_ranges(theta, ranges) is True
+
+
+def test_check_ranges_inv() -> None:
+    """
+    Check to see if theta lies not in expected ranges
+    """
+    theta = [1.5, 1.2]
+    ranges = [[0, 1], [1, 2]]
+    assert _check_ranges(theta, ranges) is False
+
+
+#%% Main
+
+if __name__ == '__main__':
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+
+    expdes = ExpDesigns(inp)
+    expdes.n_init_samples = 2
+    expdes.n_max_samples = 4
+    expdes.X = np.array([[0], [1], [0.5]])
+    expdes.Y = {'Z': [[0.4], [0.5], [0.45]]}
+    # expdes.x_values = np.array([0]) #  Error in plots if this is not available
+
+    mm = MetaModel(inp)
+    mm.fit(expdes.X, expdes.Y)
+    expdes.generate_ED(expdes.n_init_samples, max_pce_deg=np.max(mm.pce_deg))
+
+    mod = PL()
+    mod.observations = {'Z': np.array([0.45]), 'x_values': np.array([0])}
+    mod.Output.names = ['Z']
+
+    engine = Engine(mm, mod, expdes)
+
+    sigma2Dict = {'Z': np.array([0.05])}
+    sigma2Dict = pd.DataFrame(sigma2Dict, columns=['Z'])
+    obsData = pd.DataFrame(mod.observations, columns=mod.Output.names)
+    disc = Discrepancy('')
+    disc.type = 'Gaussian'
+    disc.parameters = (obsData * 0.15) ** 2
+    disc.opt_sigma = 'B'
+
+    bi = BayesInference(engine)
+    bi.Discrepancy = disc
+    bi.inference_method = 'mcmc'
+    bi.setup_inference()
+
+    # chain = [[[1],[2]]]
+    total_sigma2s = {'Z': np.array([0.15])}
+    mcmc = MCMC(bi)
+    mcmc.nsteps = 50
+    mcmc.nburn = 10
+    mcmc.run_sampler(mod.observations, total_sigma2s)
+    # mcmc.gelmain_rubin(chain)
+
+    chain = [[[1], [2]]]
+    gelman_rubin(chain, return_var=True)
diff --git a/tests/test_MetaModel.py b/tests/test_MetaModel.py
new file mode 100644
index 0000000000000000000000000000000000000000..a3f9b19d3fb42c3e6ec3f34b3efb19298c8de545
--- /dev/null
+++ b/tests/test_MetaModel.py
@@ -0,0 +1,1172 @@
+# -*- coding: utf-8 -*-
+"""
+Test the MetaModel class in bayesvalidrox.
+Tests are available for the following functions
+Class MetaModel: 
+    build_metamodel  - x
+    update_metamodel
+    update_pce_coeffs
+    create_basis_indices --removed, just redirects
+    add_InputSpace                                   -x
+    univ_basis_vals
+    create_psi
+    fit
+    adaptive_regression
+    corr_loocv_error
+    pca_transformation
+    gaussian_process_emulator
+    eval_metamodel
+    create_model_error
+    eval_model_error
+    auto_vivification
+    copy_meta_model_opts
+    __select_degree
+    generate_polynomials
+    _compute_pce_moments
+    
+"""
+import numpy as np
+import pytest
+import sys
+
+from bayesvalidrox.surrogate_models.inputs import Input
+from bayesvalidrox.surrogate_models.input_space import InputSpace
+from bayesvalidrox.surrogate_models.surrogate_models import MetaModel, corr_loocv_error, create_psi
+from bayesvalidrox.surrogate_models.surrogate_models import gaussian_process_emulator
+
+sys.path.append("src/")
+
+
+#%% Test MetaMod constructor on its own
+
+def test_metamod() -> None:
+    """
+    Construct MetaModel without inputs
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    MetaModel(inp)
+
+
+#%% Test MetaModel.build_metamodel
+
+def test_build_metamodel_nosamples() -> None:
+    """
+    Build MetaModel without collocation samples
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    with pytest.raises(AttributeError) as excinfo:
+        mm.build_metamodel()
+    assert str(excinfo.value) == 'Please provide samples to the metamodel before building it.'
+
+
+def test_build_metamodel() -> None:
+    """
+    Build MetaModel
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.CollocationPoints = np.array([[0.2], [0.8]])
+    mm.build_metamodel()
+
+
+def test_build_metamodel_ninitsamples() -> None:
+    """
+    Build MetaModel with n_init_samples
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.CollocationPoints = np.array([[0.2], [0.8]])
+    mm.build_metamodel(n_init_samples=2)
+
+
+def test_build_metamodel_gpe() -> None:
+    """
+    Build MetaModel gpe
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.meta_model_type = 'gpe'
+    mm.CollocationPoints = np.array([[0.2], [0.8]])
+    mm.build_metamodel()
+
+
+def test_build_metamodel_coldimerr() -> None:
+    """
+    Build MetaModel with wrong shape collocation samples
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.CollocationPoints = [[0.2, 0.8]]
+    with pytest.raises(AttributeError) as excinfo:
+        mm.build_metamodel()
+    assert str(
+        excinfo.value) == 'The second dimension of X should be the same size as the number of marginals in the InputObj'
+
+
+#%% Test MetaMod.generate_polynomials
+
+def test_generate_polynomials_noexp() -> None:
+    """
+    Generate polynomials without ExpDeg
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    with pytest.raises(AttributeError) as excinfo:
+        mm.generate_polynomials()
+    assert str(excinfo.value) == 'Generate or add InputSpace before generating polynomials'
+
+
+def test_generate_polynomials_nodeg() -> None:
+    """
+    Generate polynomials without max_deg
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+
+    # Setup
+    mm.InputSpace = InputSpace(inp)
+    mm.InputSpace.n_init_samples = 2
+    mm.InputSpace.init_param_space(np.max(mm.pce_deg))
+    mm.ndim = mm.InputSpace.ndim
+    mm.n_params = len(mm.input_obj.Marginals)
+
+    # Generate
+    with pytest.raises(AttributeError) as excinfo:
+        mm.generate_polynomials()
+    assert str(excinfo.value) == 'MetaModel cannot generate polynomials in the given scenario!'
+
+
+def test_generate_polynomials_deg() -> None:
+    """
+    Generate polynomials with max_deg
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+
+    # Setup
+    mm.InputSpace = InputSpace(inp)
+    mm.InputSpace.n_init_samples = 2
+    mm.InputSpace.init_param_space(np.max(mm.pce_deg))
+    mm.ndim = mm.InputSpace.ndim
+    mm.n_params = len(mm.input_obj.Marginals)
+
+    # Generate
+    mm.generate_polynomials(4)
+
+
+#%% Test MetaMod.add_InputSpace
+
+def test_add_inputspace() -> None:
+    """
+    Add InputSpace in MetaModel
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.add_InputSpace()
+
+
+#%% Test MetaModel.fit
+# Faster without these
+def test_fit() -> None:
+    """
+    Fit MetaModel
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.fit([[0.2], [0.8]], {'Z': [[0.4], [0.5]]})
+
+
+def test_fit_parallel() -> None:
+    """
+    Fit MetaModel in parallel
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.fit([[0.2], [0.8]], {'Z': [[0.4], [0.5]]}, parallel=True)
+
+
+def test_fit_verbose() -> None:
+    """
+    Fit MetaModel verbose
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.fit([[0.2], [0.8]], {'Z': [[0.4], [0.5]]}, verbose=True)
+
+
+def test_fit_pca() -> None:
+    """
+    Fit MetaModel verbose and with pca
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.dim_red_method = 'pca'
+    mm.fit([[0.2], [0.8]], {'Z': [[0.4, 0.4], [0.5, 0.6]]}, verbose=True)
+
+
+def test_fit_gpe() -> None:
+    """
+    Fit MetaModel
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.meta_model_type = 'gpe'
+    mm.fit([[0.2], [0.8]], {'Z': [[0.4], [0.5]]})
+
+
+#%% Test MetaModel.create_psi
+
+def test_create_psi() -> None:
+    """
+    Create psi-matrix
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2], [0.8]])
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    create_psi(BasisIndices, univ_bas)
+
+
+#%% Test MetaModel.regression
+
+def test_regression() -> None:
+    """
+    Regression without a method
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2]])
+    outputs = np.array([0.5])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi)
+
+
+def test_regression_ols() -> None:
+    """
+    Regression: ols
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2]])
+    outputs = np.array([0.5])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='ols')
+
+
+def test_regression_olssparse() -> None:
+    """
+    Regression: ols and sparse
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2]])
+    outputs = np.array([0.5])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='ols', sparsity=True)
+
+
+def test_regression_ard() -> None:
+    """
+    Regression: ard
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2], [0.8]])
+    outputs = np.array([0.4, 0.5])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='ard')
+
+
+def test_regression_ardssparse() -> None:
+    """
+    Regression: ard and sparse
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2], [0.8]])
+    outputs = np.array([0.4, 0.5])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='ard', sparsity=True)
+
+
+def test_regression_fastard() -> None:
+    """
+    Regression: fastard
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2]])
+    outputs = np.array([0.5])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='fastard')
+
+
+def test_regression_fastardssparse() -> None:
+    """
+    Regression: fastard and sparse
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2]])
+    outputs = np.array([0.5])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='fastard', sparsity=True)
+
+
+def test_regression_brr() -> None:
+    """
+    Regression: brr
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2]])
+    outputs = np.array([0.5])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='brr')
+
+
+def test_regression_brrssparse() -> None:
+    """
+    Regression: brr and sparse
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2]])
+    outputs = np.array([0.5])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='brr', sparsity=True)
+
+
+def test_regression_bcs() -> None:
+    """
+    Regression: bcs
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.0], [0.1], [0.2], [0.3], [0.4], [0.5], [0.6], [0.7], [0.8], [0.9]])
+    outputs = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
+    mm.pce_deg = 3
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(mm.pce_deg)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='bcs')
+
+
+def test_regression_bcsssparse() -> None:
+    """
+    Regression: bcs and sparse
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.0], [0.1], [0.2], [0.3], [0.4], [0.5], [0.6], [0.7], [0.8], [0.9], [1.0]])
+    outputs = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.1])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='bcs', sparsity=True)
+
+
+def test_regression_lars() -> None:
+    """
+    Regression: lars
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.0], [0.1], [0.2], [0.3], [0.4], [0.5], [0.6], [0.7], [0.8], [0.9], [1.0]])
+    outputs = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.1])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='lars')
+
+
+def test_regression_larsssparse() -> None:
+    """
+    Regression: lars and sparse
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.0], [0.1], [0.2], [0.3], [0.4], [0.5], [0.6], [0.7], [0.8], [0.9], [1.0]])
+    outputs = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.1])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='lars', sparsity=True)
+
+
+def test_regression_sgdr() -> None:
+    """
+    Regression: sgdr
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2]])
+    outputs = np.array([0.5])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='sgdr')
+
+
+def test_regression_sgdrssparse() -> None:
+    """
+    Regression: sgdr and sparse
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2]])
+    outputs = np.array([0.5])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='sgdr', sparsity=True)
+
+
+def test_regression_omp() -> None:
+    """
+    Regression: omp
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2]])
+    outputs = np.array([0.5])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='omp')
+
+
+def test_regression_ompssparse() -> None:
+    """
+    Regression: omp and sparse
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2]])
+    outputs = np.array([0.5])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='omp', sparsity=True)
+
+
+def test_regression_vbl() -> None:
+    """
+    Regression: vbl
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2]])
+    outputs = np.array([0.5])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='vbl')
+
+
+def test_regression_vblssparse() -> None:
+    """
+    Regression: vbl and sparse
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2]])
+    outputs = np.array([0.5])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='vbl', sparsity=True)
+
+
+def test_regression_ebl() -> None:
+    """
+    Regression: ebl
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2]])
+    outputs = np.array([0.5])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='ebl')
+
+
+def test_regression_eblssparse() -> None:
+    """
+    Regression: ebl and sparse
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2]])
+    outputs = np.array([0.5])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    mm.regression(samples, outputs, psi, reg_method='ebl', sparsity=True)
+
+
+#%% Test Model.update_pce_coeffs
+
+# TODO: very linked to the actual training...
+
+#%% Test MetaModel.univ_basis_vals
+
+def test_univ_basis_vals() -> None:
+    """
+    Creates univariate polynomials
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2], [0.8]])
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    mm.univ_basis_vals(samples)
+
+
+#%% Test MetaModel.adaptive_regression
+
+def test_adaptive_regression_fewsamples() -> None:
+    """
+    Adaptive regression, no specific method, too few samples given
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2]])
+    outputs = np.array([0.8])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+
+    # Evaluate the univariate polynomials on InputSpace
+    if mm.meta_model_type.lower() != 'gpe':
+        mm.univ_p_val = mm.univ_basis_vals(mm.CollocationPoints)
+
+    with pytest.raises(AttributeError) as excinfo:
+        mm.adaptive_regression(outputs, 0)
+    assert str(
+        excinfo.value) == ('There are too few samples for the corrected loo-cv error. Fit surrogate on at least as '
+                           'many samples as parameters to use this')
+
+
+def test_adaptive_regression() -> None:
+    """
+    Adaptive regression, no specific method
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.0], [0.1]])
+    outputs = np.array([0.0, 0.1])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+
+    # Evaluate the univariate polynomials on InputSpace
+    if mm.meta_model_type.lower() != 'gpe':
+        mm.univ_p_val = mm.univ_basis_vals(mm.CollocationPoints)
+    mm.adaptive_regression(outputs, 0)
+
+
+def test_adaptive_regression_verbose() -> None:
+    """
+    Adaptive regression, no specific method, verbose output
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.0], [0.1]])
+    outputs = np.array([0.0, 0.1])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+
+    # Evaluate the univariate polynomials on InputSpace
+    if mm.meta_model_type.lower() != 'gpe':
+        mm.univ_p_val = mm.univ_basis_vals(mm.CollocationPoints)
+    mm.adaptive_regression(outputs, 0, True)
+
+
+def test_adaptive_regression_ols() -> None:
+    """
+    Adaptive regression, ols
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.0], [0.1], [0.2], [0.3], [0.4], [0.5], [0.6], [0.7], [0.8],
+                        [0.9], [1.0]])
+    outputs = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.1])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+
+    # Evaluate the univariate polynomials on InputSpace
+    if mm.meta_model_type.lower() != 'gpe':
+        mm.univ_p_val = mm.univ_basis_vals(mm.CollocationPoints)
+    mm.pce_reg_method = 'ols'
+    mm.adaptive_regression(outputs, 0)
+
+
+#%% Test MetaModel.corr_loocv_error
+
+def test_corr_loocv_error_nosparse() -> None:
+    """
+    Corrected loocv error
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.0], [0.1], [0.2], [0.3], [0.4], [0.5], [0.6], [0.7],
+                        [0.8], [0.9], [1.0]])
+    outputs = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.1])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    outs = mm.regression(samples, outputs, psi, reg_method='ebl')
+    corr_loocv_error(outs['clf_poly'], outs['sparePsi'], outs['coeffs'],
+                     outputs)
+
+
+def test_corr_loocv_error_singley() -> None:
+    """
+    Corrected loocv error
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.2]])
+    outputs = np.array([0.1])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    outs = mm.regression(samples, outputs, psi, reg_method='ols')
+    corr_loocv_error(outs['clf_poly'], outs['sparePsi'], outs['coeffs'],
+                     outputs)
+
+
+def test_corr_loocv_error_sparse() -> None:
+    """
+    Corrected loocv error from sparse results
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    samples = np.array([[0.0], [0.1], [0.2], [0.3], [0.4], [0.5], [0.6], [0.7],
+                        [0.8], [0.9], [1.0]])
+    outputs = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.1])
+
+    mm.CollocationPoints = samples
+    mm.build_metamodel(n_init_samples=2)
+    BasisIndices = mm.allBasisIndices[str(1)][str(1.0)]
+    univ_bas = mm.univ_basis_vals(samples)
+    psi = create_psi(BasisIndices, univ_bas)
+
+    outs = mm.regression(samples, outputs, psi, reg_method='ebl',
+                         sparsity=True)
+    corr_loocv_error(outs['clf_poly'], outs['sparePsi'], outs['coeffs'],
+                     outputs)
+
+
+#%% Test MetaModel.pca_transformation
+
+def test_pca_transformation() -> None:
+    """
+    Apply PCA
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    outputs = np.array([[0.4, 0.4], [0.5, 0.6]])
+    mm.pca_transformation(outputs)
+
+
+def test_pca_transformation_verbose() -> None:
+    """
+    Apply PCA verbose
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    outputs = np.array([[0.4, 0.4], [0.5, 0.6]])
+    mm.pca_transformation(outputs, True)
+
+
+def test_pca_transformation_varcomp() -> None:
+    """
+    Apply PCA with set var_pca_threshold
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    outputs = np.array([[0.4, 0.4], [0.5, 0.6]])
+    mm.var_pca_threshold = 1
+    mm.pca_transformation(outputs)
+
+
+def test_pca_transformation_ncomp() -> None:
+    """
+    Apply PCA with set n_pca_components
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    outputs = np.array([[0.4, 0.4], [0.5, 0.6]])
+    mm.n_pca_components = 1
+    mm.pca_transformation(outputs)
+
+
+#%% Test MetaModel.gaussian_process_emulator
+
+def test_gaussian_process_emulator() -> None:
+    """
+    Create GPE 
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    gaussian_process_emulator([[0.2], [0.8]], [0.4, 0.5])
+
+
+def test_gaussian_process_emulator_nug() -> None:
+    """
+    Create GPEwith nugget
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    gaussian_process_emulator([[0.2], [0.8]], [0.4, 0.5], nug_term=1.0)
+
+
+def test_gaussian_process_emulator_autosel() -> None:
+    """
+    Fit MetaModel with autoselect
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    gaussian_process_emulator([[0.2], [0.8]], [0.4, 0.5], autoSelect=True)
+
+
+def test_gaussian_process_emulator_varidx() -> None:
+    """
+    Create GPE with var_idx
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    gaussian_process_emulator([[0.2], [0.8]], [0.4, 0.5], varIdx=1)
+
+
+#%% Test MetaModel.eval_metamodel
+
+def test_eval_metamodel() -> None:
+    """
+    Eval trained MetaModel 
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.out_names = ['Z']
+    mm.fit([[0.2], [0.8]], {'Z': [[0.4], [0.5]]})
+    mm.eval_metamodel([[0.4]])
+
+
+def test_eval_metamodel_normalboots() -> None:
+    """
+    Eval trained MetaModel with normal bootstrap
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.bootstrap_method = 'normal'
+    mm.out_names = ['Z']
+    mm.fit([[0.2], [0.8]], {'Z': [[0.4], [0.5]]})
+    mm.eval_metamodel([[0.4]])
+
+
+def test_eval_metamodel_highnormalboots() -> None:
+    """
+    Eval trained MetaModel with higher bootstrap-itrs
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.n_bootstrap_itrs = 2
+    mm.out_names = ['Z']
+    mm.fit([[0.2], [0.8]], {'Z': [[0.4], [0.5]]})
+    mm.eval_metamodel([[0.4]])
+
+
+def test_eval_metamodel_gpe() -> None:
+    """
+    Eval trained MetaModel - gpe
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.meta_model_type = 'gpe'
+    mm.out_names = ['Z']
+    mm.fit([[0.2], [0.8]], {'Z': np.array([[0.4], [0.5]])})
+    mm.eval_metamodel([[0.4]])
+
+
+def test_eval_metamodel_pca() -> None:
+    """
+    Eval trained MetaModel with pca
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.dim_red_method = 'pca'
+    mm.out_names = ['Z']
+    mm.fit([[0.2], [0.8]], {'Z': [[0.4, 0.4], [0.5, 0.6]]})
+    mm.eval_metamodel([[0.4]])
+
+
+#%% Test MetaModel.create_model_error
+# TODO: move model out of this function
+
+#%% Test MetaModel.eval_model_error
+# TODO: test create_model_error first
+
+#%% Test MetaModel.auto_vivification
+def test_auto_vivification() -> None:
+    """
+    Creation of auto-vivification objects
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.auto_vivification()
+
+
+#%% Test MetaModel.copy_meta_model_opts
+
+def test_copy_meta_model_opts() -> None:
+    """
+    Copy the metamodel with just some stats
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.add_InputSpace()
+    mm.copy_meta_model_opts()
+
+
+#%% Test MetaModel.__select_degree
+
+#%% Test Engine._compute_pce_moments
+
+def test__compute_pce_moments() -> None:
+    """
+    Compute moments of a pce-surrogate
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.fit([[0.2], [0.8]], {'Z': [[0.4], [0.5]]})
+    mm._compute_pce_moments()
+
+
+def test__compute_pce_moments_pca() -> None:
+    """
+    Compute moments of a pce-surrogate with pca
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.dim_red_method = 'pca'
+    mm.fit([[0.2], [0.8]], {'Z': [[0.4, 0.4], [0.5, 0.6]]})
+    mm._compute_pce_moments()
+
+
+def test__compute_pce_moments_gpe() -> None:
+    """
+    Compute moments of a gpe-surrogate
+    """
+    inp = Input()
+    inp.add_marginals()
+    inp.Marginals[0].dist_type = 'normal'
+    inp.Marginals[0].parameters = [0, 1]
+    mm = MetaModel(inp)
+    mm.meta_model_type = 'gpe'
+    with pytest.raises(AttributeError) as excinfo:
+        mm._compute_pce_moments()
+    assert str(excinfo.value) == 'Moments can only be computed for pce-type surrogates'
+
+
+#%% Test MetaModel.update_metamodel
+# TODO: taken from engine
diff --git a/tests/test_model/PosteriorGeneration/Posterior.csv b/tests/test_model/PosteriorGeneration/Posterior.csv
new file mode 100644
index 0000000000000000000000000000000000000000..c5ac7661b1293e88b1d8f257c7bf183962be336f
--- /dev/null
+++ b/tests/test_model/PosteriorGeneration/Posterior.csv
@@ -0,0 +1,6458 @@
+Beam width,Beam height,Youngs modulus,Uniform load
+0.15055984558676253,0.29525432449198297,30.76127334738532,9.723836401962199
+0.15172323185227535,0.3018864526755948,30.900386050140906,10.572937395098421
+0.14973682706047656,0.2978203129324041,36.32602379774441,11.755511440017944
+0.1517705925936338,0.305488518618717,34.50777554904536,12.185971698925812
+0.15122339466850782,0.2926128752190275,35.56672182303718,11.0301930879105
+0.14845810152750857,0.30211679811976233,29.835349622421052,10.024544145665512
+0.1489486486032762,0.2976793170334428,29.594984582798585,9.521736085316368
+0.15058053518912617,0.30333441137936284,27.27802142418919,9.342001468585726
+0.1507691624131821,0.2939876743771734,31.27163912090209,9.792688628012431
+0.1500870646038146,0.2985441999148553,39.81677531480247,12.987496647396311
+0.14898608605561217,0.30375423088389003,29.52705674493042,10.062549985258489
+0.14970824383703807,0.30315407503168046,35.2631265265265,11.99629791617248
+0.1498912371993728,0.3013950044398239,33.54132459098164,11.248721986783334
+0.14918575621696326,0.29880381550532065,34.150652209795595,11.118554528090979
+0.1489969356057506,0.300082398957258,31.002479481593078,10.219384641989384
+0.14963859664258394,0.2969265555129175,28.313546776132057,9.088993931185307
+0.14924423341105603,0.2961598248152436,34.8669105697025,11.066044927367999
+0.1488627318567911,0.30339555022808407,28.7659733754671,9.719728325570129
+0.14904620979099514,0.30205065043454093,27.36896794141427,9.15878555321657
+0.14886154272190172,0.297571249578671,33.98280136527889,10.993246687313722
+0.15046175526021985,0.3014252784837413,30.320866515147358,10.245770506771493
+0.14895131444063903,0.3006988921964416,37.02907995194387,12.254220550055356
+0.14822839215760572,0.2967015482530759,29.13063987848894,9.243997918545368
+0.15061583048688917,0.3023050340792065,26.381591123053003,9.039144523940172
+0.14933137568234386,0.2976303918077185,28.185860267431718,9.099539621429873
+0.15097333701125473,0.29884114856849325,32.448149132581875,10.725091737113342
+0.14861246193204933,0.2956301496342977,31.53137989477175,9.887819803283998
+0.15075147769579367,0.29426575882827677,32.81116563700903,10.356665887389468
+0.1488838808015214,0.30969592007109076,23.314425369188026,8.41259635215697
+0.15089032060024854,0.29975849822448203,28.330198030194403,9.395440278016995
+0.15171896932446038,0.29697069253763303,31.719864538400206,10.265446132573281
+0.1511638954444731,0.3064294498625754,30.16270383629635,10.712742355905162
+0.14970391336634295,0.2933263997782806,31.105997921156632,9.588629000761
+0.15173385801101136,0.3026504423355007,27.856008806744917,9.647971253145494
+0.14963903690066988,0.2992892791266329,25.62644199051723,8.41447349619034
+0.14786899863171046,0.29465218763471346,32.73828816801097,10.110488762340273
+0.14830043739463228,0.30179590466397616,33.33391843314495,11.074223059030498
+0.14972066572015155,0.29329923960466125,29.91942642817336,9.29929818095726
+0.14968180670910078,0.30368487275388706,30.888973401246478,10.545427119589773
+0.1518739419436568,0.3021836590473556,34.00577846722855,11.670888200124832
+0.1513373569201578,0.2992960113169822,29.659969447444713,9.860813347162992
+0.15160436704895,0.3010981673626241,36.64411401601438,12.449286997760847
+0.14870809657944523,0.29324066965704415,33.40093193356068,10.250535977092024
+0.150329666654505,0.3015776803893649,29.295545898925752,9.904251047292721
+0.15110408601686112,0.30238317785012736,33.19806246609083,11.353712675878493
+0.14911287190577996,0.2992352248448469,30.347226764990197,9.90312082340579
+0.1513478466633895,0.2962980407271981,35.68541092831026,11.460068110037875
+0.1503563256692775,0.30714086924433825,28.569871495685874,10.186432339695088
+0.14891257103394928,0.296688726025247,30.734192595943526,9.743439511560911
+0.151105303175229,0.29894996065185564,31.884589303779972,10.46387013660202
+0.14683980110850903,0.29302131628940636,37.91487937324246,11.521781589410088
+0.15005118664246028,0.29614219476553616,31.612243932956268,10.103649749107161
+0.1502371893551997,0.2944204279777004,28.55807190100987,8.953242542734515
+0.1516111490053176,0.3044040258957299,30.347403454026416,10.566693853101615
+0.14821312224234226,0.305553714812958,27.762839297622556,9.580249090441534
+0.15058036389882157,0.30120964748854995,23.304137265628846,7.880051394316492
+0.14751159516124104,0.3045117430978514,25.625863623354057,8.777248324422054
+0.14968171786301937,0.2979298363954319,30.265733028953793,9.809306867181538
+0.14902637994484685,0.29436900881321476,32.94978451310034,10.246990173014247
+0.14821532118475994,0.3061690727243609,31.682038781139664,11.007031013157192
+0.14926641068125943,0.30674418982891644,28.45440326279706,10.08300255254922
+0.14941809741096518,0.292584520491891,34.24498923168918,10.538070061953654
+0.1494371702021553,0.2986140517197328,33.90742531182021,11.050570051393581
+0.15061256206078197,0.30127244886893073,31.55060000864165,10.692445609275516
+0.15180893258345682,0.30914066357851544,29.549067783101776,10.790145838160383
+0.15068728655039282,0.30148840873794036,26.882296892997054,9.074449939020091
+0.14942716567458997,0.2923218917496673,34.26192248389427,10.496615929923584
+0.14980292323154265,0.30137721959111047,24.945347103870077,8.361949478660202
+0.1486372195220464,0.30348665546178627,30.825887911149117,10.463615818344296
+0.14937896477437884,0.2976727021751642,25.491255100968537,8.185568530092164
+0.1488265616723196,0.30297766723896785,30.641895492682583,10.385503058131476
+0.148838855994559,0.30068669479470905,30.19295051607365,10.034973817737873
+0.1506531831503386,0.2976345133477932,33.73310641425946,10.92219062603582
+0.14977990320362342,0.2982886259205805,32.732305316522464,10.625062422281657
+0.15000084994829443,0.3000301295153972,27.658024991021872,9.106955193691304
+0.15225710501013492,0.2978346445274063,29.91895901482293,9.818553925371916
+0.14817305361997635,0.30528908407897076,32.9734146523813,11.363147869847735
+0.1490344402055049,0.2943411804090603,33.9012644331582,10.513566096077135
+0.15025966169314448,0.3109671410224573,28.169493920086914,10.417199062512964
+0.148583316685014,0.3007806398250571,29.69795195646071,9.837671584721877
+0.1510825560762331,0.30232957350044304,28.50738709183433,9.748590869656413
+0.1495004260725029,0.30016803986102364,28.273580690642955,9.285662388512815
+0.14981439928459667,0.29881513808789495,34.50392392360294,11.289112459374614
+0.15091068054381374,0.302467459505437,28.311260389325504,9.613980971017389
+0.14909997719166432,0.30479042137133283,35.65438926788075,12.276695718506792
+0.15130616156420285,0.3038436201604296,28.970942637849586,10.04549883005259
+0.15186843568301658,0.29225167822589815,29.877997715611002,9.265560868188839
+0.14977494259410137,0.30192895562495725,27.66737404766756,9.346035286973285
+0.15189383237894763,0.30119200504941274,30.92548692793698,10.429113557842532
+0.1493896872256712,0.3020106084226828,27.244612736455554,9.177666015264949
+0.15036568554485277,0.3006719966701882,36.73988935552735,12.302849181812002
+0.15050728093898388,0.2994238110413449,27.82675162060344,9.187549196960479
+0.1499824925468035,0.3104885096845966,29.408171042714557,10.834360112828678
+0.14927979151865797,0.2963020864286519,29.33177505167398,9.308447373692195
+0.14949314255982643,0.2992559712577732,33.515172505333155,10.956492945956864
+0.15223538030184647,0.30371694105146685,34.38740887209568,12.04509030468316
+0.1513333785359546,0.29673535517331967,33.63053320690034,10.901160508591673
+0.1486884767803919,0.29960827874237556,35.66544646652888,11.653871377930248
+0.15022785417528656,0.29892598811010074,34.255202806799495,11.155145100083288
+0.1500446847038556,0.2947741300092464,30.883318926874477,9.693701333386489
+0.149530729694222,0.29793313186228654,26.34257337687657,8.56280273496689
+0.14785240398769836,0.3038824613025239,34.384275000045875,11.638938769404774
+0.14978234736190676,0.30247484130040897,32.49578111835835,10.998645782608914
+0.15081562716849634,0.29502756823272464,37.39273141591937,11.807808752137325
+0.1516947658363905,0.30214832436982675,32.48047556943996,11.055921988750107
+0.15128828263897434,0.2979108800648392,28.943963217364768,9.480860622511818
+0.15068116283040608,0.29975875562671955,27.34583784453978,9.075480460016735
+0.1495663750815079,0.2954199845583222,26.52315469716406,8.362502810976341
+0.153404983193812,0.3005152233901543,28.312684516574297,9.61342418466401
+0.15197700649943188,0.2991297553322459,32.30142569149332,10.71322644139777
+0.14915503460944793,0.2906435524385892,28.217206656216238,8.435126234651827
+0.14992032971143876,0.3073871144233205,25.838767024280966,9.182180630220786
+0.1538480867673471,0.3010074574157471,29.633520381070642,10.222685034618264
+0.15088176598636063,0.2916312967389822,25.446640477176196,7.790483619271734
+0.14993612643293172,0.2945369963866243,31.322249860359193,9.825497546378267
+0.15064391203039237,0.30539121155865867,27.972462898445155,9.903605107768124
+0.15136632172546702,0.30629825593407006,33.205609563444206,11.787452889288033
+0.15002053542401364,0.3098112267373979,33.94061708235345,12.389304462581826
+0.1501655527227246,0.309075792573876,28.20474154794161,10.204701229195155
+0.14966392433192938,0.3033427640110384,28.37661073485141,9.732244863392218
+0.14895087593485662,0.3029541125038597,25.708971329380212,8.715270367914593
+0.14874171289070937,0.30384815081731836,27.403406001063047,9.395321061579356
+0.1498689145466191,0.30151414645490554,33.204065929342306,11.091474911329973
+0.1511065664332087,0.3054692362131533,34.88252203197452,12.206359291083874
+0.14876906418405475,0.29695451593481553,29.522162582340016,9.364710359504773
+0.14988303524504276,0.30688639886867203,29.42119617813994,10.40581014806049
+0.1480558555254069,0.30247020489426407,32.477701714570614,10.798638566645648
+0.15021712656855019,0.29881511348141326,30.641069040579335,10.009811818444462
+0.1482840007392455,0.3046378237755229,28.496742184427145,9.755129123427965
+0.15232874591163678,0.29680254757082936,39.16262584770895,12.753504758885263
+0.14949931774512287,0.3041063151441979,27.05540339215973,9.293668741165693
+0.1505928479246886,0.2964959715990655,28.223548558035123,9.02754806727615
+0.15012427175262796,0.3010637927773365,27.220561179809124,9.094992859787487
+0.14801980301660816,0.3036543801001375,31.34849857487015,10.629067506812659
+0.1500867385067023,0.30634465152224427,23.51097156734263,8.290304883724216
+0.14877077745974351,0.3015486014242194,30.90770151335038,10.291509070092474
+0.15024106836095674,0.29596599786352074,33.61079380343045,10.681497984693236
+0.1489978193892505,0.3014684736226687,31.58319671240412,10.563937986715448
+0.14926634027697147,0.3015404725512661,31.484248598815753,10.557864061225922
+0.1491314705637946,0.3069001461105756,26.807949439174564,9.431211274268472
+0.1520519079767036,0.30258511857102466,28.57537466305894,9.83818394033662
+0.15007774098039034,0.29643262551590216,30.899661724287945,9.87659072027582
+0.15068963222309179,0.29919820648602014,27.239551741754372,8.992518582194263
+0.15051526087122283,0.30287684769117834,32.626001750187605,11.17536875883694
+0.1494887500861804,0.298894867175155,27.586617439801273,8.985403322166203
+0.1503604979685574,0.30747438885938255,37.92815139196196,13.452723763873648
+0.14853069376702444,0.305234906947794,28.5007342542425,9.818475212315807
+0.15133925171115922,0.29795144165275245,34.9696604115056,11.427903172401512
+0.1512476979870864,0.3019411896931407,32.369960748916185,11.030947701774968
+0.1515489465579641,0.30263343046831487,31.43855479165138,10.911714911031918
+0.15160879200171345,0.29802657744652544,23.88976491776734,7.848603688134473
+0.149064300181178,0.3029967164715359,29.72992939615525,10.060173788200132
+0.14965437424001926,0.31225350973842314,25.051638508321034,9.297753868406645
+0.1514650269457611,0.2968004738364224,30.502684118498053,9.88155165779316
+0.14876051230969034,0.3004418943053964,27.693585003297645,9.125791293416185
+0.1484086853098675,0.30727801960447515,29.599580050110685,10.440832193932605
+0.15033697768411095,0.30628613330376037,27.52341505419809,9.737181128446311
+0.14919815372860634,0.30082176769673474,33.09660787485743,10.971005632337823
+0.14959564600833866,0.29916945393343425,34.84748979206722,11.429990101950287
+0.14718780610125706,0.299746528495256,31.503390935029834,10.21067366823202
+0.1498602266062501,0.30366289062787777,28.208889038388122,9.682978747576996
+0.1510453374964302,0.29910330631973603,32.03089859340307,10.557506445205682
+0.14900887560237508,0.29680965930551667,36.457299493717784,11.619969420759853
+0.15039549818449718,0.2994452707681189,28.287579715121574,9.335720051423205
+0.14939070683862868,0.2886794580577476,33.22018309609472,9.766110255396727
+0.148745055432814,0.29476802012579584,31.11828480696371,9.738225304456279
+0.1496362985449041,0.297811595134583,32.606545583712006,10.512848919471093
+0.14874344070048112,0.2921575314186452,36.02116458874868,10.863341878743029
+0.14958800944836867,0.2999392233979651,31.750309703064552,10.508558858775233
+0.15010271603800662,0.3045069303719998,34.89886877563877,12.09929985480022
+0.15020652805386578,0.2935117521867393,31.57812545069551,9.78426577606543
+0.14920701740869194,0.3001947499199989,29.678186056046982,9.800266460890446
+0.14899500681853833,0.2941874702544053,30.813099330757144,9.6032661765239
+0.15178785364962707,0.29247576997089647,30.51755213502337,9.477760519482972
+0.15304507858941244,0.2966447293812387,28.708114319920096,9.368012020511118
+0.14946869732953577,0.3071440256512768,28.11179637204363,9.949527533422806
+0.1530573452385186,0.30180656296999936,28.91485367004659,9.998635210408647
+0.1480007668899303,0.30186207882588795,24.757988252563564,8.276430018547003
+0.14946782803360084,0.2900758996746606,28.501833153308965,8.51406386951207
+0.14934116320600377,0.3045398715336866,31.59290918469803,10.930060035663235
+0.1499416032166091,0.2986041561880714,28.275555738606226,9.261641945464493
+0.15092343377430512,0.29742545996956865,32.03950272152434,10.419242730653812
+0.15011435224950923,0.297729464370605,24.206251889985758,7.784485957001749
+0.1510189582361033,0.30134913051182177,34.68690784951749,11.684729057230019
+0.15036452875263903,0.30929920914101355,30.730634237710785,11.221971379980342
+0.14671348716270663,0.2889661015626476,33.48283722005661,9.691192978316995
+0.14961660568352309,0.296050785135825,33.074152561554236,10.525844112121085
+0.1507554977678148,0.29992742103317116,25.54387833737656,8.510250852233998
+0.15128676226610152,0.3018045195674189,24.62547278601421,8.399027286145987
+0.15181300527395006,0.2979184440695008,29.662935740240332,9.775382699188885
+0.15119513917883112,0.2993542950592609,22.21256873434029,7.322151521038533
+0.15048454614953574,0.29562220266994793,34.07762493642974,10.857519763126543
+0.14838119669507693,0.3007689462543949,30.222945004218083,9.927756375813932
+0.14975207226870937,0.3026094606167818,26.208738117259756,8.872185977374953
+0.14980298071873221,0.2928263537860688,31.73733771187316,9.796836930870741
+0.14934388404680854,0.3063250921874342,30.288841287547353,10.613296273639772
+0.14976059027164404,0.3031422716446645,31.349065262371838,10.67021978030094
+0.1498408020680534,0.29938262590939285,27.693501980662774,9.101994062971542
+0.15111803648108216,0.30239546012294555,31.963111378008435,10.926273173384027
+0.14826792205709147,0.29570549045065386,31.574053309669193,9.934626331339368
+0.14981537320978033,0.2939572749649994,27.80629596627346,8.640943729490157
+0.1489882112504195,0.29729029691614267,30.116691944523907,9.628761736466783
+0.1500822648362782,0.2975041871410536,25.6710269666928,8.277387193085927
+0.14902162945262012,0.29774104031568455,34.26601713491265,10.991386403253186
+0.1491555766469372,0.30804030666564103,24.54502636768644,8.724187497092355
+0.15124352599211235,0.2991613674665899,30.40932275500175,10.12268590171712
+0.14798054712407785,0.3000148354952253,29.796658153465096,9.717482174257155
+0.15189067191738573,0.3071158127333312,23.101406636568107,8.2476121734044
+0.15007457761277063,0.3031497910318296,31.976451966360592,10.926146372894532
+0.15057017834231676,0.31152396925547704,28.460199226450925,10.640886574589103
+0.1522771346084892,0.2937341692041088,37.34304918444231,11.787290522101543
+0.14966661869806655,0.2958412345828857,30.063880656371857,9.497455277604528
+0.14861441625704627,0.29427590666408693,33.997918533450004,10.546788135325198
+0.1487343280709861,0.3017060403401639,27.148412018563384,9.048234341365424
+0.15098348299066197,0.30788668857656515,31.27945197684635,11.219983159844665
+0.14884479304777434,0.29907538810286705,27.824669078320497,9.083786797540489
+0.15012063325482902,0.2940519375442823,40.307544332204984,12.550150923263567
+0.15016120127610302,0.30485551492262464,34.04475709440887,11.822907898487575
+0.15241561156454103,0.29851553362206984,29.65544387404923,9.818649632343295
+0.14872019875655726,0.3001373881311435,26.70775812539404,8.795795418043781
+0.15080751353239563,0.3018408190451544,31.248543171355955,10.594128404991215
+0.15053090276943745,0.2973438798313409,34.85215403382923,11.232099118267381
+0.15099519532945224,0.3019916426618645,25.544022330622436,8.654280482632828
+0.15028120443040704,0.2964859666951222,27.057394018131877,8.622360099926349
+0.14915747375071,0.3005050680682623,30.35122825547351,10.061680601319015
+0.14877204033028296,0.302220433380282,27.420400355962098,9.212411840896046
+0.15125736642174265,0.30494762703113415,30.490686066132223,10.595563761749547
+0.14779924267005687,0.29529259089737864,27.687571639439938,8.609169339070927
+0.1499047754788092,0.2988239139274257,28.21315986844262,9.24990874476866
+0.1507002517005334,0.2954894725319827,27.078293163019588,8.65474727577832
+0.15035010113194794,0.3006207407169748,31.725648601472805,10.668851834764412
+0.15210012943902212,0.30513578301430266,22.414443652835157,7.905746571014915
+0.15006272035414744,0.30026826591762,32.57035201011891,10.769869474907654
+0.15041136876320343,0.30864212509992994,37.34079542493906,13.538068585495218
+0.14891732063086624,0.30704187573636904,34.20339318192538,12.062451326402229
+0.15111217168437657,0.2993555076833791,29.457546528185986,9.821653735808562
+0.14917712053834456,0.30038848720815337,25.93335017691198,8.56332638090726
+0.1519067084382722,0.3002300567356726,37.879395995683794,12.749477546207281
+0.14991865193986956,0.29759815855392724,32.04001327414488,10.306694295047105
+0.14930927885154074,0.293815522367974,35.33715845537655,10.971039696202741
+0.15181732211865637,0.3083551922732411,31.163211865239596,11.384245340728938
+0.15106522092731342,0.3033723746923159,29.981836299054144,10.382599743915275
+0.14905748447314163,0.30608950112816885,31.39794477527777,10.91489306651549
+0.15054844712532803,0.305463122112815,24.592175109918685,8.675892956928802
+0.15145316666266082,0.29946493814942404,27.283163094262555,9.07810812874611
+0.15116523474612856,0.300186610675573,33.362499449421364,11.177987781886637
+0.15014961909292454,0.2987830643019073,29.088164396446643,9.51967825978883
+0.14932682799309635,0.2985993780906179,30.589803283378075,9.96360303287355
+0.14852161179841675,0.3011011855220957,34.17713495644102,11.321126112070724
+0.15030319553731605,0.30187309700110304,25.69774310443523,8.693373906623659
+0.1488139570568861,0.3049209403992994,32.16769920134675,11.12080943485244
+0.14968163375635532,0.2995028699525601,28.951090875858345,9.533006700412372
+0.15148903319553794,0.2978283506038287,35.317495232372536,11.548913267808015
+0.14952445572832593,0.29543915530033765,29.372789464059636,9.222772248084631
+0.15173723335907577,0.30463868041947784,30.668067903425513,10.82127275943284
+0.14901534408032557,0.2982539028110938,28.52014536603087,9.193357643249687
+0.14934273246529872,0.29782943175822,32.46199888695863,10.445512314468221
+0.14826889688375675,0.29862210307294773,33.4147063173458,10.779068980989635
+0.1496143672327263,0.29423556424387903,25.447224040321657,7.893732604936797
+0.14913730896802493,0.30290985526267095,21.561731606026772,7.359102655064715
+0.15224699088217344,0.3060106786744574,28.876127385822628,10.357077816738874
+0.1493391670192003,0.29446357326361217,22.496972665757877,7.0119100705839355
+0.1506718108031533,0.29901133649391853,25.37104500644519,8.383767996304819
+0.14934194154934383,0.29789396058464024,30.57898148770403,9.849258252801745
+0.1494174425084412,0.29822077232257127,27.69708221741343,8.965681141777214
+0.15093135042266742,0.3035134095605013,24.449887000227463,8.431536657354064
+0.14964430847329654,0.3015546040920544,20.72212018377121,6.978487633759805
+0.14872643532651258,0.30053621656949303,34.45644867243379,11.432834464697807
+0.150123054463629,0.30519471981423374,30.84635117215684,10.769084721575103
+0.14919200289735668,0.29983949883065997,30.897753634012368,10.192561651850477
+0.1495162100841066,0.2961158372832322,28.467440884960737,9.050137006275445
+0.15078473020398495,0.2990270188857155,37.91378398897915,12.529395238569068
+0.14969058172767438,0.308008496751349,29.30860619379051,10.479201117055737
+0.1510504859294013,0.2984806751033729,29.3546867228218,9.640972871650584
+0.15153967472433752,0.2984665595130986,24.35546897620516,7.976415961785806
+0.1497479209101268,0.2992339095114881,36.31438862346043,11.890170797630965
+0.1491550025093411,0.29874944528384734,28.98366387427587,9.437334775330685
+0.14937846502552232,0.29303768919036993,30.834425333541148,9.426162570071122
+0.1499411772569658,0.30174826685135164,28.052118734501285,9.451001782195622
+0.14913885249490463,0.29267557265693445,35.29226962828841,10.720818264289933
+0.15206863236952384,0.2943459802650546,27.346282470696906,8.655096792824835
+0.14741902827912312,0.29466001096771066,27.252111333103972,8.430739015143114
+0.15062899511190472,0.3059288616103764,37.57116039034379,13.245955305137027
+0.14965071326135765,0.2958868066823978,40.740150610546564,12.914951637617886
+0.14878459712332862,0.2985736878467162,35.51078564383348,11.511270604378174
+0.14882212577625686,0.2984291628646143,32.073483325258806,10.305828728383872
+0.1502318848565183,0.2974292659438344,29.650317628151097,9.597903672856555
+0.14986867492965752,0.30135721882409255,26.582726667838383,8.910962172831352
+0.1491184456465211,0.2977737383469291,29.65025856307935,9.518980844607546
+0.1491680241277339,0.304134180238478,26.851651292513374,9.252248304156252
+0.1526142775522997,0.29818513346284836,30.308407683078457,10.026969845626711
+0.15059088867869366,0.29819217053634134,30.630290355358714,9.9794575644142
+0.15009187620219455,0.3008266229099315,30.4040240532869,10.18170319900686
+0.14935386202143278,0.307054697551981,31.751073388988626,11.20852657629564
+0.1514100197594207,0.304683573207516,35.80845144910144,12.567714463158097
+0.14792157102981773,0.29932326547740074,30.050731501029667,9.740789651873008
+0.14891498502411013,0.30337695011451493,35.48956479727424,12.063245659457644
+0.14953512067721256,0.2987205511252022,31.9799021300304,10.410718809710039
+0.15026732637128806,0.3024764519098979,20.02631857077032,6.797353958567772
+0.14948461911518465,0.3023996433128415,30.42976475416596,10.273605365122691
+0.14943160746722328,0.3024572955973802,28.33359613500148,9.632119282797328
+0.14846812089397998,0.29724758337215185,18.239624704413714,5.827787194746103
+0.15033033271472904,0.2917858511918958,28.099272690302982,8.607096992066781
+0.1485933156025488,0.3022578992282033,26.976147859636832,9.05863765717649
+0.1508963978324125,0.30159972845868205,29.067314494349894,9.853371604547197
+0.14902978936605013,0.3027927143470135,31.61811090252395,10.678425824240387
+0.15061374871072847,0.3060400195364271,30.10342581618345,10.633131710057091
+0.15168041856401326,0.3061970422030104,32.10759927220783,11.457897918920988
+0.1495398017624066,0.30725530944279966,34.06986848973423,12.039571358100124
+0.14944862272628653,0.2956877155847981,28.091980366671436,8.867766856657994
+0.15140503109450387,0.2986243008203451,32.94402825156279,10.872903661466523
+0.14910983325724517,0.29473158536277266,30.6132270130783,9.522054047375676
+0.15037861529507426,0.29881760697218346,23.378469585620216,7.693075736528165
+0.15055730754782531,0.3042420886748917,29.357877683535204,10.181571399849737
+0.1510837562296279,0.298489560346636,31.355134877912594,10.283737971914226
+0.1489896218530212,0.30262237707933665,23.97414770016584,8.117670478941406
+0.1498910881898534,0.3044507915902215,29.926712123749343,10.372938640964005
+0.1512493516153254,0.2979938173342998,35.24637438512325,11.556546704821441
+0.14929214659486115,0.29937239018888406,37.20692476580979,12.162148166705705
+0.14949771906518347,0.3055240602760612,29.280459015672626,10.209407420367528
+0.14770507450592274,0.29566272755314443,30.089720704363607,9.446256325236508
+0.1484629395829242,0.2937218437660126,26.030297062810067,8.042927966050712
+0.1499321795067112,0.30825102034506013,30.144815010237142,10.79751735508709
+0.14870552122501857,0.301193121801619,26.781605833201326,8.898743078468081
+0.14995894393256742,0.3006943619948541,29.09227584256573,9.689425174433975
+0.1499825205899331,0.3111641199060322,32.42375804921548,11.959910064016746
+0.15280073763367996,0.2918516728755794,33.292340440537615,10.363926505181457
+0.14846324772003752,0.3000832288898834,29.721405083090747,9.790143221951945
+0.15219466500952536,0.298215694556894,27.580702979511823,9.118715274192626
+0.1495760856861593,0.29844028610242396,34.33763617593761,11.217122882805375
+0.15077491601056386,0.2980002928006384,30.31006048596984,9.848811451199015
+0.15024930113536691,0.30659212456914403,24.473943273487233,8.612155169590151
+0.15091111452622977,0.29856326137619554,30.575979103093083,10.006834549549453
+0.14949413367772957,0.3037564049190828,31.055608707327167,10.679861131081061
+0.14961243357695084,0.29699156984127745,29.259473117195245,9.406889564784223
+0.14956123785977174,0.2990791260322669,29.953812657377032,9.809920006537999
+0.14984588805523216,0.2959574540621208,30.330033123128562,9.616295051859154
+0.14996460917313495,0.3037619039747305,25.87190815111976,8.887914909907565
+0.1480257226408688,0.29385236444999624,24.00491625871529,7.415584558314747
+0.14900984546133592,0.29800626550157033,35.69235646754341,11.521813088324128
+0.1494021709385801,0.3023794252143484,30.42660570646331,10.274389403325698
+0.15060645497097538,0.301877040623659,29.824376968668904,10.153621324925327
+0.1500333845176352,0.3021376433141179,32.25554093796441,10.938356263939855
+0.15167483488864333,0.2925411138020343,32.17187165264918,9.996099838332814
+0.1505035609895622,0.2986022095508008,21.401029673867733,6.998351391913655
+0.1504630614711269,0.3009463757737091,29.257174788807294,9.740726188762508
+0.1508469667290671,0.2986421453982684,26.00328767243224,8.534305013218301
+0.15050580807899866,0.29848158760409776,26.2332959744437,8.599843394054588
+0.14819342984621311,0.2959305276821364,31.372916161864048,9.897302049634238
+0.14923711764130698,0.29710309339786817,33.56729558896696,10.76325692915899
+0.1508952694753759,0.29712352356594807,35.055410206468096,11.328192535465035
+0.151522160751871,0.30334513951335157,25.141754541624874,8.696047862727795
+0.14925329228104184,0.2961764024729039,35.715031791752466,11.35200407045951
+0.14973974418744754,0.298978595700762,28.043057005833383,9.139958254405876
+0.15023758211142899,0.3022507770094781,30.975777031548677,10.496513410291604
+0.14880739425700093,0.30502143697116757,27.6534174759722,9.513739440459156
+0.15112056388830875,0.3036886941997729,33.85986311104277,11.763074187258438
+0.15095956839461552,0.28889461662062166,21.88276594484709,6.483880193817931
+0.1491411861949391,0.30179026653359614,28.858060377684417,9.667857777598877
+0.14894232459511672,0.2970496864357128,28.947319559444473,9.25484681608827
+0.15007139455496743,0.2965730288945393,30.569270166147284,9.806350879228807
+0.14863071320713872,0.30332823336037995,34.39406575198916,11.723983358112505
+0.15136454603303562,0.3001751794679093,29.29771986241849,9.774527864482451
+0.15063310632553145,0.29133171003791986,32.30145991918147,9.876231515337192
+0.15011578767695663,0.3035215597482106,34.29635454950055,11.706214023226632
+0.14902585656006004,0.30727658485627457,29.884417114082254,10.58010315277547
+0.1511807797862923,0.30221150457180285,30.578604042619222,10.507037268538841
+0.15103309222731956,0.29742666060974593,25.780143457298323,8.317782512238757
+0.1487766502627119,0.2974799815709442,31.68383776557351,10.139737290818656
+0.15020146113030744,0.2975177317045459,30.14319274708062,9.75511898560725
+0.152317168972062,0.2926761640111467,36.56952219702545,11.46868343395447
+0.15053964222814784,0.29411314626134966,30.606088336027955,9.564511965510913
+0.148657087766761,0.2953316094116469,23.427092556508025,7.325509934784851
+0.15147658134832234,0.3068649635521136,31.809090876376626,11.360821824150685
+0.14912085623290092,0.2987958193875473,26.981602799647035,8.760638358877987
+0.1501541028443787,0.30275459731998444,23.642033314238596,8.065961928589967
+0.14959500185109015,0.2955250428501214,29.180394836448098,9.205813058897137
+0.14706547668521716,0.3000506205074221,28.081517221189266,9.07193571899043
+0.1508736824734018,0.295908273214061,29.77115332366316,9.52108115479004
+0.1504328905640732,0.29593712526660354,29.521182732288754,9.39356213537008
+0.14889539951215452,0.3011636321707227,27.677772344076658,9.181755128766273
+0.14941291996802777,0.2969178488774501,27.573572563488018,8.78258749128284
+0.15091003632256547,0.29425518539651413,28.879406355779295,9.145857017026126
+0.15093014660374854,0.29436256542809197,36.59760388764741,11.508237335362212
+0.15314235412938362,0.3025767233615449,30.763775481842938,10.639112802096825
+0.1491860566358692,0.3014357579409271,31.85368511969487,10.627168772567037
+0.1479654673843062,0.3032025069485427,23.838078261946126,8.037821980226834
+0.15013646231780012,0.30627808176638033,28.94712852981048,10.271280946263486
+0.15057275733173497,0.2994687477111681,30.725182171807766,10.18749396083978
+0.1486631600440337,0.2990068915734763,33.912813237301705,11.05059292346624
+0.14831358041657317,0.29959784640181936,33.878947032437935,11.059998283026594
+0.14959711565627537,0.29166189984092095,34.92904124863464,10.658420025752694
+0.1504850305374941,0.3008023096533805,30.91907585083221,10.39955661726275
+0.15071673126441568,0.29969573484042045,38.48745411640155,12.823262320225282
+0.1490817370964279,0.3005769226406982,32.546549512462796,10.741141059481908
+0.15069765785810676,0.2962327925809819,29.622421026046688,9.537547945886256
+0.14940853170996088,0.3037750260222448,20.19769880029473,6.907064932654375
+0.1500889423589155,0.3040224035042571,27.111136145436575,9.353013453253306
+0.14985153750717023,0.29358988385770146,34.75857625868212,10.812163817031175
+0.15008319695786607,0.3048731311403147,29.16658887817879,10.08673917843446
+0.1473448269199635,0.2974835746764654,32.15790461243691,10.18023406788845
+0.15024995757551493,0.29465180530783974,35.13635609269776,11.020823513617792
+0.1514009158094101,0.31201066714675757,29.181765185523577,10.981333795770183
+0.15017511879388318,0.3088041533053905,33.28177073163513,12.023419738642426
+0.1506245980777018,0.30229730706826186,31.63300376582034,10.74856519577247
+0.15054588656794113,0.29958432268703267,33.46144915011455,11.061581833270576
+0.1494253575703012,0.29772286701727885,27.378969809749464,8.78585423749199
+0.1488826986037764,0.2951293045090014,31.460052188678024,9.8435007205761
+0.14832753433515963,0.29776911176525855,32.30373151561594,10.362796339271949
+0.15244139655013833,0.29101153767070737,31.705575337664804,9.749157121433942
+0.15113871611006288,0.3082620345483787,24.98903162659579,9.035058408148565
+0.14912871208304712,0.30338038861064126,20.673369466080196,7.0327655600006675
+0.15087605845629665,0.29528222667164605,25.712482831149664,8.169583444536414
+0.15079648579812518,0.2930724256876402,27.708584278050722,8.641395921689426
+0.1496842365272227,0.30031561163310366,29.80179945743069,9.885905400332975
+0.15012704237797095,0.29546164446314843,30.435123429679255,9.675608860448063
+0.1510471063891252,0.2977451824681645,34.07302272607536,11.044179985502755
+0.15042802422379306,0.29895953805998265,23.636043992404847,7.784709115758189
+0.14957730261412397,0.29921405271643947,36.20652593590794,11.900878961846212
+0.14958827594953497,0.29706355864168743,29.25448534609478,9.378265331268556
+0.15101170997086635,0.2954596939890875,32.908254887106615,10.512042294174059
+0.15004250919707388,0.2976803069341217,32.05099894376916,10.376912532811142
+0.14943332680260898,0.30445324948208435,30.889270733194333,10.682079329109298
+0.15011083666320588,0.30367878013126787,27.95835232728612,9.586266955600143
+0.15055857587259602,0.3037181268166476,35.829868260686105,12.389115077395378
+0.15002500348034503,0.2994472135167083,33.421807212453096,11.032914216680252
+0.151172183605408,0.29590377959527125,30.497127325020635,9.76814854112289
+0.14980215496747631,0.30394557981993836,32.37559356615698,11.158970656905538
+0.14938680091411766,0.3040392188557711,29.20489579870351,9.992998723509032
+0.15144908122872064,0.3004888416488506,30.173632072819874,10.172499584769295
+0.15015522013623153,0.2992264484814328,31.826596316776577,10.436126293638983
+0.1487235724979198,0.30594527866482285,30.901846846146338,10.766635971485945
+0.15114150267704476,0.2951937898172113,34.23035736931596,10.9062916771717
+0.15263008505194842,0.29879298483757144,27.49577246839852,9.182744212439308
+0.14956070555998957,0.2999028577469079,27.816587337166602,9.195553385147829
+0.14628987801419369,0.3008235800083747,25.760663681403585,8.440275159970756
+0.15131629576342273,0.3043090330461232,26.749649317237225,9.341605228160908
+0.15055694943616213,0.2993897808226218,28.059973432311708,9.231172254406035
+0.15030134331258493,0.29523974356408683,27.72863610132116,8.807791273520943
+0.1506482480350617,0.29745414956130284,32.4346750832933,10.573867924516044
+0.15015996592716005,0.30482774357149217,26.13844936707493,9.065677143856897
+0.15040790795574058,0.30235731385047004,30.786762424786104,10.44977551741484
+0.15018221526750766,0.2981139215649245,33.239790761861244,10.814262122132225
+0.15084612908226816,0.2957314662753635,41.18691454207346,13.19610062411596
+0.1508618433434742,0.29414888924432814,28.11608010492822,8.802138422941963
+0.1501638866594775,0.300956801882725,37.14699436076744,12.534696548081417
+0.15199659310103322,0.30214792532120055,27.457894785971572,9.430136104022711
+0.1489126868335239,0.3082248649666756,30.769056618968435,10.958500121854772
+0.14931884975740572,0.29829181594638016,31.635118977869656,10.265020575848503
+0.15061053250801895,0.30284575228017746,25.55624561666887,8.787108028269742
+0.15065574351334124,0.29132464170810674,24.637644450834582,7.539816644230832
+0.1521226488656385,0.2909646066180605,27.909269033376283,8.606127479874944
+0.15124498148719523,0.30038695249616404,35.13783090830752,11.735238059783017
+0.15057546667566343,0.3007133745793283,35.91930998412292,11.998821977580768
+0.1483483478332004,0.29812827315188495,27.09329317981287,8.76047841696497
+0.15080683139852316,0.3046533076584855,33.0546139097074,11.450228411959804
+0.14980104156385424,0.30428481109386835,28.2506036735804,9.731414844627569
+0.14989746328919257,0.2913562061620193,29.47370780996163,8.939785339540418
+0.14970939665498822,0.2970251233707702,34.41395623221377,11.101697136997947
+0.15076883127244167,0.2951979963362588,29.386287256492455,9.289375416166767
+0.14853842728837263,0.29947966249568336,30.45116052671035,9.903815695044626
+0.15057972337474673,0.2985250795860804,30.34771774602401,9.953481023588102
+0.15032038443840787,0.3066071266342161,32.36922741576723,11.370664028063732
+0.15180633579267314,0.2967117981028808,32.54220873329364,10.52069433660834
+0.15168470117675253,0.29524836742563065,24.9596907643182,8.023620699830184
+0.14939997679593267,0.3052174163621483,29.688804830706548,10.384364221528307
+0.14916467040675715,0.3007245281133914,29.47800866583047,9.739895008910658
+0.150566044336451,0.3026503772101429,29.37235646138533,10.022059446577844
+0.14980009582685144,0.3022529903969485,33.57016150213883,11.417437254249764
+0.14992039301308016,0.3050828090644713,28.468975414279384,9.86226938654436
+0.1476527317941712,0.30062561910482544,23.765492918450065,7.826075144728294
+0.14941857058131866,0.2977262266462387,30.238810484398766,9.726015111403239
+0.14855683389992813,0.29873507632913965,25.84039648437522,8.344340028976996
+0.14810264386090102,0.3042927299912458,30.2199464535226,10.358834271377336
+0.1511094939380544,0.3007998087013436,29.931399252602592,10.03701639131078
+0.14722525574169346,0.30367005258464774,30.860086907563538,10.413280479121998
+0.14955314209641557,0.29764310479379447,35.553772921988724,11.426727815972447
+0.15176751571932093,0.29929660610998754,28.9840118709319,9.676856194272592
+0.15087155552818132,0.29265134410996285,32.45800271439821,10.026473318465804
+0.1510855894482687,0.30293760312065166,20.901500511140448,7.169998420390856
+0.15005196298765647,0.290476789204969,35.9302329380256,10.801627495973657
+0.14870390374457443,0.2978288937717562,31.8684962591826,10.179359155734396
+0.14966252541239375,0.30302896233042365,29.15384327224427,9.876596288486652
+0.1472035620393613,0.29899824785596213,29.841621629273455,9.584896427595018
+0.14996599717516457,0.30311274881141964,26.980930763608367,9.180509095132143
+0.14957184558310052,0.30415697181340573,25.190650455187598,8.662578101237925
+0.15003665683749276,0.3029787159884705,29.685526312221597,10.148576379261256
+0.14976739759364474,0.3033526282613485,25.516565266335064,8.708699345824051
+0.14794725347352286,0.30032360304196953,28.986409570754283,9.551024511387988
+0.1499666602165532,0.3018195418980935,28.036874087064156,9.405690861402993
+0.1474775787305305,0.29672115583084,27.658479121619706,8.682374836645792
+0.14993737997204828,0.3039694056182393,37.13499755626592,12.828156849036896
+0.15109509444741573,0.3001093079148672,35.23163457331781,11.718012484841388
+0.14854756181138218,0.2969396111160809,25.091954319497205,7.99315413224884
+0.1500305599206379,0.30239451343982476,22.818754849077756,7.746134062288748
+0.14950385712362932,0.2963036307395636,26.128493994085,8.28044971173436
+0.14994341822860704,0.3045222682041515,31.944484830609962,11.089443155602213
+0.14846089652132405,0.30605454060258036,32.03756911486029,11.163707870354832
+0.15013582762606253,0.2979242693917266,32.6443773967764,10.557717486643783
+0.150073640426966,0.30045786602202773,30.08824633270982,10.014064099056451
+0.14924265913784782,0.30122265743213067,33.1833480245727,11.077366576478926
+0.15306071327887236,0.30137582316823136,26.53096916375681,9.12123078597179
+0.1502635258312966,0.2994928676272812,28.474058984861305,9.414666022234911
+0.15042865352859366,0.2980716876143727,25.060268722712173,8.13978952610261
+0.1496763557885887,0.29262643048568276,28.801651063351926,8.810061554268703
+0.14913100945226004,0.297286549384086,32.50185103304084,10.373430415689647
+0.14912467149398978,0.303293717596043,32.748982877309295,11.132291493363024
+0.15057184966083811,0.30098882026312995,21.267482900950327,7.1376220297120705
+0.15013968399150748,0.3061523075386729,27.99139872398668,9.859997568401987
+0.1509283303366912,0.2913948417195026,34.51116356802715,10.570560507046144
+0.14946427579851523,0.30227731823298837,26.465356796198755,8.90259797513959
+0.15000890839687844,0.3015260387834789,28.01769285295905,9.412289673692824
+0.1484751773742092,0.2965327007853438,32.58903987299041,10.305487811523875
+0.15069022419785016,0.3060168574399029,30.571684465460493,10.86635766505315
+0.14863070209114726,0.29796176325082624,29.614474143318354,9.51939709476121
+0.15134573068152657,0.30296748922748945,25.716564524016828,8.88041763763647
+0.15081879854970412,0.2980248027004772,21.45897078512217,7.008624273145392
+0.14745810274036042,0.30565473039503105,29.270526769420933,10.107834652199767
+0.1492534601774889,0.300340726535067,34.75757302907004,11.520208070806323
+0.15038512347484084,0.3071842592054775,34.78384004643853,12.418125751327405
+0.15009517618229423,0.30722125221172786,30.01603945854036,10.737540515611103
+0.1491584818993425,0.30259805875650236,25.46298862027588,8.626127273931255
+0.1501647686491723,0.2997257327982886,32.29144891703004,10.611319302503315
+0.1489336323780241,0.3155795829477371,34.66961660590635,13.236959074190834
+0.14996350967311728,0.3027033555027251,33.81836684474702,11.554677502353607
+0.15112955891742694,0.30309442726779917,34.01332968362189,11.714805275988551
+0.15219118695246783,0.3020163159513072,33.75205334989588,11.601421771496407
+0.1485457625904523,0.3031700017658926,31.78596923317772,10.734410405076558
+0.14897020617834567,0.29973533719833795,30.042880751329278,9.863484992982864
+0.14977308097777525,0.3019816948884039,32.2139907335767,10.807347469480353
+0.15045636885364788,0.2995860174721442,37.60566898747301,12.464992413490094
+0.150746055398752,0.30380127091404485,34.33567829258946,11.873973421370222
+0.15022077136517206,0.30031611946971976,30.991533498776487,10.334896662161105
+0.15077153213875627,0.2976190971054179,29.0122894122261,9.466032978370418
+0.15105249361168355,0.29808747598513285,34.2425267091802,11.197425555735082
+0.15161145439299778,0.3006577605054715,32.68765919586306,11.01197550196764
+0.15188246937005692,0.2935780471978487,30.524231681372164,9.621491408921452
+0.1496177063128402,0.3113549986867437,34.55945620840114,12.716709065290036
+0.15203825954803898,0.2990851367011101,28.689016072634466,9.589192928063232
+0.1501132920554986,0.29827261634767427,27.11624105022958,8.793264760150128
+0.15107333512271764,0.2999440188287876,30.43366465845303,10.135254733212292
+0.14883239381575752,0.29910592076133674,33.17814200449787,10.832138075818952
+0.15082079014483563,0.3025748579319745,32.04393329942213,10.926989694088672
+0.15158905459358193,0.30372207881662044,28.445977778595086,9.94356723101183
+0.14854983351440168,0.2943482485577552,39.38210694863326,12.232911113266107
+0.14959287090778747,0.29622455699568023,27.891238901710906,8.867273668436425
+0.15201855218065352,0.2965889175489323,28.133932991927345,9.089261874341682
+0.15118004268405702,0.2993794819326196,32.5428106843994,10.755657105615102
+0.14778426753028703,0.2951734136975467,25.139465738920386,7.818542503756957
+0.14913526925205906,0.30377772734870706,28.083810151578398,9.584111353408977
+0.15191090497118898,0.3056415303811612,28.230921483641982,10.000511803908706
+0.1484882381934001,0.29834349810727484,34.08079886068081,10.98020721217452
+0.15144392003909588,0.2958014986386183,34.801756157506695,11.183311899284156
+0.15179417815286658,0.3029046075723229,26.580097149946457,9.16004191931725
+0.1490163691509792,0.2942320733756115,32.927358053237946,10.184598869083835
+0.1504005356697204,0.3062613537677499,32.34103392753811,11.463703678336824
+0.1499454383361951,0.2967875959928261,29.884751441340264,9.547117387896137
+0.15008284321975793,0.2949731203385351,29.18292820426911,9.202326694424457
+0.14998152285076788,0.3021350981194945,26.812082213265782,9.068899784557134
+0.1514147962140816,0.3035962804042345,32.669549267810936,11.306267716770495
+0.14955044799956427,0.29967360184776265,36.25293251815223,11.857131258695443
+0.14904952153265036,0.29712006169290817,33.48440250184578,10.724476342124195
+0.14927468504520522,0.29891405095118756,29.953655661651503,9.78871451920998
+0.14970372939823806,0.299951622211213,31.544194862184526,10.416317092554406
+0.15003837275228746,0.3009753448903261,29.66932372261937,9.900288724121902
+0.15117930885910108,0.30253476139717533,27.198360489589458,9.306077999402962
+0.14943439884521453,0.3063443981116435,32.371644067217886,11.354976014563086
+0.15096206837455728,0.29694287002711467,30.911510598638195,9.987266038670288
+0.15057071096251276,0.2998736596096519,30.138501639638044,9.984851313745082
+0.1521511652746639,0.3136535350669949,24.473416208619845,9.372502552337172
+0.14918293569206503,0.3002909893396902,24.090056906405607,7.963650060648746
+0.14869176461237843,0.2985078551904009,30.85817181055191,10.017965362410457
+0.15064097768326065,0.2960873180013139,28.024547343869575,8.953083720396604
+0.14903830908548032,0.2922688421920057,33.80623318154196,10.37170590405411
+0.15067996868282763,0.30677890560119964,28.94008397817612,10.343294006273222
+0.1508622625233087,0.2977239714760468,29.60533856460739,9.589497519852197
+0.15054603386921428,0.29953199052155666,30.983311551589942,10.266697097923975
+0.15014118403924334,0.2970138150147447,22.40729883228875,7.252336139878895
+0.1491896187403479,0.30249838164138027,30.58234177404367,10.408895272836867
+0.14867165244158445,0.29747047324023795,27.94895152663642,8.947632861344427
+0.14992040937909334,0.2980122926736729,27.67940096341664,8.94934535229599
+0.1500352403911064,0.2988069520196299,29.615573069329805,9.719548934280118
+0.14943711959818654,0.2976103722904502,28.28099601050286,9.086498956540684
+0.15019435108910922,0.2909989076250412,30.934535532833934,9.321381679692436
+0.1503600421890092,0.3052445147305015,27.895349313964008,9.700407240719326
+0.14986509838638232,0.30558970013441106,24.68925334320747,8.603159069132515
+0.15023401709645937,0.2983807222859906,28.807330025501308,9.39707862273289
+0.14966799215222226,0.3050919291880867,30.6631701647629,10.682235645882818
+0.14916729070947932,0.30059023033293086,32.532988994480895,10.805782554929683
+0.1503419277358287,0.30361188752647805,30.882569568967984,10.631038380173122
+0.15000742068592474,0.30031159974690363,31.70209460265815,10.547643571755966
+0.14759163497996114,0.30158337157236526,29.053953769255784,9.60530097237676
+0.14943493461042975,0.3083449916056496,34.64658161591563,12.415832015529665
+0.148332035166729,0.31087880950915986,30.004433713542724,10.906900385391978
+0.15018174651514707,0.29918427303062306,29.215654425144557,9.578866820415161
+0.1505515598030791,0.2974783857487953,36.01371334198877,11.647381580787403
+0.1472243151921999,0.30187097186747247,29.877090332460966,9.90953557892298
+0.1509764430142271,0.2978500286507289,33.254593388240245,10.811902487036933
+0.15007104554383793,0.2988103832328719,33.33453682436079,10.92493632256222
+0.15171423933431796,0.28992539661433386,33.55896636733532,10.14617373438563
+0.15002041908932967,0.29438768248416936,35.18438762205645,10.992046353505572
+0.15102371253752425,0.29919103083491455,35.994316192947196,11.907642966938072
+0.150975979761627,0.30155564822659336,25.586057637103053,8.647764351732922
+0.15044713783439256,0.29492824314511434,31.93235560642705,10.115140054891818
+0.14910783115117807,0.30134013876079585,29.826330957698985,9.93928495407546
+0.14916418281448665,0.30661062383191606,32.77420870203761,11.535937359074534
+0.1492361638486164,0.29952901297656764,30.39260472061772,9.985416267853433
+0.14964311425997281,0.2887615572035871,31.557904422456364,9.293398839381808
+0.15080878499498981,0.3007564212367959,29.53404880159411,9.911769263345175
+0.15039532032426242,0.3002519526742686,31.206398982283474,10.44450326435303
+0.14951941156332618,0.3030135557230122,28.95321479383778,9.881260644838484
+0.15093892075135332,0.2949528871014366,30.787956178541613,9.727494528056024
+0.14959203237478452,0.2890559105886098,33.36971667580648,9.8471510372342
+0.1510865295268145,0.30231912122093174,26.181786440441766,8.910579687232959
+0.15042754923519816,0.3066997112838843,31.601079427386342,11.245122204068208
+0.15089986773229647,0.2967813363732004,26.990216111743102,8.675319517589742
+0.14994742251585894,0.2967319705361209,35.61679070607965,11.384987253210745
+0.15007661762487792,0.29810355709728553,36.774733992528915,11.962312104593959
+0.1489555438804885,0.3034596237617873,25.276383082204177,8.689817036477416
+0.15012156279922848,0.30382376737691325,29.251035523229497,10.118787964229277
+0.15020128428018065,0.3075236309433366,27.503831698642973,9.830632375974282
+0.1518968277101748,0.30099570347035004,33.09463123563412,11.255434572772375
+0.1505220179511371,0.30840618181896073,27.926440134872475,10.126554936598634
+0.14917079578803963,0.2976443055445046,36.4768941894277,11.686936068887887
+0.15010183354736495,0.29584527685641443,30.406764058166644,9.65535669266472
+0.15146083102084873,0.2990042547753686,26.507031900679625,8.755355532917452
+0.14844790570911642,0.30168563298975876,28.604238571209667,9.525699548852334
+0.15041959478235617,0.29876199201186104,26.275435229790627,8.654845615331617
+0.15102067722451376,0.29386276078371765,34.859238266791614,10.909591032071848
+0.1508903961321277,0.30592425037814924,31.32658794107276,11.073505400353701
+0.15089621643339085,0.3049656090954614,30.030124468392806,10.514052194537669
+0.1486759585632364,0.3033752797350535,30.23175728656776,10.28012622590159
+0.1512089507081679,0.2997224666186917,32.69447095110937,10.912320059791286
+0.1479012482028148,0.30083731884778026,30.198048605048555,9.932086590228412
+0.15004621669698878,0.29726992927520307,33.90252735538629,10.9432229209386
+0.15125363877539771,0.2991262169696003,33.684105830677304,11.200578680142696
+0.1493133505340897,0.306454890869998,31.94497841434481,11.275377395751395
+0.14959653853332922,0.29635415446660185,27.497138762894977,8.754877296179078
+0.1516761726849361,0.29232536184763913,26.29787266170922,8.145683779245939
+0.1500182161250967,0.3020051817684498,26.647311533739476,9.013308295170773
+0.1515555760263168,0.30115353927703054,24.792947623666453,8.362768030390988
+0.1503585859583759,0.3042008453784902,33.334910084153975,11.514050695322037
+0.15164100202458983,0.29821042838998046,31.541694335424253,10.371304373101331
+0.14961429177170424,0.29512496088587803,33.07581824478645,10.300522494336839
+0.14906569544125917,0.302117304060041,26.80638458041723,9.016949277208552
+0.15136274592076865,0.3103068406487046,33.45337196505887,12.341544368326504
+0.15022148150287437,0.2969756412245621,29.537155909670485,9.51504177296019
+0.15061734068504387,0.29486445324380706,36.33454015938793,11.432107590553436
+0.15209201989229942,0.2950568704582408,30.007091123542278,9.618003762062296
+0.14995391569450298,0.29751240623780995,33.72709163633462,10.868429173316313
+0.15001232846768753,0.3100498631462953,32.76120992816861,11.993922209924849
+0.14956417805435032,0.3082617209326906,24.390216145981533,8.761462569536612
+0.1515512340923047,0.29074130869517856,34.07196729044985,10.37124171841425
+0.14986512582542383,0.2981185557034098,30.503918557880855,9.887966250743041
+0.15031351540815138,0.2990718816375098,30.820754667874645,10.127442855299872
+0.14875686679557423,0.29876326933235875,29.14734723081554,9.47861035895895
+0.15144393522640356,0.30049910927381374,24.220341108407986,8.223661474053092
+0.1517884305917953,0.3029764292453884,29.835269567406794,10.28434564601362
+0.15065828000363055,0.3091059997854844,35.14365303798337,12.843567518912135
+0.15174705020107535,0.2996082725871279,34.90978609568744,11.688791673180365
+0.14752651872607567,0.30404144339678213,35.757803232794,12.086293182024043
+0.1500723962964581,0.30246138487295454,33.70362057925719,11.420213962297472
+0.15151089587674116,0.30391619725626223,31.869005180163583,11.036278589614488
+0.14927048902474813,0.2959658707852493,27.480487601135344,8.718227364847314
+0.14833527660374377,0.2975873287520703,24.98524387373731,7.991621062633815
+0.14786848226719276,0.3080072241923758,24.811535458773157,8.8160567499912
+0.150506646656927,0.29647442348783204,34.61349571149491,11.065289581348381
+0.15090685821297814,0.303860271280687,39.088282406870434,13.574863297628612
+0.1489806346706394,0.2937527850611376,32.72485575533845,10.102024794694211
+0.1492963502074725,0.30225881918690223,29.191203891211742,9.82925207424227
+0.14998752797332093,0.2909312738681106,31.390876833924434,9.472523071756394
+0.14919570697799767,0.30694103684562385,26.44413493935842,9.397383337588453
+0.15019979172213924,0.3064976494948885,32.41986960162854,11.498743462299078
+0.15070191722530388,0.2974119535448898,36.38499488385061,11.73474583611893
+0.1515253233022824,0.3000622615161986,24.45424623152199,8.189796243175874
+0.15167379332329306,0.2989281671568408,33.21827039904709,11.027822257167879
+0.15111264893935544,0.30507577322379714,30.823639530704362,10.719481302681633
+0.14804538264343914,0.29944720586318907,29.008339722399636,9.399540947510559
+0.15273192648133851,0.2968573641464815,33.18474580550856,10.878678828792545
+0.1505495687010902,0.2974536456002474,27.306612591906877,8.861518376437777
+0.14996117368913603,0.2943457514387063,35.686865237600195,11.16463545101459
+0.1475940328139064,0.29834883903691045,34.67596878841765,11.118971246325726
+0.15060888135729866,0.30406808368525134,28.030466239149604,9.774668534624748
+0.1508187350465357,0.307070638566268,36.61210071266109,13.092178565225643
+0.14902666604402295,0.29705163868634593,30.915902866734964,9.868227482453312
+0.15012334242456427,0.30752902235383534,25.920674821990442,9.25477493007857
+0.15116237374829572,0.29938869012121233,29.673880167060165,9.879190837205744
+0.14716669600687643,0.30807047053391473,32.88413452372613,11.535730748825241
+0.1502396993464982,0.300901219435161,28.330886732478387,9.409962887919335
+0.14935949561729153,0.29885931208494704,33.42914925659725,10.883604346647843
+0.1498440094405153,0.29723352366356764,36.22424768476266,11.62321517780871
+0.14895696689901308,0.30607183664782056,26.84162553919353,9.390602833106348
+0.1494042553484704,0.3078667061400821,27.342189765964218,9.718086242706823
+0.14933451168040124,0.3071986697527515,31.015401040501324,10.938539136248405
+0.1503265867426408,0.2961685114688979,32.92513330907774,10.465515549156134
+0.14983936494187003,0.3046654805738976,30.019670920133677,10.359175286166733
+0.15041909813120238,0.31018911572537117,28.487906738596376,10.432961017783782
+0.15159549480395862,0.3007637043939719,25.937445231074356,8.759648303542587
+0.14886355716351088,0.309483757566457,21.01328659927175,7.572320555264039
+0.150752179617311,0.29575768894664584,27.26880463879626,8.719753665640413
+0.1494785282785803,0.3059351253855607,33.18062324596161,11.598035483358354
+0.14925948206658404,0.30524688333395006,30.422475672900255,10.5516014012209
+0.1502916022854355,0.3030516106124504,31.319240722130882,10.705018347911835
+0.1490001330539206,0.31067510111771596,22.464126270461325,8.165204239959966
+0.14773925560537485,0.30703790883666626,21.25498823421914,7.457092926797787
+0.150101489344986,0.30164678044175813,29.487458590896818,9.92325900721363
+0.14911128131729248,0.29718588888321185,27.344918149030306,8.740985937257328
+0.14854489822900424,0.2973088042702456,31.98185317871807,10.19286851016151
+0.14941205889865936,0.2947727683570191,33.9851953740705,10.592158746628847
+0.14936122018958825,0.30578116057325305,29.038745522719278,10.158905289745494
+0.15114673880032367,0.30354247476455887,23.03103946302629,7.966053285317991
+0.1503411567799113,0.30697768183803,39.30724317566079,13.999021405533757
+0.15105472347613266,0.2996169735686692,38.28576639084284,12.704090116037023
+0.15139299745135593,0.2993389008629265,26.753676182640206,8.90336794582846
+0.15064191761943474,0.29852829960359395,32.12431742154824,10.476811111770122
+0.150197633049568,0.3083968720733971,30.787752325326714,11.13493650583415
+0.14774176279401943,0.3101977946859031,31.09475803372817,11.199526092857411
+0.14918767653233858,0.31177204956357163,34.22412317294143,12.58746662147834
+0.15112114512198097,0.29774515144350916,31.93965075660989,10.419866981343336
+0.14996536161638632,0.3019389060169935,28.7566761397452,9.66817398744774
+0.1493737277557658,0.30630772492771874,31.80368597242567,11.193124481926235
+0.14898905411074992,0.3045018692455646,28.61740562597859,9.821272999556651
+0.1523105432518779,0.3004644849817676,30.849351458857964,10.391404312528827
+0.14742204971815365,0.3072980603502881,28.97316470845142,10.118796059011451
+0.15012005019941654,0.3025333299930898,29.62378846967718,10.127140156347744
+0.15076360306880962,0.30055083378714126,30.083219704306433,10.002413449282237
+0.14774774114745037,0.29898294848869233,33.78830051934181,10.919477108804744
+0.1506255164089052,0.30362441569749465,26.158884809403993,8.997229656877021
+0.1500618669117975,0.30020400988387547,29.626278405169778,9.867866113356468
+0.14954372592491003,0.2966790313883309,32.132166684814074,10.203563611295376
+0.15279879538783248,0.28950762209123,33.304262851385694,10.084542940985497
+0.14915975701230422,0.3015906280625015,25.219548581385574,8.452826943368901
+0.14907740456840957,0.3058956773908288,31.662208626378415,11.069475555889884
+0.1489009670635744,0.3015476389547356,26.316141495337536,8.768691722112353
+0.15040775864109587,0.30259821344478927,27.558312881520706,9.327111796184514
+0.1472243227403273,0.30869198579910934,30.908374594522183,10.990654043197056
+0.15090870367118617,0.29401446781053797,32.86923582238348,10.342511408378508
+0.14814522457565546,0.305030735273677,27.68221484796239,9.453099057528014
+0.14963490644660526,0.303098955165886,29.368255265861013,10.059032648787689
+0.151198210097055,0.29885761828823654,28.099624767184594,9.234811336990399
+0.14921554706381188,0.3042906161593349,28.404083008365745,9.778174573962293
+0.15024641531527302,0.30240570232616365,30.44438440359634,10.359745547714281
+0.1498863076019546,0.2987851771117795,35.201171123178746,11.526576855118341
+0.14895581148511014,0.2967824435287926,25.893127168653038,8.225779906122595
+0.1537241241984455,0.30106378664925243,26.217628215120595,9.025076076037978
+0.14908445413709384,0.2913703993026949,34.307075712228496,10.335820924120384
+0.1509934550848374,0.2983794884386259,36.56295130699237,12.054583166590827
+0.14917704466826798,0.2952221615332231,32.308253192878134,10.190490974334367
+0.15063222912051033,0.2995406424695869,30.865623545864416,10.238329688328337
+0.14967489866518946,0.3023697373527036,25.516564069912352,8.652796368270076
+0.14876565383842355,0.3004506053537208,28.643684424144805,9.4815817817979
+0.14979491768061212,0.30097130396038835,27.60908258410998,9.267209030389456
+0.14876016120012941,0.2969464568816164,28.05311601667463,8.981781656933007
+0.14981367925523403,0.2948764050859755,33.50601731386008,10.5259107866057
+0.1506896178007023,0.30572012753160677,30.23584021949554,10.609316750593381
+0.15243986858610808,0.2986552197329972,35.34078198375197,11.736751766408467
+0.1498514574067397,0.3023145182321984,28.65989123655709,9.73219336617965
+0.14973794353484146,0.29862127547049544,33.27937301592313,10.875510798083441
+0.15126033317833118,0.28749122809418715,33.23996007039621,9.786585667731352
+0.1495446565313801,0.29780169482300906,35.53338534264499,11.45485176378322
+0.15082617573720739,0.3000783988592799,33.25006834924283,11.05097604400453
+0.15219647905155434,0.2912563529734065,34.34418015829418,10.583791025068024
+0.14940148959775865,0.29888806435424126,27.509264354132803,9.001649636106386
+0.15025757847894855,0.2968105824482904,30.362226267862052,9.755931540914572
+0.15124259655991376,0.29895477114759395,28.301614393414965,9.359063839191375
+0.15088626447582212,0.30181320392816074,33.94099900689517,11.541376335371519
+0.1512271258648696,0.29897430397573205,36.162024667086555,11.964604484514128
+0.14875836642235374,0.29953924198234677,34.206212951652226,11.200155751707443
+0.1505515177388149,0.30130761226627917,36.018209130536405,12.162356777824936
+0.14795098411128757,0.3028690982786083,32.80147135711972,10.990146056424466
+0.15066345212577262,0.3061379543985671,28.02494372437358,9.889004455209392
+0.1498688962588884,0.3042747364614315,33.224407253142374,11.495620249157781
+0.1511908009081899,0.2997119484121435,34.5040748991875,11.49854148226733
+0.14919401817083952,0.29727460265851247,23.739706063501185,7.601257163175144
+0.1509529340180886,0.30220949312090245,26.12639548000782,8.87752857154905
+0.14948772752465933,0.2999259547186016,33.20767191967741,11.026274545958309
+0.1486349591752679,0.3019949446284335,30.288848401727194,10.152838919818876
+0.1513446849177707,0.29572488890443854,31.659834523778716,10.11892961624331
+0.1473960161818882,0.2947598941578979,30.365672926920215,9.358843952207401
+0.14996077667413607,0.3066571493666906,25.826770918212866,9.056745791449355
+0.15265793617868526,0.2972681847910318,31.29720286764956,10.288777374335583
+0.1492417604472084,0.2929765238306304,26.568839275631195,8.174729966008721
+0.15040357946763352,0.30288980065095356,34.38165836565564,11.702575606891573
+0.14819780466011748,0.3004385530453564,25.32901571279708,8.308012546876899
+0.1507633882125035,0.30557604703980307,24.548169860747183,8.639131048626412
+0.15017079959565952,0.29973940164178825,29.264580213916858,9.680246198517418
+0.14906147535145028,0.2985336340308801,30.496984891246974,9.861557937375366
+0.15050813269843497,0.30031900599836253,32.48606318767466,10.855383436502802
+0.15103612967224717,0.2936868417789775,28.280217907050833,8.876878754452761
+0.15186241427217048,0.3031455275130496,33.8208469929001,11.735049997698075
+0.15185864139833055,0.2956259167608082,37.00160653606174,11.896547625643425
+0.14984246723274167,0.2942681503173357,27.889506808309005,8.70943786300349
+0.1499817950147458,0.30222777973895426,32.05413720934781,10.805688658976253
+0.14848862546753486,0.3055455989847807,29.510163520632677,10.23612894459919
+0.15129089105523078,0.2964009144118516,30.64690884422028,9.911214582317172
+0.15040455379407988,0.30251356444144684,34.949941309274216,11.93079236809867
+0.15014539021924947,0.29892605956173735,36.201172727639914,11.850676134200187
+0.14985837848624214,0.2989250734398376,33.97974748136045,11.04679203801169
+0.15123664103371148,0.2988085881169198,27.314991958444338,9.025691063999346
+0.1514385698313616,0.29616711055042066,27.000425462110858,8.700577618454252
+0.150267348453317,0.29491865363633535,33.372342767494494,10.53105418543387
+0.15008848097186303,0.29969842950694203,35.086746468448865,11.60756674581252
+0.14953789540591875,0.2930842029498012,26.649832577915348,8.18506729121734
+0.15106920111916455,0.2983571357871916,23.28175487057035,7.65758519752106
+0.1509359656941498,0.29990195574388184,29.538083864061438,9.878268321512692
+0.15115501788335736,0.2980387243640346,34.37355300136416,11.2454802129667
+0.1505231310168393,0.2979311562446744,32.4785844680121,10.60033422492411
+0.15137772342566688,0.30124057081884653,30.2694338013806,10.236358786609049
+0.14972691366984903,0.3070264418021966,36.61960663193208,13.010086407743469
+0.15091062143095388,0.2971720230219162,25.000255681661884,8.052370871774297
+0.1511386478466319,0.29634513047331695,26.883437323659237,8.62531195527594
+0.15008462387368607,0.29651094361759306,34.56075023876316,11.07303865179044
+0.14701966409788644,0.3004392741081591,33.85560273829859,11.065562242837624
+0.14867707252776366,0.29723642372954745,39.49476324505095,12.591713864017942
+0.15107986791962177,0.29721859649007704,30.489438377757608,9.89766687599394
+0.15011488875084042,0.30014570682499936,33.7499967787005,11.156958993709052
+0.15221870502758336,0.3084343484274188,27.447044466709684,9.985065883991153
+0.1512509814163417,0.29433003118657125,29.806366898757023,9.41122900682281
+0.15117878805416265,0.29598544432854423,29.061255736555676,9.301509760706526
+0.1500922285589333,0.29706068102798594,33.80006191736862,10.891773547770033
+0.1518879600629523,0.29898065163019705,33.422499113401045,11.091479233322527
+0.15095834497757024,0.30274686697180875,28.426696521684317,9.711058084079626
+0.15079567460919238,0.30515158180402874,30.699130204358138,10.729159162383857
+0.14934075784324496,0.3025310345383543,26.919502673802885,9.153838865481607
+0.1500543144124589,0.2995253449491973,31.62000707458597,10.449382640055624
+0.15155623435919083,0.29961136489622225,32.90123233672207,10.966204958456649
+0.14951995645406604,0.3082201687319642,19.95868440511743,7.097090864042583
+0.14760201438693782,0.3004724537206517,28.232841888116216,9.255904926006599
+0.14779092977810623,0.29071731929837574,32.76202912254371,9.730413085707433
+0.1491623740716588,0.2962389197420503,32.45636496243322,10.250880536508221
+0.14946164117152957,0.29653950548537084,30.464043580216412,9.667011995390464
+0.14949773523804236,0.2969774260578205,23.8620439741878,7.6490579390220415
+0.149960556907964,0.3064415435482632,24.82347834972292,8.77780495740306
+0.1514203322833583,0.29968259716087353,31.42029881437975,10.488567799689747
+0.15055737803637645,0.30630462073295767,33.51689271347229,11.846716321497944
+0.15120864997725922,0.3009440647172057,29.963168545855037,10.085357473220913
+0.14899279212480038,0.29330904312988176,25.62921549120118,7.8817479504385215
+0.15105935335217813,0.3012438082787404,32.960604658232484,11.164264342094928
+0.14784941879844132,0.3079957179141506,29.764299694931147,10.517175839285597
+0.15065036688154718,0.2927757309021103,27.45874628147905,8.46930595825136
+0.14914601331280725,0.2901538908663763,31.888982048951405,9.484488927811588
+0.14893743050870345,0.29711627768431,30.188025048763954,9.658608480162505
+0.15079155143260545,0.29825336392257296,30.654580469025245,9.960743385521946
+0.15121704845259587,0.3044421964303313,27.242633864535705,9.531203494700447
+0.15063654499200305,0.30185562906989977,34.695123633187706,11.817022857853162
+0.14968482659355914,0.3037162050386218,27.555679387581794,9.555450040306123
+0.1496819792395299,0.2989840204308278,27.64664756369102,9.03123425370152
+0.1496333077311794,0.2993908040706199,28.69326418137503,9.424091993197747
+0.14954703288332746,0.3006311534960641,25.34343053950323,8.412849625644617
+0.15003787976313512,0.29660482848075914,34.43554535598618,11.03963931295674
+0.15020503250049713,0.2993006758049192,30.751481624571802,10.123347817565215
+0.15054684233309967,0.3041475918761166,26.76849761760211,9.322336730576316
+0.151176409992443,0.3038507714782511,25.481840204403333,8.85817453451678
+0.15058133634980106,0.29839647203227515,31.410843424644213,10.281842888273818
+0.1501164003578849,0.30290971684315116,34.95081516104412,11.926671744473673
+0.14870870628412772,0.29911373277126313,26.146484303095402,8.534145026886769
+0.15075055057909711,0.30616848674486086,26.923112459475867,9.568316019808073
+0.15074525683937098,0.2918553579684512,31.658167661932637,9.708151450711034
+0.14954554711946627,0.30116243967153034,30.28292408927563,10.161641143407072
+0.14990041386936065,0.30228712199449453,34.272923709166434,11.65939842965061
+0.15045106612158363,0.2990953001137047,28.114167755882715,9.275493092853393
+0.1503863929155109,0.2976212255477522,30.246764388281537,9.751199157027244
+0.15019797827023715,0.3000106448129475,30.88799329891091,10.267543985226247
+0.14966411091296064,0.29763115557517794,36.927849229833825,11.942374095866713
+0.1492068479172189,0.30201974847622787,31.217571536174788,10.498276268257325
+0.1518907073550811,0.2956484448389705,30.43353251824483,9.777252585442957
+0.14955247225066448,0.29815156557390265,27.314507629261982,8.821677053473447
+0.1502436650151414,0.3037466620280247,29.7164154870646,10.231666570937726
+0.14976210244170166,0.2985474226428221,26.70977182661979,8.707835024759937
+0.1512168525523791,0.29655703704774067,33.53122401347239,10.862009990992181
+0.15124997148606492,0.30145148209894385,30.10706251711293,10.215341718284254
+0.15102039477316617,0.3011362668999081,34.2183596729988,11.555388393960992
+0.14927384960338666,0.3000266800372907,28.930875346601717,9.532615066721558
+0.14897381524113582,0.30170070233536067,33.882115245137264,11.331929609037445
+0.14995349467904134,0.30219865676720364,25.209011062506388,8.503995153045514
+0.1488645394878935,0.30362749117716326,31.095209893227157,10.592924690355332
+0.15063115312071765,0.30502852930017016,29.115290844646427,10.198355252383108
+0.14890165875497113,0.2942254254935604,28.82116200352384,8.915033812382127
+0.14893890083967098,0.3041066876767933,26.36411300198654,9.002289613964603
+0.1508052335942665,0.298925637532032,27.16186411164882,8.962375611443761
+0.14842648865049934,0.29962788401843704,30.21863875895262,9.844861017007982
+0.15051416687547736,0.29428404091626553,34.725772830851504,10.87594121439406
+0.1509575144045163,0.2955371444183768,33.07492726899305,10.469402776617589
+0.15176814512964398,0.3026930539329611,30.79893851660414,10.576263476743435
+0.15030164456712505,0.30284831815079044,34.765223990312094,11.826541996156827
+0.15027921642337938,0.30683599634790293,32.51005329560275,11.58230884120171
+0.14728138425921644,0.2926434958218858,31.64923584663656,9.54349678239735
+0.1507575284044046,0.29210042730555524,24.849058613723656,7.684507021154809
+0.1500049250616565,0.3031062058111396,27.194323553502247,9.332150431765799
+0.1487168849670676,0.2964163804595073,32.21573088731027,10.209686191547206
+0.15075699133854817,0.3034139750626313,29.01431882051022,9.989719410597978
+0.14834700891791752,0.29963856881203704,35.08200228687244,11.450391648799496
+0.15182451040441056,0.30392998085130135,35.91982115755415,12.42735166201002
+0.14889302864109205,0.2948418329228591,37.86348995957854,11.824041444916647
+0.1503711211854792,0.2975105405793958,26.840376992498186,8.694657683105342
+0.15125413677062022,0.2921259315315851,34.260986352712834,10.54735717166166
+0.1519646946306437,0.2996683439804958,21.42197425749427,7.17313939741468
+0.1484600934854459,0.2991377244063529,23.710963458079764,7.697749791715194
+0.14891410632892274,0.2988098380563203,31.743169415855345,10.256761434163158
+0.15066958563408175,0.2951500528344038,29.969531644365887,9.53878630645548
+0.15054966845771045,0.3022017488787465,30.747535506480485,10.527917237009378
+0.14806272196892042,0.29465372012727564,34.435503601961685,10.710265284843393
+0.14997172913770979,0.30651510213206745,32.47431075342442,11.417037889899817
+0.15117117131752694,0.2917292272518141,27.764525272700183,8.500357642467375
+0.15159874956945657,0.30115157175264834,29.51188427479089,10.062734759882941
+0.15043374973978196,0.29660831932668114,27.047671261162318,8.706239007600306
+0.1498057484815538,0.30121785119025507,33.89142789793691,11.367397727684121
+0.14789567691673852,0.30196473516278916,31.148834787039068,10.448674031225941
+0.1488294866750703,0.29256419767629227,33.91688094566335,10.34174434433083
+0.15085697837387252,0.2987449175042957,32.92262687052016,10.830422013537566
+0.14920199188867211,0.3008471194837781,29.77245789341505,9.925668151517995
+0.15052748038362745,0.30095241276052387,35.59227534524553,11.940957419512525
+0.15076325794371298,0.29357480346153286,29.340350689559806,9.130312442363135
+0.1501764690265589,0.2995196023313363,24.365027140691573,8.09936415044696
+0.14966904009886267,0.3052383842940481,24.206903430325134,8.445472845994399
+0.14868761060530106,0.2973455630128658,32.29125182245676,10.322375935045311
+0.15063362817850906,0.307037400258243,25.98411130267952,9.292888381135977
+0.14893327816488533,0.29528791586084013,33.565934687041846,10.550531955321762
+0.15017370993630055,0.29823479661294,37.957742666959916,12.436546845933393
+0.15070160401760851,0.30339393884344934,34.812467822573694,11.97663251933992
+0.150832258891719,0.299543367830413,28.108345672654828,9.318232357885304
+0.1495652178989082,0.30892162251966204,29.75510102125093,10.758924632664922
+0.1490765561033728,0.2936808755010839,33.50120921681035,10.357682603202344
+0.1507180329854221,0.30354436302789806,27.86521878224896,9.64179106792109
+0.1497967552535799,0.30216213544523557,35.958024479518684,12.107584721499737
+0.1503944591532032,0.29952990150772413,30.867847503731902,10.16323250350204
+0.14957929628929098,0.30146029662921797,22.82043823563545,7.640989320914041
+0.1502356353774901,0.3056037396018075,26.995701954372365,9.526998896734046
+0.1503338214091052,0.3055681512190886,30.38999455302239,10.708257468749096
+0.1504410029693449,0.2948036468702991,34.35347582213354,10.834846131345344
+0.14856311746568523,0.29654993115068257,28.31349539089163,8.97390091269914
+0.15146680372352042,0.301732767837017,32.497306124371924,11.026076815835575
+0.15042569312934767,0.3005818497522339,35.444084693209554,11.917507516956862
+0.1505274006263153,0.30369060984544877,36.81698494232931,12.64791808385251
+0.15011000129068966,0.3030368117390581,30.093816878650752,10.261939540528456
+0.1515239624134868,0.2980517982761791,31.441045046718862,10.300464234523826
+0.15124208627284313,0.2933373424284313,33.65331225024641,10.497051006788578
+0.14985998052949054,0.3005785195306973,34.28967923656887,11.39011396080651
+0.15021188931656335,0.30171125427496914,28.753124501034144,9.689699131610409
+0.14911313882918142,0.3012528369082108,32.52422251029407,10.890077489548956
+0.15032240581357864,0.3029229043309101,33.70839983360081,11.443637035451347
+0.15085208346857668,0.2989352158071677,36.85363275739923,12.118241764951293
+0.15031841203212024,0.29327163649696353,33.65359890694176,10.435361855360695
+0.14787356351293823,0.30277710444816797,29.265373825893057,9.789588980600792
+0.147614225701062,0.3004627640812067,26.171588071358748,8.602406014502876
+0.14898958289252526,0.3047821475108864,30.778340475410154,10.617208072680864
+0.15152818736152615,0.3018856573123969,34.02404261996352,11.591377767253263
+0.15003499208965257,0.3028292605271953,27.41406625965335,9.379812783330312
+0.15136377013832333,0.2968016101960674,38.35328806281334,12.431948082944324
+0.1498827157796835,0.30843931356550974,36.46909986933902,13.119947155532632
+0.14871337441654672,0.30384476999128057,32.173003035957244,10.945690197405327
+0.15014917077940734,0.2937468278021895,33.408281565499706,10.418815119066625
+0.15302948609505895,0.29789564451548634,27.347464774697546,9.033439218908681
+0.15031386357921248,0.3066368888142671,31.860685450800645,11.323987120272413
+0.15016886402867483,0.30465543523082483,27.771821775415372,9.678442198374116
+0.1502505033534802,0.30017686285155093,31.453346884174376,10.418743623976825
+0.1512462608600947,0.30362550742386146,30.832776602706044,10.64017509880815
+0.1503295284047975,0.2966764728275484,25.960002410448894,8.316749262922574
+0.14952117372988893,0.30165794611401653,25.193815819174393,8.448657346085543
+0.14944276187311584,0.30409938659928093,29.479639548649242,10.130651168787438
+0.1484519765435036,0.2986560450144415,39.04871935204383,12.624017391488406
+0.14871945578709161,0.29947358736515217,34.05779498935618,11.241285095454518
+0.15114992891463538,0.2920878614281889,24.62669395402656,7.5710802071877445
+0.1500224819224408,0.2959402374441665,30.488445405644175,9.648711918238675
+0.1502392934332353,0.3009577572317961,32.36014928630358,10.830675189699303
+0.14974285552240094,0.301591505528705,24.20785628222651,8.101815756774375
+0.15013061630773614,0.29808108589706656,25.150809845683703,8.196801270555618
+0.14967298990034558,0.2997450366378831,38.004137347578585,12.512629895642338
+0.14992919064645452,0.3052126130268347,31.982966766096474,11.244107736229351
+0.1502090834939124,0.304976188279243,30.155283630009816,10.548261420645598
+0.15026848432272913,0.2932701131096796,27.217240708839576,8.450028124342944
+0.14944652947931283,0.3032959770027709,23.6678188520576,8.046422121762305
+0.15040461896191407,0.30206528762025553,27.109039252678162,9.155663379839762
+0.1504922919693039,0.29054118025907455,24.61732150895415,7.447804977599117
+0.14910210523182174,0.2993956696583617,31.589401136626837,10.333482539075487
+0.1508220633365633,0.2988573645562054,31.44945168896795,10.356595799235773
+0.15058994247338892,0.2909510310489874,28.322267752414632,8.623093618504152
+0.14900871860030934,0.29951312054656976,32.533177602715355,10.644224312825305
+0.14929337686013366,0.3029452725227361,29.625730978659696,10.043413877830407
+0.15018649847838705,0.29359053573809824,26.944428272429917,8.355572922789456
+0.15007827273545463,0.30420799629240264,31.910309545382535,10.969322171268509
+0.14993901866203935,0.30066466820325627,36.3791801618848,12.07420164414293
+0.14885856858200075,0.29536921004670624,32.523786928977465,10.198408610603558
+0.14957152920716602,0.2995349861547087,32.33065240642796,10.562178372045615
+0.15051753082043925,0.29992540417637825,33.329345172107686,11.104997219388034
+0.15030228817895827,0.3029717325051204,31.040964576080814,10.615308494931815
+0.1484624525422483,0.2988307561975425,30.05498706841398,9.718551973038558
+0.14888276043656964,0.2969522089042105,28.08023262483907,8.955993133171685
+0.1496719995486927,0.2919109873933123,35.79845797122066,10.965005905284617
+0.15029311495094014,0.3094287001399119,23.45836653918558,8.50727727624241
+0.15091964884714623,0.299963218337733,36.160923779999635,11.957776418657852
+0.15109598329800666,0.3005024472545272,30.993687905045608,10.392037123506576
+0.14965631932309167,0.3019141239628933,30.225162432576266,10.18183570199313
+0.15131396676829342,0.30147361398136524,30.28433077441294,10.329994260638832
+0.15048637978133342,0.2993597464660071,31.84737518883069,10.510559456755301
+0.15016673737018899,0.28999659716589626,35.50364612751036,10.610693607550473
+0.14738591128104175,0.2947372581857313,29.01277831480424,8.935773213567476
+0.1488093878551757,0.30743356580620107,36.335616238205695,12.889863504494825
+0.1517813246349319,0.30324181713326953,32.99783754133938,11.38537009284713
+0.150758728380869,0.2970595202012445,29.24568675497889,9.45656563771629
+0.15131989912749075,0.304031710543142,28.5189431623976,9.908293098869532
+0.15175563571148867,0.2976515901505717,31.920847087078297,10.417592749936498
+0.14824076772755188,0.2968697300776827,34.35004275069388,10.925628780770584
+0.15089729837535842,0.30365925859072807,29.59194908431159,10.274826181125984
+0.15106308040215577,0.3075729492798916,32.37900260840095,11.672886249129787
+0.1517354087338235,0.29025654663565253,29.200397294606937,8.885552830450896
+0.14823542116693725,0.29815827778438286,28.938213478273955,9.264698314041423
+0.15154834876713924,0.29792698181185195,24.008755509333046,7.871932990162026
+0.14959729750167125,0.2994374379576436,32.06393736344493,10.570597731619692
+0.14792977909299737,0.3000417773393517,40.82540593972179,13.351537175515492
+0.15196658111533673,0.2946385411084125,26.09044580106551,8.338997530510644
+0.1510220850504848,0.299738917510093,33.62464381268533,11.196876026008894
+0.15056967118126055,0.2966678130030911,33.61173312173384,10.817619185272502
+0.1517707078250806,0.29349498596725687,31.882869494672228,10.025699943662003
+0.15147506942053213,0.29528351740341396,32.89982952511258,10.474005574162053
+0.1500181040440888,0.29196888047046937,31.410076436487728,9.559782205306137
+0.14868623831084904,0.30016010663540793,32.31530281600955,10.692330174987362
+0.14843661537867275,0.3048619819544252,29.57267827491789,10.147097648772029
+0.14935356041469383,0.3024077044842959,31.254387416036455,10.590472317259344
+0.14929278593165152,0.30429970700145087,32.23894762213105,11.070031787510883
+0.1505337093469242,0.2988069632001269,34.89624555335462,11.493628400831524
+0.15121260121649183,0.3027581628195519,35.08942019399526,12.07934788460749
+0.1489193568264593,0.3033530927076887,24.11312630231134,8.169468146429
+0.15076703786156756,0.29502217255024893,34.08919193457311,10.791119172536847
+0.15054218163325714,0.2967558147490412,31.987682855829018,10.294399367637991
+0.14953055967520004,0.30351860341069214,29.219941031778212,10.002680820875133
+0.14959700788475358,0.3018123199685266,26.10714103576688,8.783203738271029
+0.15117570090083168,0.3040979425724393,24.623430462113262,8.53983093089476
+0.1512568769373476,0.30390501004466275,30.111676917649863,10.43036557237571
+0.14949131369551366,0.29987303894252987,31.667631187325675,10.44095240733032
+0.14900671696079928,0.301513168462388,28.853242167467812,9.602355947064813
+0.14978756623540754,0.2988137179429864,28.60090207585285,9.317503573509804
+0.15036270974495508,0.29006643415678907,27.15392991993081,8.128656074280554
+0.1512837415211956,0.3015567688667979,23.532941899761802,7.975692610765678
+0.1495591644592673,0.3074223300869523,29.786339068072085,10.499009713761371
+0.14828298397720358,0.30549806350968883,26.478325886992987,9.153302662687553
+0.1492822729373184,0.2970438996280207,28.20429896393201,9.095263548669958
+0.14990051644596777,0.30548572048317885,33.42444394001757,11.628652355062053
+0.15005055835352255,0.3031442339835692,30.382556293090627,10.391817052730225
+0.1486067758124017,0.29891551444119185,28.821375362481557,9.343403549793875
+0.1506437316020271,0.30016200232361956,35.844887460099834,11.830060559519445
+0.1490859544222344,0.30457317076830714,31.80362578352571,10.945371769361744
+0.15006509001935886,0.306770807981222,29.232113196279876,10.395637032015946
+0.14932782227031074,0.30045598380072996,31.9918718057975,10.53974966636883
+0.15123907282744287,0.3015247222918784,25.922987946446916,8.796781837609016
+0.1496552659910478,0.29453060569342243,29.463981544514642,9.19744859453254
+0.14875250708547624,0.30144723058369227,25.832422763660407,8.622386789576131
+0.14996107573470427,0.30423699251532155,29.425285949656672,10.219843839859747
+0.15093899029653995,0.28960054393113316,34.13228569972372,10.221225991677711
+0.14955452097681618,0.3013937963023212,26.309347712901648,8.817941914816643
+0.14978146621559815,0.3061178492764605,34.98293931381591,12.24444682965456
+0.15024256964746727,0.3064390527095013,33.191150532791916,11.819635003489598
+0.14882859329938236,0.29936129573981846,32.156847864253315,10.471735546901114
+0.15013074415945168,0.29368661934606727,31.258682223608737,9.711805391483326
+0.1499962394192698,0.30618458846575763,30.75082349140601,10.860163841485003
+0.1483661712219665,0.29489089587624445,25.897643911205627,8.072150279870213
+0.15016909795222208,0.2940812748740644,27.210657771842737,8.53777380221041
+0.14770905240245816,0.2988029679742595,33.04682593592117,10.74821040028409
+0.1504706001374261,0.29360471835183233,29.783580443639046,9.269498121430289
+0.15106720100056262,0.29401558610509215,25.094609778352396,7.943548361001013
+0.15093940259993072,0.2922969940609524,28.880885318437358,8.986781444225661
+0.15175233897053178,0.3038750891284353,27.14456420767266,9.408639459663577
+0.14957513232572367,0.294119013402869,31.947348594894486,9.928199991299774
+0.15039435534057494,0.29539384762894944,32.02003746263402,10.125494170494
+0.15056360878977945,0.30332954606846935,25.313174972292884,8.743527321176554
+0.14939001505792693,0.3077775812330945,32.2496776316018,11.549140382334972
+0.14948332710852158,0.29939340366713824,23.50504751207855,7.674796198835257
+0.14892432182206336,0.2963109690562844,28.98611479585104,9.225921188053903
+0.15005619968168907,0.2971092224727821,31.42829248609925,10.054136377946058
+0.1482419158748991,0.3009716413880165,28.962002423342803,9.617265544013971
+0.15012840183811435,0.2919312229530458,32.36518937033421,9.861727026409891
+0.15020654460440572,0.3059886333848216,25.80801920413371,9.102426706867877
+0.15121393587244067,0.29785226204632986,30.917558037647137,10.122876297971871
+0.14996563010225417,0.30134540552396566,35.12137391320328,11.771037468377854
+0.15029830029940242,0.2949710079177352,31.23133364423206,9.88133328668207
+0.1511119111883414,0.3015865882728825,31.329649884742775,10.62367150512918
+0.14924692296059347,0.2987733718958023,30.27513086974693,9.8587082285617
+0.15127436537312827,0.30154839363563585,28.711165501277677,9.796495236037586
+0.14847706777775357,0.2966056616147545,33.93109741304513,10.726537641138675
+0.14946214455930718,0.28984494673266153,28.212494421228403,8.380500038175887
+0.1506825926411751,0.3064262925111831,31.009909882591167,10.945446748874495
+0.15099243380503366,0.30340702212937015,28.58124642359956,9.801112721573395
+0.1504494182286553,0.3047830913829803,38.47640322115666,13.36450576347629
+0.15106487824036255,0.3005892952081447,24.919222219033635,8.344135055723386
+0.15196836674126585,0.2923502393382312,29.63010102781788,9.19344493910101
+0.14926247152236263,0.2994402272515033,35.52990400329769,11.6920420335638
+0.14976467681821243,0.29670154156693357,38.051075396857776,12.178321145054468
+0.15029593867639982,0.30420229052743125,33.38294066262675,11.523936486991012
+0.14857528292565486,0.3021919233109612,32.19633576988187,10.763034301563895
+0.1510594679886518,0.29973720389448055,36.60107852580917,12.185170673321384
+0.15246804262893324,0.2998333618128473,34.20083288308479,11.500285352995697
+0.1535709971024537,0.30959122838707526,31.668862939015582,11.853204420432208
+0.15123094478754415,0.30549275800011766,30.99913726547713,10.918482367078374
+0.15014861880458383,0.2933854513532002,36.88113647741596,11.481509761423878
+0.15042934534432115,0.3038639078507019,31.91667634402292,10.996945049389945
+0.1495930405242381,0.30331042623897003,34.29334553983028,11.666747088793155
+0.14979711836621537,0.29802794755613404,26.994616966403477,8.769529047466268
+0.14984532953417853,0.29556387253697286,27.0498643164782,8.559434718148317
+0.14869799101823036,0.30434497072303573,26.21586079150661,8.993305473093198
+0.14836285038374317,0.30517211624538715,37.26622461243694,12.852664984418093
+0.14943159371727405,0.28969698619514245,30.66998910233591,9.066638096358144
+0.149940932235718,0.2975049294999836,27.1245990680857,8.762096258382288
+0.14922791883559514,0.2977634618880283,31.13517718691211,9.96238658775658
+0.14926952451310155,0.30083614805899594,31.851987221588303,10.586985105437451
+0.1495666051874417,0.3009023040516559,28.230462642555405,9.443281823166174
+0.15123404167979212,0.3036907729071329,33.631049019883726,11.65065908415119
+0.1506915748929467,0.31007286603300815,28.791522579345035,10.522978193073877
+0.149236094491469,0.2952837526413964,32.337132937049894,10.137734662811628
+0.15027005273435337,0.3033658700023189,26.480970893509884,9.114870928114595
+0.14844500558979445,0.3010653223761643,32.107848308819634,10.681984767554077
+0.14985653448034897,0.30064514440767826,30.196704481438143,10.050163651391866
+0.14953464697694818,0.29900325269412065,34.242284739469646,11.140426989003949
+0.15024043507619017,0.2985587045258194,30.206342209120415,9.83436491844351
+0.15245607917602663,0.30142395567712105,34.34573805931154,11.710476207827014
+0.15007613950607337,0.29951428809644365,25.93698385831209,8.547068560236008
+0.14948567046068434,0.29459933683133566,37.57067084720336,11.799902421384306
+0.14972077488181865,0.3002441567088723,31.9496906294171,10.533847068473596
+0.15032282142747763,0.29885684637501947,34.10185615697111,11.163145758980717
+0.15011087593107025,0.30151323260757185,30.58147659411447,10.299610896279773
+0.15164252198537173,0.29501365807090807,24.532006072465236,7.852103144213662
+0.1496703332648168,0.29424596699080013,32.848038158588324,10.228364741019794
+0.14999798393376856,0.29706567508528287,35.60582101979719,11.435674622125283
+0.15060374276638175,0.29856610266922673,31.134019552887885,10.269183100433752
+0.14995430489691716,0.3018683241406865,24.042705088855634,8.117618952649552
+0.14819069856063,0.30329389305647303,38.994361543850715,13.238693523485017
+0.1510184485200127,0.30247508614175417,32.048296414670524,11.017520555522488
+0.15119218971675003,0.30332837393149786,22.9323035971646,7.923357557494507
+0.15060577459757615,0.29566289570867216,30.654435948931607,9.700718817872058
+0.15033794215104931,0.3042312182154079,30.323577133895128,10.487081761688454
+0.14916663760403992,0.30164730140562657,31.236148612720857,10.511949237930395
+0.1493016947289959,0.3030567651314524,29.057893570185445,9.864812295436248
+0.15172826084290864,0.30051688073430777,26.586032564923496,8.981273370883144
+0.14966676113287605,0.30039227827431575,29.254795160924676,9.6943680767718
+0.1498135767028827,0.2997613639297315,31.03551690024411,10.226351567804484
+0.1503949636328519,0.30230270361168105,29.892999501677544,10.211885598278212
+0.151573802597699,0.2982939553198602,29.42107167630469,9.6998484769277
+0.14831131917804652,0.30058640293349087,31.51515950761884,10.342440708473132
+0.15034405785893276,0.29973775830680177,28.36103096251965,9.379845345378182
+0.14903190317417805,0.3079035700240502,28.3025330722287,10.063550524782102
+0.1478080524964651,0.30955457859831015,30.35901745271205,10.871103933055402
+0.15029019841852218,0.30130550729433697,33.32374829294493,11.203764573589691
+0.14962738778213355,0.2995570057864302,32.16595164112327,10.584775403022231
+0.15078993494856646,0.2984270466767336,31.97557096547065,10.52222327495193
+0.15034022260438115,0.29713208877591196,30.829875770429066,9.901457272457298
+0.1491323979084778,0.3043204588885452,29.74965779562403,10.223674046426117
+0.15040581658257285,0.3005155497833545,29.43965251756935,9.79157941400253
+0.1478512612441709,0.2990195686566001,29.232743188963198,9.470235808418142
+0.1500735641391952,0.29483498293008925,38.76464139601996,12.223634242143937
+0.1487289227115036,0.30412407481335674,29.853001069863858,10.301775850103581
+0.1495354880629886,0.3009103635681213,27.087591140382877,9.092106475576859
+0.14898115608072893,0.305723515109334,24.387767483343488,8.474497798906455
+0.14897699488692448,0.29472217413551693,31.166275609724604,9.766383056288335
+0.1507806833786336,0.2937987107105424,34.40202924008551,10.753586591427483
+0.14946882543439236,0.30557679927484255,31.613262427974693,10.990715626912099
+0.15007446744233974,0.2970966476571149,29.88335297755974,9.577581598329585
+0.14961627985765372,0.29809507390120726,34.31154924430163,11.147886141284527
+0.14889122692542872,0.30256451279338104,31.32402980905584,10.56346332959485
+0.15050269454145407,0.30578553339113806,32.76557981421831,11.567576331988679
+0.15229505271838192,0.2980766828179947,36.38319789957793,11.977440920532379
+0.14886430027943778,0.30531143580287384,34.52110714936033,11.968323603263034
+0.14963434211851567,0.295459189244937,30.302662211960662,9.590708169856164
+0.15016411639580113,0.29662514339495627,32.13514236479925,10.36706838300313
+0.14964471737828816,0.30623342441099,32.11797966513122,11.228588715183676
+0.15089495471534464,0.28669953358657735,32.47598717431585,9.367748841935402
+0.14901439932110488,0.3015817295623231,35.67924275387125,11.9129333301493
+0.15065699854073972,0.3036763041655656,28.312507967551436,9.776709790950727
+0.14922245746610346,0.29832700490896075,31.390042997097453,10.157804154899141
+0.15037367287703232,0.2925690515548204,30.453856114618482,9.403168602634725
+0.15030175150196196,0.30214945370991697,32.583894056423894,11.07201588224418
+0.14976302423069693,0.29803403215069535,34.664996394579084,11.23770611052974
+0.15066174317294365,0.2951221344713463,32.66855482390812,10.304461667937773
+0.15101810601617244,0.29293100172253594,27.392627361136483,8.536144622209695
+0.14872508626990102,0.3008814647672245,21.7817644231091,7.239791857943913
+0.15201803723889057,0.2990632269986326,35.19298258317643,11.613395717018953
+0.15105365960056866,0.29858451747018555,30.197380640425393,9.935498483852733
+0.14904539584416507,0.30301646208662014,24.323889331651962,8.21539122734183
+0.15163033690423086,0.2980432363822574,33.799329180240534,11.093831322356856
+0.14946963993916157,0.29529602543010225,36.78909615567422,11.629944984474523
+0.14918988852785864,0.2940231863042375,30.339571206401775,9.398481960191425
+0.1502965418038214,0.30007676671221867,28.269440520536108,9.414317439700133
+0.1515097059027011,0.304775227234421,28.736069170635616,10.092638780269711
+0.1495828253110589,0.2976348466213151,31.809280218843178,10.285626850498998
+0.14856869286061794,0.30442414789867916,32.283064691468155,11.082020360157571
+0.15073573708215263,0.3018972187753007,30.088391425553613,10.2233142496659
+0.15097968602277714,0.30211186095026205,32.3789178452419,11.019646265377682
+0.15017706037985587,0.30082009425988304,35.36351103601454,11.7893024482316
+0.14828818168020752,0.3042725082702825,30.51656866831515,10.478334292167034
+0.1508488591509756,0.29640717039690057,34.43829542286709,11.085449918410864
+0.14854289556534664,0.2949858792728813,30.643407873853164,9.534437088132208
+0.14944846974729745,0.3001512360637616,29.035524535697657,9.592619040110659
+0.1511193358234461,0.3038840255882353,31.829802691828533,11.065056206478213
+0.15061035143255283,0.30992663218675276,27.13739800766237,9.973450528576388
+0.1472259356960803,0.292873821948525,34.31355818885529,10.333688074200808
+0.1504820054957166,0.29293663947218546,34.12244446399096,10.564758347789594
+0.15002957211115853,0.29204054146181213,32.14621384199188,9.839772179501209
+0.15029129991205636,0.302926946931672,34.88576424559817,11.940177710442759
+0.1490519184371965,0.3092208137824031,30.62775414360587,11.059733703748124
+0.1506192360434431,0.29686306554164565,35.46433093979432,11.445665241656465
+0.1498211913893357,0.3059710905475735,33.17537498227907,11.589815088297865
+0.1499106202647163,0.3052391878799995,29.881247905119114,10.44192793551343
+0.15075946157762252,0.3006716139764046,30.21222067813192,10.14562553060421
+0.14941864819702555,0.3087688492290572,31.011346489877816,11.13137159103197
+0.1503504048849847,0.29452409465573315,32.984415981968674,10.30157179164134
+0.15231336686595584,0.2995847855557831,28.38042668717172,9.498120390580539
+0.14992876770553593,0.2955073007104968,33.84688927454856,10.73014356345847
+0.14778828328970486,0.29554175998218146,35.16309051594405,10.983385609846408
+0.14958180397078402,0.29657019518738886,30.10413394012286,9.639808547729109
+0.14941658735708052,0.3023224618429213,26.458471021112604,8.90399985788873
+0.15054670517225383,0.2938443238772191,28.94806312253282,9.01305642020253
+0.14809105406044193,0.2970556779062674,21.25541490431505,6.754265743507642
+0.14975263655850765,0.2986276239949644,31.757312797393606,10.362837008645783
+0.15108228767347873,0.3031198105675986,26.6938975269629,9.153639858044976
+0.15046852541727404,0.29856093598532274,30.113350600386852,9.874983761990242
+0.1499646622645416,0.2984918196481945,27.807100940766905,9.085050972306021
+0.14733646705132958,0.31225589919720237,26.590665574647876,9.74772233508828
+0.14963801794465154,0.2983725877691983,28.73595081512813,9.369558332461953
+0.15029511066647305,0.300656239004975,32.41485125903267,10.85475495497344
+0.14934110313127025,0.2987606527276248,32.71309643106109,10.631147733042798
+0.15131856242565542,0.29263084290026437,32.93764133478025,10.244594818604536
+0.1508542142177066,0.304585265305606,32.568582245568486,11.310028656859561
+0.1485668797319397,0.3003702945950658,29.60388428417201,9.74775419488824
+0.14808798214606864,0.2982771136447815,32.701877246416544,10.493636595635381
+0.1493555857522384,0.2975563751582676,33.25637625626635,10.729876307909315
+0.14859885165940132,0.29399196516054826,29.43950784204871,9.092754542383354
+0.150117852417438,0.2969059059879977,25.17812588547092,8.115761535597482
+0.1492549549927877,0.2968873683733181,30.45891359866831,9.709929147084168
+0.1509124025985545,0.3020541990916436,31.19217937353768,10.576428810011462
+0.15095647001605247,0.29678947856126414,30.644626116918328,9.849203465645411
+0.15033459171458652,0.3039113140573403,36.71239704942944,12.678631101730714
+0.15003159638163854,0.29579140394140996,26.322359247086776,8.3703114758238
+0.15176791840016493,0.2961909557875221,31.329578367121808,10.13759706794733
+0.14931951086371675,0.2934774643747336,31.792920803079483,9.811213739690254
+0.1494385903976748,0.29849983884466985,32.509333364174175,10.500417985956386
+0.15013535290322963,0.29690211973554687,30.682877330032014,9.83888579036708
+0.1494966940861589,0.3063392998965729,29.813754603674667,10.43408466613716
+0.14871431505560823,0.29883952549613074,30.46311029746167,9.886617007900796
+0.15010738890910708,0.29980573055499643,27.988413693902142,9.252874923285688
+0.15013729898998576,0.2949371164945765,31.267862807104134,9.89156921549504
+0.15050723855780088,0.30575978792356356,31.69148958442447,11.191980545240975
+0.14917028554866266,0.29356131933529805,30.92366236779113,9.548200664643998
+0.14959592960264056,0.3015747576588524,33.60207127262726,11.267490647299379
+0.14964456379453495,0.2959273484550434,29.58575794140641,9.399535250816895
+0.1486305125339834,0.29859172881813506,32.57814235468342,10.494987427389566
+0.15061575573809474,0.30502510243361153,29.741684106244534,10.375878115296894
+0.15078819242972993,0.3079330594219004,36.046347090419154,12.98750247978473
+0.15068822489676814,0.29452844976720544,28.65206436408655,9.040349125542393
+0.150100205720832,0.304509086627755,24.252033702721626,8.444714889250852
+0.15081262193741332,0.2961390177730878,30.68930936578938,9.806830528903488
+0.14951171083907255,0.2989018343235903,28.34341878063096,9.300037648670584
+0.15020592737654595,0.30209872699909185,20.987840718305012,7.104071652179904
+0.14928230993739955,0.305178815499527,36.0740460284905,12.558577348073449
+0.15243122250609972,0.29381058933884696,32.279542284411654,10.21490130593091
+0.14975608415790917,0.3063226007890185,29.929617974990546,10.522990641522846
+0.1519518583900202,0.29549269134844863,29.944448117881727,9.589269820652271
+0.14960138010307075,0.30532195911617377,36.714359798264226,12.783908540477002
+0.1513381247597114,0.3022938272203957,29.57256193317909,10.122499451084863
+0.14742016348772174,0.29804230392400116,23.63076029280212,7.569159768259938
+0.1508788811122436,0.3011513359756591,34.258198291073626,11.495345687046036
+0.14982899787560972,0.30426351790674216,26.863863967461793,9.271968754730683
+0.14895592765773213,0.3023338566832721,34.8640475078041,11.767710338921695
+0.149843441908338,0.29652904148122844,27.470034993196233,8.753383686623492
+0.14869118243343335,0.2914906569034201,32.01754049016726,9.662068460424026
+0.1509533326293663,0.29975110314446235,30.16075104800443,9.99968279622062
+0.15026872128239935,0.3023964658584561,36.1076775035646,12.261560079970298
+0.1495059089558059,0.30203468751484064,33.31421069649369,11.204005475947948
+0.1519729677135393,0.2942390858448879,32.50053461200382,10.316062366557073
+0.1515429988109793,0.29708373018058,31.7577227023881,10.280050704021493
+0.14984015623346994,0.2960191995189967,29.79093951261108,9.50120573611485
+0.15048278654682248,0.29971951315679507,43.15796985567222,14.345835824214141
+0.14911620835477837,0.3098668835671274,34.96104214258803,12.744220199982907
+0.15103311134872527,0.2951589355436554,33.40339822022466,10.670596447363733
+0.1492233648542176,0.2960727504881542,31.853147323984075,10.066029300027772
+0.1511541388364954,0.2966932929987935,36.5113600245607,11.72903458435206
+0.14964890800610836,0.299857433894381,36.17836540547994,11.911300105722779
+0.15084502003737044,0.29427183305578547,31.325843587924354,9.873487873494733
+0.14904632774553786,0.2959303895093903,31.684781236463667,10.03877126080379
+0.14999810677918615,0.308426089727294,28.559957044353816,10.271658734686921
+0.1507735720416544,0.309166400040474,30.04504269330427,10.930716991086125
+0.15213799002347245,0.29195566992334054,31.301913779388027,9.631064954003104
+0.14869342784536285,0.2996925800217488,27.81558077382281,9.059161184667918
+0.14915296529765265,0.30642472330906834,26.794105376723447,9.439291920703685
+0.14951281678534806,0.30602602954701524,33.31097509346966,11.629653940583477
+0.15075171030373752,0.3012043569631422,23.457598493428446,7.9058633835171195
+0.15187371865228705,0.30030071548429366,35.64200335918134,11.96167435980993
+0.1504544588142319,0.29791568586975425,25.955040278615925,8.457068800658156
+0.14904556158487178,0.2967581548584196,26.194804073676437,8.346954160042396
+0.14916263809925406,0.3036509324695845,31.733824884311062,10.846689848884797
+0.1504166952807725,0.30511141515137763,27.38645497690966,9.50517583552963
+0.1518237638743997,0.3084608656971661,34.28351424830444,12.469752280235998
+0.15064377755156577,0.2973977655590622,36.189217947818264,11.75646413668318
+0.14945107990281783,0.30627024178346196,30.895784673755525,10.82479657307176
+0.153075874546962,0.3092038452926638,31.535427149929074,11.64609017306598
+0.1513758310865408,0.29796745075172565,29.58250322883334,9.784147633569248
+0.15008791511188366,0.30016707729214637,30.799763157196203,10.206706850413692
+0.15001836294100462,0.3036653433983236,28.895397736623313,9.991917279607225
+0.1512481417535386,0.3023305880295679,27.784666763475805,9.51674969382431
+0.15045956972581254,0.30311193233225125,36.241726502506715,12.441263093586565
+0.15066670354739203,0.29610240557688217,25.246665377414995,8.045166945388212
+0.1485124729592786,0.3078366436068957,33.97296019928375,12.034676659955453
+0.14747711670244437,0.2957194073946381,24.86512940396093,7.742988269418023
+0.15066759578666813,0.29325299046274683,31.69386342963977,9.885622870390296
+0.1510563186427632,0.28659422675156304,29.297910875298918,8.555689870244734
+0.1494516644647774,0.29993644022008065,28.336291387886178,9.351267581619718
+0.15161683409139717,0.30476336327825854,27.00817101705429,9.470053255235632
+0.14905831750824247,0.3048375834712021,35.224072693551406,12.180733342182513
+0.14919702684568104,0.30071899462840973,24.06725966308412,8.002998014920365
+0.1501634716617056,0.2992221921292285,28.456756380824277,9.354801478498974
+0.14937402607434902,0.29370344802889503,27.1202761540699,8.385355117812852
+0.1484541200649279,0.3020458330149224,30.58205299409174,10.23179323543316
+0.15053540625857081,0.2993223556034504,32.6091123500656,10.776209868568673
+0.15170611011296084,0.29872150499570205,31.50899076345738,10.48362077972494
+0.15173985836955198,0.29525594043788284,28.242838107915517,9.015935753342319
+0.14960984837269484,0.30366258612904545,30.101142830587538,10.363299882677344
+0.15000457230940906,0.2965000521689666,22.590547101866964,7.1911995823474495
+0.15011315700527475,0.2972897651913754,30.217548607899534,9.736742552831384
+0.14997957768805562,0.3039057426701143,26.255442742622826,9.083875774807812
+0.1503612245478511,0.3044532475314712,27.35241093026144,9.54130601317228
+0.15093556892867563,0.2967437162497005,34.026827774689956,10.970173598053728
+0.14953949211170903,0.30029118423471424,27.154113270776367,9.0063410960184
+0.14927420523361445,0.3032515412473108,33.67407410311267,11.442398547796618
+0.14992434108261984,0.30581258866327254,30.8283280426243,10.780464464507357
+0.15132514898323324,0.2983025018542108,33.54658898355271,11.03021673331369
+0.1501750408730218,0.30777668269071,26.9338448798883,9.660872464121367
+0.14969279718448447,0.29905207194077776,28.206741271589348,9.229951078017539
+0.15081262465969886,0.2998605738071204,24.589425604804447,8.170059528272745
+0.14987440005148303,0.299851071765085,27.646879040866317,9.139547944725521
+0.15010238290509204,0.305270414561371,24.903950596280445,8.667927501076225
+0.14931621805311734,0.2990457426194622,23.33260895453758,7.67003201756318
+0.15089689823743374,0.29907932999156545,32.61234053618648,10.78379598447001
+0.15005971835135076,0.29859252528081814,31.314764550285684,10.26099273787217
+0.15012458172767382,0.3012886800514294,27.726753040706154,9.314631200784303
+0.1509276992209322,0.3052936403471904,28.7955295539655,10.133286095200772
+0.1484870517847549,0.2987182338552571,32.4736200066089,10.494782050802531
+0.14886355709859406,0.2962919278560709,33.35827426252522,10.584660725361864
+0.14946046123391016,0.2947879377998004,31.20831621654397,9.776026894226016
+0.14927941501121655,0.3028050797394077,33.28993175604032,11.234396245951933
+0.14820632419588226,0.30255987618440666,36.0969584009121,12.149612076356181
+0.15097068686847293,0.29906105548622136,24.852844349265617,8.23308181086641
+0.14959766787098228,0.30421692933899763,28.53145865689232,9.859100156940547
+0.14814246510283585,0.30519534797132236,35.34362741458607,12.145767913069598
+0.1503396379495941,0.2994137530228159,25.124745245024265,8.288531227142137
+0.14876849980845197,0.3055094092366561,31.094718860237087,10.765890533753064
+0.14832598475870568,0.29689044757437894,35.314182030403614,11.226308235410269
+0.1501055712244124,0.2991027685833126,29.152605158320704,9.562833106142326
+0.14939295098022665,0.2941057608541519,26.130524424285383,8.124635861840357
+0.14961163782095463,0.2940407620988173,24.449323660793834,7.6103776692125855
+0.14907099439580684,0.30097398847461937,27.92472632132697,9.312621993097085
+0.14870034247231154,0.3032182276196772,29.329823789177542,9.926527229636216
+0.1506444429753799,0.29929975077346505,32.57738390070241,10.745552788724952
+0.1521097792871288,0.3018077089978286,32.37398434717708,11.043942759220549
+0.15016203928122765,0.2994893049649995,32.89360255521494,10.888203086153178
+0.14986563126152788,0.3049948198437638,30.429884126822156,10.612359982137727
+0.14861899918167323,0.29863531377985236,29.43082574766197,9.562215464497807
+0.15050136142802928,0.3073271652131244,27.600999490777813,9.857508844443903
+0.14962246410879737,0.30988645253718156,31.053819770304347,11.25597572004028
+0.14947471344233074,0.3071442403773207,27.582968552717084,9.738973582542345
+0.1498440821016301,0.2987496216035186,32.22513447809433,10.586296225390313
+0.1499268635234685,0.30288194081805814,30.099850253408977,10.249635033092394
+0.15171316928084494,0.3067129653452541,31.210970462315636,11.145942602780746
+0.15164523369807315,0.2944032177562788,30.79193545673952,9.719013065466735
+0.14987583957460263,0.2994496095800449,30.214773178069866,9.984043388348637
+0.14663071182531714,0.2984929612524825,25.333830906177102,8.051425076146966
+0.15246909747413637,0.30445389349434687,30.48853162225655,10.682034129970992
+0.14861014412197052,0.298821268347214,37.32471701831951,12.12446954848558
+0.14920583149787542,0.29154072869720454,28.403793469693152,8.636116245319595
+0.14858696037630476,0.2975735846844447,35.58840056036075,11.326177857921678
+0.14969317537721558,0.29496814553357215,26.50084356031137,8.343467900712099
+0.15029768343807112,0.30294768458982974,36.18942176570336,12.341280376804363
+0.15030073026647925,0.29486465352662034,26.346669426871145,8.287884327175115
+0.14993004118851874,0.2887958882281781,33.36712735453716,9.78662803799943
+0.1508832985087737,0.30077881275111623,24.021174521113167,8.05784417088163
+0.1489815478225288,0.3086396075968591,30.00620398349348,10.744233634333584
+0.14887968845402888,0.30128429029644804,36.482724143331026,12.128763260266824
+0.1504453180429995,0.2926372286344371,32.73166493232795,10.06625290657978
+0.1518133898699506,0.2962539698681256,34.28672486172306,11.026579121387872
+0.15116726142309506,0.30787750324104585,30.005710557831847,10.787535414361736
+0.1515489432282429,0.30581690714454446,30.42873479880812,10.82902037533006
+0.15021260437217349,0.30548050607280813,28.524570740752594,9.990589160565722
+0.14880486558318182,0.30897610103228845,34.26344920079479,12.279001319530819
+0.1513317244359161,0.29863947018525894,30.06671109657763,9.892334366131431
+0.1492256156372346,0.2977022266722479,27.6853783280012,8.920452444034263
+0.14892242074846582,0.3035800312670985,27.515039377519376,9.342308600781793
+0.14897720134123674,0.30118078579724133,35.53576077988817,11.848238679077173
+0.15016396775645566,0.29766418827806496,29.097078294606412,9.461986458168386
+0.15080214692665955,0.2996186135273665,33.337915234459814,11.009269945826961
+0.14986425664011815,0.30344246635191197,26.85036834264724,9.203031609581263
+0.15008513686450298,0.30366807337595436,23.054077817014587,7.916443346233995
+0.15035247485473233,0.3097382698789907,30.230629640938687,10.990226332347433
+0.14993975495667525,0.30156100523344975,26.569436428937504,8.968196901362846
+0.1492824903873171,0.3071380903716087,22.918935473945368,8.161907928147203
+0.14912138608553782,0.2989795279623632,26.638574317332573,8.694810440058315
+0.15032983406418024,0.30007686106296866,28.880025656703946,9.591397865155713
+0.1489657558377843,0.29860845883228965,29.664630932760748,9.646077328107333
+0.15014198290068437,0.3109940684028399,36.008073617134954,13.322188716444744
+0.1504234994954692,0.29854896658979196,33.53797891001062,10.982736702673218
+0.15022426968564986,0.2941970353005605,30.29658148022922,9.491879156798033
+0.15025936114329622,0.2960629588989855,29.44034243796433,9.430371934171337
+0.15035027362381653,0.3088554203576547,26.344513675708445,9.57293705265558
+0.14795386377574954,0.2983851438683293,31.220914071465245,10.063321432517037
+0.14817054272801297,0.30040568319095906,29.12824471131692,9.55654719392729
+0.15028692774255398,0.3055680161258741,29.25069580726783,10.290009717191406
+0.1471917474249395,0.3056258982812352,31.789733280525155,10.933399391464249
+0.14998474733790376,0.29541941829728957,23.429808045859275,7.412261431506177
+0.14974700568094074,0.3038961083391735,22.532428738794955,7.761597124682928
+0.1516573156811515,0.29887358133507297,34.534840020700194,11.434363355105779
+0.1497848289528665,0.30348734524816984,30.50376779189494,10.491403983963078
+0.14935389643060595,0.29116085505877193,27.938264356223723,8.453324107028266
+0.1497962332265091,0.3057189392116326,30.591846831922407,10.771275806806422
+0.14883233391858025,0.3014440557517702,27.92725393565536,9.323389903410234
+0.1502987927776795,0.30640715763224224,31.289942878498323,11.162928523196191
+0.1493564927133489,0.29767917270895616,28.45320897970447,9.142101619843656
+0.1495636679391326,0.30136448008653977,29.927657466882856,10.000105701061807
+0.1507716830061682,0.29703543604668897,31.994644557010847,10.370505977415664
+0.14953318138440327,0.2924780049867702,26.696327598434713,8.163167954938936
+0.15273327877786508,0.3069680354185403,26.274204782234246,9.503922861080087
+0.149460073778059,0.2997991240644723,31.910763120238684,10.504848299144314
+0.15190166848841216,0.2944370791811293,37.23451743402805,11.791024987376224
+0.14832790420812103,0.3000894470622935,35.25054624641852,11.572621510330517
+0.15062572050925305,0.2919136307054266,34.81351675585643,10.640147641871081
+0.15083379227707017,0.3044651026508134,28.234280082169626,9.81013764142995
+0.14799698206587733,0.2968838136931571,32.36040447466012,10.264206261446903
+0.15100837724787755,0.30068229231360666,25.199342277051066,8.487124000782067
+0.15099941829846164,0.30127591223860933,34.72240083657862,11.736273969761225
+0.14984442356548883,0.297055313543995,26.909876393808936,8.672201600590805
+0.1507286387504953,0.30246688454220744,30.599288543618908,10.439740753720368
+0.15194001326536918,0.3025651311604872,31.398592478753564,10.877394408662397
+0.1511329684326075,0.3029225548996437,18.63028876719688,6.399280988399067
+0.15082043002824927,0.3024660880921182,30.83527604654443,10.501461233673636
+0.1498710815761281,0.2982346016671458,29.34285346411498,9.50718232216921
+0.14922090669392862,0.2949087215851879,36.28843644144635,11.399013356003572
+0.15222817225288973,0.3036616449152189,34.04223912184769,11.867120110256263
+0.15044844326905948,0.30269794413724727,29.99367347018559,10.25400213878802
+0.14998689612923893,0.30102680834412787,30.42049734096397,10.132641947899327
+0.1493168355279846,0.2961373095731936,36.75377337734255,11.653213166293177
+0.1494493699993605,0.3055435004942096,28.283111120113738,9.86763628494505
+0.14759824884842485,0.30210194149606096,34.31081503762213,11.408485978842984
+0.14925521411450493,0.2955263079249816,26.412378181549588,8.28110303655824
+0.15005669241599576,0.30293548377489604,22.218189603590776,7.592960602807637
+0.15000032143292505,0.302242111442588,27.98017051728654,9.41502567348656
+0.1505351514129424,0.3054099203111593,25.35960004082907,8.971413298557007
+0.15013734647169885,0.30096649722767127,29.990015823689372,10.040379990146308
+0.1502625862492857,0.2990800135028794,30.906641903475926,10.175520011964606
+0.14999719597716835,0.294830119417112,28.45165867543718,8.916207529404184
+0.14981252992282418,0.3012505852448972,29.686187644489006,9.938652206429651
+0.15154124327947815,0.2956352124036493,32.281381857499824,10.324268210721472
+0.1512085130908872,0.29333230773669305,27.701616213725597,8.643185845257056
+0.149424905863411,0.2997989824329277,36.890016628679355,12.139129439631578
+0.1504961555241621,0.31425977970598257,30.28817655112293,11.589553854706661
+0.1488124492744967,0.30099534013674123,32.93900797339819,10.851695251450124
+0.15097337922854182,0.2946251180516484,33.369284187735566,10.530517286859917
+0.15014830810333665,0.29584768089466706,32.418606698001426,10.350687633120097
+0.14886139771325121,0.3018387572180834,26.994048272197166,9.018615540157882
+0.15130061334759667,0.3000243308556417,28.345990679735248,9.4463388147431
+0.15122296095065246,0.29868384484432,27.002942884505075,8.950347972052402
+0.14795985550263768,0.3070089208659452,29.726754230977424,10.412686028188142
+0.1496892070155126,0.29898376284992434,34.06221941581788,11.167611286171132
+0.14929415093360437,0.29780398268037894,31.4827007546207,10.115640678617156
+0.1496916131781584,0.2988147352267663,29.324938515199484,9.580019558073756
+0.1513281016803208,0.295524342993566,33.187172316700085,10.617996166898994
+0.15027967601647976,0.29784412703166996,21.967615203140014,7.170575347190038
+0.15009363822277527,0.30253971187594975,30.20402360032784,10.27984762078738
+0.1505420394411433,0.29667937671914274,27.69172137882578,8.896400222375107
+0.1500331293955744,0.30017839620556186,21.684323036719274,7.204939801831008
+0.14963284219315826,0.29744687779705653,26.28113385616158,8.532972392180621
+0.15068194594943823,0.3061343847286944,26.111733562462867,9.225333583165794
+0.14967599722875413,0.3076800200326965,28.9198519969263,10.324829902129007
+0.14807046998939422,0.2985121199592824,30.76469508803264,9.840437239228107
+0.15100444612208455,0.29745180587405246,24.783041108232602,8.09269156516452
+0.15213935231981682,0.30383307547149085,31.313509736470884,10.952211686505029
+0.14867943043382373,0.3080792655005318,29.106116895941735,10.41933587148494
+0.14930830930698036,0.30585801217711517,28.453975037328487,9.962307414014262
+0.14950856937213125,0.2994301775387612,34.52390648652692,11.268239362409037
+0.15008270299801532,0.3025183373804114,30.753203667349844,10.443333620830515
+0.147888807249661,0.29868405559404365,34.14457109645893,11.039737717620632
+0.15094160846206317,0.29568782076552874,35.772687753485116,11.395273631646193
+0.1509645232189185,0.2985781385934332,29.18280361261936,9.558891816224238
+0.15018806864629933,0.3005184695111801,33.83596761879269,11.3496473461145
+0.14928223410393035,0.29296084046862153,28.250427690968497,8.67941696928371
+0.1501770650248331,0.30818201030567,28.754934083523843,10.35104587990094
+0.1502947979904603,0.2963559000694448,26.694058698378807,8.480370273657583
+0.151131744594772,0.3020070182057061,21.284744901397218,7.244068682612943
+0.14785968642775515,0.30675814450689126,33.27586567851387,11.586668086610228
+0.14900525516544852,0.29696597975616607,30.98592024075515,9.961114817318288
+0.1492805847571378,0.2945825676398438,33.1109052854763,10.352557344103186
+0.15078148296071447,0.29969182290860963,32.96864743573734,10.945011388789153
+0.14851282651401146,0.2916183132153612,30.317250254829336,9.127801371234128
+0.14921877423587698,0.2982639173881653,28.925381995278748,9.36956560043565
+0.15039187606448987,0.29965398441538194,36.01493475976781,11.919092862454317
+0.1481083719775558,0.30051659235748523,25.239066320562923,8.252680218698172
+0.1497863122897759,0.3066948593634432,28.976416587603467,10.230954490672747
+0.14904462241644817,0.30406452476782814,27.21010080318012,9.330363888567346
+0.1489743786483905,0.30382263904150364,27.211541019359412,9.334226473837157
+0.1522280929653971,0.3020264419724161,32.391436329804236,11.095853050158833
+0.15026191428785246,0.2965040354653548,29.056194879822808,9.327388612919918
+0.15087264750373813,0.29826400520776253,31.443131630884434,10.319966865109471
+0.15160047350774802,0.30098844631851057,27.444229343416996,9.245294147609494
+0.14768046274732916,0.2930667749682501,35.273117719153284,10.736042877916672
+0.14990618913307924,0.30127799689737733,24.946552609417438,8.372501808149291
+0.15221840948289866,0.30076299464612216,32.75908648507973,11.087331051491075
+0.15106311356405405,0.30121567658568266,34.0731439216661,11.523747567783262
+0.14911926318439517,0.302321607974659,28.724646739990263,9.69480946935736
+0.1507811028782618,0.2970439092898332,28.62793101162397,9.228297286821583
+0.1493955559484204,0.2988140009918291,27.530626642740025,9.008257231446489
+0.14938779341207323,0.30162462227115816,32.19235303336165,10.799353399620571
+0.15005270405843463,0.29515449394378435,28.036024115388763,8.847496727765508
+0.15043516559510217,0.3020608701856593,33.68921821015433,11.434755287912203
+0.15091623835329154,0.29770312678712785,33.87806857242446,11.050626318243125
+0.15031249012781303,0.2954579124760183,32.02057914739803,10.101605244845528
+0.14949497678899462,0.2984802116314504,30.038440953397195,9.757376696721813
+0.15004301795035344,0.30023018131299134,30.474288331639023,10.11582873526878
+0.15114008108028526,0.30469896553215164,31.136681833626135,10.887815229204415
+0.1488512653493385,0.29856863947108403,33.133648689564275,10.764402495199855
+0.14938064756831884,0.30152732293416945,24.95510809129861,8.356301134165864
+0.15048404276960559,0.29742101862246234,25.5027773133755,8.257472278037609
+0.14972249723558562,0.29513247602660114,36.11891538246461,11.337419716718461
+0.15161875167345293,0.30329994668146504,27.348447368520027,9.450244064427064
+0.15119720345593593,0.29665997579834286,28.187670507731482,9.095387431467882
+0.15012227160020167,0.30277843842606816,25.57051048761817,8.73876602595269
+0.1495970939757347,0.2991464600910206,29.057506719758102,9.545118326559917
+0.1520025955067428,0.30815761185766893,28.701960712750196,10.472143450195059
+0.15056832211425786,0.2995227606784546,36.15805828845385,11.933263142671715
+0.15012785108486718,0.3022570496423323,27.843114886914968,9.481378769334265
+0.14925558949778267,0.29231474294004556,28.36559429058258,8.69239097435106
+0.15137408498196286,0.2988283812154281,24.74927717954377,8.15272647390634
+0.1512526532967986,0.2985003348612405,33.87808964643939,11.152711361712377
+0.1516911560722677,0.30625805760190095,28.96122702649597,10.32784504809697
+0.1509256826604494,0.3067917740647256,30.113577081091744,10.731659594533635
+0.14980057526624577,0.29870593811637913,23.839521436984935,7.763621997331694
+0.15180591688754339,0.28650438799784295,35.006985227903414,10.233984052533854
+0.15011178788595128,0.2962880056798331,37.01079156174243,11.768988543018033
+0.1524013452739238,0.30307322269628706,25.170108472695148,8.752717470516735
+0.14920317241792408,0.30880921562963204,32.879510550644596,11.798266775696696
+0.14880573907496633,0.29927557047780134,29.182586766667278,9.50161739099512
+0.1492125130808436,0.2986644924006054,33.70357641612851,10.939000720689258
+0.14953509791460057,0.2987035017842563,29.440418381217004,9.547129393648273
+0.15207493129631042,0.2943047548166318,27.528801337634228,8.721904798137794
+0.15057456633203323,0.29756614036243345,34.33468153099778,11.164134848358058
+0.150325409543768,0.30036337795198736,28.975500175955442,9.665645465585635
+0.15083696863532708,0.3002733447080845,28.137366354213867,9.359473229034837
+0.14970942519355748,0.3012026555781548,31.809916554047398,10.665514164009986
+0.14896255693408708,0.2983520504582475,27.777092296611553,8.957628181167639
+0.15242307700908211,0.30149223418022153,24.84109159210363,8.479830672597435
+0.15060518830192698,0.29208996040478746,31.888033837975026,9.775207563578924
+0.14998477742896943,0.29964400550504244,34.43155665311746,11.360763680770313
+0.1496866401093059,0.29740447149343696,25.305492835857542,8.142198229250324
+0.1516470146851721,0.30817558160421493,35.117442644466,12.739881437847396
+0.15213351977665077,0.3038491374015874,33.050112553307706,11.50968921156396
+0.14992337437511977,0.29818859037373374,26.701707574280864,8.673109840488346
+0.14864475091623253,0.3025514146274038,36.675428690863704,12.378143495695717
+0.15244074361726803,0.30621651704180547,29.340080406005715,10.461885454655702
+0.1486079386836727,0.3018141498054468,36.112119313324776,12.04943586848042
+0.14819897543526173,0.30355615047733936,32.80081175627869,11.075969099798698
+0.14972386171915308,0.304893640427319,29.790610733601014,10.368572233589623
+0.15025086365921134,0.30228864508977543,26.186279588191688,8.874698120201586
+0.15026688525289283,0.3029337811258193,34.31371417781755,11.702102277862826
+0.1501108112692139,0.2964282232779521,27.317631534558206,8.812731229226713
+0.1498126910398424,0.30417965369645966,32.794245592531006,11.301153705163792
+0.1506974817299632,0.3057821290686507,33.095277678147774,11.552390146256661
+0.14874000475726776,0.2946865500101859,31.326796110624407,9.742173253876137
+0.15052951718889349,0.30082342701116127,25.108513612496743,8.420516371458469
+0.14927104685597978,0.30351183497162193,28.955424616351017,9.85774231850985
+0.14963589069838443,0.2983635373496512,32.93027612148988,10.705746866218806
+0.15053576460028387,0.2946008767435972,24.096850557348674,7.6024963558647904
+0.15062436205024293,0.3013811401181963,31.86341339759568,10.766264206785959
+0.14818169576140142,0.30487275484520227,23.55419782865253,8.091190056422553
+0.1499886751492536,0.30490495084035724,31.771846906437236,11.078823104413505
+0.1507872537419261,0.3035926943644544,34.34574833423175,11.884700678150502
+0.14898145274124017,0.28964097887176354,34.23528904794512,10.126891512483269
+0.14874895985633999,0.2976126211819138,34.77458299307136,11.145460762200292
+0.14948496670293507,0.2959176508114824,32.102081824024545,10.204114009955665
+0.14965217780678805,0.3015933975591987,31.18284449295596,10.468901572260194
+0.14956063368442515,0.3052319520572469,28.890135002136745,10.075331433173286
+0.14893964723123035,0.3022558761126296,32.48206937918695,10.94734995003074
+0.14688478414868428,0.3003855880588913,31.91741543695538,10.380437269012702
+0.15035508586388577,0.30179899749173505,31.140185816582335,10.502961420521187
+0.15091743655556328,0.2939973340503097,32.18386599420609,10.042790060729416
+0.14894560291367834,0.2964818044191132,26.86246237219971,8.542372348201889
+0.14854483313359437,0.30262354291192006,33.39081513788139,11.20643585341734
+0.14962821886708766,0.29731769383173867,26.874271350235034,8.640945394153619
+0.14875514702599849,0.29361653234527835,34.18374290472517,10.43289850608173
+0.14912718817295736,0.2961903636604162,34.12504782251649,10.794049999123548
+0.15181958553483785,0.29860408436378805,29.843128786054194,9.88729749399836
+0.15041845521703084,0.30273525883877533,32.9504853214347,11.186832885564238
+0.15205457474950093,0.3028559302322407,24.865536730262377,8.590437969420222
+0.15041557335435843,0.30268601856826227,30.72241255622563,10.506441093209613
+0.150808313478075,0.3005789226196844,31.38192298166672,10.512310663038805
+0.15034538871716369,0.2986673547739355,35.001483995257615,11.528725114587587
+0.1508814704322279,0.30168125574370275,28.766625677962907,9.74131985961107
+0.1490158166320131,0.2977036058931768,22.665424296448478,7.283357009979763
+0.14979666442266168,0.3023696677764737,31.509743491044965,10.71934821375528
+0.1505171255710441,0.29068190638234,32.15246556597357,9.761765191599748
+0.15013340358829838,0.30740038186083607,33.45087513184034,11.935442883759565
+0.1519787297717845,0.2981165882529669,27.15415962718962,8.924304940325015
+0.14988054934426712,0.30302773822581286,32.704010215853195,11.1248487306371
+0.1495360987924365,0.2969310868400165,31.293193531069303,10.021680319702707
+0.15057718884452106,0.2976580082784839,33.10996067963713,10.7330546610531
+0.1487228304330534,0.30319849788062236,29.1771699099803,9.87336269197575
+0.14905567420144228,0.29959229497339585,28.82540907897291,9.425245181089505
+0.14868281256354016,0.30162546059520795,32.428563478227595,10.808530063364158
+0.1494260884958777,0.2977460684182924,25.112935003887753,8.14363075663654
+0.15133947023668376,0.2998543835987088,37.592191489767956,12.50555865286203
+0.15092000583608917,0.3008955056406372,27.86092727105118,9.41830837021123
+0.1507389074779785,0.29423703350582253,21.67519187825925,6.798172407264784
+0.14843623419335586,0.3041632904485749,34.16295352845209,11.72661037951953
+0.15073957016584297,0.3031615459961292,29.61786423071759,10.144256083228525
+0.15140578191113055,0.3026983774368958,33.25910669226422,11.380231570478895
+0.15039040440742454,0.2958982323868579,29.23422002194563,9.301403258814073
+0.14981423766816268,0.2974147931652726,30.602260616829728,9.858173870411612
+0.1502370150962687,0.29366677041489425,28.670841779042348,8.95038654762077
+0.14854596223139882,0.2993546591986097,30.481005781059572,9.894597873478839
+0.15015093810573926,0.30827334671908574,39.541210183051874,14.204719299208374
+0.14919882203145157,0.300277848773034,32.26306811390193,10.643248672044342
+0.14907910581386952,0.2967624803224476,35.13967609716077,11.182041471950901
+0.1502606484475079,0.29900150747158055,32.06443728488079,10.493890824667554
+0.14933446222009128,0.2989022237158591,30.37209021895631,9.978807042600481
+0.15024074017308872,0.2925352908679993,29.97315922427273,9.244565507764525
+0.14999118987874524,0.2922532353038687,35.2496605571391,10.759938635280989
+0.1485914866981715,0.3087040890872049,32.83673645538393,11.825493709824274
+0.14895914538233693,0.3010829233816725,33.35022956933008,11.076158608665526
+0.14903948682847723,0.29416477437503247,33.98862651702106,10.54423115330366
+0.14830904145437324,0.30636900476862977,31.76259189173235,11.053745410921715
+0.14992175446621292,0.2935526204274009,31.89899967186903,9.90523893260138
+0.1505127021450571,0.30038629388056615,33.35902232235886,11.143127713554062
+0.1493911814223313,0.30527275630775885,29.123289663260532,10.108494518300258
+0.15077551245921803,0.2959661269467682,29.9478264662559,9.594593460372373
+0.15048334142967915,0.3035201547362843,30.1045813996062,10.342143804805152
+0.14954218885044496,0.3032719975516333,36.753363912518466,12.464360820670006
+0.14995557387272285,0.2949728621735323,35.77194822337479,11.17866561095538
+0.15010397167640352,0.3029141122170916,29.755680607867593,10.124794162555025
+0.1509633469090302,0.2997935772809878,36.92148788018323,12.284076654300842
+0.14962446385733896,0.3011647704929971,27.428855691695485,9.164989627809618
+0.14998663957924588,0.2911912177678153,32.25693807185051,9.687922214739755
+0.1518683747642769,0.298858945103879,29.872822611319773,9.888616762439133
+0.15225959401162578,0.2985468134695267,31.706712905546294,10.483080250571932
+0.15047245450993887,0.29492921594632276,33.368831093712416,10.489479199238955
+0.14984687532024996,0.30090596518292445,28.30715371793389,9.451482988248781
+0.15243581817553165,0.2968625600840603,22.536531549513676,7.371573715857619
+0.15187376601470845,0.2983711305207364,31.664041150606266,10.452818724802956
+0.15111741068534718,0.297440508865088,32.46207374753361,10.54723698754527
+0.14981772972620855,0.30108720466417777,34.78965040759686,11.677204407725677
+0.14826348778023474,0.30146727684783875,32.767285175178706,10.895482148978816
+0.1513766289367511,0.29572060346576773,30.76942989854546,9.822019739986208
+0.15135014506248118,0.3021741270526886,31.603354609243972,10.755675896199723
+0.1486383440875989,0.29722273858919357,29.96394681262076,9.529230924042128
+0.15189866667649038,0.29785271713249717,29.76801433636954,9.73625227497407
+0.15031687526101448,0.2936701632163496,28.060600102469888,8.704546157890038
+0.15035834677434534,0.30994681126795987,32.691262120545424,11.90153300453965
+0.15027019587758644,0.29894798838651543,33.62309096177642,11.038233067655451
+0.15020374256526747,0.2980894291003046,33.87042773952535,11.029121150207176
+0.1474740522254742,0.30332729960474014,30.364271246706828,10.229618148421276
+0.14959699146109007,0.2986334024857134,36.61030329007141,11.946214749544279
+0.15053011300252067,0.2918649678858111,26.80323112543837,8.217188107771332
+0.15035752891563312,0.2956455239999933,28.99612589991693,9.213784398692582
+0.14967691438823194,0.3000727884522262,30.774799934422443,10.164447244215495
+0.15082194173870858,0.29809176748277355,32.85084521786257,10.750671445915277
+0.1499383803488793,0.304107145927933,25.380411319154078,8.752910108488743
+0.15068555576073825,0.2966042008050907,30.601448672888083,9.874377579430755
+0.1514367571409839,0.2981518028145486,26.372580392289027,8.669837517039095
+0.14834098525580833,0.3027777751156708,36.58898656043898,12.287030495901982
+0.14977628097229392,0.2997052104469754,26.240760300001313,8.65925686594563
+0.150643100947925,0.302288271728923,28.281631931544872,9.61822124916888
+0.14898356485586034,0.3079496818587827,35.66933459332304,12.681634353035731
+0.14951053591730526,0.29978987583836425,31.447615920488047,10.347293799941689
+0.1505627024938917,0.29466891866021677,37.94228245290978,11.91199196066982
+0.14989560873063623,0.29969860316037855,37.078228812534384,12.308836723721328
+0.15190362265333873,0.3016199295312082,30.52011479320811,10.35382192080045
+0.15051690616188634,0.29498059433075907,30.464121540940344,9.676866880704647
+0.14994678244497345,0.2977087015284275,35.01784118531437,11.287145033043405
+0.15156698267641203,0.30262712754343374,35.136985756897616,12.08467957477632
+0.14945043435615676,0.2995632332255712,30.905255264879482,10.101374706824439
+0.15018947066619628,0.30234784507004114,36.71236511604527,12.405903138988842
+0.14822956302683712,0.30570911123023803,30.054760454375625,10.414024755433557
+0.1495296269998208,0.3058501636576577,34.8282115009899,12.170158773014872
+0.14924355491648109,0.30582183807197055,32.454611952421644,11.267361734579971
+0.15094024428219932,0.3004432513101937,30.01068157321523,10.077152461057176
+0.15112634086391144,0.3036609828958633,31.346497931586047,10.889596973853287
+0.14967421626033448,0.3000955256395234,33.22706719556286,10.978414733736054
+0.15139795459378583,0.3028322081918244,30.07799228373364,10.4089336987374
+0.15003066651132227,0.3014667759668776,28.33673153957974,9.469629921484088
+0.1510828814651715,0.2964010035291382,29.214172116439403,9.414397112763027
+0.15032601732625392,0.30354094372600665,30.965630419758675,10.58093791110108
+0.1515891672649942,0.29529387363277376,30.32259482349002,9.6656130529125
+0.15016903562676973,0.30377587143681445,26.973757329744313,9.214255594645321
+0.14832542185236428,0.2972143535554744,37.98391426195752,12.096884867541313
+0.14904975911375615,0.30051888879180627,23.585822884672993,7.810308005796969
+0.15033547489582336,0.3093301851853609,31.92586290048714,11.625898577532325
+0.1521731811672535,0.2982771781154603,30.822286853263,10.216994542825283
+0.1489718548210939,0.3026478527962207,22.027517984647478,7.456751834977917
+0.14953516681740536,0.2935369689195258,35.19610210508812,10.87603681264883
+0.1489228190179259,0.29950726111170733,25.76557692631601,8.426232597555902
+0.1478966444142877,0.297890814029667,34.6369113780826,11.062427456510699
+0.14941494795930088,0.292707226649036,25.482868046918266,7.814336521145477
+0.14894124066952769,0.30097493272912906,30.519418994165925,10.175104713344705
+0.148255898366642,0.2981466590148759,32.432301192709104,10.395759148289969
+0.1491221958347865,0.2952332935983251,28.399007659301187,8.932168098313609
+0.15173668602886603,0.3032318315191781,32.86117318742091,11.412157127368344
+0.15155745390097639,0.2928468324545638,33.99518923056355,10.564307854390917
+0.1505342492797515,0.2989127297191076,26.150535419349477,8.647319427417088
+0.1486535623398866,0.3056236869496995,22.177181903558292,7.681015120851905
+0.15131870672002226,0.29633802764698236,33.07405751670692,10.626570376397916
+0.1497012045820449,0.29839091040652693,28.605646563782667,9.284460468673855
+0.14968908514563126,0.2959262944660851,28.407098537743458,9.04850036818359
+0.15150892933055,0.2938491524296571,31.39705578306925,9.812686789579217
+0.1498383213345217,0.3003687351574979,36.66966873274587,12.164549441625999
+0.1493262384102258,0.29838443611844784,30.179307977625474,9.80094568260822
+0.15133018305928017,0.2994736763771403,28.443375915027666,9.450862405057096
+0.14812724114631057,0.3013400350963725,31.503811623849572,10.48759803839701
+0.149102508150125,0.29597422578351024,35.38654614132557,11.168538588521699
+0.14920028547970546,0.30248712583082865,27.99970882664968,9.51503416840568
+0.1500121850413416,0.30601152086361355,20.641804469953325,7.243760988122401
+0.15057626152206843,0.29735070699882515,33.92986187827747,10.999087385002486
+0.15029434606220002,0.2995230643351861,29.018779531873673,9.577835817955815
+0.15026058839465115,0.29566600614662647,30.884592681279926,9.775147566357493
+0.14923054593951401,0.30500014363477146,34.6205765896816,11.9519026268492
+0.1503751182258582,0.30724397851783636,36.82974258808557,13.136329518255415
+0.14736539667172774,0.29295985830391935,32.31414686175476,9.766788134743045
+0.151436666735034,0.3029031852182668,33.734978571721605,11.66342262438646
+0.14999580781187805,0.30253235627113617,25.24618749626313,8.586963240176617
+0.1497855262381143,0.2974763045756337,22.80422479015791,7.332009937150737
+0.15000913605364022,0.3012970395266194,30.07177376426583,10.049747486979495
+0.1502697517442431,0.30372832571076847,35.01389516538243,11.983889359421985
+0.15009548489417443,0.296236732954601,30.713681791677583,9.780406638274213
+0.15050356834797207,0.29505399065504406,32.04455660781237,10.1918904804869
+0.15022570537396598,0.2955751127534145,32.59555437240464,10.364451579743173
+0.1541253544048846,0.3004515748836325,30.356597337777888,10.377847975842611
+0.14909308227950266,0.3108749915738339,32.65794601044207,11.955397616999566
+0.15075031662406957,0.29410718145052794,32.98148975378295,10.341071696570483
+0.15027640388126415,0.30271297222803584,35.8673575079377,12.258373509441494
+0.15012699323718334,0.30396773242785124,29.605231536088525,10.173169642879389
+0.14847893873819612,0.2978856755764521,29.03176852609575,9.298996727797807
+0.14932208868156813,0.29682994155084913,37.931109558774196,12.121541960357423
+0.1484760176088163,0.29323082779311155,30.58232519199428,9.344385668123754
+0.14955007006584428,0.30428150510949575,28.539893795676832,9.876179139846768
+0.14875930381496902,0.297063314758587,27.66309360547066,8.772014397997182
+0.14804469175991514,0.3063638129261576,34.930603032211316,12.084066090442631
+0.15049015806552257,0.30290816321999897,31.89697299390119,10.88324944178865
+0.1491134500042469,0.30204026296487946,27.349176736700393,9.180196510289905
+0.15011277287212096,0.29324960594050575,37.824564519376565,11.723865303409909
+0.15008027665698848,0.29899392841126576,28.69117537459435,9.379253045386427
+0.15007647871159227,0.30030529597488287,25.757918629692323,8.524865702555907
+0.15115936149630305,0.2957195802393353,35.9906338767519,11.5118336189257
+0.15064831024824618,0.3046260458722657,30.06259569307638,10.424443933595269
+0.15061854061738042,0.298651842685468,30.06563900185221,9.877213710634713
+0.1472410114633279,0.3046053679469337,29.365277940573637,9.961421188773118
+0.14885271575033618,0.2929230177866814,33.27832795625487,10.144988988669086
+0.14763158385478267,0.30016643013789956,33.95751607022685,11.1688710491121
+0.1481331227520816,0.3056443320514526,33.20105326079599,11.51808569209138
+0.15059581778922207,0.2987190835351159,27.739652984504797,9.098552323255127
+0.15096322172102536,0.29620597936477244,28.152337846860718,9.069890936191646
+0.14796236694144,0.29540086953130834,26.003689366961517,8.120686990122989
+0.14852248281736602,0.30301847232268253,31.120503951316074,10.55749495439212
+0.15199501900506654,0.29834275943558053,31.90023003122476,10.566760530851038
+0.15151692292434182,0.29808091482146903,28.790855202768014,9.462445543245378
+0.1498160108603793,0.2995151857952507,27.29833029162393,8.997101616007386
+0.14829429777762995,0.3010163145079291,31.424286638247416,10.427643958937841
+0.14769255667161754,0.3034204733095527,28.19757013946703,9.532978217694039
+0.14898896817657564,0.2990338791200653,25.809761326170367,8.41263004540696
+0.15074153807620777,0.29655949037315066,28.001490157797264,9.024752047221845
+0.1493168277589642,0.3027254519479955,23.284140620146275,7.914455012435694
+0.1503611186602556,0.2926156562218475,30.736034028612934,9.521811403857292
+0.15293179652456165,0.3010022951070993,28.782444286325596,9.800103166743373
+0.15087276622315324,0.29779155412550723,29.29994431511974,9.566762735038978
+0.15099772625666125,0.2990477316028815,32.094884719567936,10.586004424647749
+0.1510039740031792,0.3048556433323015,25.84446807859412,9.057696379014065
+0.14984147589714847,0.3020788842734044,33.49062803443666,11.402008529541865
+0.1491864374768795,0.296324292505538,31.158599294004592,9.90043845529374
+0.15018982046007234,0.29787068226744956,31.47530671378272,10.238081568873996
+0.14966174932865067,0.30403623490480475,32.28499886121257,11.088480395553287
+0.1478033462397156,0.305319467022185,29.966428201006128,10.280193519546396
+0.15063383620037016,0.2978734472046847,29.618379387831137,9.68047930873138
+0.15130208967867814,0.3004945108738517,28.30268091560731,9.561907316102051
+0.1506814775098273,0.30180755907834167,27.880083461224373,9.366857234422884
+0.1511572348280962,0.29979050077150404,31.038376166518272,10.360140877006076
+0.14866869753909778,0.2926709201661216,32.88745158662809,10.009305914272359
+0.15226691699987518,0.2937388887104163,34.95530929760862,11.0096746429252
+0.14934006534291994,0.29310247245463866,30.27405786892086,9.316492146428859
+0.14936805154714156,0.29359338176888433,23.918886405768276,7.387981622739293
+0.15005757084794466,0.3020044903894831,31.330718671532377,10.600543462985913
+0.14851388340801255,0.2953337556609643,34.87777080389785,10.950662194226238
+0.15009109692993175,0.29799788272338024,31.882547685634517,10.282570526416867
+0.151085086752437,0.29797857387418974,25.168008518328755,8.220848236698597
+0.1500094072603394,0.2968654789132185,32.58699250740536,10.488327722177884
+0.1516036468440127,0.29806408418627883,38.49098255722489,12.632209192201381
+0.15063048670489304,0.2880238754315832,33.22747928071147,9.73041491135319
+0.15219536853327797,0.295088082986279,31.14419732748949,10.007163006350808
+0.1518362714714353,0.30573901702423795,32.73018437466706,11.578871377212147
+0.14990365919096119,0.289869061110288,35.27973947432988,10.508634421777819
+0.14885078497388307,0.29913259202099884,38.280275028124976,12.510183824812295
+0.1500465318909749,0.30095792543855765,35.16279112465505,11.705435000874463
+0.15084583043640223,0.2932465747424362,33.85954000166095,10.549285365796267
+0.15063091187643252,0.3026180578043312,30.134962218085207,10.294715467750898
+0.15072915811492968,0.29506268733874186,32.73815725806781,10.388533999765423
+0.15086560649258787,0.30181879568734565,27.65584021249451,9.389382614327396
+0.14893432591318886,0.3007101712127336,28.048323892048117,9.300555531458098
+0.14934633656986754,0.30082631782538016,30.10128497124913,9.9827520039988
+0.15058346830024935,0.29682860520845117,31.884864277758993,10.281198846924365
+0.14994273821151236,0.2989563573587353,28.364413772967644,9.345919607953862
+0.15046381671226747,0.3009938504914261,30.024701639162753,10.064183109961856
+0.1481107263873777,0.3106386507421088,31.500454428379335,11.402214536797219
+0.1522505684958246,0.29913747085798403,28.003161494645294,9.277244563468384
+0.14969038052892794,0.29641869520628367,24.250115175925863,7.779955055511824
+0.15021846496702582,0.2950626207440858,34.49071448013288,10.872584559701343
+0.1496622898512506,0.2961421327800227,28.560521219905844,9.0327199960694
+0.15111307091653686,0.3063462819345197,32.09247145107929,11.403729931050297
+0.15147229652945604,0.29924370233646647,32.40231042428168,10.727319280927055
+0.14931289322021388,0.3014478817018315,27.542440212213013,9.220504517908674
+0.1506799074971242,0.30051954428720556,26.23776865396159,8.727972167286268
+0.15022615587462393,0.29312475834557883,37.4106389960629,11.54473073316374
+0.1504079496538665,0.30017375463371293,34.52954170915029,11.480378500856457
+0.1504346870265654,0.302949244717278,39.79024715832648,13.564020694553422
+0.1497704180402627,0.3014060622463955,35.68777566068148,11.982445409830543
+0.148830586548473,0.2981893944101862,30.139032442716097,9.700975719940493
+0.1498133356169675,0.2971894475072934,36.15541910062582,11.66058415988126
+0.14934627471315728,0.2986112300270741,32.9730824649199,10.726389611560371
+0.15013194998655394,0.2973389539899595,31.53572770683821,10.127925173972598
+0.1504956745283661,0.2995677114014686,30.97322649672768,10.276708450475148
+0.14935023906071948,0.3010877991019005,30.915131094911388,10.282805375579395
+0.14812241357389902,0.30475855087982257,29.95201686315676,10.24123720097579
+0.14989669811128958,0.298461373196468,33.09700324799643,10.744100919658022
+0.1492561659217553,0.30327440436437786,36.303340172485264,12.400366943248542
+0.14861332050276532,0.30663652575002853,31.697723233930066,11.082901234306297
+0.14802988450220764,0.29465175364442936,36.7316098408919,11.399667714265444
+0.14808982819166042,0.29819576526769315,35.38188412573766,11.44965389920476
+0.15110079294968418,0.29813795048313524,30.209822424408816,9.921130617775239
+0.14860174946799598,0.2996874790399959,28.975966700244093,9.433671311768398
+0.1519268003305498,0.30259144873814214,32.14781077467938,11.046969291115612
+0.14884350482969838,0.30617372380367774,32.204948185321996,11.26158747795014
+0.1504164928599217,0.30005962127732644,29.848425658530587,9.920749853573188
+0.15018789476123962,0.3004224858254894,33.00674236009305,11.018850819662257
+0.14989464923363205,0.30344596557262643,26.214870284490807,8.956724033868175
+0.14898227844873121,0.3132645358180188,28.108834132766663,10.551836441551044
+0.14974728228462691,0.3022633765423788,28.07888026698464,9.467948600832127
+0.1523054714012482,0.2971129000915304,36.29044532214442,11.823021112413187
+0.1495608733225599,0.2917387152760334,33.02095387898269,10.032267876599438
+0.15022830637641693,0.30025239867977005,31.66147781026031,10.560162304860485
+0.1511251602278049,0.29830688012048223,26.293626988146933,8.623960905439844
+0.14859821078475055,0.2948076983961369,29.623880310023214,9.172949198030988
+0.15060779333658947,0.2948601130379905,30.04808116876368,9.519607543522763
+0.15225786250725795,0.3031859355821476,32.94167394413386,11.411783496390042
+0.15084560136804875,0.3058825595741398,35.08423134472492,12.337344496166878
+0.14906769286433283,0.3037442358444106,34.22823983176138,11.712661282028284
+0.15019023858742317,0.30852169543721936,31.72471498798709,11.347519824454352
+0.15214655950602984,0.3045918874699029,27.39729923676181,9.660427536653797
+0.1494396910553607,0.2999942935879489,32.75525706242243,10.826369523752588
+0.14966725637120973,0.3057204094279874,26.218304354032995,9.125035875219087
+0.14846685105564017,0.291805880053344,25.813355422725905,7.791538141358105
+0.1489397926141716,0.2984140877050535,30.156884011046824,9.75630555258237
+0.149294217538122,0.3114123090671663,35.69749033730956,13.117261533941036
+0.14919096631247186,0.29820338218289383,36.127863871944726,11.695763584782329
+0.1497126466264272,0.30257572664234644,32.40779528517657,11.022718274035775
+0.15122992187880355,0.2944124652446419,27.764984326158224,8.758252768327848
+0.15101154289755866,0.3009151077640613,31.115682338068872,10.4537324881121
+0.15005176329466977,0.3019602629327272,31.52397285499096,10.613874924364499
+0.15120698377981412,0.30130586504744034,28.489327578015487,9.61334981044518
+0.15002669293883,0.3006834850556554,29.649186330177386,9.876739463228597
+0.1505652096586512,0.30134604653327723,25.09934580064816,8.47754809376351
+0.15029425731807475,0.3040257183343747,29.820254089447925,10.317144568404991
+0.14754226060636277,0.295373441009842,38.41431242985151,11.877181332337956
+0.1493858122890561,0.2958833198427828,33.82930616283398,10.68290199077261
+0.14986449688394698,0.29957046280098615,29.821992445587224,9.770760639111494
+0.1496367540079199,0.3002724208142547,30.69765363934773,10.16058117723614
+0.1489719573974355,0.30260524473037365,22.005483270771357,7.482772959608084
+0.15089198638756454,0.3022787685205133,25.58102899361957,8.756225333836186
+0.15190337414508878,0.30178780224239304,30.454234865060403,10.449089921509202
+0.15053105342290185,0.30644323179590416,26.418917028438685,9.422455120751719
+0.1492466377192569,0.30122371217719435,32.00922903523707,10.704367210336057
+0.15150227241498618,0.289205335809165,33.97706275463741,10.186864461243795
+0.1497251606159094,0.30082872857891746,26.630621379953197,8.881426185824573
+0.1521442762197517,0.3058244860946295,32.10218377687763,11.524860244093162
+0.1510610867889601,0.30474779291952486,30.252421794452076,10.571288238035349
+0.15113640307603035,0.29674573091382633,36.02377841698766,11.6470087552758
+0.14954285733444406,0.3068643682615875,27.19871334816883,9.600354192765712
+0.1489305318306452,0.30063984548988654,28.21553103825766,9.379663588253973
+0.15102257906447664,0.30038933694176717,24.731427101611565,8.26554090478089
+0.14977734341497934,0.29963063232018555,24.02740914838079,7.907705235749013
+0.15136062020006774,0.2985463466605579,27.468347540156387,9.065545047123626
+0.15160505418070755,0.2944455122834969,22.198497229012176,7.047818248732284
+0.15142169418789814,0.2998678515096012,30.389223322759502,10.133264743071111
+0.15124235621566215,0.3001343894934945,37.133010498358786,12.455808923133633
+0.15322419643205012,0.29625866497199543,28.286926014356634,9.245588466871451
+0.15182002799044503,0.31313553867361654,28.06361196107925,10.679060364378989
+0.14895866669005625,0.3015752702256339,29.059504664438307,9.702656208372137
+0.14965264472088438,0.3008599472111389,35.37087390405713,11.842693341287399
+0.14904772487506102,0.30543244202842695,28.492334688827185,9.881478787621433
+0.14926271553756862,0.301336232359347,26.341280732068192,8.849011147729058
+0.14823410521307318,0.30617905633684794,32.691322942859834,11.383213314099596
+0.14900561998996026,0.3036881231762268,24.33115911683444,8.292501816497323
+0.15143854744628196,0.2958779812321583,25.129058342172236,8.066105606583164
+0.14989297196548387,0.31007492595056785,25.66650949355442,9.392550856256872
+0.15085176574867082,0.30321210854245556,31.28464734775251,10.739376159245959
+0.14861823649256442,0.30294499716514567,33.129519747684796,11.111786944053247
+0.1510948574668594,0.2909132333519007,25.108503358711562,7.643009249650786
+0.14874447595416243,0.30001806900747424,27.517948605910433,9.018044971214799
+0.14990617425815922,0.2962007482390801,28.67453517084541,9.147810939910197
+0.14941922601634963,0.30219102378555474,35.579296143591925,11.95819258110935
+0.15092340675121352,0.29941264484115837,28.760134933461693,9.564020605591743
+0.15098478335341817,0.30112322661412466,33.15040852296728,11.162146744754397
+0.15169710791057792,0.30435413477724266,29.113324949625284,10.155092572894294
+0.15079847170199706,0.29293909677534474,37.09023087116677,11.564023918337094
+0.15127050907939035,0.30566304279433704,31.187007847405106,10.925097167927861
+0.14932354432414074,0.2951760086454565,26.20140117994901,8.243983301479993
+0.1495345774688778,0.3031471043674174,35.87318147045349,12.187311163105646
+0.15020680260867653,0.2987871224042107,23.64620522346327,7.765457237006853
+0.14933175612877905,0.2959127904806434,35.34437988362145,11.1875385728892
+0.14964744773590982,0.3012767617295626,26.978608141682614,9.021664508189168
+0.151145371777391,0.30051029398959794,27.11569227431594,9.106186671732084
+0.15111955167466576,0.29295694306018033,35.488265569215145,11.066496313314644
+0.14971940502963643,0.29818482164800797,36.225830863171026,11.751852630894621
+0.14844470660531048,0.2981811702953357,31.431417900754628,10.152141175623852
+0.14939225383637997,0.29563432727383315,27.208364011550376,8.568257630636538
+0.15017198536653975,0.2951166341953343,35.11423429089011,11.08040484706066
+0.15011315158496144,0.30271600345618455,32.43881885057949,11.036882359738408
+0.14992216664467153,0.2990871181528048,27.118617657836957,8.86366722133734
+0.15175406886338114,0.29670504087922767,32.474843472313694,10.47386135973643
+0.150127933206049,0.2936240137629463,28.007121095296352,8.701485835911893
+0.15036849881143918,0.3035837196838063,31.09839903842599,10.717982896647312
+0.14941907541743543,0.30109077129859835,27.8014635226147,9.23392852879676
+0.14906286469676874,0.3109754999834244,29.21009422167637,10.724307807887305
+0.1504970875809081,0.30291645025656566,33.21441327446024,11.340373445618006
+0.14896210366945206,0.30203667872603285,25.89583835748918,8.690948022677132
+0.15128921703570983,0.29846953166160833,24.617717808822785,8.131978501014634
+0.1488725249346793,0.30148616462831496,29.252164038388667,9.74820577783682
+0.15117242370617887,0.2995695301273475,28.962572808333153,9.62962219798294
+0.15022239163387566,0.30434209506533694,31.543667279743396,10.967257943284338
+0.14957530807736327,0.30093737586358743,32.348605481583235,10.794051141420857
+0.14912582179311112,0.3049678947152007,30.76968555228279,10.613918426805496
+0.1496386797517009,0.3072106658179281,25.85457676891932,9.198425578542896
+0.1515675993171849,0.2978501224463362,29.469686803241498,9.652752847318808
+0.1500297924694628,0.30138410209185634,29.724173335132342,9.957973209466008
+0.15041352228833896,0.2979384023138176,38.68980179184523,12.604852751008584
+0.14918815200313923,0.29183427495423425,33.458283947861496,10.140648608083001
+0.15071152894797057,0.29832892972832353,38.387858462146355,12.601504026459208
+0.14986652747449822,0.3066474503327988,25.651208947296563,9.059638940159171
+0.151561693967517,0.2927568654541119,33.295312503291754,10.341066129705744
+0.15086294999832375,0.29763717654564004,21.744149338192965,7.048884840944611
+0.15256479599414996,0.29415933695187657,27.962854041051393,8.902834396999987
+0.1512074376777576,0.29659193776537884,26.329704675953167,8.489946238385286
+0.15075946854027344,0.2963422943240921,39.60367759354076,12.697384159384901
+0.15091058474286814,0.29625006798650644,25.12926605902006,8.088442363062612
+0.1521340700130335,0.303414844263604,33.55805825268406,11.688944607548681
+0.15056411287505123,0.2980821551571164,34.85711830668656,11.403214969134735
+0.15055837156094368,0.29737321282557255,36.02893198369916,11.69868036242822
+0.14995617149883886,0.29787116232945976,31.08820042039598,10.055997490359635
+0.15023082391935225,0.2966363398033971,33.09250364731737,10.64315935280745
+0.1494726904573847,0.29964771064536977,27.174538708162476,8.965135396486836
+0.14920072834562562,0.3064964410402077,22.778640032474637,8.031898358089402
+0.15147178868725927,0.3047472274174656,40.93979616455492,14.271121717263156
+0.15132870536557433,0.2998870104596311,27.87978606331332,9.284929045384395
+0.14981101103111522,0.29761004567993304,31.076909101720428,10.089171783479022
+0.14927347022090487,0.30520977169901803,26.916700514251357,9.30385142084077
+0.1478053152370585,0.29381871293393946,33.77511051100764,10.405804969249724
+0.15203011339355585,0.2979734266429518,33.427208213918,10.957501805474324
+0.14952889971886757,0.29797681069983173,31.716868079212063,10.271564353479542
+0.1493101122266086,0.2937132681251049,35.7528257981979,11.093519480421532
+0.15081589742144147,0.29713834350148005,29.446001575331437,9.492752464592886
+0.15101117697387964,0.292397404298454,30.701605434161163,9.46361387862647
+0.1491520864309564,0.30547216654865955,26.166749444370666,9.1455255227331
+0.15059247080512933,0.29768760284348883,31.176957197773817,10.125909202310742
+0.15133852724258548,0.3014394760106775,32.582137157495815,11.01871966749891
+0.15094814853062322,0.3071505506165795,28.325168913752357,10.163478449827538
+0.1493840112107584,0.29489207138094714,30.46932622774596,9.525443529513161
+0.14880854376055452,0.2977761789325469,34.50303285411248,11.114008517527502
+0.15223426719742603,0.3054890888998048,32.38573643326654,11.480336320832942
+0.1501488958172099,0.30386209462866426,27.295798831660232,9.363534482697851
+0.1497384878839139,0.29263416121062436,28.60287090020875,8.788433165366559
+0.14866834602223822,0.3051387761227575,31.25323272516459,10.764370733721872
+0.14888610625422405,0.30183085480543775,30.266480886667647,10.135247680042836
+0.14974090982936505,0.3020660096594753,32.544570471828855,10.97218986969217
+0.1521298637222844,0.2993844078537772,27.324380455095028,9.137778967575036
+0.15043668583169326,0.2916470504709213,32.28562412235744,9.857861000927526
+0.1503224116176071,0.296749151256866,26.726582823233322,8.544967889621184
+0.15018367744359695,0.2994759326535422,33.74031154881786,11.133827018471907
+0.14931394600667658,0.3010354208235388,32.021040696786436,10.710487059446583
+0.14998424910574618,0.28754859802615323,33.68595141255073,9.791898334294954
+0.14961392165771523,0.3015330409384611,25.217375803164902,8.493563802153865
+0.15053486931035737,0.29888191085825133,35.20737012181189,11.486302712368355
+0.151142586219533,0.29778372305645195,27.03883686627093,8.823299133649241
+0.14894826676660325,0.2918400317845817,34.141419407230565,10.32387492883728
+0.15018379273216284,0.2960231801001271,33.75459338646803,10.811651928335586
+0.1506718259056363,0.2989787978138815,30.178258842110296,9.928258137909094
+0.15014415150861565,0.290915497153799,29.944102709680642,9.022925002584005
+0.1480310157137127,0.3028215192862707,31.89268952213591,10.694691272908768
+0.14996134204222694,0.2974932247769126,32.26728830357885,10.487942996793732
+0.15034071134023674,0.2979739878101016,30.008760392673665,9.860086600171636
+0.14909155066244903,0.30156871707891,30.782905181615323,10.304133052165374
+0.14852178867457222,0.3067924998968724,34.21845453470047,11.966155296267727
+0.1512506814955317,0.30213155838835193,28.82714246112647,9.830896485709994
+0.1495571476787501,0.3005010150069177,30.787242705571426,10.162159194800498
+0.14949883834791064,0.2980819377813016,19.6258908978537,6.397772198785832
+0.15084007937242583,0.2961632241753646,25.952239710678967,8.28730874771679
+0.1506545264657286,0.29656219397990546,35.7965638060532,11.536390672964867
+0.1516477684486405,0.30075570777629484,29.402510400154082,9.909401372167569
+0.1496047314538365,0.3016821358845868,32.6351573917845,10.92338220146636
+0.14888934930908235,0.2952514109433,30.047070401267252,9.388801729904365
+0.14861533212939357,0.3005917926606154,34.90578674998347,11.529410543901207
+0.14922286098631735,0.29866994812324027,32.57027551713953,10.61792734206064
+0.15065703720230675,0.298943170846755,29.377173456210226,9.71039984744528
+0.1502155017551837,0.3016186214100062,28.63154783804462,9.643395259747725
+0.1491486372197899,0.29944895380753417,26.706146263385428,8.778457814857441
+0.15086808975830185,0.3080825928796563,29.529543909566176,10.647273703153807
+0.14934790055401306,0.29962122900531424,30.983280585215127,10.245545568601331
+0.1515831586600561,0.3026301976868861,36.4562194944923,12.547735637778032
+0.14910593781848044,0.2948255540853559,31.24849391843507,9.827977117224076
+0.15103257492283975,0.2991321740705448,30.083590960673412,9.910015801452266
+0.15166254789709696,0.29455929920605767,27.830511240464887,8.873359474051721
+0.15074327180274424,0.3017558614717207,34.59588783921133,11.682467177715024
+0.1510608713235501,0.29896309740494736,28.820325772372662,9.498277388967354
+0.14777732884950742,0.30000172492927263,27.68298074483772,9.049637951007414
+0.14979211952961013,0.29339258200200713,32.95323455338379,10.259793187733061
+0.15095525933221648,0.29474443866357813,28.602314532354846,9.008429806042852
+0.15035433986595811,0.2988222829879352,32.01360599093954,10.542340322790563
+0.14750188812901335,0.30364006141156796,34.30074730639062,11.595623388092449
+0.1504791539812429,0.30204651126913884,32.77281454600361,11.148147845681782
+0.1492416485679526,0.29709710286880975,31.12619777780687,9.947950416856036
+0.15017366299012835,0.3041146862391496,28.27865264321392,9.824269248310651
+0.14839609954423916,0.29995316359199725,28.74228086073487,9.400082102196803
+0.1492446337581718,0.2962007342539894,31.144262743131087,9.898108080112248
+0.15140404301143381,0.30053941556347147,30.417202505995732,10.264103906179074
+0.150442949910232,0.29339147656246206,33.481859265304166,10.402088021535837
+0.14953665119713627,0.30009377341384075,31.310048372875727,10.37342296677762
+0.1488861425588887,0.29919176370096817,30.63692014990333,9.963704582919277
+0.14950247892925136,0.30370134831252193,25.188874401915577,8.62972413882716
+0.15220577924821688,0.30529913582169177,28.41838377578928,10.13501805247569
+0.14979055224481774,0.2975311008612549,23.058283298558667,7.471389513606323
+0.15070262307354995,0.3017957559481223,33.603330063451125,11.362312493987947
+0.15202844963798107,0.307598262964139,28.31409712817746,10.273603230781486
+0.1511315711701656,0.2942840776145417,30.500411218717208,9.634320831173573
+0.14908571755591962,0.293805979587032,26.792266049604052,8.251382679744808
+0.14990871542608614,0.2994830878797163,33.756139837226904,11.110804754760034
+0.14955308892528868,0.3049899705269227,25.16086034680267,8.761036080197803
+0.15055353447564473,0.2982317943488366,29.134731378819858,9.456379970033511
+0.15089446491319494,0.2995502491022185,27.999742866030946,9.268509450422663
+0.14961168227650315,0.29747741934696964,33.25837885141998,10.67293191854527
+0.15173476422385293,0.3058457713873027,32.546363179702524,11.488558520973434
+0.14899129336804925,0.3085183296164596,29.462853474235914,10.508219363752321
+0.14880087583163304,0.30078599143067003,31.312820759347503,10.344466244148961
+0.15185280753832014,0.301097799432167,34.08964958414464,11.571705746281204
+0.15149786666976914,0.29750639973516857,32.820818800950036,10.699817752184854
+0.14951829097215283,0.3022263242869996,36.65908855590047,12.331709429953394
+0.15150307452008413,0.3007483184923705,35.317748904629795,11.967028847366075
+0.15093507337281828,0.2923859682610989,28.227785735261786,8.652626441499697
+0.14871082347643194,0.29822038096405024,30.282944197321953,9.703823815943897
+0.14975117624955195,0.30078366796927136,29.44162765625469,9.776070308947899
+0.14953845579139444,0.2992642658157021,29.490424576603434,9.627338942129208
+0.14968005104502005,0.29652347913511706,36.848887909614376,11.75124491580683
+0.1503928045995043,0.3057638308924176,35.22296066512316,12.412338113581262
+0.1510290761450909,0.30176757038235696,33.44946674370856,11.386359809265437
+0.14967251523433858,0.2975295584201429,35.53523220957442,11.506425548838877
+0.15174707403638224,0.2965522213707628,28.851603917384136,9.394251107211947
+0.15104598098775351,0.29547170730558664,29.648837853554642,9.430004343976206
+0.15029232141111662,0.2953800550655445,26.366623541425675,8.428977806155663
+0.15051548994963002,0.30434660820759446,31.370205778147625,10.828580780602662
+0.149809091704635,0.30244855913974156,26.08814004309508,8.865835620982448
+0.14898567174917257,0.3035883558151573,30.201274317898058,10.322624598287563
+0.14887104084292638,0.29419070474778297,28.703957801023364,8.929079470385005
+0.15052001383088737,0.2971864947401284,29.127662769294613,9.402419299681794
+0.15151567902251742,0.295795539261503,29.740264041164995,9.547748548255436
+0.1505796857389685,0.29946214850449815,31.008913265929074,10.215326004523678
+0.15143304649420267,0.3040776968131699,39.92561655358517,13.862457004382225
+0.1497195448311107,0.2972571200862042,28.32587027990827,9.093486229302009
+0.15119790714136097,0.29681228191937464,26.04978670814032,8.404798095039222
+0.14987354402325684,0.2900341734434252,26.530923795304602,7.9185370812721665
+0.14952876177248123,0.29895970188307947,32.900135256727815,10.804866704973763
+0.15000533438179742,0.30108848785158343,26.20527835290352,8.778910160423719
+0.14897510910960718,0.2969570626750955,32.135284310739934,10.212086571470058
+0.15077275989119177,0.30692324397186743,31.647578858898683,11.308856584866088
+0.15041264595985135,0.2979900298950135,27.451462481800363,8.973301605247967
+0.1510344149399867,0.3005652675399589,31.50016163446022,10.567032474837383
+0.14852155070840928,0.3122976006149431,26.784356697344702,9.883214134179356
+0.14916463478027822,0.29819907021399306,28.273823761094597,9.150887552458656
+0.1513765609507791,0.29405142155869907,33.899093257815565,10.649806100646774
+0.15009394595042144,0.30737037958901614,26.607599435579694,9.499680749009011
+0.14943807510159646,0.2955714186034058,34.679680629203894,11.011560035676531
+0.15065666978335784,0.2961919776732675,32.361305175736675,10.44153231603996
+0.1503573423874384,0.30630699116151533,28.42476004751399,10.061499441009095
+0.1485305666734166,0.3076325030141995,27.00556497102724,9.585118379103307
+0.1498645987871358,0.31130995990397176,30.12235734934505,11.104001385389955
+0.149613547462557,0.30136674962510906,25.395497076052735,8.489969402228283
+0.1508462590124835,0.2995741362538597,26.4012322294235,8.76599343545489
+0.15184264642439255,0.29157404108685947,31.175073513407856,9.602563300719648
+0.14902708025334177,0.29920606144446443,30.10617091353026,9.820289591814513
+0.15067925143318403,0.30021348348902127,28.419533771472825,9.526138506174336
+0.1491333230639334,0.3036205244871966,27.97583055503591,9.566800422520473
+0.15011938192646496,0.2992628248156925,29.56845844602312,9.682032608720256
+0.15010133842038284,0.3086003223287547,28.309488888131042,10.199500932842986
+0.14823542770895357,0.2994313915598302,28.04282202719333,9.122037185348661
+0.1496992930364272,0.30541445290457114,26.611269414647463,9.29961820624645
+0.15104270107094583,0.29755254980832435,33.02016206502069,10.79678255209703
+0.15047958742121037,0.29825871539913207,28.72303669756765,9.321673550143162
+0.1505266803275588,0.29929573229495027,32.10690764117034,10.54981803794392
+0.1507756720093018,0.2979962710538632,33.43703938201512,10.872928476276089
+0.1502191945541916,0.3047626420083809,32.347995577292586,11.267130753810077
+0.15079658249355812,0.30406515022357794,33.71607050255752,11.693614598629372
+0.14800605909233314,0.3051980238187954,27.841508262129892,9.617138948591503
+0.14956072434879308,0.30106041627566793,28.234560637016806,9.428547387987035
+0.14974056096969024,0.3063803684999037,28.011662585021984,9.859588998656694
+0.149748465585612,0.29554550797923884,27.869790916554003,8.886555579997898
+0.14968690340760352,0.29500297270217196,24.679872733312475,7.7256666619817
+0.14946937122029516,0.2961629380540845,38.74878436190127,12.250217548053737
+0.1515344500512161,0.2944219919265016,34.73872011294477,10.981216205738567
+0.1497758646224404,0.3015951844868561,33.01143945917801,11.085392527731745
+0.14968482461378135,0.29482269263604205,33.40750485413376,10.50125961595117
+0.15017562679644741,0.3004621131945901,35.22726688321199,11.7467347403298
+0.1510504598635516,0.29840205477334897,34.17635408335288,11.257622298446048
+0.149343492370526,0.3064716726792262,29.904360240296075,10.584249256027228
+0.14933207032546078,0.3037492864274846,22.77859756334208,7.76264002862742
+0.14936464104755526,0.29785777313010764,31.96978923889302,10.331561288589917
+0.1518412771895563,0.2994739605102518,30.201337330420078,10.123159621927957
+0.15186406232421334,0.3063044089776712,33.452334349509364,11.918410430123709
+0.15063330584912726,0.29208438208066906,39.99279445217967,12.26058834675306
+0.15016536003182393,0.2984169796198786,27.615038222475047,9.01478188715027
+0.1501870338592334,0.2964432680071716,28.69189501184259,9.242616141283198
+0.15087485633157044,0.30223832971972997,27.307615420325725,9.371387621303093
+0.15001022248898382,0.290054268613154,41.82188749997335,12.597111291659678
+0.1509229912489039,0.29282053531408725,28.985317309374118,8.969141727805312
+0.15229196140962825,0.2993102554101151,26.4344045043552,8.805186100314476
+0.15111742383059157,0.3114372136531628,27.38210080286549,10.176549939157905
+0.1503161130804667,0.30172310527093477,27.428194281679417,9.271952657699885
+0.15088942587935258,0.30293962172235944,34.55649754746703,11.82732179983293
+0.14968347004817967,0.2963681507678417,31.6686442713841,10.071909610944154
+0.15121548300945423,0.29935537318548283,30.764580687190946,10.268309031748062
+0.1496712805259904,0.30268975871505416,36.14961770685619,12.295691464811078
+0.14988978664065455,0.30104385035006287,29.49680977930108,9.916412745526547
+0.1507718846600001,0.296087914366192,29.201373658513827,9.34899272291679
+0.14998810080052064,0.29906604484174776,28.172674329139873,9.229284528048545
+0.15036948988425683,0.29647951671551354,32.559920287163486,10.414828944459021
+0.14994258538276717,0.2945250821124289,28.046889308522328,8.808079298686172
+0.15065895017558212,0.2995442437423178,38.1196634358324,12.586851288226853
+0.14910340508092693,0.30597460652679903,29.378356860378403,10.279660903076387
+0.15021687872998443,0.30243021178272517,31.64099182658393,10.746730881013708
+0.15029389176663036,0.3073254360362671,31.49963100818114,11.209109847829364
+0.15098178955569894,0.3015026429644915,29.381772942858035,10.011548144629886
+0.14998407323899132,0.3033420623055259,34.73047774847678,11.89325845068741
+0.14911413997671102,0.29513167956418984,33.82609652006528,10.640128675183343
+0.15021296747843083,0.29362966531270995,35.95831394020289,11.167250573333277
+0.14987248062936742,0.3002577710729399,24.098789340422023,8.000105268791062
+0.15135232283735608,0.30157132984740626,29.315174399759858,9.977251418957046
+0.14885805625036697,0.29417866078243804,31.917689450149755,9.879495051140061
+0.15039569861527252,0.3037316621056822,23.825414358736644,8.26254613412473
+0.1503412335326959,0.2953960426019914,26.520821103336996,8.413805602380233
+0.15184348060687908,0.3035138456633141,33.12726576611029,11.506401747558224
+0.14930499604914743,0.3015342195214826,33.66274701094979,11.272261034140675
+0.1493676515996755,0.30551357611837265,23.666249913295722,8.275274925329487
+0.1494298072647658,0.3025664247428508,27.563567553961484,9.367600114146345
+0.15007814088649948,0.3000549342854823,34.09165457913022,11.332599341822851
+0.1494891405939133,0.304940521099979,25.5188981534343,8.841653147115647
+0.1520684367029533,0.30333074619473405,26.263149334026245,9.118743523335933
+0.14927726563185265,0.3017961691331789,29.287114938756815,9.785472991324657
+0.1480269603074748,0.2965944756056452,31.87575975821562,10.107630019042514
+0.1518193094698921,0.30294483925519994,27.958077471475075,9.642311244121093
+0.15097303675808948,0.307196442565776,22.12392205821388,7.93656320522342
+0.1519735606108645,0.30841532883341555,27.89363843770941,10.164819134198458
+0.14996791377911878,0.29582664441056306,28.081467166050544,8.884566517679108
+0.1531689991449198,0.29433693707958725,29.549678155116666,9.446568279792606
+0.15123880820516833,0.30377784793593926,27.549991752148834,9.529123599289019
+0.1500749316737607,0.3041549480576537,34.11535572262504,11.770923466036407
+0.1502942310389208,0.30185117304749415,30.081066402119315,10.183267013302787
+0.14932002409181153,0.30089938882158723,31.91108532321774,10.608848081143748
+0.14903441523397976,0.29467251606634565,29.031538714306475,9.10003613525027
+0.14919764360713542,0.3015096936019632,29.649247987895897,9.920648330026053
+0.1504178720967435,0.30167584867698904,25.204712060578686,8.472776777918977
+0.14937428632792824,0.2954677970000206,29.201837100627788,9.210474370105015
+0.14923659850703425,0.30384504232515536,30.632543996385866,10.458092930323943
+0.15168119400094357,0.3032390531296838,29.90878482000189,10.405293610530896
+0.15104520883768593,0.30909414245148314,23.27815042665581,8.479006516768493
+0.15096693220556273,0.30583673014123547,28.732627440425958,10.135677913412426
+0.15260862447714585,0.30248374768612657,34.18650288453313,11.838722770648536
+0.15179227721233832,0.3045880136891935,27.639786003554775,9.665437249008212
+0.15022802182759984,0.30523732169773543,29.3574639188076,10.243633006787688
+0.14969412482666858,0.3022224370478047,31.274326669159144,10.611566293486629
+0.1486690385772201,0.2985767400811006,25.270347501749338,8.158969082500693
+0.1506723929492869,0.29874290483693544,29.86431806301067,9.784359472470458
+0.1490988213219637,0.301807980469396,37.012204771860986,12.381478724596835
+0.15165348101340928,0.29542307905843057,31.796588923763906,10.14508242851292
+0.14924108140551937,0.30937697248255797,30.29057818174489,10.922984186189638
+0.15067285073314496,0.30008675738002444,23.94532772351791,7.965912387155629
+0.1525580814659607,0.29608549021037606,27.13980955828739,8.798245675546216
+0.1488520047043616,0.2938426557564193,36.26600887791395,11.161192830944437
+0.14854610757163458,0.29746645963126167,33.061016509568844,10.589611368351761
+0.1503403163716151,0.30304841201678334,24.652837787619198,8.455667527047247
+0.1491654630906485,0.298159298536353,31.992245699835102,10.333431470014016
+0.14874977844241816,0.3005474113701993,35.16661275448858,11.641876831380314
+0.14982798489329338,0.2975900516824233,30.92905084326061,9.953034698933799
+0.1502784968557064,0.3010514805195591,25.7901368657444,8.740547268320514
+0.14872629376831528,0.3047199337580296,25.765062555081542,8.86842327286035
+0.1499447015755763,0.3078349636338116,31.28391105076725,11.140847784853893
+0.1499804679737111,0.2908019844851951,30.167974328875005,9.107846992720729
+0.1500712367313619,0.29543334863141096,30.31430523862297,9.552872401198497
+0.15191481088892564,0.3025726775450782,29.90973595829352,10.292087817382015
+0.14966547007599815,0.2997420801022403,34.373567255400424,11.353208562141775
+0.1518013590364544,0.29540493294027537,31.72180445494497,10.182001083148872
+0.1487280216495855,0.2911403045553556,31.50306957958248,9.471416107454315
+0.14944237471776173,0.30892328801401375,34.88899396921994,12.540344894459622
+0.1511286811310313,0.3030573071722334,31.067358551571452,10.69783314868141
+0.15099472297777933,0.3061067800941891,27.527539529535467,9.705992018742105
+0.15077150788550756,0.2940615128990289,30.118299828754527,9.376212489706758
+0.14999115056648413,0.3061321324250115,29.916347750418005,10.476553940631478
+0.1487375524605342,0.30231389238414536,30.841355684601066,10.373484579760536
+0.15069986825794535,0.30048525301507906,36.26397486944406,12.090702059402926
+0.14870475167174868,0.29807045850494357,28.56265873841055,9.169442020910662
+0.1523782134317165,0.30576346710508756,32.1821512187119,11.431026081304616
+0.1504590293608006,0.29670122119319164,36.48025074863726,11.709446244654666
+0.15101358843513132,0.30960752722614965,26.87718189221372,9.873518327348648
+0.14925675864194418,0.30449861870596395,34.15268368801648,11.758455161207806
+0.15032526865802828,0.2994120051766088,31.634118034225843,10.388692619478775
+0.14897868392468921,0.30347987840336516,37.870246469894525,12.882938727156004
+0.15033547315302165,0.29424555820972587,35.36830686428407,11.056759620587576
+0.14961787032965754,0.30502439582941426,27.610174174348963,9.625944976827414
+0.15090436643043184,0.3018468564086428,29.881265904641808,10.107684413867466
+0.14990028378740047,0.2941607298435432,28.259158055442075,8.779197772945894
+0.1505822056785037,0.29770832089490573,27.99663516690238,9.135687449225397
+0.14968624223845758,0.28751959886636175,30.564632886228885,8.845362358018036
+0.14967474554887353,0.30188488937383756,34.49988748256376,11.588681363609691
+0.14954807707502596,0.30498880298153697,34.96952327862831,12.14518303032861
+0.14950125468570355,0.3007746170106346,27.455615810509208,9.146313683986227
+0.1514378921196374,0.30281247944731726,25.92234356830935,8.940960277737116
+0.15014300421380464,0.3058694756975804,29.014745948967583,10.19000508001916
+0.14884711706718887,0.2922822147255014,30.030813477359064,9.114208557338348
+0.15028306986615797,0.3041773500103569,31.697902555516077,11.006777935958013
+0.14967562457293263,0.29384700645155193,22.953836430368085,7.145231709855658
+0.14916196598130044,0.299986672144408,30.3838394732929,9.995705418271783
+0.15053444544225805,0.29778573770123695,32.559939942109025,10.545910701263361
+0.15031606768746014,0.3049145962833051,30.866558394995412,10.768989206723667
+0.1498781448851506,0.3014155997121122,28.09299886904244,9.43872349700542
+0.15045520316462554,0.313148763552408,26.503646353085053,10.028786455323218
+0.1504399148819768,0.29903316922606626,25.490417733822856,8.392393403052093
+0.14951578875272567,0.3083124021224467,28.381332384299416,10.14422925273544
+0.15139838673974115,0.3037531366058669,33.16189789898312,11.501398125230772
+0.1492815558818799,0.30687509895790427,35.405547826753896,12.530772699271555
+0.14973598468331248,0.3011453420856062,27.606940782416117,9.19685412157689
+0.14896151183545464,0.2960874454788772,36.32292505781397,11.542395925038445
+0.15056321735472536,0.29914837871775,36.41021646373123,12.044131753496337
+0.15296797459352632,0.2919507076384568,33.39068463728705,10.47569640503674
+0.15032417050023703,0.2964351288527715,37.44123425062528,12.076377250171044
+0.14904507900004393,0.2883954189827876,33.78670937856983,9.998770239140066
+0.15001202552660098,0.29779136354324315,36.003361330421754,11.714174979184413
+0.15121147892312442,0.30161169758941203,30.072420235168583,10.222361554779464
+0.1496038235068478,0.3046264063155847,37.82297004630484,13.059081646345078
+0.14914555536520616,0.30090670894524585,31.197693088438985,10.394491363436074
+0.14928554421418372,0.29035239167155596,33.84413781939642,10.152140447471535
+0.14968623820751964,0.30290973347162664,30.017677555152538,10.259614582990839
+0.1491260791798458,0.3009399504381811,22.837430232415365,7.615550958266082
+0.14914175041791794,0.30076892395672417,28.968396295594044,9.622023124198686
+0.1490601038627124,0.29513226861150027,31.651325718703674,9.933809202227467
+0.14995519582918143,0.29111166263195537,31.107272299735293,9.423152984380092
+0.1503410464134173,0.305144163295508,27.55138247398326,9.673437258886295
+0.15187647335887333,0.3038126713712855,24.651444305739997,8.53909479786559
+0.15040008845925257,0.3064480925294294,28.92500119499235,10.225069431056108
+0.14865675980464615,0.2961931208749516,25.267364417395093,7.979684766167419
+0.148566642762258,0.30453020189864455,27.702585285768023,9.5116311346866
+0.14907216388017433,0.29904046917584787,31.242391181107653,10.177893540648709
+0.15117921775206944,0.2975342948486884,27.69026504180015,9.010669753420958
+0.14793771412018225,0.2988544155021851,29.228167838592967,9.450703942620626
+0.15079386272291634,0.2934540573712781,31.16353439422895,9.656296131605744
+0.151443257605908,0.29306308548585636,30.564737843053436,9.601889358323264
+0.1507446436800092,0.29113005372052925,33.07769823178932,10.084995104896159
+0.15076942603169716,0.3031282452239175,29.733884584233934,10.171399398928182
+0.14912899257408707,0.2926021152993033,34.42249456964207,10.541868802850217
+0.15172983994009073,0.3000049525744535,30.720474040224023,10.244211913507186
+0.1500499029535393,0.2909995381754903,31.741298640037765,9.580042045838699
+0.15001186943085146,0.3021939752133033,29.82831868456542,10.154689053399647
+0.14901290698822747,0.2960383191453897,33.31296401382358,10.582114886109114
+0.15044446124998886,0.29516374327006506,32.036840751720206,10.125727438979784
+0.14841518785321603,0.29678104806595673,30.70317215609433,9.712041678070014
+0.15259206154516802,0.300713110947691,33.16345133207845,11.254919764886633
+0.14826082943366248,0.2990522655217091,26.97827797372749,8.740926605459839
+0.1506957158051959,0.30002230035774907,32.753506359667156,10.942788972259141
+0.15111929860086884,0.29406988123356326,29.834841289004398,9.401731512647478
+0.14923129005118269,0.3064189954738967,31.224410377978334,10.898516171571666
+0.14936746117538355,0.30107915492503967,31.980563490303304,10.683527290079416
+0.15007267744010963,0.3010756712630488,28.212293691129105,9.455335086870447
+0.15001599014911476,0.3007428862547265,33.1514906027294,11.011608616097684
+0.1490438554696667,0.2981857707661694,30.12944667092234,9.75157693896294
+0.14891986814402838,0.3111664211887233,29.56900990106741,10.816237694838591
+0.15019489307633668,0.30686416083205487,28.228689109657243,9.973974418319408
+0.15190817727262215,0.2953403955946364,26.67066728334512,8.558884096042
+0.1490750432663226,0.2967320122016201,31.697075894639053,10.100015720670571
+0.15254311422472636,0.3039746732007331,27.671599357048205,9.733741866144252
+0.15202838324927517,0.3025673771141059,33.006563723722465,11.385826110575797
+0.1479133515889009,0.30181748275262815,36.19878088452278,12.00378849701912
+0.15064950375908343,0.3022749747527126,32.23039997457845,10.981496753648385
+0.1482269444347546,0.30164399223972177,21.542968565409463,7.168069279305016
+0.1496966319949425,0.30008155357827265,27.70174779880516,9.184572322531057
+0.14851425441389077,0.30381236227683783,33.140264637078836,11.334335455768969
+0.1501793878783565,0.2945422894065405,23.620522305220625,7.39065118091739
+0.14687643843287412,0.300172497923128,34.6772242562673,11.346224253892323
+0.15193554191175593,0.3033933693083523,34.839639605013176,12.123589158060131
+0.15151647428032047,0.2887964747830914,27.355891845168905,8.196571576818044
+0.1487212339636145,0.2991792774613197,36.63529510329732,11.915546050010652
+0.14978708297678134,0.3031019438405156,28.79596373957083,9.803591889184975
+0.15083023531082104,0.2928457876986027,33.476388023897115,10.401803846471305
+0.14988336582394982,0.29636674749804903,37.997155909348535,12.125290644324119
+0.14849041002974703,0.3063039275841574,30.69531522743358,10.66311357818529
+0.15132972004336623,0.3001837677873126,27.14982375813077,9.042910251919869
+0.15009290220780028,0.2980083777527282,35.16384480378739,11.396998288590748
+0.1498063119729323,0.30518494012629854,26.810820220302045,9.284140289991559
+0.15067086870520985,0.3032117544269888,34.24061741796382,11.722440823129627
+0.14949328834325437,0.3024362874109427,32.983768312712805,11.19022715214461
+0.14803025969739506,0.3015453578534581,31.942518519907605,10.575419077784721
+0.15125996375758358,0.29666134307019476,26.894499688439637,8.680600586161708
+0.14943739735978567,0.2983644396538379,33.98664487114587,10.979041490721045
+0.14712420871666174,0.306824215698437,33.38818870811331,11.568067780213337
+0.15142388475908272,0.29626213584856176,30.662003811891033,9.86979978178947
+0.15191876619105962,0.29988783231489413,33.16059898435999,11.068151616648308
+0.14923520320873646,0.3062771403457535,36.26637449851822,12.677572622629109
+0.15081317473431097,0.3101126421478605,25.38020319416251,9.351881586650173
+0.14967498521505296,0.3038691236564812,25.760522773499808,8.810976780658896
+0.1514269415274487,0.29890785216937454,29.560122898590325,9.781688485555557
+0.1496177949552043,0.30820085946801606,29.170086365967812,10.457617478660818
+0.15217851313380848,0.3002341808673266,32.317151759651125,10.937958472048853
+0.14913527710966742,0.30032152357554226,30.95298200834668,10.283122500916537
+0.14781530241790922,0.29720990423556864,25.47809441623854,8.047605199659406
+0.14768392690432494,0.30219089153579826,23.349513471078474,7.795303995334805
+0.1516470881500991,0.3026994134043551,29.912032070698938,10.26878500372278
+0.15112759633838316,0.3073827646888915,25.367161313974247,9.07937675622594
+0.15019197898037318,0.29900557404328276,29.101399706769698,9.579177735000156
+0.1492989013436578,0.30421783867046376,26.11690395093281,9.018554278397536
+0.14923331602360343,0.2992482910862512,29.234392508161324,9.59815268841428
+0.1516379596968497,0.2952039234771228,29.48949623792357,9.429713632627797
+0.1497548725328338,0.30137005325513,25.16724516789366,8.426133038861806
+0.15152821936260927,0.3049139033313775,31.430778230300096,11.05530172985707
+0.1514639785493207,0.2989582947554092,29.611514911092154,9.757406543866452
+0.1513318427424335,0.30285533471077225,31.952693607554473,10.965975369976833
+0.15070551001769397,0.30398377802945076,29.103839415193104,10.014841192400509
+0.1496236397523721,0.30452791863284706,32.57719491731183,11.250851620814151
+0.15012779097509615,0.2974404626733659,27.143878581210437,8.785930710244072
+0.1493968878630916,0.29893346351244193,34.52630695117597,11.244469223830427
+0.15005470726414177,0.2978718315043907,30.715982419704215,9.93702590036286
+0.15028390201115416,0.30137955981887227,29.185094661795276,9.813616392444246
+0.14925333677705585,0.2984380390587616,24.963728523283265,8.110095305701833
+0.14939994266866383,0.30170874650032814,27.768718684076198,9.277728246719393
+0.1500131414429461,0.3077399397728205,37.904990351961416,13.560332181353605
+0.15216845108546445,0.2985042466722253,27.170359644732912,9.074245178861938
+0.15192874519610167,0.30271904093103225,30.12461555929723,10.447564556257861
+0.150046147977674,0.29715865324442453,31.17273033957152,10.055101719008173
+0.15102597438813092,0.29770404423573416,29.084898004521573,9.46731905600441
+0.15080555419358868,0.2966666747646737,23.972398631185307,7.727248718447187
+0.1490651219533254,0.297534485053295,29.20125265285949,9.371644686208448
+0.1497890119185867,0.3000925065668469,29.39856064384749,9.726778674909841
+0.15037912600948014,0.30293089054279365,28.63629343158419,9.801808780044402
+0.1507372384113627,0.30028250156083275,32.693933548156316,10.887193074868533
+0.1491882824828134,0.29659773622832664,34.198311587951196,10.889788769108629
+0.15060354978183577,0.301526538411565,36.11841615740967,12.16724095125079
+0.1503923149503815,0.30495113989355055,28.454856251643264,9.884123194908263
+0.15078187421309006,0.30472614068745857,32.15973779939213,11.249811336659917
+0.15098209140326854,0.30007842907636234,22.738708123998073,7.6170916658274095
+0.15249624438069645,0.3034411534645371,29.07861238548314,10.129934754392632
+0.15059998675778805,0.3038196546952482,36.38692437115568,12.618675125873223
+0.15055756334563944,0.30345815413883387,36.65189453732317,12.61078639080324
+0.14982906115850447,0.30388369245634944,30.48122816906691,10.455102150890458
+0.14996173352217984,0.30231690101123715,31.09844360203634,10.524918820727468
+0.14941673407246125,0.300194648073742,32.06471809867783,10.605987786620709
+0.1505001967057278,0.3035897769720734,38.17531173233613,13.167932049080964
+0.14998101408242645,0.3041665277993631,32.80892813557876,11.302663239245323
+0.15176569942084592,0.29431073279385533,35.442054504366325,11.232764257708174
+0.15217949051609225,0.29450305003675303,31.966266464203624,10.153633170082692
+0.1492130682627556,0.3020040688732654,38.37923798312481,12.855964653840998
+0.1492579107357715,0.2976413761312364,36.50938572214635,11.700824698968303
+0.1493850842767463,0.30157502239520345,31.162226525603316,10.430262637757362
+0.14956527966246802,0.30228128790993275,29.95192915579808,10.142499523184968
+0.15034379421598784,0.2970538378764963,38.80567465058844,12.55686573051348
+0.1485951343083641,0.3002167178882183,28.050994286370887,9.270612683685165
+0.15130457116778478,0.2950884775818384,28.085233659761702,8.980908285906622
+0.1514358012694854,0.3003983283318158,32.206568235994794,10.80131060163404
+0.15124997277180627,0.2994081006126801,25.670124442904587,8.563589360643979
+0.15139584078591997,0.2999163308969949,33.71422013411371,11.293140057772767
+0.14826156873230895,0.29600846699681227,25.413225682037435,7.999103223820981
+0.15046330326399301,0.305115053364588,29.479572833622196,10.297053594355999
+0.1521228418232238,0.2990336438102852,38.213593173129944,12.752124866583381
+0.14897180134702614,0.3089619859553204,28.108127601833807,10.05793232733896
+0.14968953206904412,0.3019798261312883,25.34214132988688,8.541194416440742
+0.1513895899853502,0.3032969211838139,28.796946966001112,9.979926467852028
+0.14940373739804896,0.3016987483835339,28.417672766175794,9.545918692832808
+0.1505002631713607,0.29744794487254056,37.04787498433575,11.997952238267803
+0.15167133602108435,0.3008264875259064,27.015646557148155,9.089407925797602
+0.15073915765555146,0.30264086639658383,33.514583645084166,11.477113047253614
+0.14913732717427605,0.303070989716599,33.16497207181506,11.284786315366716
+0.15201316363911738,0.29982907448348367,25.640680147947826,8.557867525470312
+0.14929412083175617,0.29840810998723954,26.944182266555764,8.726442456768709
+0.15002568689345946,0.29571755995269733,33.02223675031753,10.435500734458932
+0.14861770536660227,0.302392847808127,30.196368638703436,10.141204132806491
+0.14884003470622845,0.30458444936649115,26.57520145052348,9.173139119387987
+0.15035053869578321,0.3005143885297653,27.403112745979424,9.123548347038396
+0.15196124917288942,0.3010712429521651,35.20020112284193,11.885601877311707
+0.1495384508454159,0.2984376685849325,30.97202961561825,10.099607360317783
+0.15011905654379945,0.3026673929226585,33.32511929442392,11.432971230618032
+0.15013696417851205,0.302942043823826,29.712475807642335,10.136431289815329
+0.1503640640290826,0.30020911927699995,29.586651191426895,9.81717622755239
+0.1504183728934049,0.30225496292595494,33.059602407904,11.25648097406072
+0.15034959956524607,0.2949377704465128,32.736020146838676,10.361347645471636
+0.14947707350247275,0.30517266359743744,32.63599534077347,11.36195600308782
+0.14971888222859253,0.3099126865234497,24.050054450145716,8.801073848526782
+0.14947792672382457,0.3107106473956141,31.943060119010855,11.745544440165457
+0.15231113174713887,0.30104313965659796,31.890737406135493,10.825260544259079
+0.151391643587782,0.29614992700460163,31.671573301639413,10.175362844369854
+0.14860162055193404,0.3030121632821078,31.397717273289466,10.606545647426717
+0.14925529695210338,0.30764101546254985,32.311705810769574,11.485004605866376
+0.14791376667732695,0.2892918063831737,33.04321532788703,9.651499251093403
+0.15091819215659405,0.29947527612334024,30.38949671236414,10.083067058708856
+0.14887376855704412,0.30416558825375434,35.748298045724106,12.22126963338494
+0.1504961686456,0.29708085036984144,30.002391569725003,9.646781734799763
+0.1469263265903933,0.3070120118819256,33.12923595672171,11.517100103173632
+0.1482529951310335,0.2990589485217361,30.026301368011396,9.733599275482511
+0.14990895570920063,0.3074206973729467,31.084642287589748,11.061467965388768
+0.14888640119995158,0.2955471045490833,32.092158649653,10.102796006670047
+0.15161174655513768,0.3101609054399772,30.063459425779183,11.154523394549395
+0.15060689284132314,0.29402099596449977,31.178450316885176,9.710197587624995
+0.15095865050371923,0.2988620636023181,35.698341750189186,11.73377481921148
+0.1492890388818151,0.30215713023269963,32.417517223562626,10.829347441017475
+0.14985687122635838,0.30518305192588835,30.79281272811263,10.71486189639164
+0.14906143934155944,0.3018387446160004,29.546686373755065,9.868461228016198
+0.14921516149806432,0.29897856745156615,34.59116426634562,11.304922174192294
+0.14944412176107702,0.3048379050780518,22.717310627725894,7.859214628032586
+0.15037571129115443,0.2980963191400674,34.523555144107206,11.282425400309384
+0.14892986048644763,0.29704062169211043,30.50421632300667,9.721071305915471
+0.1498755542954255,0.29933927080655476,27.441465934521965,8.940740581087605
+0.1484415643764022,0.3028336983317804,35.60806955587981,12.054488514130618
+0.15133863968604896,0.2968513380409904,28.78027922173128,9.3346376231897
+0.15028039324301537,0.2946015458486449,34.282690862979514,10.78504880965671
+0.14977819193217629,0.2945966859423778,31.32042277011551,9.763787513369579
+0.15136016399864735,0.29825681660272957,21.72064015901489,7.1590874799728095
+0.149845733056684,0.2953664144027013,31.953823069572202,10.092023614180897
+0.1494612746360977,0.2928339567575342,34.8611271787322,10.634688046449225
+0.15002671464157444,0.30200174290598036,29.752881883070284,10.00653776386124
+0.14921303013360696,0.30144611304071106,28.262957720967943,9.46525368083433
+0.15192999045790093,0.29581110575133324,28.384545867622606,9.130645681620159
+0.14945754777246434,0.302393366826936,35.9771636837808,12.129650948372202
+0.14891488455297958,0.29538227201861983,32.135761515223244,10.084360741109455
+0.14843706247995214,0.29978349551768746,32.65018882690158,10.75380063969143
+0.14917970822336932,0.3067610132549685,25.754854989496458,9.062308917125474
+0.15086485749355869,0.29402436724568637,34.11593797467817,10.717472148593192
+0.1517776679112957,0.2975883744837424,34.044913814442204,11.155878409179282
+0.1497825355572467,0.2990585273096529,29.116470075175968,9.584954307085214
+0.15127482963959688,0.2950493367530104,32.3286066562779,10.247723225630262
+0.1505436460144164,0.29860119974717264,30.940260598811644,10.136200623506221
+0.15131992558222607,0.29635349669246513,34.32613602727081,11.10418299787992
+0.15160111433766657,0.3012913237307157,30.141159103522643,10.253807680158248
+0.15054303849002112,0.3010440833962114,25.73638843295387,8.633974933056189
+0.15164812471813746,0.29442981770628934,28.140761216148483,8.892958681814964
+0.15262061161858842,0.2960933218772424,32.78117879908843,10.667906004903564
+0.14935479429458515,0.3007600181532845,27.084466178814655,8.975580986852533
+0.15028790657349997,0.31060488961696175,26.467193036319394,9.724393258437562
+0.15116933726055998,0.3030480163782465,30.65983042860432,10.551596369823113
+0.1503201323615433,0.29827585542984814,30.53372632537816,9.888652417349284
+0.149562780413183,0.3052800164555544,35.06503863228523,12.179134302949285
+0.14916735459475433,0.30349770231181444,27.948736906504827,9.500849047896608
+0.15163915345022314,0.3041651165434515,31.54610653192802,11.046401316647664
+0.14930466591672995,0.3006487717538172,35.103701249726,11.701890460792615
+0.1500138676696879,0.2999785518309521,30.872927919686624,10.235184812982457
+0.15109582870085728,0.30656815184551095,32.13109346722105,11.428343459860208
+0.1499405190797085,0.30020191835578414,32.433392348936806,10.763840403789889
+0.15015209100568827,0.30453927335064845,30.964183008404337,10.736196119709573
+0.1503464017148804,0.29930525383395973,35.7240180659116,11.811457762444281
+0.1523155747769102,0.3016266391566455,24.08008893168883,8.257899936365678
+0.1500808669544526,0.2991370113877244,34.02882898632075,11.171579231256947
+0.15243773008043984,0.30086029239033163,22.5726705843173,7.656812511178764
+0.14640385469092712,0.29411099644128597,42.60651276283195,13.037652779165677
+0.14967112752200207,0.2973865126864653,26.392873000140042,8.529107027421674
+0.15091537961193402,0.29478454316226055,34.66874742085817,10.991111766264552
+0.15003720641810614,0.30117776071679964,29.855442611360616,9.976572630776142
+0.14976989541266042,0.30010661832795305,33.01569916415856,10.91062561797314
+0.14899637603241536,0.29935695043775584,25.493946030742986,8.304565831043181
+0.15148026560024344,0.294857185291016,31.36998686861471,9.968129360497972
+0.15135371540500644,0.30544498366050604,30.841022421617907,10.898277625058746
+0.15096231706105742,0.3010502557019304,20.51026826451455,6.888863637449898
+0.15051724310943038,0.3078078705198324,30.070243438485175,10.826875295737654
+0.15075211453704232,0.3047503740143827,30.36602345300454,10.585042574095601
+0.1506636646368206,0.2985187887133845,25.530021198102773,8.374384061036382
+0.14977728341337698,0.3012266873690849,33.098832012906,11.140078975977016
+0.1509487149897625,0.29163577321456824,30.13911652818915,9.186474049524076
+0.1501715414250172,0.30603087804974216,27.024448312204754,9.502502545113709
+0.1510408822895049,0.30084602708648006,27.598998452688356,9.282463964683611
+0.1497465006672607,0.29718543145827253,35.11920938058179,11.262386806389603
+0.1493090812645483,0.29635044468748056,26.77048007306443,8.495053579314526
+0.15060364604977572,0.30097341986201387,32.044116865180676,10.79425032694535
+0.15184487419969514,0.30089035952608867,29.310148352585422,9.904501384462309
+0.14717596185900003,0.3007356501732257,30.161140851714116,9.907321704268458
+0.1492467631336167,0.2969791747670931,32.34483478804846,10.377568451411218
+0.152053232822031,0.2983811990108403,25.31967784569931,8.38793577477569
+0.14904968784270392,0.29723987001777114,34.36313907162602,10.971545415890294
+0.15148603905170138,0.2997173443298445,27.088331644148575,9.01483938097891
+0.1506668468721423,0.30221297346982956,31.424154202447884,10.702368958197741
+0.14840841409958214,0.30798324757521706,28.26524544985586,10.038187438387139
+0.1507432554813399,0.2947889016030538,26.27780656397841,8.270072025558676
+0.14955094139774325,0.29997706516428846,32.35245522647768,10.71803306443025
+0.1501425887010411,0.30593997990755695,33.43873560271986,11.83751923594647
+0.1497314033603708,0.3028855048244029,22.165982694599677,7.570957243099782
+0.15094488945153453,0.29787537113381884,35.137616321271416,11.457149663357278
+0.15264469703359304,0.29969479437353924,24.805196361989175,8.344077842255949
+0.1492161709901235,0.296861116756426,28.7026364846107,9.15783034038603
+0.15056301873468894,0.3033520252378034,30.126990262174,10.376316368554317
+0.15146302743704865,0.3026024476679413,28.807865994052747,9.897306757631688
+0.15025128304983146,0.3010891129835965,30.477215055447992,10.204766297759269
+0.14977054794398087,0.2973887530282773,34.44564925839204,11.088388340969319
+0.15035501146911828,0.29326817610480677,33.96785605565053,10.458220524619293
+0.15212270932137134,0.29848755761785206,29.643898897707658,9.827782134641872
+0.14947036829529348,0.3065463195608687,33.50551252749616,11.813114213467209
+0.1501155361334738,0.3001766607647801,37.61476487834727,12.535294096349704
+0.14814562531251002,0.29336941500612834,32.44365116573127,9.943876593870678
+0.14917743166564368,0.3009025521910665,30.538678613272705,10.11015234247907
+0.14962298106315555,0.3060807462000656,31.16376410397238,10.915458911975
+0.15067751608773602,0.29792048835440466,29.299876671860506,9.546247811893974
+0.15010498299466873,0.30124563129596504,35.87372190846971,12.023797297232022
+0.15001957192714968,0.30205025058779594,26.008098714361886,8.80478661320749
+0.14933759318664291,0.3008790818767488,26.191736274776936,8.727212723867828
+0.15070886692700458,0.2992621507302316,32.427011861604754,10.772753391551262
+0.15012325433754412,0.2958153654089091,32.02284223478399,10.223101024014179
+0.15075394148584115,0.2936838929969213,32.916408143983446,10.287193528654251
+0.14835175297687955,0.2988658964236221,31.430099837837584,10.136652627719
+0.15119750669530663,0.3025585684740702,28.96615497527928,9.927715184201048
+0.1506077842833826,0.2901873366864283,28.1504332796466,8.47713388446175
+0.15235411388812584,0.29848914193881076,23.008609095842832,7.647887353634898
+0.14696431613479077,0.3033953674571166,29.486847492352545,9.858633864548334
+0.1530734013973854,0.29529384970079187,34.55351908400977,11.082459241901802
+0.1503333362688662,0.29953016244568714,30.601281040028248,10.142547223705439
+0.14956195182507637,0.3025964597546039,33.08021056856159,11.195032656387303
+0.15241789859856839,0.2953455736605998,36.18646373706774,11.612171559536556
+0.14844049909993584,0.30258804430565306,30.97306861845997,10.45337731478702
+0.15006284545367687,0.2990285039629638,29.400332683108502,9.636277341383055
+0.15129994488283904,0.29998980344880277,34.237309081560056,11.46359669364862
+0.15005264435754795,0.30062863371559045,31.61466327619749,10.559082117870673
+0.15024754972477425,0.30030026054633113,32.054646690677544,10.655393177813204
+0.15021336810774263,0.3059942470506242,29.848313072677122,10.498861432951504
+0.150977788992247,0.3031512154606973,28.890888415105067,9.904537632021311
+0.15183313255154154,0.29760092713630426,30.716496430606597,10.10166671939118
+0.1504110456161813,0.2924581016692708,29.821792386951802,9.185716410898426
+0.14858563010802447,0.30796294872662205,23.49419781132876,8.368653603801045
+0.15005840654190203,0.3015090160072002,31.222287161734936,10.477120861652606
+0.14918978379704492,0.30273918976841335,28.828253659792892,9.799401910126678
+0.14976149319308787,0.3042193628572581,26.43371261111924,9.08460512344191
+0.14710670439099674,0.30250540222439565,30.97926814092399,10.38162431311321
+0.1516372291580266,0.30484401069199685,28.264801864300328,9.882052774173982
+0.15024443218753772,0.30514390856316714,32.00029563447177,11.164388620085603
+0.14842279777590653,0.29903168956166476,30.65434022339509,9.934407879512179
+0.14992842764792497,0.30015429946528854,32.937217596478625,10.980411186822003
+0.14931957208250202,0.30503012793166023,33.38464391262266,11.578901509022394
+0.14810711805608992,0.30409928874919084,28.63256498242467,9.779010328625377
+0.1501040369661922,0.3087308018329468,29.50880900080927,10.699831713647466
+0.15187583287734058,0.301436079952307,36.06549836433489,12.27252118924845
+0.1472950004741637,0.29765935520042774,36.68763045813521,11.682994082634181
+0.15054572994455756,0.3041182509597554,28.42389463372921,9.831678742643463
+0.15037367338738172,0.29442919068479906,27.25108319359063,8.530974604721157
+0.15088347389913434,0.3040002482656745,28.85633748593484,10.045572806511872
+0.15031725840817742,0.29850062957490725,30.335113745144767,9.85790705315956
+0.1500895655985786,0.30499386406794765,28.674507380613743,9.973386481855508
+0.14898864128800937,0.29174418309267347,26.553143210754428,8.060604389305993
+0.15024520803189936,0.3060389078992302,25.802497694737628,9.081244787834347
+0.15114815372683482,0.29178808656237354,34.46514186386355,10.627957080207684
+0.15055425927648716,0.29351751503904877,34.66079097159373,10.815481486469102
+0.1475919599292886,0.3096583092425613,30.771850105804724,11.012299268394788
+0.15112607541470477,0.30229513480081227,33.545646821558925,11.468737570031251
+0.1489602683076575,0.2992348894874152,36.48016659058428,11.819829516152165
+0.1500783569864268,0.3005407377756637,31.400847368125,10.449708904810512
+0.14887161196511686,0.3054017542434593,33.07833881399068,11.476175229037233
+0.1500824071931335,0.3032980639410305,28.38362669683266,9.662329994401198
+0.1507747151799427,0.2995097756829107,30.318056866097816,10.006105616158987
+0.15013186046990099,0.30340043410991824,22.044989788310637,7.5516106174054904
+0.14736443033320748,0.30276727349594806,30.059463379812644,10.068394447238738
+0.15034648595443936,0.29592758412430403,25.732618999645283,8.200143205588606
+0.15143625735135105,0.30352773041293846,32.45925729704859,11.241606249247146
+0.14763112208486298,0.30262161765777934,32.80534995440052,11.026054688978697
+0.14697993022284828,0.2991442743730576,27.32065675082318,8.81130769976259
+0.15038412726328262,0.2979575880968836,30.81998852204656,10.02606288574631
+0.14917748387343258,0.30114780536225055,31.00924136667265,10.3279736419106
+0.14833020214733048,0.29788065201054575,28.976343588554922,9.291433599085668
+0.14744686115806477,0.3018605693883467,26.409855615042645,8.740532600169475
+0.15163432486121547,0.3018665167643657,31.489897954344134,10.716904073607125
+0.15056794978923452,0.29811089566870835,34.8922774660059,11.324902860873596
+0.14952558077306027,0.30290005986087826,29.32094118969261,9.934533216659197
+0.14967166825675776,0.3042286436261707,30.304435669131312,10.43049967468529
+0.14922910213866605,0.30072301245577227,36.550645046061916,12.149594814252403
+0.14883622485537695,0.29995594657131336,32.464940336170066,10.675790055347568
+0.15086535081063543,0.2943740920726484,31.737821218816592,9.981316873675087
+0.14944684415213688,0.301472219976935,23.725642142941595,7.9648064721225005
+0.1486924403021516,0.3032135686511745,27.989046400611233,9.529383186158102
+0.14934101333818864,0.3046984418127398,30.968612030474453,10.73797796316355
+0.1526615967072547,0.2961613465393479,38.583915617323804,12.501097194468944
+0.1496030334691639,0.3068391860388616,29.21663013109385,10.302812971259222
+0.14829822720071317,0.2965188148916003,30.273086486896133,9.642994520148386
+0.15145484611521406,0.29946417209492554,29.199617782408012,9.69092905768839
+0.15038426902483948,0.2976762790246592,34.57390088715837,11.218834018832593
+0.15061570827463214,0.2946970359547593,28.74873981968714,9.123872360015703
+0.14842029844985835,0.2981188356810185,35.39437561439172,11.400321555131368
+0.14948447304444823,0.2903791626055825,23.935228132926355,7.178595645038508
+0.15053621252782468,0.2985547383606632,30.142439524779167,9.938090553190921
+0.1484192751608765,0.294205286973151,29.701488510246097,9.166979853228057
+0.1488423842870384,0.3040728978485254,31.657061251967896,10.775994501198669
+0.14876666631748436,0.29341498641976416,24.21117534255397,7.396539436923691
+0.15059890754231617,0.30225284925027457,26.592527447572003,9.055552159271585
+0.1497023661111011,0.30095002886190597,30.898791241251832,10.315881820593214
+0.15139632445252843,0.3018957360350153,30.571618037024788,10.40699668039149
+0.1497741026850853,0.296192647495289,31.998372882448802,10.165588371784068
+0.15121027817856092,0.30276573631553266,24.719615945934816,8.494617130936504
+0.1504612482049946,0.3024047985646427,24.04616950760311,8.199566612170614
+0.14901422967782407,0.3029981547440798,29.018734014554468,9.867685470804004
+0.14929382405399885,0.3027527204287797,34.63124782895191,11.735324006920541
+0.14859959511382925,0.29987954699092784,31.965532281299524,10.450328047777441
+0.1507123407760944,0.2965442692539055,27.25351713435549,8.765655337978
+0.15061787870144314,0.30001242254006555,24.625261632617804,8.212106336674728
+0.14869042318142658,0.30313178854800965,27.34424358689166,9.313848403751008
+0.14995701064364939,0.3016435670506769,26.228468252807875,8.818234669685223
+0.15057715660546558,0.30166233007565907,29.616562960629075,10.086897944495645
+0.14898381283738243,0.3001513234119247,31.122657867243166,10.193004231173829
+0.14751921301544546,0.30085848510752655,29.45937407326413,9.747153259425923
+0.14805740693901312,0.3042844621084076,32.35806622079182,11.05693688268902
+0.1492978966368991,0.30621744721234156,28.106837318799332,9.833287434778535
+0.15026990857995193,0.29824490045710433,27.536957445790623,9.00677628426733
+0.15130556940790504,0.2898321977226333,34.230504637292974,10.31071970424607
+0.15056077533458948,0.3000385857944367,31.50910838340417,10.496010023957385
+0.14689632558588017,0.3021748398051718,28.119434228736978,9.346828786956694
+0.1495239046763199,0.3002144803378804,31.103944690015897,10.335316125464564
+0.14866174109032046,0.30072316893474293,33.16052246291774,10.953567143154654
+0.1509676545561624,0.2989264991271055,29.592923105568595,9.792705189456873
+0.15091608827097097,0.30210964476539676,29.546603651723906,10.1029386951781
+0.14948773123929954,0.30008503385533086,32.54221333336309,10.79743627504119
+0.14978320313201457,0.29063855708461717,32.40535703761503,9.724696042642625
+0.14850565344692662,0.3059250937837985,29.38480566374315,10.161202271496405
+0.1510610636263801,0.29878855701839774,31.36931434954963,10.331802059715496
+0.15108880471839312,0.30074905169248645,33.67882090604154,11.3544659592462
+0.14971464856440642,0.30033359742344934,25.78540605689962,8.543811940657509
+0.15000734184206635,0.30520289451598925,35.02846846492514,12.191050179813658
+0.14917133192260076,0.29857785815109666,28.255349243410237,9.111967750914951
+0.1497633312230556,0.29825509371409065,31.423318804953166,10.177610149277102
+0.1474781306542059,0.30859091191346744,27.151656863403446,9.619581664077087
+0.15007923736673015,0.30092108136955714,31.32023464708737,10.490634898918474
+0.15210174626980896,0.30121892598394223,27.467053684389565,9.336478452711644
+0.14950162748928805,0.29948022118959433,28.95217812708163,9.525253108493066
+0.14860190480106442,0.30574942233828184,27.3635493330965,9.465123130986855
+0.1484033834850222,0.2974273607560903,27.8465556810614,8.876416956474003
+0.15030743286959977,0.29776062131677455,35.41894228133557,11.449320469790454
+0.1493857031939053,0.30529275652659005,33.85061980169296,11.799809688247446
+0.15056522534420938,0.29423885173469555,20.4061866706715,6.442529089979428
+0.1496502244747218,0.30063171980512265,30.27893979271538,10.06178628483616
+0.14974754507551713,0.29932904007932354,29.92070963197893,9.823498675150564
+0.150176642328073,0.30471235030117544,28.784610769653064,10.066782161874022
+0.14838842748828587,0.305528603814064,25.346153938250858,8.778104524625592
+0.1511385422527532,0.30575699045323673,28.18790613137957,10.004946119029565
+0.15156883548579528,0.30434990175830245,24.307817641966672,8.471457510520171
+0.15063904487837296,0.3028891818693188,30.010062424868178,10.28979966241607
+0.1498296466945018,0.3047690529871518,36.02148989120478,12.4915754339683
+0.1485024283807383,0.30384259052430884,26.44060766605961,8.980669396800101
+0.14769319511339865,0.2967547222446457,28.505135830986713,8.995520239163834
+0.14937106034385644,0.2981341352496086,31.300896578489787,10.195981978409277
+0.1510799574976736,0.2979039325741071,32.32026100030609,10.565480815261978
+0.1505444737510929,0.29865751482945824,31.815307127132577,10.435142956670347
+0.1477035230691269,0.30350857887771143,32.09157982676877,10.830877686416041
+0.15094490302926694,0.29572304358739526,27.570727876509054,8.791837836955315
+0.1497127244974088,0.29982778192206366,34.87604252866591,11.520465006087234
+0.14872853052427518,0.3081125296020819,28.135071763552787,10.079511617316031
+0.15095702922989288,0.29813652532973517,41.90662928283387,13.659813351678073
+0.14914064173173897,0.30823902882862614,34.87664842325537,12.443083929427672
+0.14941410137260297,0.30520188406157045,33.817120262075846,11.732695805087461
+0.15010314584386433,0.3044555922757267,26.74318677240506,9.220189043920044
+0.15193379266306706,0.2989389583614642,32.497930603126875,10.789845297574233
+0.14889298542148374,0.30186966626774686,31.90019852871584,10.640252199697843
+0.15113798640491885,0.29597545557071014,31.179835088288694,9.986181751656352
+0.14956105368336237,0.29184883366412295,23.39414209781873,7.145592191049254
+0.14869873401367248,0.2991027497078632,27.93189685163424,9.092363103578244
+0.14995692750090733,0.2967164751845955,30.519284275282867,9.73387103401675
+0.14931912679002265,0.3021304171274075,30.49075621720164,10.290515515519534
+0.1498527364480125,0.3054207674106911,20.542870238903213,7.16125034506927
+0.15021630026492885,0.2934898502763073,27.860068534238664,8.627087272008225
+0.15077400818363815,0.2951906391772996,25.132388635655204,7.942860511349548
+0.1510555955684775,0.2975904528606819,38.849984744662706,12.595153374876448
+0.15025135325640127,0.29632694273817844,32.67323340894848,10.439536349377098
+0.15042801613987383,0.30183293960592694,25.90950667582245,8.766041025138097
+0.14793055451319442,0.3040863727600646,31.825812614968683,10.780476316731464
+0.15154189206577365,0.29911811927434107,29.11174487254573,9.689740404294053
+0.14999861955820196,0.30311274579266806,34.318716465685256,11.71882934150541
+0.15033892986813954,0.3028504714430225,23.452304483414544,7.9882943090238285
+0.14902371258910163,0.2945654670423399,25.136389932243745,7.791813888345468
+0.15147894706200019,0.28791829452899526,30.37461000719967,8.95957478724769
+0.1492867741248367,0.28843169727682527,29.682713173662464,8.757405206676955
+0.15106549522389137,0.2978617170731287,31.854053753897396,10.337171415966418
+0.148531720345562,0.3067434880617907,41.20963341131617,14.44349349652321
+0.1489788094669434,0.30465203247593825,30.857383638498042,10.665529181550694
+0.15038515221413853,0.3018322691184811,28.803490727395797,9.711943420544303
+0.1504974617745137,0.30624145628996025,28.041534386670836,9.91116666428447
+0.1507577178485505,0.3006375362694962,32.010918819541715,10.718292965118264
+0.1501177437185653,0.30684556454540296,32.13912452893557,11.319470420634433
+0.15017047876431402,0.3079641106639827,31.37021892240959,11.195432350470156
+0.14834398742747132,0.2989634082338377,33.52603565884525,10.854872091072748
+0.15023745156542534,0.2944064468845404,31.69058348352274,9.962756539533675
+0.1491157701192888,0.30275602539772056,28.14244107841479,9.554416311161827
+0.1503758468792976,0.306209915519742,31.21676149762719,11.004203732148522
+0.1486436355063401,0.2989723058239245,31.92597105819175,10.408284139350538
+0.15086621078367796,0.29628911425525906,27.75931010463462,8.935466442817654
+0.15147614965477685,0.2955895261322013,26.93092783989931,8.584455959076601
+0.14911645292352924,0.2932898686853384,33.39508362988866,10.303340704258723
+0.1496364404516829,0.29059502103527374,29.641098571670216,8.952760091309923
+0.147027880469636,0.30426296136518277,29.801032148954743,10.049430990299074
+0.14891394772524785,0.2993645993549251,32.90339619825229,10.714566765728428
+0.15093476827313276,0.30105413098270045,29.599066125930907,9.933562782586959
+0.14987255683066023,0.29915994953656205,32.266097215902526,10.608919263769295
+0.14958996541149946,0.2937147750508535,30.89607940326249,9.565032040499025
+0.14908015764903865,0.3123194112796737,26.241019155018165,9.742891505599353
+0.15061641045358817,0.3018475100855154,33.593009803779495,11.446832946311023
+0.14955235387118204,0.2979489338832176,33.753228185209785,10.88724653210664
+0.15069185865854257,0.2972239429026966,27.038760519893163,8.669531267710287
+0.15201113616355771,0.3020737955276874,32.47770706277574,11.152282823725312
+0.14984943080534283,0.3024527317174001,29.04332043492169,9.809413488297954
+0.15074713395667957,0.3047980584891643,33.1377280170321,11.600436522166875
+0.1495353546912578,0.29639332010638203,36.29265597820508,11.593974081361084
+0.15003240893680975,0.29528280025050624,37.542827427435505,11.812480728264276
+0.14972956807196575,0.30196324690690896,35.10289201996529,11.833278042288827
+0.14828873957124014,0.29609750304904686,32.39848631402207,10.257902456148958
+0.14865330300456137,0.2967246627381232,33.16465779687901,10.497824471048437
+0.14966155024437983,0.29509791935006924,31.78234682567392,10.03031742578582
+0.14986962017335587,0.306445224168253,33.23556732277841,11.696795324115964
+0.15248603682877335,0.2958177335131541,29.6471976145796,9.65473484414891
+0.1509516927299662,0.2999398802331043,28.134374769302642,9.352455972118888
+0.150601172316588,0.2982589373643165,29.379068581697133,9.58293309791269
+0.1486354299821071,0.29619895559445897,28.488409925071366,9.035590230178444
+0.1498139001266759,0.30534561297644186,30.25924493191094,10.521001492012033
+0.15133382519341687,0.2949798505339,34.30215787554859,10.876184008478875
+0.15066446991281843,0.29747496894532827,30.49016302762538,9.866065044035206
+0.1499595285592916,0.2989798272322519,33.867723782272066,11.133908715551929
+0.15200939424137963,0.3007485357947868,32.73792765751691,11.016623339398691
+0.14889693230485843,0.30140840817214776,24.471058131876163,8.169232797372462
+0.1508982764902275,0.30475751712732163,29.89548201011301,10.418827109022752
+0.14783928150981948,0.2921040297645299,24.87025387254415,7.483716791744612
+0.14907567334800537,0.302350358511202,34.38013228970431,11.623025731288394
+0.15133844571039054,0.3008619062794803,29.89305346142908,10.10617276011796
+0.14929314296257,0.2968827993422997,35.35026807115244,11.282653458928486
+0.14813596120952782,0.2979922806167811,35.20472358467265,11.279985719170408
+0.15005390479111397,0.2965385417849527,24.62148847964554,7.918866765943692
+0.15068343689947436,0.3044086232805141,34.744846500123,12.124180680847747
+0.1498513410007534,0.29322079190506695,28.09204780253396,8.662976425568651
+0.14745575673690478,0.31268775255476083,32.92224265913776,12.166210664401307
+0.1513479919656076,0.30043985217740765,27.662236763321044,9.264113064409889
+0.15143383298654425,0.3009504299764782,30.79719270409832,10.41018096105287
+0.14876699646244088,0.30676889974576954,33.754950604783296,11.83287839513116
+0.1516315811165425,0.3016680131830352,31.39564100369263,10.710912863562335
+0.1490057003780634,0.3092700239095858,35.10942011194418,12.66482129049237
+0.15060835957084753,0.2979620432300075,33.6640250542346,10.974764350232665
+0.14892611356338223,0.300768253764401,31.313351850261267,10.385692240101458
+0.1517325902101329,0.3015768966548038,31.252762608041966,10.644124808841818
+0.14884705060460707,0.2978934468933973,37.756639950645706,12.168881111564541
+0.15002329828815494,0.30105364031056925,27.64832525576019,9.259015863430092
+0.14756071409743723,0.29774179180400445,38.86831832991771,12.417341302544871
+0.14866113293925226,0.30424783785102477,21.628239665556592,7.414595009507637
+0.149400426143059,0.3040905756639259,33.91351360878527,11.654908629576997
+0.1484964148667106,0.2943864542273601,31.08431468823938,9.667774154836364
+0.1496063480702611,0.306803415290516,30.442656829151456,10.778234442035632
+0.14914052386412308,0.2923920067119457,32.403306224552395,9.890620346908236
+0.14850321473480638,0.30347532399569677,30.486372016562964,10.332742012049552
+0.14867682243197294,0.30595780866447514,29.54352445003212,10.290888512884337
+0.15024416171172378,0.2959528883389809,31.081633335298164,9.857284245961031
+0.14892024001791684,0.3010605646336227,33.31348781538232,11.065809169638026
+0.1526789236522256,0.3003791188758125,30.547419987587833,10.349329541461284
+0.14966565515219457,0.30702092254817775,26.112026351908668,9.262508978424657
+0.15036091753305236,0.3011573498364422,29.26060023961026,9.923449418619397
+0.1475328752047374,0.2912418866814865,38.61806249080919,11.527317142768783
+0.1500385690491146,0.2930459082665301,28.96228481600575,8.899493768954494
+0.14938656387008437,0.29898999766249434,33.710406901571304,11.008120739629298
+0.14855194857906362,0.29626334714779945,33.435679613472644,10.554715355849323
+0.1486377711383267,0.29905412515417934,29.921955582476514,9.747913889923602
+0.15131163553991003,0.301785710532218,27.521733771244286,9.380494334003952
+0.15104825117308043,0.2945770096690725,33.24877956806304,10.558381377976941
+0.15021611329003545,0.2969820390474484,30.830758987707362,9.9038570870767
+0.14859218863394177,0.30111412817146593,34.85228672650996,11.503795709903258
+0.15104633031587195,0.30207148317130444,35.42090060762947,12.055750280215952
+0.14968425294319265,0.30736591900426624,30.825869046453438,10.972581651714485
+0.1500201333471858,0.29593611067626774,26.486957482682417,8.467113545647635
+0.15102157410792352,0.30046635290433393,31.284865856274017,10.440594791642908
+0.14919875005967556,0.28825147171016213,35.513428430710846,10.391810464731298
+0.15225057274401743,0.3033207532145998,32.16361078535137,11.122859298684405
+0.147694711318148,0.3048778391845451,30.991128315444556,10.646324423625675
+0.15100001033873028,0.2906515323694613,32.61487495095011,9.948636886988593
+0.15034935509772523,0.3003623073179973,30.919449246039886,10.296953095023298
+0.15114712549994277,0.3108131566849106,29.691626122926913,11.066118974691303
+0.15066687761599692,0.297585400726578,30.163695700101986,9.744450602571586
+0.1499451895341623,0.30753857395005635,27.985679103816473,10.00538037576907
+0.15142994375269495,0.305965022216757,26.99268991865117,9.532812546087971
+0.1505154309125753,0.29720735831532324,34.120974249215294,11.024984573327362
+0.14925362239430248,0.30320294760359084,28.403725103024968,9.63765860370307
+0.14790559757825153,0.2986773223720424,37.88549593673652,12.222720380731182
+0.14950177127760841,0.30476630482615624,32.459896616309855,11.288507331747471
+0.15050035787656818,0.2954690220626269,26.81885631832578,8.570378798618712
+0.1518875245524575,0.2938740074520695,28.296241974347275,8.937943368511764
+0.15095157301693407,0.2986984145480129,29.458488936940096,9.711815386825974
+0.14967651191384718,0.30571073308834873,25.763663168961983,9.008668238682874
+0.1517356853088471,0.3022296333376397,21.067432776428063,7.207643039187311
+0.14933303617411167,0.3019478557598254,35.23142692469331,11.865048754461524
+0.15128662753621003,0.30352331284716405,30.94328482466505,10.745606940453609
+0.14899521264575968,0.30250098992452273,25.540784681838275,8.654278811324899
+0.15216498888677782,0.298400071527448,33.80849295120059,11.27515587275705
+0.15116088482321902,0.29587134115652686,32.11892223928817,10.299166096963441
+0.1512954111236403,0.29721931148611314,35.7571963374887,11.544162927649978
+0.14900347427345392,0.29942051996758723,30.204537451615803,9.822656820012886
+0.14990983092292853,0.3028075573691384,24.241504190223566,8.250518445528655
+0.15135986482486394,0.3029332745164925,39.52872108187138,13.585858492617241
+0.15042756489865045,0.29820321118647114,27.2973369873048,8.93536700512366
+0.15032523596308323,0.30215505233666357,32.484388649827885,10.946395806503599
+0.1495341285889984,0.2953633100367463,30.8122123132379,9.7388391537973
+0.1497027275997581,0.2929339924658949,27.261116389756086,8.399479046770693
+0.15111975644882808,0.2960802837473879,31.435329371780703,10.134146308350891
+0.15108088053241245,0.29720549745917113,29.915650816074397,9.707651472927314
+0.15137742630147097,0.3045550849613984,29.645213725760748,10.405598410809006
+0.15058669315261605,0.3074079823435643,30.96856506454106,11.065409866090807
+0.15139277705663012,0.30079136307653137,28.449521720971802,9.595149172049206
+0.14904416344803467,0.30540633760012414,28.17955097641573,9.776509834884653
+0.1483234746211784,0.2981721712404344,26.605183165732406,8.626057431608004
+0.1495791400421314,0.2949781256311675,34.0320749388703,10.739013575765988
+0.15105785228065638,0.30103745743693344,28.216571945601196,9.528867846298487
+0.1496451198515781,0.30340364424066174,30.470266969080043,10.471269098037697
+0.1496350830757834,0.2946919415936463,31.629717111183766,9.912779976532434
+0.1500973201246035,0.3017557188937894,28.73559312351281,9.632477537550406
+0.1517140166821574,0.29969840293501954,25.39010651932489,8.508112420148114
+0.15092186593265286,0.2976860264898121,34.229824384156295,11.155078727350393
+0.15171104818027298,0.2968287315398702,32.359279520751045,10.491698855686199
+0.14903762177538651,0.28660731929739425,37.18749445206692,10.669049928401865
+0.14919425112590068,0.3043827485531474,27.707641216395075,9.521010834025883
+0.15052137709030916,0.3007353088062307,27.92845310714174,9.308095275222351
+0.15037027493139934,0.2938112793792112,29.528911072783824,9.191160241967621
+0.14900938890978385,0.3004379586191235,32.952653533516184,10.954918309211678
+0.15020304095740417,0.3013010222127743,30.3624649378055,10.151260849023762
+0.15029413181847814,0.29988995468765495,21.803540007513732,7.2058040251558255
+0.15091212341638396,0.2994838823148906,34.07255576382622,11.35710864774199
+0.1501450573043919,0.3044616738085073,32.424173154330695,11.285571359008625
+0.15006098542641516,0.2921775603115543,32.90784379969928,10.03170270791135
+0.1497290832193732,0.3042614942098094,24.546688321137022,8.459227859421897
+0.15107676706778977,0.3026185889495377,24.439431878606946,8.39133778278312
+0.1491179984985929,0.29846770175029314,34.80978944056957,11.31980128958988
+0.14911935325714581,0.30400009714258147,29.232441840616925,10.033255734840553
+0.14930287865230873,0.30064612913957645,26.226601357775834,8.726463412734041
+0.14983121372356484,0.29993231413202415,35.83656744817248,11.890337723297675
+0.14919053899627654,0.3108527121655232,29.210498659517356,10.703553044896431
+0.14949658909761324,0.29886887015979446,32.48377604081301,10.600511276983271
+0.14964669362977298,0.2997944045028376,39.08623179639169,12.87156447787363
+0.1488975043092358,0.3097350701335145,29.155874963247825,10.549315096189261
+0.1518260962969777,0.2975291761171754,38.28841339225859,12.479870700378484
+0.14973976105491346,0.2967518858021264,34.853679951718135,11.16001692336541
+0.14894303540829373,0.2939096002875871,30.43732315761615,9.414787369906993
+0.15043085126732866,0.2993480677666867,33.09315292283303,10.868402347096172
+0.1490973552938733,0.296728194571988,33.33457801059657,10.655172916451008
+0.1482047104902539,0.2988691892828034,35.14865120309461,11.324036464556894
+0.15093305574206697,0.29611981156706024,31.80011663530029,10.196824360833546
+0.1494306594973502,0.30480871418843924,30.55491421732481,10.624806804794925
+0.15033980613735276,0.3004418646637459,30.659014803608464,10.253958123906225
+0.15028341270753642,0.29996525601060076,34.86924997194588,11.538124080150258
+0.14925406114078615,0.3037124384124956,30.842014763806592,10.521383822293503
+0.14949878834220506,0.30032888783955036,34.722897587304715,11.490030107761388
+0.15006296906898087,0.30369156432953837,34.055462551461616,11.746988854654496
+0.1493608172470925,0.30025502739069365,35.44142254007624,11.648826917870487
+0.15205979477833187,0.29920190624048193,30.757116463803733,10.252210707651328
+0.15018555097229083,0.29715920544078506,36.96435324791557,12.008713656825348
+0.1496059326932456,0.30444200993603093,34.634726731639724,11.893727414798349
+0.15393987515099855,0.3027254191334045,29.276313568249297,10.188045564264758
+0.148823920852141,0.29637841369448026,29.23145458925325,9.289976026693521
+0.14987823609870252,0.3066220414549402,32.89972477879181,11.711580930733373
+0.14852604047365553,0.30239796323047036,27.67210910680731,9.33336864902933
+0.14940425259588058,0.30211920476421994,28.18005348022371,9.515713459787298
+0.14818353446176097,0.3004353639800979,28.816055734004788,9.473595926016463
+0.14847470997562703,0.30029028114402173,31.67007438881051,10.411527170137521
+0.15136327549844208,0.30009219390743325,27.01961588776916,9.038442478054105
+0.15248355570626684,0.301499272419576,33.04707749096501,11.282406825106197
+0.15199760361348585,0.3031456318462413,26.450605549384488,9.155150524741584
+0.15042077808481877,0.2972116997254887,31.516993094298478,10.158602969644054
+0.14985182549516174,0.29494313934881294,32.42361332165663,10.15460830711343
+0.15003006376276273,0.3040652634127746,30.917704075643734,10.674338213355442
+0.15100806705578995,0.3027883976724576,32.198293087340105,11.062040747767856
+0.1513154159244092,0.2967723912671493,29.208721763298392,9.47561539727457
+0.1510724884759975,0.30057996958891714,28.39935595697831,9.49461536818756
+0.15039471659303968,0.3021519660273604,32.94402864842117,11.201092394962956
+0.1507043428134657,0.30027443575282325,30.504657345476957,10.185005887703207
+0.15007504274168298,0.3015630006797986,25.028393256071475,8.404317683280748
+0.14972210630372232,0.30881027925171284,28.873533938254095,10.439178224961367
+0.14995656465616677,0.2969364521972715,30.14588666279061,9.653211846836694
+0.15133380159445756,0.30172572896062283,28.155038801533713,9.518673917430363
+0.14970735764074597,0.30182122963061697,31.27022315578836,10.480761333843954
+0.14987669028579548,0.29876595213634655,33.77156902249107,11.066239933620832
+0.15066621227237553,0.2965026523069077,33.82277279630746,10.86494660042369
+0.15064444273377195,0.29846446956809086,34.68813725035511,11.424405845451437
+0.1509240754414,0.2926298380774245,31.10762981448265,9.633555128567396
+0.15015543254805233,0.3102951868016629,26.198627183730682,9.547648448295675
+0.151187887036382,0.30392602769001636,35.54158900012908,12.357404683857702
+0.15096124138461778,0.30116808667878175,27.528886872450713,9.27762581252288
+0.15074469633372353,0.30357631347616165,31.434568640306654,10.888885137740026
+0.15231728083015414,0.2950433901735654,30.49784223852318,9.772775452148615
+0.15261278857034563,0.2976769971244754,31.521346610488735,10.361597220273207
+0.1491201771452977,0.3033897092134494,25.352366174146475,8.60507361117999
+0.15117968918016764,0.297063922532459,29.650298595542957,9.639535258536151
+0.14984471178615577,0.3039418984840158,25.198007417434606,8.671031915885104
+0.15127434032431572,0.2967269953441405,30.26242415102831,9.80020777430459
+0.15057252779787725,0.2921318364077078,30.074049208303528,9.21428596990824
+0.14918391934935213,0.29247787217776766,27.72054315309689,8.436040570672082
+0.14907462628923807,0.30153932148941814,32.27860760807237,10.804137399952669
+0.15054167314435105,0.2945817195406632,27.233589007951593,8.574582546912406
+0.15205903487835912,0.2954107984478039,33.5815530184291,10.796468826096957
+0.14907184604396997,0.3028846647897951,28.153514119167276,9.570593357401277
+0.14855915814164752,0.2976866623413082,27.643788487118528,8.885300843148757
+0.14962334888610582,0.2962308774534972,28.238008908866753,8.963907909006995
+0.15034081806608715,0.2988082471690899,34.36624249805943,11.26218078745
+0.15131397181464104,0.29965878561969256,25.551394559305198,8.518828835550021
+0.14957568335056004,0.29819074549633967,32.4460635261558,10.50901252598136
+0.14941386420823394,0.3036087425515535,29.41560914135012,10.078804414703177
+0.14930908210663293,0.29904205540046913,31.46034002469062,10.319727805694665
+0.15014416150018647,0.2983216662498582,33.91817074643053,11.045831606177728
+0.14843420529325052,0.29584218639320503,26.427630420759638,8.288935143872928
+0.14935162685215703,0.30258003530406663,31.709785881067106,10.779365553312896
+0.1484003934954019,0.2957778172077712,31.239248423721946,9.808467492517146
+0.15126517499981362,0.3065223598905063,31.82135409922331,11.406286117479507
+0.1501159027936589,0.30676538788915125,31.096004531909788,11.009485622588134
+0.1502300340358268,0.30650648795697294,27.82515685495974,9.846980163415775
+0.150733083678099,0.29478925458307453,35.13115861226888,11.120631251079207
+0.15012103078327424,0.30259408318590536,31.82108630012362,10.864029911724364
+0.1495535482827588,0.3056839141080761,27.782103177203627,9.728978818072942
+0.14892485040545458,0.29468936012551117,34.597633606295666,10.790975334092131
+0.14996277874799566,0.29717205170731187,28.55278660495845,9.131355142452048
+0.1491170945405512,0.2954801486526267,30.86321737947841,9.72906827289226
+0.1504737544383924,0.29657549717619036,27.580781440857557,8.84869312686575
+0.1506268826706176,0.29945553671630337,29.948330283472895,9.9243027706091
+0.14948382025700868,0.29888876378448676,29.938674371650208,9.824021907382772
+0.1515632676058128,0.3024108173244632,32.04212660735104,11.044982849409127
+0.15030804420445695,0.30975795362533026,30.701691801681175,11.214475464366036
+0.15011097131749862,0.301567456135062,34.99205210234097,11.804452530965325
+0.1495995475207416,0.2995346286759122,29.49127606326851,9.737538504466146
+0.1489380037404065,0.3075371180379913,29.128929968151244,10.390478132436426
+0.1461371616546646,0.30017893361050646,33.12539687839055,10.708828494439661
+0.1498404465152227,0.30811031323360766,23.221254678849252,8.370715138489697
+0.1485247689715927,0.302528065397603,34.401385208341516,11.589669362671525
+0.14845342850709162,0.29634331842577005,38.41954657661079,12.115240906248179
+0.15091825458156335,0.29952979519137674,25.875348900280727,8.60908646947146
+0.14955109782407647,0.2956367489421641,29.43251611526833,9.221358620406383
+0.1501771065615232,0.293456880759401,37.90896859119581,11.821650457168007
+0.1503635018578888,0.30484194752221594,33.273665410957776,11.513016857175039
+0.149810512529218,0.30368550031556435,28.177412289786616,9.684504367002942
+0.148527868907781,0.3002801812581374,30.015811521555527,9.865075261940797
+0.14815347224927553,0.29427902862812755,29.582489361367315,9.15202012191882
+0.1485415441601237,0.3072222336327934,23.597641006242057,8.3656519933588
+0.14927068930355938,0.2951046054581521,24.06353820771672,7.531267301583464
+0.15103769218436275,0.3015965899359185,30.645307458800655,10.351115501051677
+0.14887768434369197,0.3065870789992836,29.095640008050868,10.202334159542612
+0.15073766923747908,0.301433766933661,24.515113382499344,8.292801341056801
+0.15340947646511838,0.30227038125255407,29.8181751745794,10.337843080820736
+0.1506495839907466,0.300783370070874,28.140787823005173,9.46817577300456
+0.1512376417989485,0.29983775563939147,33.57245732829386,11.201090790895941
+0.15053981882125825,0.29751989615459584,29.25003643000913,9.449101664590913
+0.15221728196702,0.3087235816482445,30.24560456569879,11.104355253736912
+0.14933414036706344,0.2984513942174392,33.998821903656996,11.05731246680475
+0.14925196503487678,0.3039332036290466,32.36084230920982,11.05954101031912
+0.1508171431271309,0.2960509621595055,35.18004165632749,11.263583596334051
+0.1514012625695033,0.3025305525863239,20.835507479840576,7.163041881983164
+0.15040320915965236,0.2938396973575154,31.610475275489456,9.850663181898154
+0.14903549572723307,0.2920007721639386,25.747566419348058,7.810978030142471
+0.14956443374274261,0.2913411127971414,32.86782977506564,9.906599480362251
+0.1505874978435055,0.29978848402518365,28.010683407739158,9.316856019325835
+0.15010684600470395,0.2906780064911754,32.635711786596495,9.839350799436527
+0.14865150166713487,0.310147401093875,29.650146103310405,10.690635175163155
+0.15068683388723486,0.2966218117647218,32.72433430090361,10.486190016159235
+0.14939332647676357,0.29670510164521424,28.834027409304156,9.2174046236861
+0.15147545989811723,0.2956011731907298,28.01110245698955,8.98287545028052
+0.15007989923997067,0.30707357370461635,30.999336454628207,10.978922669434603
+0.14968885836801518,0.2983704404171525,29.774092460635142,9.698236943256742
+0.15105738333145605,0.3027371807164543,32.88381563979346,11.27352169644442
+0.1504482853811945,0.3076565354312947,28.565851171996716,10.19422806858283
+0.14940886740933051,0.3045242555096369,34.810683242030144,12.017463932904382
+0.14951476317830154,0.29722996628883486,35.77505804186834,11.503950325058447
+0.14974142129556475,0.31236033841830235,25.127267981652512,9.292416444331025
+0.1514741554422508,0.30193224924474,28.06663221585369,9.60363480807595
+0.14884541716622232,0.3002726634428214,31.003341562012054,10.222929233023898
+0.15008731819245644,0.3046886525892817,27.540694959026613,9.55466465059206
+0.15035192037690884,0.2973916158113025,30.292086876375066,9.821702126469011
+0.15007624961232682,0.295181472678694,31.67276697671139,9.954465393918783
+0.14943236130265353,0.302520465909543,28.964405728326426,9.859260910331562
+0.15096069803315135,0.3122985581187566,22.997293452177516,8.64166803339203
+0.149905934199855,0.29796058964846933,29.83516937671395,9.69934831511868
+0.15206562676466753,0.29987396453434845,30.756572071565948,10.352713098352725
+0.15181482660968426,0.2954205969277141,33.674906128238696,10.819049050552058
+0.15066022642385013,0.29809668059152167,32.23285459912112,10.523908461745721
+0.14872420820316457,0.295677014828812,35.28447902022936,11.058509779922593
+0.14919267630002434,0.3079929253310883,27.301499075719914,9.72982278319373
+0.151195740484313,0.29828017460936185,31.90239306021451,10.508921132838367
+0.14847051818328738,0.2959028040123085,32.54816143769567,10.19319127713054
+0.14891540096107067,0.30301189131472295,28.39883225788003,9.676500568756666
+0.14856067853097182,0.29866720792816903,34.483110597998305,11.19132741859297
+0.15099640109158308,0.3013257346369828,32.43162926033125,10.947577794737045
+0.14992386548862122,0.2973825213488473,26.039516772577166,8.337966411987656
+0.14979567699585092,0.3007711814565209,22.178515588978303,7.377255834725323
+0.1488834595412765,0.2967296213854131,32.237864863043065,10.251718975290927
+0.15105080210916697,0.3078235919147671,29.010719602377964,10.497214447027353
+0.14962052607059487,0.29887597461329063,35.532733029664605,11.51818092712987
+0.15051176468864985,0.3008317780945194,34.087530306342984,11.45422501795107
+0.1496638410538255,0.29739106329268156,30.497409646600982,9.893251282421687
+0.1475283190098092,0.30001262416344165,25.889311270080093,8.414107776792289
+0.15141939138396118,0.30346333934903325,28.568445480728503,9.89671852602635
+0.14953579991479152,0.3054416156843027,19.62948447266443,6.836154309855296
+0.15160925473286974,0.3023545137651828,31.677690790499565,10.899448428621973
+0.15170259489562538,0.3056002152221959,32.20742536978436,11.43153218458201
+0.15029126855475228,0.3018769883595856,34.008303724772475,11.512195015153056
+0.14875397098944085,0.297915996598035,28.521959588948153,9.211149379174298
+0.15022581388341094,0.2972302384595297,31.89538545145334,10.301146079781304
+0.1518343877468685,0.2995550930844325,34.45993343964761,11.534108191580327
+0.1504985210036231,0.30852764177166064,30.67564751794201,11.120825946639169
+0.14718803997714522,0.3013294637723279,33.31960179586998,11.02063408504256
+0.15136290375834152,0.30340779914978555,32.71855708531034,11.312251548344655
+0.15041896033364155,0.30370343616700973,27.497926852813684,9.474610345812014
+0.1501266869264382,0.29923367166592735,29.981285892846213,9.876816944419174
+0.150504650882017,0.302961379053167,30.31010623939813,10.377305125459655
+0.14904380219696375,0.29962239684420006,29.401414231678654,9.634073011175083
+0.14984238689970963,0.29548506585853157,35.42920295184827,11.200533253125592
+0.1495299289710056,0.3042044842718961,35.473885641967925,12.20125939568891
+0.1509853238099516,0.2992233647088931,33.63135876908111,11.098272715970781
+0.149699528339886,0.30033334362869946,27.800949494704888,9.18081840186161
+0.15195169486875026,0.29759968872265463,27.29560128531306,8.960661191413271
+0.14846568665068594,0.2971448638182939,25.05884725507444,7.999762288754454
+0.14969925191152958,0.29560660830042723,31.831185898923472,10.172847405611444
+0.15092000924039667,0.3058486589859063,32.41285369264857,11.473198295499948
+0.15117333748727002,0.299903491643092,26.880660460927004,8.933877083316148
+0.1500115098337956,0.2954244669706926,28.405340777371308,8.990188906338961
+0.1507038370900229,0.2999608310203366,25.956220028865225,8.619141542627144
+0.15000729172305646,0.2985834165615822,31.76886949724714,10.394573558387023
+0.15008371182533833,0.304759449519094,32.404221506053375,11.286860365641454
+0.14954647040832605,0.29193265475580726,32.180279621011366,9.800569548909865
+0.15026352713039168,0.30667054864627613,32.563500703799775,11.567457976025736
+0.1512197796864721,0.2978932626815887,32.28903622368725,10.577577702107725
+0.15238247548005923,0.299727798873198,30.020973312479917,10.085291318219184
+0.14963471274357273,0.30833490631991184,31.763680628541575,11.399222356347066
+0.15069096267976723,0.29555559725305225,21.945145281526106,6.999783217315004
+0.14906332119602608,0.30078907541737004,31.82857201780256,10.53608151630675
+0.15096897077479235,0.3061998790380042,33.725308133346694,11.883238164180336
+0.15303905981895968,0.29652596958464833,26.763467153734265,8.765633790462555
+0.1478600663223602,0.2983808573383068,33.48915353562495,10.775677750584816
+0.14935287474535486,0.30778356482222485,29.78557936862807,10.604893054996161
+0.15030597013935515,0.297368154159861,29.634432661699464,9.559298425641812
+0.15014882924433626,0.29793900652451377,32.10173908971657,10.455855136243636
+0.15029126155730482,0.29499503179725545,32.36240420224954,10.21511932852995
+0.1493695735451285,0.29456297925207664,25.26744910964684,7.853210368946722
+0.1506264799985951,0.3004012712167485,30.984337748161245,10.380640499437291
+0.1504959960745103,0.2985506096318322,30.701727969817608,9.99587664425099
+0.14730420545928904,0.3054293425249275,21.498694617507013,7.3931630438348765
+0.15011991927676532,0.2917606772406839,31.871302363247022,9.698514560408283
+0.15049152874605512,0.2998635834152635,28.939804453484097,9.60875685738399
+0.14861715853069818,0.29377150168966115,33.88056885263483,10.484055433097371
+0.14954170603195424,0.29958826700348123,34.26125126580131,11.266765295293034
+0.15028540137036217,0.29957248149268023,36.31808622681673,11.98250341076789
+0.14980149075370627,0.2982014204622819,29.943244965357902,9.67781938523417
+0.14974101220961694,0.3007720743652712,31.87129192687078,10.630076291671175
+0.15043448161946263,0.29911860754168434,31.682542497939846,10.367434946230235
+0.14965365927148866,0.3064274278270651,26.481989849436903,9.356588330705788
+0.14916242581306716,0.30284602153686674,31.814429648367987,10.836784700722232
+0.14840511580669916,0.2966374439664789,27.72986329394353,8.799276236294478
+0.15066665111234054,0.3035633042806067,32.87731108273644,11.331720676715786
+0.1499988547439509,0.29375838860089315,37.73029297237324,11.705213345516691
+0.1503946768808426,0.303027305948094,29.556884163357076,10.101801134219794
+0.15033336328330446,0.28712042826616097,29.716418208527145,8.64581471342467
+0.1499164639143507,0.3076644812970313,32.80319812415531,11.709399981196864
+0.1494875838175278,0.2982945145400079,22.9859717335433,7.475518835242214
+0.14834483880313576,0.3041760036664769,33.42119127948036,11.399047511107959
+0.1495707537962058,0.2976638855266377,28.08836454516386,9.050376525600512
+0.15105016406805605,0.2935114807535733,35.43199709641456,11.086920087173864
+0.14964186997612972,0.29677675073120896,34.00123824114151,10.877933731766037
+0.15004654409814153,0.290443587333257,29.793474865237595,8.979665820895963
+0.14987645049698783,0.3035345959006752,29.808577046027487,10.17054853869589
+0.15042934365167723,0.30142370738832797,39.976397530094786,13.42119402116996
+0.15165518319027266,0.29876929702375304,31.975515652581407,10.592778032707871
+0.1484127397037552,0.29804497549077325,28.792305511977894,9.220972500236284
+0.1513425003292779,0.2952631576344503,28.8979471336642,9.271742967769683
+0.1523495143231631,0.29269848264865816,37.98575401231982,11.85860090783325
+0.14823832975520698,0.2945966802602164,29.01959759382838,9.039989711102104
+0.15008833608400537,0.3065103556252731,25.464078710841417,8.93603369783883
+0.14934975588118252,0.3023978391848593,39.753869781398514,13.428670244510142
+0.14954780991863534,0.3038794416198502,26.457671084031077,9.108902820086826
+0.15021074147750382,0.2961490991789463,31.797238023379204,10.16003922418946
+0.15150800144780566,0.30510130821426296,23.320998384663305,8.189843909502367
+0.14972060151039338,0.305334552387785,31.08238777574914,10.825131286613994
+0.15071350718856238,0.2956339529582213,27.91910441878462,8.915701397303552
+0.14776207428935823,0.30376010941986387,38.50080070979914,13.01534503532434
+0.15021858676240835,0.2995165761693487,29.994361106315086,9.922274880468667
+0.1499842563313311,0.30457434082795765,29.960509895617236,10.353678260894942
+0.15158037569352312,0.3025840503227385,23.132742678746716,7.97613992075369
+0.1486824228909639,0.3068064689316353,23.736287842289165,8.287659076765763
+0.15089448642168105,0.29843970677396375,31.65316319904052,10.370024134291691
+0.15059994197774715,0.29948226295030317,27.41278032311454,9.070320486661851
+0.1495451723666315,0.293580115948483,31.522491875118227,9.77092998648504
+0.14905393495525013,0.30064066694401764,28.403398476387025,9.408616695095459
+0.14956962527673787,0.29372033511292045,31.47469096913138,9.749553360024645
+0.15152768132541225,0.29113162239141893,31.78687483032784,9.719632719084078
+0.14992172772480417,0.30500415591407054,26.73841147498423,9.324908945459596
+0.15007908096987654,0.3083259257435715,31.23474537152478,11.343425018475052
+0.1484305587004544,0.29813185858543145,27.059824391240227,8.719741770749515
+0.15013260666003247,0.30164777037467105,31.781739027043514,10.69477834862357
+0.1501221982910582,0.30290767363185667,30.570537473007754,10.451262925132175
+0.14955971240174162,0.30553827273064804,23.85797314083792,8.349455279996283
+0.14742182802714707,0.3100328616077529,27.790669203603244,10.044960508486021
+0.14951348265486752,0.3033070403297169,36.05189617904461,12.312945166099151
+0.1505636977409086,0.3042202724158908,29.240706772621632,10.118053347532847
+0.15050767174632826,0.30330023060599,31.09619405423005,10.650680934389129
+0.1505112975587273,0.29183596971304504,29.64542956132206,9.053422002746295
+0.14983940968367063,0.29894693571588526,26.031936503313894,8.534260677387074
+0.15018905952930703,0.29503432917093486,28.740719573980122,9.032415838068875
+0.1503119575775075,0.30209702561396656,30.365409852605808,10.27668837460015
+0.14866657432968375,0.2927697726054152,32.71434272170407,10.025319848439704
+0.15001747373076518,0.29838438322272837,33.85380739533931,11.055148091131448
+0.1504638281689992,0.29614539750735314,34.186010612699484,10.984530623517518
+0.15279144421815125,0.3073850187591904,25.50058817011695,9.254127866120534
+0.1497246281155596,0.3000550888447516,32.90106588818892,10.926628781542133
+0.149532221988721,0.30577487257077623,29.869371113794045,10.40676638581266
+0.1503799554939536,0.3077174270811872,31.27022627602555,11.23318370517471
+0.14839452045728455,0.3052216820170324,25.80853981986696,8.847452087759237
+0.1484434196857105,0.3018665564593739,30.646244619704138,10.225902255311492
+0.15035689143378028,0.30011845925638003,30.3848829220658,10.108905853593402
+0.15122960273799693,0.30268262933442686,40.49249158382302,13.880386308108509
+0.15064270393178764,0.30263491515115437,30.54757882174107,10.454551939237284
+0.15062402479608974,0.29995483114727906,30.728901520323927,10.228294240364802
+0.15034643523032404,0.30033205536040075,32.824714826771604,10.975320193004437
+0.15039922107687734,0.3064911790888299,24.894688772644646,8.846928525618587
+0.1478402767022365,0.29981478069867007,36.22687384124418,11.823883598756138
+0.15096228609533102,0.30821683883793266,29.30332431612397,10.560829159960232
+0.14896398145417414,0.3004601101378839,32.60066976580299,10.766665895824332
+0.149090849738353,0.3035190654809991,32.076224730559595,11.011745702239166
+0.1502191750915234,0.2962532824496803,28.891242664861668,9.237864058261346
+0.14819990219259774,0.30125358118360623,30.275358761646324,10.054876375065364
+0.15059831075819485,0.30353670278921374,30.107687869021095,10.368896517807734
+0.15007460001560333,0.301496773945415,29.439087156744865,9.849206317571326
+0.14978654122823423,0.29618968164510245,26.363362767234698,8.403383801839116
+0.14942175328983148,0.29974530428604645,34.963496403498,11.479617185169529
+0.1495800200467064,0.2989566584881638,30.16552138725714,9.8333982804796
+0.14824832904209867,0.2926886824299055,34.57094013841479,10.425896459076101
+0.15040418941157982,0.30542904401624577,29.7286005960694,10.443534634179846
+0.14960445935515512,0.2989117121470337,28.17913401077612,9.259022161948035
+0.15049645787541147,0.30010925330796495,35.526072435488615,11.746207886775757
+0.1502920127812123,0.3007627596036902,28.473182835553807,9.51538333509737
+0.15003616108911877,0.2969102160840476,35.75321225542645,11.461235151570149
+0.14900859288325075,0.29576760203975627,32.55653477844018,10.218122203601302
+0.15148816840431745,0.29786024753366647,24.659049637283324,8.075870221609039
+0.14899160509870846,0.2954923111437254,31.24562402174696,9.811439749492953
+0.15031236931034347,0.30405442071201094,28.089355465920075,9.752970570284168
+0.15099063631508525,0.30337788271759314,30.46422373850013,10.535862105604362
+0.1498711814749599,0.3000310492113073,32.11500345041348,10.589514986439589
+0.1510578354971278,0.300767868355497,26.72592038578928,9.050197784202208
+0.15026126362638156,0.3087833938604004,30.37093206481986,10.998813748036719
+0.14925594063539818,0.3064601308690526,31.27988008386527,10.972079926892425
+0.14999340817149734,0.30215454800392216,30.12425778047354,10.196886168619903
+0.15124014370398545,0.3112408869390791,35.54231657976504,13.231842108889946
+0.14939070796989323,0.2983126075137707,31.76266676052733,10.355483494323897
+0.15105315595733473,0.30110076762567856,27.733921080069788,9.363282553373928
+0.1522675063738427,0.30243731685207836,35.998029256830854,12.336205787525653
+0.15137718826335542,0.3030631839194479,26.71540075844504,9.257688655494318
+0.1505129796217725,0.30442757403259013,31.95205628553071,11.069838506409985
+0.15083321732790148,0.3075938363319539,29.3075055138151,10.482356095495415
+0.15076199380864716,0.30501111161853534,28.301471306319755,9.83157229505239
+0.15164840825144268,0.2979900337404267,29.702201602242653,9.770348266742376
+0.1506159382088891,0.3047478746692576,25.667898813944042,8.936966424058694
+0.14781427069899347,0.3002791178092623,30.561090821483425,10.017085521134605
+0.14991150817041568,0.30167764433770966,27.51190087550193,9.19326484296544
+0.14860335106142353,0.2969871025806413,30.633142224439514,9.794576140360453
+0.15047529242251503,0.3071077680038786,28.351841342603908,10.13869981976002
+0.15048738101856848,0.2979406085048884,31.579346059972963,10.308691751907041
+0.15081732624385974,0.3017368960001518,30.739268419839615,10.395962207409895
+0.15047582078668134,0.3009112486806818,25.165386383635436,8.456140137549104
+0.14698154008586975,0.3019701359347489,30.37259097833686,10.055104719710538
+0.15055912155285428,0.3042619346488645,37.99439001126802,13.128286332968244
+0.15245386743130163,0.3031803182659711,26.725139008648917,9.299197705046604
+0.14933421759586793,0.30390566855274315,24.75051873483075,8.49797773720767
+0.15098035540313015,0.2975437725131452,28.26419207614187,9.236316334401748
+0.14974296280644311,0.2970443131178998,30.350469208350393,9.744256832612125
+0.14959654933529112,0.30045108314702534,30.635669640334832,10.122762011736121
+0.15300285703403874,0.30814188209171656,35.58379491486449,13.103471627329599
+0.15174809129180103,0.2995560920240514,25.338925781979036,8.469018894113725
+0.15134705289674905,0.3026412134811962,36.93951648627321,12.685565269309706
+0.14972044974670232,0.3010014365734588,30.721217070806638,10.28142533975891
+0.15076663399113646,0.29906105489095497,30.187364942475934,9.951993674601098
+0.14946082362281138,0.3017221657863229,25.901307831328705,8.703314322305722
+0.14814378987189988,0.29989537016431295,31.597855838156626,10.274303415528205
+0.15071527787518674,0.30307148420688046,31.865722787252437,10.962048633789829
+0.14887233348452286,0.3063798821311468,28.901091711505533,10.084527175717751
+0.15006651012737268,0.2999572089739547,22.439234529744688,7.406452049007694
+0.15143126530568893,0.29978260793972933,32.43894508645403,10.7851596840271
+0.14929619676265496,0.2949699790324807,28.681329534044835,8.959908550534198
+0.14921911080818756,0.30772368829437746,28.897637104650155,10.236593359726196
+0.1514704486937403,0.30534657080917466,31.080560067525877,11.042920363139318
+0.1492268347760353,0.3015024345446527,28.454293992855412,9.52362538799083
+0.14889163951984524,0.30456309213111904,32.12152952681251,11.027074311002497
+0.14994437825104304,0.2973577290319032,35.80449280436012,11.599314819558693
+0.15029620712668457,0.2995920134642264,30.21350965393811,9.997212926593829
+0.15075921607986922,0.3054426849363509,32.521528883256615,11.377384042037555
+0.15277998645686627,0.3015691401763589,33.04996296131755,11.304308003870812
+0.1495530241254761,0.29775488710425874,30.77479637504087,9.952836314683168
+0.1496246783293217,0.3035442807640575,30.977065386234912,10.549032626692393
+0.1477338961065218,0.3045376877099549,23.29782432211352,7.947893151678534
+0.14987008971825747,0.299361973595382,34.04464745498466,11.219273039029504
+0.15034416790606064,0.3017173506852343,29.983845702056662,10.188387707307122
+0.15183477297391265,0.3011125936500516,35.75884652094452,12.03530685853131
+0.1494646340263628,0.30133067547886755,27.72414127393786,9.286971608347129
+0.15014855786359685,0.2987012080549104,27.54947087388112,9.013052564479484
+0.15011097596219167,0.30321879832728243,28.892222680326256,9.846611016479129
+0.14891517326006778,0.306973628951811,33.77368696149364,11.987799864929343
+0.15158964099473385,0.2932741429834015,37.439121550044995,11.72438926298804
+0.15043739752561508,0.3013977044368349,25.251892991924773,8.48374367460529
+0.15177473551447093,0.29377130655543576,33.098028762263276,10.431363174568787
+0.14971500833053702,0.3006475980205889,26.261018577315586,8.723228674784597
+0.15037619221653864,0.3056806014568973,33.438140829680854,11.720684015115708
+0.15050063343719752,0.30132439999456323,31.361889141667476,10.617293179792238
+0.15195044855286752,0.2964530142533747,31.697719622603724,10.267709605438295
+0.1509997213897438,0.30083947594422683,34.09507487977175,11.401923442310917
+0.1493936764103301,0.30430481260768383,25.774607536991198,8.904072801620746
+0.150285399861357,0.2964984653829919,33.333150582465386,10.666566954439423
+0.15170574955173022,0.2970335429289505,32.177326573572145,10.45407799972523
+0.14885982144042306,0.2959821573859365,35.68042547999434,11.214783694733185
+0.14963654069873492,0.2960877995114982,28.334346227304643,9.009632266933693
+0.14942410194698472,0.2969217052895385,29.92328867245512,9.541373205304504
+0.15201042833132936,0.29504970596595764,34.53445348444968,10.993666085874604
+0.14920552591838968,0.30350980567207086,26.479334224920702,9.013117692876488
+0.15095095269613323,0.29544407770972037,26.88632572350824,8.5584802110092
+0.14974533012061716,0.3008155268082256,30.07740895007837,9.974391308613784
+0.150452457299708,0.3006608856929653,30.098359297776593,10.054876658776728
+0.1499609393462675,0.29455573706014,33.1733116952727,10.459643208154443
+0.15003011356997148,0.3053249254863244,29.42136433484925,10.260414308245997
+0.15152231299088925,0.30654515879498717,24.19232463470094,8.630481869250877
+0.15007709548049963,0.299248943478987,36.132354776899014,11.870758700641085
+0.14972172906559045,0.3024270914068886,34.303454829047894,11.69199328622275
+0.14744932482940104,0.2983158890015547,36.06856264978344,11.554236227541642
+0.14930939184521574,0.29879160926849035,33.14200523290236,10.791490227885047
+0.14827792815752758,0.3001635411907756,26.009004826963697,8.527776435172644
+0.15030824774095938,0.2922818159280644,34.201404745980135,10.50500327007261
+0.1497687721925196,0.29393469784213433,34.96823323688797,10.86253957046205
+0.1504772255297223,0.3004851501880599,32.83204543843338,11.016377517399015
+0.1502123969560286,0.2975156392132613,31.119483775158223,10.031620281646772
+0.14881370878314598,0.29783617794752804,36.074226143035,11.580741003247546
+0.14811228883959004,0.2950584001931784,30.64119640983703,9.555861576747883
+0.1502709833778278,0.3074470083930091,30.856364290109493,10.999227860793168
+0.14971501197611034,0.29894233419685406,31.693648376861088,10.351507042053706
+0.15188943229338664,0.29262729869688475,32.33857929478733,10.118144931254232
+0.1505881762532277,0.29449515151212036,28.248264632413925,8.868049781529843
+0.14962957772965027,0.2948321224579357,33.68736455003864,10.509070086709325
+0.15022714289313405,0.3022334853240312,29.989349146264622,10.181014058481725
+0.1492676522531901,0.30288338330402054,23.79621560742798,8.040845989477088
+0.15016352417594228,0.2970415834968029,32.9576105072256,10.613939569728256
+0.15087663369708124,0.29489192630298183,29.25899261762829,9.228823984818831
+0.15066494068946434,0.30182956154672885,34.06356524567266,11.463028189783495
+0.15052450373897486,0.30024126704606485,35.32144724147946,11.764968400074517
+0.15097920524485783,0.29396442709290305,37.089111340193085,11.649364587669771
+0.14999559420243685,0.30769915219071736,35.335171770534394,12.63161130950466
+0.15129324950342174,0.2937844570746633,36.70103830424468,11.597319945160516
+0.148624439964103,0.2988571735172921,24.856336096672255,8.037254678883912
+0.14874680760987471,0.2956017910400362,31.274621031742267,9.830912721012163
+0.15031138112595765,0.2954051999378654,31.95477246420269,10.143882284023913
+0.1486725534277802,0.3087354948558257,25.338350710035044,9.088399881132492
+0.1508691106951796,0.3028155838955236,28.531232510868513,9.816610026276138
+0.14991884952395507,0.29986560250204414,31.456794501035947,10.354143443443194
+0.15101650314377255,0.30191944872083354,20.40968351284777,6.982569134070589
+0.1489028003432585,0.29997051830655425,34.100386314718314,11.19029447207648
+0.14947179840744554,0.29625233713796184,32.860406695548804,10.460020527478997
+0.1513007882547658,0.2989673078819293,32.124337207384016,10.61666910497183
+0.14962303075309719,0.30927241968968566,30.535196841300163,11.050710375498394
+0.150203749062056,0.3049514772792416,30.06495799788686,10.440823888173659
+0.1496738183366613,0.2951282732393422,29.55485122655795,9.292735249675323
+0.1504656092519898,0.3006836244173087,37.447899265188596,12.422564096345393
+0.1518391511286107,0.2964608972811456,25.64094296610233,8.299438132919102
+0.14894480784825112,0.3030274015230403,25.769206702664324,8.699532759918915
+0.14994401647591324,0.2997704649080038,34.09713282642293,11.295414429330572
+0.15091996732170812,0.29557947527129574,37.60097742129681,12.00239116066689
+0.15103487382031225,0.3073007208211147,29.69758553534111,10.595283549231368
+0.14921500535935,0.29734873693425,34.48501218774419,11.013155843024803
+0.15004647816833308,0.2946441868146561,27.349080486092458,8.626672425272654
+0.14910192844557915,0.29476182654477634,32.13774967170808,10.030829060707859
+0.15009325272174182,0.3050202227194285,25.007573130584486,8.715864486565915
+0.14843846459316606,0.29865306151804866,25.771060691150485,8.364694120741532
+0.1484996434749374,0.2992491357834512,28.065852423673288,9.101224747816511
+0.1491896776163524,0.2996091248299141,33.31395174252376,10.887811024138056
+0.15074385633224033,0.29708282304709194,25.431023931637572,8.204435182378214
+0.14878130361092867,0.30264604389771826,28.389835573750435,9.564040350750982
+0.14888400896336834,0.2989951046517956,27.090582107793278,8.798165246892236
+0.1493752734527502,0.29828436317592455,27.961389338307384,9.026890574536429
+0.15053799719618718,0.30375644286700915,28.313153164677956,9.750139592724032
+0.15249660566769366,0.3002438790638846,31.688193436766415,10.730175910986688
+0.14969918970051768,0.2987399323172421,30.384309404212097,9.92899122147034
+0.1513120822823098,0.29659918266115154,25.184492714373697,8.14250776455921
+0.15154488196851798,0.2985429025933996,31.358667050327256,10.337324153650313
+0.15131848544270254,0.2959657930493102,28.664921673514364,9.219661339532506
+0.14859534537554872,0.2936794054400765,34.32001612654417,10.588318488388532
+0.1522497694023173,0.30037128625233805,32.43932501916078,10.985415618753228
+0.14980485133133742,0.29790326912660825,27.062161960583545,8.750691917664522
+0.14957444922451812,0.2993558016529249,34.280166893025395,11.260952528563772
+0.15027385175027963,0.3035097829498189,30.956424252729455,10.592577698939682
+0.1514279621110235,0.30660352122469786,26.099703976103896,9.322835797400263
+0.14959602165188984,0.3044426164971176,39.77227981854566,13.734431086846826
+0.14861179930026663,0.2998820979558367,28.87051054580255,9.468094262018537
+0.14964599253960809,0.3004610212867709,32.305175447111424,10.755759998955668
+0.15133651739280576,0.29713909904633373,30.20642569048708,9.805925977855937
+0.1492581928668257,0.29209745008257665,31.446993517617766,9.547307518470944
+0.15062405788799085,0.29905272637925995,28.058865741919167,9.237860141711348
+0.1512562871754747,0.302389185983912,33.990716318977896,11.62005921535147
+0.15072381839786142,0.3034413328169774,39.34995285574176,13.591755739853848
+0.14974983617989948,0.2971032982544519,27.11347089204517,8.717130239887624
+0.1504737484616696,0.2939773577737072,31.13119378296351,9.739478772326397
+0.1496896355338431,0.3031460470104097,39.345161482398126,13.469768379443533
+0.1510377242085587,0.30224289772970575,32.79810438361782,11.227797358814206
+0.14901467148599062,0.29931957167310436,35.23773011246068,11.578175976031568
+0.14926121483946952,0.2906023540514064,29.119571892836518,8.700806879754595
+0.1495532551560739,0.2963871541816736,31.60866283541361,10.099248959494352
+0.15038384487200787,0.29902463980447497,29.04668693086314,9.522465278158487
+0.15085109265056304,0.30301544127535474,24.43433268935008,8.399926493783124
+0.1480664595781356,0.30543285605636705,32.60082666849543,11.275406571382439
+0.15257487130087916,0.30698747159079737,28.201896126169157,10.179603900481647
+0.15224863381155257,0.30256819231350973,30.430132672961225,10.49948051472565
+0.15045785555504043,0.30984028234629385,29.441347729028482,10.752984580326572
+0.1522877936963579,0.2908553666671632,28.409603492895528,8.686411118460873
+0.15186537244884848,0.29915944457918997,33.92499026237375,11.29244757400555
+0.14919784547863216,0.3013066141916268,29.432221275585977,9.802422207263307
+0.14921066691129106,0.29277757068958643,34.25178827731303,10.459856718439683
+0.15124509827722338,0.30183565327126216,30.793706877728013,10.503426439953618
+0.14903661685904163,0.2991914343551967,30.590796914631078,9.9834496325653
+0.14943060234616568,0.29779374040997203,30.762084850999777,9.951735699653582
+0.14964014364821807,0.2999442320728595,28.659571886198783,9.50032127633544
+0.14949332945039434,0.29460291068000016,31.730665495422503,9.93142751278643
+0.14854455283695037,0.29218923402697283,29.710739865969142,9.051012908502521
+0.14967608524476597,0.30632864315673075,27.976653442243553,9.8494887637866
+0.14972582632731116,0.2984468030073468,33.56047995953689,10.916803751009283
+0.149751460907365,0.3021773297632562,35.26275222635192,11.998781159840615
+0.15050409321221306,0.3038144933442783,23.027530153505833,7.93404139983004
+0.1501191437584678,0.30406095969897096,28.18141589205536,9.690260927054194
+0.15089790497606143,0.2989960356931945,33.99914763437158,11.306191675367797
+0.14960146688877243,0.29775216677859206,30.62478070876906,9.886604940453712
+0.15163203244888238,0.3054986711957548,30.209428793936617,10.705526300695931
+0.14934680492695457,0.29649645625954457,27.114338550981365,8.63116263936718
+0.15089652035708273,0.2966231247965731,25.818925420968647,8.367892389359435
+0.14837996327825118,0.2984946479712351,33.72275523380344,10.917236727552558
+0.15152946976073273,0.29838689259869755,38.864371605531325,12.828100633395344
+0.1511116291593096,0.29971131427462855,34.2713176726586,11.419489383955074
+0.14868831084143888,0.3068465825304793,26.453326720667544,9.269484257594735
+0.14875579465956834,0.30351986751218535,34.795189805153534,11.86223885654985
+0.15147483108100215,0.29214762444785625,33.99225877571399,10.515682171482293
+0.14963429638610848,0.2969359500965749,29.09017897984522,9.357430017376188
+0.15056708076387043,0.3006227331485528,35.10333901659912,11.71273419992228
+0.14962517059327002,0.30116558432034074,27.474476199176703,9.201314957613148
+0.1515117925177827,0.30451597442400974,26.999702780557392,9.425967795580993
+0.1500345949445627,0.3017236514057741,30.889584790849135,10.417839043095919
+0.14889852755646008,0.3058318091270072,25.101943500285554,8.811297393169474
+0.14971766350864477,0.30439287544683835,30.54882256666543,10.517984737129993
+0.15122084278678719,0.30204995549403396,29.944888013580634,10.16937153687168
+0.14909322799124655,0.300941119131474,28.324501216630008,9.39504185153295
+0.1500725448558092,0.3096008486823499,25.391980985957222,9.321465191122105
+0.14971028784801857,0.30356569981722054,30.99365467372147,10.634823331313976
+0.15023174062551567,0.30454114114792497,28.128764574412855,9.741460456470882
+0.1502068080676623,0.3036793432364135,27.237656834001864,9.358788041323383
+0.15141021391591103,0.2943595567637614,35.27662833369138,11.168360010761585
+0.1526981810448354,0.2947877665544794,30.2348810951829,9.647044158201139
+0.1511407747033369,0.29871737485312405,27.150666795757402,8.911503008741384
+0.15011753896402796,0.3028871384522722,33.32597728648213,11.385042381439787
+0.14911829989374217,0.3072879622849187,27.075606986936002,9.603672362390835
+0.15255675883892658,0.29805192026486005,23.83736991701679,7.878819703093543
+0.15024860486393266,0.30504214282182956,29.12901997218977,10.153791204030993
+0.15111279030780286,0.3027341702584137,27.182425929361983,9.382552995399879
+0.1512480470367665,0.30264364547957856,26.522525379378422,9.112812713702818
+0.1517961422721186,0.2957009025390981,30.42304470500082,9.79726231754013
+0.14940113082552847,0.29767671391993544,28.79527819370619,9.248355401321312
+0.1501012916943746,0.2986534021382506,30.981523033901016,10.120321230856375
+0.1508669667945632,0.2999391267464977,29.71653616457537,9.91916152523609
+0.1493572435382864,0.3031229860175865,30.802334439611702,10.500890212175937
+0.14936382467269696,0.29533109378215294,35.97257223871332,11.367100386495729
+0.14868204856148268,0.3026410738262118,27.388579022796847,9.344308031798583
+0.1507757559647749,0.30896992147857316,35.20127201948401,12.79459964521298
+0.14867606017861779,0.30074110836926754,33.80690123265691,11.148275970033982
+0.15035599841723,0.3067037755588122,35.49157290416888,12.584072680336586
+0.14936590777902642,0.29856866773362256,32.23459040899341,10.445437206914516
+0.15160155864749766,0.3069906561219389,30.588771982146703,11.022571519591997
+0.15077573840768896,0.30096158146498636,30.153183532608733,10.184847497895715
+0.14952257273686848,0.3049881563575047,27.685655866833862,9.575673393509062
+0.15066244435702095,0.2980896929035425,32.597183134861055,10.6500381402429
+0.15018181984119144,0.29132043090444776,31.864313731137578,9.710426126815037
+0.15131924512021863,0.3013108160856183,30.28846216867025,10.165747061499001
+0.14948675443128087,0.2995042902902087,30.44995724802021,9.960873586451429
+0.15007195674472956,0.29865176682203753,34.44974101410525,11.265736922646948
+0.1516668150220137,0.30300155127775896,31.645318701701317,10.945690909291267
+0.1504938818973473,0.3011284014824035,33.10085830675867,11.086551250829578
+0.14904939577798532,0.2944106833000758,25.015848812035827,7.8101687444922305
+0.1512109515355217,0.30538926367640656,28.88719945851428,10.18147076110747
+0.15128811395753677,0.30774522490505796,33.44875493081932,12.007657378060625
+0.15086873098346731,0.29470157550590775,29.442979531694768,9.261595734855659
+0.14755773027331617,0.3004357717345492,31.931021303460554,10.496689126994152
+0.15077839658777725,0.3022925308101452,30.57250358763958,10.355346705434448
+0.14866263592410509,0.30643249806851647,32.06308989754519,11.215140441372798
+0.14853518646960184,0.3023805334484592,31.96834181640001,10.757903757427387
+0.15106050539512483,0.3022691007087235,32.720564467999864,11.1728216048679
+0.1488518366283142,0.30259313765116763,35.06563095616793,11.854954235533114
+0.14986852133437634,0.3040957305799187,23.621177453582643,8.208047149499038
+0.15032972852704402,0.29948039384010755,31.723641597608943,10.495622541031254
+0.15002980084767795,0.29798333108680475,25.32922730793718,8.219170070840118
+0.15098373502963386,0.3026884378271235,32.35475210222846,11.102326892626891
+0.15060975015751246,0.2974388511062278,25.109243469825657,8.086523323021016
+0.15179463063999346,0.2897613675037335,31.324064558434202,9.465224000111336
+0.1475961803121066,0.2979036582746021,33.61905158431908,10.776275932597883
+0.15037363591454309,0.29948384732395555,33.17916340428305,10.985304317931758
+0.15189461732029347,0.30013331174790503,30.492071372787567,10.271155752239066
+0.14875209056050612,0.2996225199226073,33.93836723736836,11.156497603670742
+0.14971162433921525,0.2972451855470223,28.06482987458691,9.005660829732
+0.14881177752559402,0.3023604016866651,31.794493610876486,10.68216281623272
+0.1511639107557923,0.29538741317105105,33.155228117856836,10.572002817024417
+0.15042382906838347,0.30994214674868875,31.81543148881401,11.666658845816443
+0.14875610336571182,0.3053870851238211,27.80800458155309,9.662523378155399
+0.15077300574940825,0.30744404274476694,33.05553788429799,11.781191410737039
+0.15222711908605477,0.3043380120005267,30.244464622267262,10.591456273563175
+0.14941757140610196,0.29789414693009436,28.47259907076954,9.20462515657633
+0.14911951422666206,0.29855402847033097,24.97967885690278,8.12947097331001
+0.14853592833785773,0.30333476023739997,27.879967411598162,9.466990522565773
+0.15010225072791747,0.3058703265116351,33.103852360849835,11.678342255840498
+0.15060315995420367,0.2969139745991651,28.80613717409047,9.275515289369668
+0.15095259074221296,0.2963460142765915,32.14728745160446,10.322976200574312
+0.1500986667640763,0.2994607327949401,31.482321335234694,10.353982153972376
+0.14927050053953125,0.2961516123828877,31.624694001895783,10.048398841758873
+0.15019962808412976,0.301342131715061,30.73723535140479,10.37324094277632
+0.1521049460892921,0.2976848250851517,28.600743490185835,9.371785884287366
+0.15160986941429458,0.30325015991713183,26.86751314394502,9.313633169347288
+0.14879176759986468,0.3065982624437267,35.72521043997491,12.504480051295715
+0.1503633686542998,0.30233459785123007,28.239554609108975,9.644307206547206
+0.1502467034394644,0.3015126049021954,30.10906453564904,10.146217773713333
+0.14795497671269872,0.30274671874061715,36.20083737102175,12.107179806003458
+0.14942085652317363,0.30244964056303575,28.17884100955623,9.489458032616566
+0.1499321863750081,0.3092977163752517,30.863355167854706,11.185835895916568
+0.14894813955756647,0.3039556781224703,28.739259641663757,9.891173469247008
+0.15037338034232833,0.29832669997186584,29.438871425663972,9.640407649789305
+0.14928196949946518,0.30299775065062057,31.51584555859477,10.707583041052825
+0.15015944216572516,0.29604416142045864,34.433464823289476,10.942976715660155
+0.14994983881146187,0.29698796511307485,33.46268926798564,10.779506708640216
+0.1489998073965514,0.30316367943920636,27.71086197829281,9.416602437600098
+0.1493740236367495,0.28834310710702155,36.78603145767693,10.78628661401749
+0.15027278247539458,0.29793283512375757,32.453093109958935,10.506287687700915
+0.14716155962591726,0.30420267199040785,23.17396406926514,7.837974576127341
+0.15006601948464496,0.3057051239120304,26.096207561390724,9.140850325352282
+0.15050295787144727,0.30203551740486084,39.42446965638594,13.363759800688827
+0.14891127912237007,0.3050661313054745,29.44774999446891,10.142948253944429
+0.14954175460645588,0.29195368015525447,29.023608739554287,8.830830415377447
+0.15040552897069795,0.3030355803400293,35.12180017393751,12.038902470576502
+0.14986088564187877,0.30084396843032774,34.18479290320459,11.415068666883869
+0.1493816450440643,0.3069230753311129,27.066005776719944,9.51972754332856
+0.14862886581284707,0.3026675631078573,26.9571194179287,9.098948748548148
+0.15024883005594214,0.30087829271742444,27.24221441950601,9.127873152308092
+0.14879640702553681,0.30448197791299897,25.958264320489327,8.904661957869646
+0.1506688614307936,0.3069330865389922,35.65216178965902,12.668533728557058
+0.14865695618488445,0.2996825316624834,36.44149859273257,11.89451639715007
+0.14998352330112344,0.30458266619333835,28.108489501800484,9.738853379036234
+0.15124269261856874,0.2949966522515439,34.98781571628529,11.100619945090358
+0.14963698034529632,0.296810846424187,34.210619218857445,10.910248214699676
+0.149570405494151,0.3069378075770276,34.26203241830685,12.070764405798634
+0.15192144245897035,0.2978243305379515,29.469752015329718,9.700543293353013
+0.14980309769487335,0.2998840229117691,35.90737865557827,11.907968642777318
+0.1476947374071023,0.3040380876528218,25.203326943600263,8.558160391651223
+0.15019913317363365,0.2983290109917805,28.580128931098113,9.376421305997205
+0.15065088947818234,0.2952808301257198,34.760887469507175,10.976317410574794
+0.14991429073071938,0.30256065444713215,27.92763707097879,9.468257628465777
+0.14908551911487652,0.2999616472702972,30.756786847825662,10.148590479613263
+0.14952241390306947,0.2992318114559588,28.42637909867104,9.344981761844082
+0.1508230019306415,0.3081910829639969,37.930212515719674,13.582645450411306
+0.14833361174082507,0.2963278893443571,33.322479383314295,10.524350691429188
+0.15030895652556073,0.3047439259632357,31.118367911359208,10.8613392403731
+0.14992554181734735,0.2997130574969072,29.31257040474037,9.626406830907014
+0.1475790227581228,0.296858802352097,31.00260307652868,9.805904070235139
+0.15015557446484623,0.2988966979500642,30.20761981401578,9.925559860387866
+0.15017746682914498,0.3034171434553139,29.547355206261948,10.133644105275591
+0.1520075429559238,0.30724282650354395,30.637865380048034,11.056137697391799
+0.1507671662045852,0.30571992304155593,30.359204416834903,10.686748638318134
+0.15203027963795226,0.29263124384101086,34.81325836507224,10.85628241038444
+0.14887416256991456,0.2989394662654653,30.207323346277658,9.83620912031533
+0.14913628480801333,0.29710095477366694,27.633380470011986,8.852086805357546
+0.1517182434722385,0.3009707802920664,30.25979907271415,10.206055928012152
+0.15053141765612635,0.29821763397976314,27.319932392308797,8.958056354281076
+0.14841832335630978,0.29846429196926744,29.180327807361493,9.420305148340038
+0.15165536360236312,0.30128397085023867,31.09351871481871,10.578104300707668
+0.15098910219823153,0.2999933188965368,26.815786768504037,8.994467283502395
+0.15009583872222962,0.30663467053815696,25.409299742618686,8.993825175922384
+0.14913435235167535,0.29333160315946005,29.362735725805628,9.00663938681733
+0.14982865493246916,0.30183931607687514,31.82999515734605,10.764210714555109
+0.14973506725302016,0.30094804600245834,28.984229334787745,9.644660099926218
+0.1513514103866163,0.30574818982095475,28.147078223079355,9.979373764038153
+0.15014341561122121,0.29690666886536804,29.534696678137216,9.531603579425342
+0.15126380331953496,0.30236918063079293,30.879494275215205,10.542940783942615
+0.14937439524391094,0.30259299763469916,26.494984198007685,8.953792474880377
+0.1490593873716119,0.30352637194954746,24.290386783876393,8.293776557288819
+0.1513601679763086,0.29718639628159516,29.60473879377047,9.639171029238986
+0.15097485196231697,0.3001823380278837,32.451936625168834,10.796142869243326
+0.15046776917145274,0.29781403511915966,31.3315614031916,10.225781990952306
+0.14883666300274906,0.2952449881387239,29.576944825155103,9.32194290360819
+0.15066354684624875,0.29572349597227554,24.901188207274753,7.935699203450763
+0.1515789921874879,0.3010661757038723,17.077719061584705,5.729529855616555
+0.1492356866205183,0.30423780835066155,30.034261918641796,10.216993199536482
+0.1509844111898398,0.300234234163882,29.452527938398383,9.78157922194245
+0.15088873226643115,0.3057499100030522,32.164334388320576,11.381270941134245
+0.1508248307879321,0.2996504979967204,23.146414020011974,7.686255908408043
+0.15073614624480536,0.3037231889609596,30.71867380464822,10.633158666299103
+0.14881574777206436,0.2935747103263872,29.264144515479163,9.00956906242753
+0.14901109871549897,0.30463717822811326,31.495026967031365,10.90977148337577
+0.15038193467003627,0.2949751727458213,28.643610811516563,9.006677471251905
+0.15004558832304157,0.3079579720404774,28.055408221550096,10.09934653950414
+0.1493789148154548,0.30277837099241667,28.41656359683177,9.630569981835235
+0.1497860516979651,0.30327597165614356,32.53562972697548,11.136002510219312
+0.15110200443717184,0.2900209425872197,39.80316979543555,12.014392732161491
+0.1495642240631646,0.3024917837443141,25.69225036944193,8.734039532154105
+0.148405836622192,0.2922860641235475,27.050731545811075,8.253613470226615
+0.1514004024446554,0.2972899433843857,40.45103533664401,13.248977092631131
+0.15055276138784465,0.2933509408502407,25.754475926253473,8.04702498162911
+0.1510100978189771,0.29801790461719546,29.89343336847201,9.814839562452919
+0.15024813960404648,0.30581318417990083,33.264488663157344,11.715992948633215
+0.15077672716966917,0.3055674983288447,29.113230742435473,10.186807394331254
+0.15101760741836642,0.3045132639514066,26.34739164283007,9.194576199538865
+0.14967965253321014,0.3020931230860692,36.7484705191902,12.382010183692497
+0.14965794604023056,0.295045331281845,28.406306720822506,8.918873207022653
+0.1504114195995648,0.3042960647800742,29.497803145364706,10.238474238995106
+0.14927921351220244,0.2917411293265404,30.80639663146129,9.335155589739738
+0.15073978039012884,0.30189381688961836,30.27134639851194,10.29361873800645
+0.15128900351495328,0.30605723115483247,32.78995996114908,11.637412129967414
+0.14972005930993432,0.2892525082132915,36.94027328642144,10.997972760999673
+0.1504626287701357,0.29883000929604103,26.676230956741822,8.728364631241067
+0.14967815188267694,0.3075763371455385,21.368063514150197,7.621294239914396
+0.15077631111800863,0.3021181354041155,22.105491737454777,7.543142323396401
+0.14866287112208848,0.2961182128219566,28.401607654404444,8.953967628499244
+0.15193527916093685,0.3000042938533572,32.80646936440046,10.987508827543984
+0.15035551635925323,0.30468341611581945,31.535633551273467,10.96386002320138
+0.14827470859022593,0.299799959542347,34.99962382245651,11.385351171365514
+0.14777750142767757,0.30292673562423317,38.119265910439495,12.820325314397216
+0.15256472528364867,0.29101983625859146,31.17275704424588,9.615035135788188
+0.1487029719304728,0.3039734660915847,33.389711086849545,11.399779294773367
+0.15249023089846864,0.30393524056871896,29.32214676597838,10.251415185540514
+0.1489973971373786,0.29951943487887567,23.59628233637533,7.714320291066112
+0.15117098571098167,0.2947276929023416,29.724126899453296,9.391297507327778
+0.1511137722835984,0.2905139119319532,32.5801944258856,9.87121633975025
+0.1492740274422806,0.29473325505255127,33.387826136394565,10.439174935050133
+0.14892855761812382,0.3015406848925036,29.586250231172823,9.919088373937782
+0.15113793121441482,0.3057777232202852,26.13057414848542,9.226036750272996
+0.15174223906316872,0.3039353187824259,32.42537584853134,11.356532535591851
+0.14934234476290992,0.2949468793665314,29.549272426012294,9.27393685745701
+0.1490402277512992,0.2987238267373555,29.53181646536327,9.582268534183985
+0.14826882362825816,0.2975812051557993,33.81175296456962,10.79286922185885
+0.1493435503171579,0.29330883912175737,40.482933491346984,12.438105651757319
+0.1504008149472993,0.30492821567488654,33.502042682893205,11.637790690402568
+0.15036960109991435,0.2994998107716525,29.244172693717218,9.635854259745244
+0.14950713748751568,0.30339810790871724,34.53868613842913,11.759251426290856
+0.14997597785427608,0.29789857553084537,29.772285080732278,9.668963887258249
+0.14992968319716451,0.2900621699470339,25.100786840808166,7.507257230111522
+0.14980570422228298,0.30215075075416126,31.663753087921275,10.664714739239262
+0.15018339292841276,0.29610064012688897,32.8740038024459,10.465373787975686
+0.15125849698164043,0.2986652750197369,37.598022285909714,12.380331649976458
+0.14923136735863332,0.30098058274842565,26.78618233676297,8.934081854792115
+0.14951226229122133,0.3011719689163863,29.926419783690857,9.990576843155981
+0.15036417749696465,0.30574639229446116,35.30241838748062,12.42704241422639
+0.14949892092330513,0.3016650925230108,31.03109936835361,10.403943747808786
+0.1481451506648985,0.29554496162330907,20.60403224450084,6.471993744518181
+0.14913306698858445,0.29755963443017347,29.267674291203296,9.414774412208873
+0.15052278672540734,0.3128443852116192,30.43756706504981,11.465555296608722
+0.1494418573448038,0.29888737140909455,24.90339111278916,8.114624167320823
+0.15048991656259456,0.30165236028217673,35.71927823405465,12.071572404427727
+0.15065372244140615,0.30312900389009306,31.91200972152223,10.937538027492506
+0.14956377265167994,0.29586671558155664,28.39759828351739,8.962725100186917
+0.15104313747804582,0.3081095189770851,26.40663142711467,9.582075108431361
+0.1500841177576905,0.29861517490490813,27.995250503595148,9.151584088356588
+0.14977792437246584,0.30651978433027205,31.376375708782653,11.087878305787639
+0.1481742410430165,0.2948878839842837,25.86223004562825,8.061502129812864
+0.15171343433961257,0.30374886634851295,23.40476194373009,8.181340291175696
+0.152316287807448,0.3053740447725618,36.34825318802376,12.945707788574076
+0.1508471475379125,0.29839823851193265,29.30651605503477,9.609692803343718
+0.1519945641559389,0.29675668378925335,28.768069642233424,9.321966266688987
+0.15064688565650722,0.30433464782224917,32.47007909077459,11.27985566439424
+0.1503111245075296,0.2890249960943951,34.30271576230506,10.158646334479373
+0.15079574146765137,0.29722769144658484,29.58517044412024,9.55551301030745
+0.15026785736780493,0.29268389873754425,25.07831762712695,7.73689469628687
+0.14975465727268486,0.29492804102266773,29.497382677529657,9.197214737269766
+0.14932869959308986,0.3042472594989322,34.466656700604865,11.83368224772098
+0.1485804522453124,0.3060047943819215,34.30907279995165,12.011934310338338
+0.15152494582558068,0.29397748210495045,29.954332099137957,9.448352559242176
+0.1498005628197167,0.30154443187253793,28.719225421554807,9.675287162414955
+0.15070141719931232,0.2972414653208322,31.529222474433134,10.23426361350408
+0.1489608235421418,0.2946971039504677,35.648598673779006,11.103765925905943
+0.1493874160719063,0.3037950168691799,26.586786335903454,9.094962041600828
+0.1508410635531712,0.29484738517817355,39.60353184166207,12.561584458023875
+0.14881284035934886,0.3079822432673712,28.704397430348692,10.167250506422404
+0.1528387613234047,0.3063751092678785,29.09402581518462,10.471787509200173
+0.14952969846445832,0.294502470802227,27.898547897179533,8.678143879581258
+0.149056219355559,0.3022218142215038,35.70599521075651,11.987365261432995
+0.15191427451211212,0.3009767473429413,35.5769006135537,12.056062822066362
+0.1513963580213853,0.29903956671175413,24.897857018214125,8.252207071833368
+0.14813547087625997,0.3002181839148556,28.976694011533038,9.489243695656176
+0.15146127426488862,0.3018138430468053,25.705269725292347,8.738901661848878
+0.15134501823795732,0.3008753327937054,27.676378232895665,9.35873628268931
+0.15097089037466074,0.3025228831331733,27.16911740238612,9.272959756667545
+0.14985889758599388,0.2954662584846817,27.457028602416127,8.715813174003278
+0.15183669663296862,0.295712975642533,30.25401769576005,9.687116997731646
+0.14930935536329765,0.2948829038519649,34.74999969647181,10.889625600499508
+0.1504244573544395,0.2971309773308677,30.57368004346955,9.89573112164375
+0.1485169014716955,0.3036672037493647,21.74230782875913,7.391586008643754
+0.15033605229412086,0.3038163739094664,32.856173746241865,11.312007681491497
+0.15261950093438661,0.2872252632380152,36.27874290540974,10.730080975176921
+0.14860912787948738,0.30269192378626847,32.681088950627185,11.021514563069651
+0.15025124504295637,0.3074169225799592,28.314607374696603,10.054749508600077
+0.15001029042633415,0.3073216384669239,34.01335828205734,12.104175552962841
+0.15066684372984945,0.30375017635911844,30.22921830077118,10.44821304693802
+0.1497703398512665,0.30451628445433787,35.95635247491908,12.466390598077057
+0.14991987670607854,0.28939918973213075,30.323061076651012,9.006000060372507
+0.14919217579848312,0.30616083703453717,32.3544071933298,11.238447211704964
+0.14907276943481274,0.2935437327872171,32.30531955288704,9.987832450049028
+0.1498086676408268,0.3023829007521592,34.13886707964923,11.552560059666908
+0.15126894432004367,0.300879605225048,28.297738293002432,9.474913920387873
+0.14894363244180778,0.30217063453178344,23.633910143855015,7.999237844698484
+0.1487327457187228,0.29854683261629134,28.663098239411184,9.280473294713168
+0.1506283627669213,0.29448934251807407,33.54798804909986,10.539772807384237
+0.1490892564270037,0.30420741814880975,26.480542986896374,9.109584516151852
+0.14877206178422148,0.2907517246801888,37.2971723503208,11.129624458168127
+0.15101402126085436,0.30645105835004827,22.061476803777282,7.8425793187469965
+0.15204509400000107,0.30281466157980635,38.07831238068781,13.120697857520362
+0.1484978265967712,0.30658970153177945,32.41219250400278,11.36192057944851
+0.1496176100625182,0.2995609200711106,25.556455744389133,8.419556700325225
+0.14881016790900303,0.2962940510562634,34.75399616780125,10.987315339568639
+0.147868608381278,0.3037849651990767,27.237112825496755,9.205234220460005
+0.15142193927417727,0.29463710925892744,35.50968416419404,11.224402453220597
+0.1505235312133665,0.2941319719876135,25.58516122571984,8.016371214258852
+0.14975031481029155,0.3019165607789426,31.204717605836795,10.510988454351587
+0.14998930285840187,0.3055161968283803,29.885444705502547,10.462110407521566
+0.14999910443279338,0.2995004223782685,30.65117813445528,10.115448046445643
+0.1507369572789277,0.30485289722653086,29.080611566150978,10.172214379402504
+0.14902592891480126,0.30018971272243894,33.71235683952253,11.118601573874297
+0.15129168135643017,0.29391648240204726,28.015019163570688,8.80799964932115
+0.15027372896681773,0.2961566617957027,34.143804799472264,10.945524899440793
+0.149484634852183,0.30136740699489656,29.714207233516376,9.898727420742283
+0.1487457211756787,0.30151931069925036,26.207686976724908,8.785458769758652
+0.15143265275767312,0.2964376059483856,25.276854994768357,8.188542756588697
+0.15139086751668163,0.2905510634820422,27.049741580810668,8.226908752301313
+0.1497281341484409,0.3010681608177375,30.739059929485013,10.265480097968426
+0.148352965304989,0.29957797847043555,29.880649175918133,9.802509589516466
+0.14997124129794312,0.29729443473426626,23.21583032839016,7.496022126619774
+0.1511582831988996,0.29622011316383673,27.596499706340694,8.89809041337201
+0.14934784490295788,0.30388910542971476,28.527906462637898,9.829411053166867
+0.14890186355726986,0.29870330928195504,28.375378599332237,9.204660460438028
+0.1519486862786064,0.2964492703427155,29.40040297348795,9.470413145100792
+0.15096984781695383,0.3066981002729265,27.794548747130033,9.873484674115735
+0.14815836226332718,0.3020412709598494,36.44843381296452,12.141803337984978
+0.14901335266864252,0.2999422615775993,21.525930812500363,7.123437089067459
+0.14964911712336768,0.301500781903965,27.172112230189168,9.077134439339417
+0.15061051202783746,0.3048268168580336,27.382302345159804,9.544537776855663
+0.15176942442792843,0.30510592179048796,26.635070380175822,9.418732892004543
+0.15227249128672962,0.30396980515928684,28.38857123194456,9.919870064890972
+0.15011881303242472,0.29990114607598917,27.8027601396428,9.219411415688066
+0.1512252696397605,0.2952274540763439,33.94983036643821,10.811975300237595
+0.15103648165824599,0.30789477670773896,27.710084872849862,9.984248412520055
+0.15042667502564433,0.29567445090479927,33.23914355159552,10.553429498355431
+0.15017856107546237,0.291681520612389,28.520210710035713,8.664674771915104
+0.15054314336123717,0.30594481918340294,28.403206854575814,9.973989709510807
+0.14944327224935602,0.29614289759884416,35.82809891323813,11.472036938984436
+0.1484591602306376,0.29771080454721294,26.655212638244556,8.516895464293466
+0.14994721692123086,0.29552754287333044,30.21560314753735,9.612310726574407
+0.1493668523878611,0.3036418836140332,24.97707102583834,8.51880188936206
+0.149210353301041,0.30800640417231917,29.83783963368145,10.627566890035528
+0.14996728809387924,0.2975571564732516,29.17612223261116,9.373676969563046
+0.14877899796430535,0.299929082966661,29.07788717532433,9.498049116667882
+0.14799387370611425,0.2935819792846831,33.75733247549169,10.301231267757412
+0.1498505214745692,0.29092385930173936,29.496233651550853,8.94693905740981
+0.14974634325964614,0.2940875136680478,22.750094165821398,7.093363357913476
+0.15081598425579698,0.2992396821728906,29.502769388839102,9.689364141884381
+0.15100464436947988,0.30185457508717567,24.599831633547975,8.32797414829455
+0.14985305560398912,0.2985181317684791,31.77206444982856,10.322136980726848
+0.14829067244054475,0.294248246771512,27.88263283764035,8.618357118568104
+0.14887914294047042,0.2943785417943244,38.3994861386073,11.943192027472662
+0.14904484552842884,0.3050595157863739,32.71662846050488,11.293570677158414
+0.1505876956753349,0.2935675195778064,27.638203870176067,8.644179325625398
+0.1504201840757617,0.29959377696586564,27.86863985435561,9.206248534853477
+0.14813191091782518,0.30565840805654765,26.863375132452585,9.269975645242349
+0.15056439033036756,0.2961674128096989,26.97119020262887,8.683458289714183
+0.1496443451504504,0.30409368745167437,23.400304950165896,8.04435172738503
+0.1503990171345256,0.2949885165212474,26.497437749947363,8.34104036707168
+0.15082656430484606,0.3076853564676946,25.88454898531704,9.270214323597884
+0.1515173951281202,0.30138361162197425,33.93984646226362,11.523601100231332
+0.15025726538451953,0.2944559436102272,29.422116095816637,9.181820685644512
+0.14974081932425565,0.3013555587129272,26.250902213175365,8.79701644147418
+0.15079086472072467,0.30208223106466264,29.27490552890737,9.90352437094126
+0.15004845752920462,0.30215029752649675,26.432519374485707,8.961462916516817
+0.14955973555394345,0.29848978813772276,32.530393632817486,10.546819077718354
+0.14913117609236892,0.30070228596270304,31.088930291763507,10.311215796749677
+0.15031698678454228,0.30047981554946773,29.827697000181743,9.95458553337318
+0.15131829798752122,0.3030736497725929,33.00012859866436,11.323141587279578
+0.15025644739461036,0.3014924649963853,27.557602736831036,9.329963855544898
+0.1486481918587114,0.29861095163811713,32.23132642070543,10.458346625443648
+0.1507831692948567,0.3042430380574915,30.043686803875264,10.441349151779857
+0.1495066646468747,0.2975090988134588,31.795866662867713,10.25810165447931
+0.1500964455626395,0.30409174689365087,28.23955087659364,9.769229843088242
+0.15121456012232437,0.30238945340379036,30.356684176052063,10.354822900198457
+0.14962327630413702,0.2960723790194963,24.74679062067522,7.869590294250776
+0.15087686798051697,0.30479072340252233,32.55227708882578,11.375660209630892
+0.14955358954344525,0.3051704927149343,34.489160507100934,12.041367205337245
+0.15069197240010881,0.3040389115565127,25.940464025484243,9.023619616085128
+0.15189528840059877,0.30385297127993105,29.621159291356275,10.371863549695489
+0.1493159607288507,0.29656974918272205,28.966629116763215,9.229274520089744
+0.1515002682194467,0.2987030942477214,28.61273909978265,9.422943105620979
+0.15030388496780656,0.3081635991918897,24.833209659769878,8.860082659629592
+0.15280140194394928,0.3005201535401504,26.575046095105932,9.014920811259044
+0.14791115286961112,0.2968613009031673,31.85408167477797,10.09451622572442
+0.15190509135379723,0.3010676244364285,30.17214883452839,10.211436388228146
+0.14885502464178196,0.3043998810664289,24.509625456371616,8.426868362826555
+0.1498596267174399,0.30336434871415147,28.73819969183472,9.84023172384028
+0.14932707486481142,0.2926652388359681,31.242696204741513,9.543317229519069
+0.1493393858153243,0.2987869148684968,28.651787287600474,9.315085350799475
+0.15099745036163667,0.29977071719631043,37.4050401877667,12.45120883001505
+0.1488418381147123,0.3026596855413209,42.59882215266009,14.386584795757706
+0.15063650249999375,0.29419481288069693,28.516172927012345,8.90915561425285
+0.15069119417305382,0.2982169053772128,30.96976041813503,10.232778456778851
+0.152056374749353,0.29752231417496616,28.916657520783,9.487978660452132
+0.14824250837712677,0.30176054813705266,27.745890849911284,9.294188181249169
+0.14873451016092865,0.3047790496063774,27.885351242125708,9.604953688054325
+0.15081679369703693,0.29758854103461974,30.581122246376886,9.968364395289598
+0.15150756190414705,0.2943604212380749,32.54538953716241,10.319436951483336
+0.14903660266400687,0.3028423278861127,21.276470081412093,7.187508178420005
+0.1496626775881661,0.29870817155686535,30.511630229898426,9.96627475328159
+0.1506732184952405,0.2947038571920508,28.758969676121758,9.086331464560272
+0.15062948162625067,0.29690645717199626,30.70014268953594,9.925012085549103
+0.15151573416965533,0.3036745219291603,30.92756816248668,10.740750745325714
+0.15072701504528252,0.30808276169644905,31.447010135883513,11.337112294145143
+0.15043333332142783,0.30302826347005024,35.29427478860694,12.035500234064267
+0.14796175849488954,0.3020567570820356,28.815101208258547,9.631760880593152
+0.1513400430043863,0.3076281735992787,29.77291347747532,10.73418877143884
+0.1494993065490059,0.297668120838553,30.07005786251861,9.711174925165354
+0.14856096107400027,0.29153614762712277,34.915980974326985,10.539045118434398
+0.15037946377243347,0.2955069659821628,30.657723867577307,9.744096319839903
+0.14854160111256157,0.2963864691016436,32.89592679235993,10.412864309559142
+0.15042599338683654,0.3029734823023102,24.987765480242363,8.586218121065816
+0.15021562533111377,0.3032159931292589,33.66703858225691,11.48900597622827
+0.14881058478687018,0.30895293791906847,30.55108481654164,10.93832670224577
+0.14887862160876264,0.29293248293516827,33.066172325341824,10.11942977013656
+0.1505194414684429,0.2990052335143073,29.48253111801957,9.732912575853602
+0.15035718916160726,0.3022417341367291,28.567237588230533,9.689909659345533
+0.14970782120008713,0.2981900043044635,32.30276495609103,10.494453290381088
+0.15065067079719835,0.30305076801313735,28.05348172577606,9.659162602177085
+0.15010640224938784,0.29954321366637976,33.07278116121323,10.911123313564257
+0.1513780759433102,0.2933529765014724,24.863163734229083,7.79542530007503
+0.1485025802354504,0.2889561975765875,33.12404286647056,9.641095407828344
+0.148617980812029,0.30220871572676977,28.044282595340192,9.395006328245783
+0.15026218240862932,0.29359956155811845,33.992159730091295,10.60338924099093
+0.15000746619165947,0.29951452169333237,34.78046716834855,11.446516080988198
+0.14735464504874934,0.3020071001085679,29.974756878342962,9.94887352474156
+0.1489462015123405,0.3014231302177988,28.942130891156815,9.671886272716655
+0.15109221766934,0.30116865003203064,26.492630291160495,8.984764389562315
+0.14990607372801418,0.30903928738158565,26.939505903552536,9.729430120606647
+0.14905837851256684,0.3051426384726208,25.673552397923636,8.833788877606993
+0.1513891621680919,0.30290477934116955,24.391017342327338,8.35369064943788
+0.14789909058675638,0.2970894460353389,26.381353770069122,8.411129401766395
+0.15254560358486308,0.29645230584511,31.353383868520964,10.202200961537606
+0.1488904267263674,0.29530382624705465,37.83556017160271,11.912258827540295
+0.15140879043548014,0.3054891849757798,29.911101487108457,10.518217676343962
+0.14862298999967535,0.29331065458643363,28.887379413464174,8.830967619589696
+0.14962246089278627,0.2956538836422225,32.67797429568475,10.308838456314307
+0.1521307751457236,0.30188350583000534,22.719545844540868,7.7678538025006
+0.15049891535654303,0.2967385385518372,28.45081790951352,9.10818910606717
+0.14897410954073512,0.3002299685864089,31.815986693981817,10.421228707294583
+0.1494912115138194,0.29124243201836814,27.794214948095238,8.365145410311552
+0.14943883006566677,0.2975645983526866,26.586472000897174,8.587964441361477
+0.14899893945695014,0.29667462887188845,32.92250023885788,10.474033715922342
+0.14947747249227583,0.29635377044254657,28.60013094033234,9.123292076925118
+0.14997226444901463,0.2947625854186301,31.037801096619727,9.770253207878708
+0.15246488673462943,0.3021736807755437,30.648198405846475,10.481947403181147
+0.14824531672427677,0.2994292432301637,34.37180956283645,11.250197449138518
+0.14865770507028667,0.30132572409142006,37.51046135359798,12.439531915756536
+0.15035181486755173,0.28941820576670013,32.21432934807907,9.603175567663637
+0.14929396627779182,0.30020717231648014,36.106663579366696,11.97131460901144
+0.15103542194235361,0.3069167523843013,27.131839745223253,9.659835555411176
+0.15136773830648148,0.2986100535172269,25.57658382661763,8.425075152288189
+0.14943806011517735,0.29202707629072766,30.913831975060624,9.405096187122044
+0.14907297100519426,0.2922491326678277,35.16351529113215,10.686186674390004
+0.14969864237559743,0.2927590191045011,34.72509779386152,10.655325684311508
+0.1497313383171787,0.3047354160287112,31.819867534114376,10.990007966958355
+0.15186542869060218,0.29600383766372257,29.368372533172288,9.434149370911298
+0.15112123392353846,0.30437258285404006,27.068927374219776,9.379897056589204
+0.1508516700890937,0.30109521603089207,33.400996711349876,11.198274029555446
+0.15068949343267324,0.2942418088646415,29.372602234871,9.266902327087687
+0.15102577176475696,0.2997107061696577,28.1719087195424,9.387062530444409
+0.1504485627500814,0.2976272135729436,34.737108477785235,11.237030287306142
+0.14830089682360362,0.2961224325448165,29.134770092504777,9.142657898438621
+0.15132367115796574,0.3043506884586855,30.56693362728469,10.672935086885879
+0.1502265142393036,0.2926597354277678,31.310233389420013,9.607198020201164
+0.15084480360592287,0.30021170237433986,27.79690125603611,9.31925817206537
+0.15095041560138905,0.3006780835414468,23.91329428189747,8.023045911503072
+0.15020810245431784,0.3048874532769495,37.340642666530016,13.016013995018469
+0.14848684961360598,0.29978391724523995,31.123688697752538,10.206180900471018
+0.15067508446354327,0.30352155659933355,32.956394834204104,11.389353290280566
+0.14954027762946218,0.30039358358375917,35.04366538131222,11.634510135282273
+0.15037838505393444,0.3055381475600791,32.737411256220774,11.447152342519269
+0.14866323480476623,0.3012210584816714,29.637635939304193,9.837704880727571
+0.14827188914199638,0.29367161192487085,26.2698744648677,8.084857638614839
+0.15177835111378607,0.30039706778481,26.824855880194566,9.017337011565477
+0.14833435066201958,0.30257181607538025,34.42705286173292,11.535401459287252
+0.15060316221460077,0.30212586278922193,31.624855689878796,10.7320473475806
+0.14908307533219473,0.2935353604253471,37.10457517818951,11.408904478375941
+0.14870631449029914,0.29932021953678384,34.43784612758388,11.267240761816762
+0.1485201473554818,0.30102184552838845,31.732314832055422,10.539435884702897
+0.14948946561955073,0.29636052121567247,30.002111204000876,9.512414772360371
+0.14921252502903107,0.2971400729624772,31.499371376912332,10.07272907696372
+0.15180221421211734,0.30434460820791004,33.280813542989186,11.579149689204927
+0.15010939461781456,0.30134029575213417,32.204936717504715,10.851668656357907
+0.14953906772613068,0.2978298873443882,26.542767272941774,8.542149330144447
+0.1507394642148946,0.30400926577767534,29.71079738022095,10.200095120393822
+0.14799749176002927,0.312869983790329,26.463430966566104,9.809436127348643
+0.14854114843857952,0.2990479426931967,32.827999727906544,10.716030161348108
+0.14978052646974108,0.2995558776012969,28.155833915044095,9.293798455456168
+0.15014942047149393,0.30421334224983326,30.98380707350468,10.67406981485291
+0.14825063430551946,0.30020784748827994,29.60448936924272,9.687722607921188
+0.15016135649974457,0.30108827851317294,28.43309157795463,9.512905823693828
+0.15206481736168875,0.29496344762338333,32.89688383443344,10.442621078391005
+0.14961393820487712,0.299569089233074,26.738589171594395,8.746953395867845
+0.15023527367418746,0.3047444215850807,29.38703666715634,10.269709058670607
+0.15053004669463044,0.3003759320126394,38.21593850787973,12.749458522494162
+0.14702435955123497,0.30374565359790173,25.724637559617882,8.67554918211246
+0.14838398534065744,0.3045591245561123,24.887606359574992,8.494434819382256
+0.15146818323500197,0.3056103983124078,27.820375691849772,9.850403925176295
+0.1495000523007236,0.2992260784871481,36.38009177383761,11.851935998884331
+0.15140971938397185,0.3032298015513754,32.739484606635706,11.335907507328574
+0.1488271716271208,0.3031409961730739,29.09002263453478,9.87134649614667
+0.15197682556210312,0.29570213225627057,34.22638111512736,11.001198088677128
+0.15036034426592493,0.2924390502431486,38.516196081749584,11.846381633759574
+0.15013245279650164,0.3015751239066393,25.20266327902171,8.49507437103592
+0.15043160940227787,0.3056629474381446,33.55719133883869,11.837530521083183
+0.15057948928659837,0.30075618383939,37.15248144321009,12.441116134088613
+0.14961259473477834,0.298566103398207,32.71511346269855,10.645462335809999
+0.1480617648334331,0.29373608103479454,28.551739055781596,8.768378336339058
+0.14984702711159298,0.3016832686885607,32.11442414947639,10.827205269950252
+0.15095118818533287,0.3020289032555212,29.37781873948084,9.977214865971488
+0.15226940511809825,0.3023391256598035,30.681752334544527,10.573787268929967
+0.15014751802294166,0.30530170403736884,28.55255993636637,9.986581477813894
+0.15045999650742806,0.29680956456131574,26.002749700286806,8.377904820595237
+0.1498166807826996,0.30044329233124956,27.897594008021464,9.306996252313214
+0.15137608027843172,0.2997704842351296,36.11904285095457,12.09955623535999
+0.14932630106671235,0.3031496527451896,31.480360819561433,10.686550129299967
+0.14777251897529387,0.3015865666843013,34.703860125744,11.585688721671593
+0.14864780320086327,0.3027697463286341,31.20361532833983,10.547997276089935
+0.14904518444718204,0.3088662234470121,20.621495666721188,7.394529786091176
+0.15168767069747616,0.30183692214731606,31.699337250620093,10.809657567887475
+0.1502154232903429,0.30082998511963027,26.729417207940628,8.95131064440568
+0.1502816517624262,0.29562353113247597,33.40996762657556,10.661524720689957
+0.14990150047736905,0.2952763133063949,28.684299798747684,9.075167708758684
+0.15109878672360738,0.3017908635442332,28.15947624040362,9.576848033514212
+0.14966113743997192,0.2978890924405407,29.89054894957842,9.68440891342258
+0.1523440791901335,0.2991610313548832,28.606736122590952,9.548593589665304
+0.15188182758920707,0.2896411648152917,34.560299859328566,10.415967684428193
+0.1500739797467171,0.3005551278450767,31.108258079846312,10.324178166194624
+0.14966290501315066,0.3050704851299481,30.54229099469924,10.59810448706134
+0.150117220412984,0.2987633719435091,32.109617051356615,10.49735182722204
+0.14999700224795112,0.300894024162922,32.34488398845356,10.85836038909554
+0.14852273278117456,0.30681293971398166,32.03293610355612,11.305356497539709
+0.14981061853669592,0.2975322410076269,36.895664952401816,11.915639730428335
+0.14836067525898564,0.2999712023404381,26.418067837304594,8.677048213106008
+0.15051615024583717,0.3007433232544039,32.69987523779992,10.925551142969109
+0.14908703362225473,0.30434776230674154,34.28802799493467,11.842314450581972
+0.1505287553182353,0.2950362682177472,33.581819114094166,10.573156775847217
+0.15048564191763408,0.29810089696847875,34.55986452781451,11.281720117724017
+0.1510401797183199,0.30373805718889013,25.545443281943733,8.80616355512323
+0.14911938925416693,0.3076847786096034,27.691425144674056,9.797648571839932
+0.1496509161656514,0.3003708299469825,32.19100573844747,10.698035382879109
+0.1494529074978864,0.29763998269006314,29.008166282029237,9.359190689540705
+0.15015535414002032,0.3028874834519318,31.738964238627034,10.84226870362939
+0.14980862417787866,0.3025504932725788,34.12748458215554,11.560088950221997
+0.14869895041216769,0.29786796090327583,31.344704906797304,10.060117345258254
+0.1500464412623499,0.30496487743726286,31.968772371261693,11.045334582401685
+0.1514897736187552,0.2994585644275404,35.0906534138814,11.77342813384168
+0.15027535846222037,0.30524534024379807,32.29585354737274,11.277178658638825
+0.1491280776532678,0.29385254058544924,27.577891541263465,8.479062792925316
+0.1494859117446408,0.30944891861670565,29.152826628066464,10.569902298405088
+0.1493015397422585,0.29747934053674613,33.61905901260987,10.854406800692015
+0.1499255365093614,0.3011383710100658,25.57933503402411,8.570368096445911
+0.15085552402738706,0.2951822905839919,33.10771304998813,10.465696099103116
+0.1498655560839994,0.3048579479788069,32.472556088798754,11.25680857071457
+0.14901241180556443,0.29193982782152406,28.833055954384356,8.730405400776146
+0.14805696856048636,0.29966431409083555,24.756456811611404,8.10782091232095
+0.1492961095354459,0.29303034081792395,32.90013412462343,10.04844058828422
+0.15102939503865526,0.30242649314956377,26.553129109203383,9.079238632518909
+0.14910317009658672,0.3010415199833536,31.269410134030696,10.351955880218027
+0.15033687017352396,0.30132087384907574,27.793891873699913,9.413476267951497
+0.1497411515929939,0.3024566332015011,29.938452215415257,10.16056077193686
+0.15011493518789243,0.29706436042421946,28.22507065292436,9.092947774677222
+0.1522352846223091,0.303171415944236,22.25513583563076,7.692358719951711
+0.15006260996974202,0.3034246280696961,29.781559131903816,10.14044053303566
+0.14860670748870447,0.30399389430941903,26.283195265410903,8.943981352584952
+0.14912327176131135,0.2972173955354641,25.891187856194513,8.356968537234174
+0.14989889774676396,0.2986839955122055,32.30942722171709,10.59126063918395
+0.1494283775266292,0.2972453168812659,27.902408501779583,8.967974602019655
+0.1499333314537789,0.308567785743977,28.170102082844583,10.166602364228671
+0.15104536867750967,0.302148443772199,32.380816992806054,11.085347160219317
+0.14927187306947262,0.2960677099389736,34.06056957879332,10.78939647688732
+0.15147049321730152,0.3023394499746647,28.821047415273707,9.909594480546575
+0.14947198972239484,0.3011104833864904,30.40200671261128,10.16495920550631
+0.1485928599924232,0.30065274351695087,36.857322404574106,12.181878147397649
+0.14788677659117797,0.3014934108711243,33.684847394998926,11.182213696892944
+0.1534450955405402,0.29164945737725545,27.547020850463838,8.631200052724218
+0.14970223468303828,0.2962741450194531,23.57887987194736,7.553885482754489
+0.15005571803635154,0.30207705467014256,32.04384375789667,10.864960341752953
+0.15129064893057087,0.3024499208051496,35.528603954076836,12.214324044287103
+0.1465487423566503,0.298522157161681,24.833782143618812,7.90340734245203
+0.14905969372158398,0.30290695354624636,31.398765608724442,10.687594326555972
+0.15069448310580943,0.29651549968841096,30.340475347170333,9.773573483221156
+0.1503850449170778,0.29738938021208405,37.05371860164672,11.942025646425002
+0.15109464468925787,0.3058060848246122,28.376192479321986,10.030465224674131
+0.15092026978481918,0.30165547582873664,33.62551618104959,11.42170161383231
+0.15219612317402734,0.30941308524379824,28.255545906388182,10.405068037444318
+0.1502526850953579,0.30715345172804187,27.579466395650538,9.812116235797857
+0.14926894006855657,0.30044447103806055,24.724248903221955,8.17340271437005
+0.14827295038916702,0.3015139718887347,32.98376882644049,10.954790235308602
+0.14948834938608707,0.2984763002764802,26.703873590945438,8.697522258475837
+0.14920052994182254,0.3007602881528303,29.395944075338203,9.782117970214184
+0.14889528503040264,0.2909872996198546,37.49724028539502,11.254635462682575
+0.1526339208382566,0.2965342885069346,29.53001339247526,9.630592954595246
+0.15073555713512418,0.304831718129562,36.35748343338501,12.64444505272867
+0.1518608169778252,0.3047871391714829,23.513047664432236,8.236457378676949
+0.14996173832801762,0.307889181065468,29.64620660857909,10.593001040303488
+0.14876993672651284,0.30137569059980474,29.222946470931976,9.808569636247842
+0.14831698231468565,0.3090350217247938,32.94886262081787,11.84908585367105
+0.14922916240985257,0.30367907930970056,33.423168480748124,11.384824680410453
+0.14986845679461588,0.2989213409134879,27.06223561508166,8.827600986802167
+0.15024404872277405,0.301918515370348,31.77707339629321,10.682278853661293
+0.14938430977263206,0.3011509217102101,28.414422031043664,9.469284994657531
+0.1509499781033675,0.3022101309851175,32.88142400863307,11.110441908383848
+0.1507888503621036,0.296918931384189,25.582584363916112,8.253921281203368
+0.14894686001643886,0.30336337122284296,35.05678398313572,11.776661359979537
+0.15075415908753562,0.29403609481463133,28.15956218009198,8.847847959124518
+0.1487923772514489,0.3071790801833122,26.200664895081065,9.271040237627192
+0.15107002534773875,0.2950562071288171,34.96498761834912,11.046759183020216
+0.14988044029556732,0.31067720624280387,28.268991469140595,10.333312151510395
+0.15086750357367804,0.2934697612698689,26.751213005907324,8.364472794881905
+0.14885455717661109,0.30167510303048406,34.73100822539255,11.561228342351926
+0.1502541500449367,0.3031764977364861,29.816153569693878,10.209462668964548
+0.1503528360755281,0.30646308775558595,33.248669916170016,11.817149153369378
+0.15091774123042762,0.2901652349815411,35.17873521447297,10.547555735497365
+0.1495877173943139,0.2940223532781928,36.53360025977236,11.402314911228187
+0.15002257435210956,0.2947256698208151,30.90490726031993,9.699326698231832
+0.1519549058520446,0.29992409412345383,25.733870311051447,8.608871746396925
+0.15000211106029943,0.29471578772441265,31.6301514270727,9.845369551716582
+0.1489180567170011,0.2947507553251591,31.925144971068626,10.000493310630022
+0.14971059480000662,0.28988442502402495,33.795701993172,10.148910497686016
+0.15109356095862123,0.2969819921447525,31.306806646278783,10.120043224294855
+0.15198264220534038,0.304148894905014,27.483058629707383,9.61050647769376
+0.14897506862611645,0.29848599815535387,26.55579794295399,8.611612934212031
+0.15094964225346486,0.29550456245959383,30.337149502676944,9.634014184994209
+0.1494934582733417,0.294688995336541,31.436887522177226,9.84827084717634
+0.1513460882606624,0.3039522565981036,36.81068221816568,12.761237796387192
+0.14961159228275622,0.3075540757328494,27.729881230162828,9.859738438340095
+0.14904821060179504,0.3022214134123605,26.231863666208277,8.783562953794359
+0.15092536717519364,0.29048061037102024,26.570770026138426,8.08118916542722
+0.14997307458668188,0.3003204709074739,33.937665336028836,11.293134548622719
+0.1507379341674516,0.29771805021479814,27.24705703761347,8.836606922975344
+0.15069751389170552,0.304910509168307,25.651003207644138,8.952736151857765
+0.15192588820169364,0.30357719884366297,37.291391651642286,13.041536493999775
+0.14926661140244188,0.29914640686968624,38.6896026998953,12.667427663210246
+0.14867923868783592,0.3024091754438188,29.608991606465246,9.922620132013492
+0.15023055023452545,0.29522525162099744,33.10039732488627,10.48120791342317
+0.15005674450729864,0.2973327972026254,29.12398153162336,9.378592793622097
+0.14860231337978883,0.30526405618629127,34.15811440584288,11.79832423603548
+0.15063917442891148,0.2961681081232702,27.03122331875921,8.65065291660294
+0.1507794980345681,0.3044005089842395,28.920214700039754,9.997297650100334
+0.14969647245056217,0.2949170860834301,25.442222140669255,7.979398735359632
+0.1499364585256781,0.303731504858062,30.45917463345155,10.436651341363108
+0.14933179242065167,0.3017697152854228,31.421884684545105,10.582523966678865
+0.14890239606114092,0.3014754324546571,33.075336726605045,11.096719370441585
+0.14903699398636183,0.2966914690434083,25.46332963525938,8.127613506530858
+0.15019932349464388,0.3012439829248921,34.89887994161067,11.716463236742038
+0.1513546877921181,0.29528728516440056,36.2146324243392,11.498234482846144
+0.15001868941609428,0.30503672752671357,32.134543910383066,11.242015650973794
+0.151249720336153,0.2974595376618949,31.476501757241376,10.226516806565694
+0.14964099274873477,0.30902497554482167,31.287773027969088,11.312391907096606
+0.15126217046083892,0.29916032632769624,28.984274049023853,9.635435687264673
+0.1497821079999026,0.296815107908888,34.93741855972432,11.147102367427705
+0.15099872782302493,0.29622232316795405,24.72793662723326,7.969926097638872
+0.14813448603770774,0.29817423942352095,29.358431700961614,9.42017318438075
+0.15014534296993506,0.298666684137654,23.759845313360163,7.806113911938393
+0.15145504676205232,0.302830588500263,28.367106168001598,9.678751950038567
+0.14846861017124688,0.3055880429449785,32.4523568284763,11.281842842727114
+0.15105586892568001,0.3007656935422262,24.195492485674503,8.096330557185862
+0.148319430215602,0.30184185686371523,30.35619167529384,10.038249489220105
+0.14790869157292738,0.3013889225119847,33.29212571309671,10.980495133512086
+0.14992797029618493,0.2985458221960667,28.465090127518515,9.258350737998345
+0.15139042434189637,0.3080865611920626,27.123095627916314,9.821726008597887
+0.14853037414207285,0.3018217384497203,29.37304809625043,9.846609036455389
+0.15105307195557519,0.298047350982027,34.48556932002956,11.316443023021991
+0.14959842917846974,0.3019691734891241,27.591577968767115,9.269141395772568
+0.1493937208482183,0.30140470089916505,30.431032784853503,10.168539386477361
+0.1495122995268323,0.2985099040635329,31.730210905183917,10.285892283056292
+0.15034963921120673,0.30464752548532453,33.26205234186775,11.56507447635402
+0.14988711156120407,0.29971813325130897,26.299294227021893,8.71993811984543
+0.15170918938180084,0.3021648960917383,28.001030365228118,9.549338663473081
+0.14873455839735883,0.2953097338186062,30.976014616628948,9.727657006065758
+0.1482526294873665,0.2939687581601697,31.01641054391824,9.54685361604032
+0.14978834552647866,0.3035929370923891,22.85158145823892,7.854512110889571
+0.15064534357747447,0.29789532851811695,30.176549723443927,9.847280064415953
+0.1499353294298719,0.30214993796382983,27.801573658579606,9.430783415303049
+0.1508015667616332,0.295945246549652,30.817836313350774,9.807732270404276
+0.15119573930207986,0.3029512307649275,28.873206503399185,9.957238618867455
+0.1513343675066051,0.30323865051553595,25.86418591858291,8.934865588297727
+0.15102395343458125,0.2985337015093916,31.389621037245742,10.348530899458288
+0.14909935657614576,0.30150730327119424,27.744378344633184,9.321525363953352
+0.14799883654732868,0.29767847218769755,29.893882008354968,9.569892633358771
+0.15011830875101023,0.30491850217079497,35.78934919167952,12.490383370264542
+0.15036872420816705,0.3011543293618798,21.094531303016034,7.114836782941664
+0.14919508757361002,0.2974975525422714,29.01344616729451,9.348211204227884
+0.15045985120209265,0.30655280040476574,24.735846894397316,8.736340322571591
+0.15041882113366625,0.30374813801100814,28.616751866594097,9.843928472718217
+0.15038618106089033,0.30373284430420855,27.944221781204686,9.629999296666975
+0.15024740511423207,0.29996932997606574,29.593343089564843,9.84068807077319
+0.15058812941131425,0.30273651725799045,25.23530118615858,8.61100377122666
+0.1491852140120376,0.30020353774738756,32.29292094353527,10.634007524510153
+0.15055205305303637,0.296051018661512,31.93800930584642,10.160357681160134
+0.15218479630266712,0.2982949607819614,29.971809077698108,9.907797520622855
+0.1511738422813631,0.30285061158479437,29.000360073039403,9.890843427806097
+0.14898502676481884,0.3003609857685698,30.76287184959528,10.134151616260668
+0.1492396885005696,0.3129014897025312,23.355609958695464,8.703475850297787
+0.15068954056924036,0.29995452377227644,27.121918716032788,9.024102312186214
+0.1507193145356798,0.30278014745891574,35.59357881226246,12.152839289383953
+0.150177677631047,0.30511608999874107,31.566935426586223,11.022630571887593
+0.15011029301926526,0.2963720663850639,30.311736631464964,9.67237331042449
+0.14956646868907353,0.3004292489549872,27.66734872442327,9.14843010753461
+0.1501764198816447,0.2971921821852169,28.411789008120525,9.13535444925497
+0.1492675846839113,0.30384110553014265,33.728642160264414,11.521214151125157
+0.1503890913442549,0.2989649137423486,28.242903769900597,9.295181418102398
+0.14960555952363722,0.293553399403261,37.67793676897928,11.665375312183281
+0.14923607342729084,0.2915876610197609,31.834189496829204,9.640339761258684
+0.15099895342196842,0.29735154818652115,34.68469994281711,11.225876704501749
+0.1492827961276359,0.30124835697004815,34.484560252242304,11.469182395128254
+0.1492082967198867,0.3066600147515532,21.763527165537987,7.660706528670348
+0.14958476575920931,0.29942199481592974,26.921301094569905,8.881571950254422
+0.1506170764470775,0.29850584179353995,31.50486206284666,10.326942358209852
+0.15066294330778884,0.29475166303611866,30.735251397302076,9.711031403177827
+0.15039960373806469,0.29954917423541405,31.871453513816324,10.506725096610086
+0.15038360651891883,0.30411495802183575,33.26839520643552,11.577601241918899
+0.1492926676191027,0.3051310236502594,25.153593482107887,8.81757472533746
+0.15014933242000017,0.2989386644363175,34.85654342933141,11.408159297309084
+0.14956983781023406,0.2984828686931834,38.59989520644059,12.557841048532621
+0.15029669082979438,0.29331654060769496,40.72087411938509,12.646674697306084
+0.15023816923574768,0.29884688804984266,36.29063056354882,11.832952337682643
+0.14895810851794447,0.2996367895458192,25.62607699798423,8.417207112018616
+0.1488229926662229,0.2931306845847303,31.55811453592786,9.683485319239631
+0.1502748830994016,0.301770028414485,30.941466540406875,10.454513736091233
+0.1508183994939936,0.29918292101924415,34.01787246782353,11.286134659568411
+0.1514334614877137,0.29988294228244283,34.64206461325075,11.561536513701439
+0.15033309990750587,0.29396369704077635,26.300653658882407,8.201538236375109
+0.15094790279978304,0.3060515324844584,26.730576716823098,9.43164559618192
+0.1503674619335804,0.3025815567833557,27.262460287968377,9.31417153784119
+0.14684094116674157,0.30192363271123435,27.70143106974904,9.157390012175188
+0.14975083901151065,0.29790376733011875,27.803517043271256,8.976639705138691
+0.15044620884782595,0.29930461804864894,27.156790697383784,8.997593963729885
+0.1497411878489146,0.29777805027618176,31.604816642515875,10.223777170729724
+0.15083253984836467,0.29808375848817104,32.3134871578629,10.586429678713277
+0.15152855995812176,0.3090632737764064,28.47696369625653,10.393508968594054
+0.15101457761939477,0.3032977344742639,27.945593617016996,9.625998452445055
+0.15084310819275346,0.29349565382900866,33.27676958626664,10.345389243771228
+0.15085491554265365,0.3021933198630372,27.261326767905178,9.265981532123753
+0.1515868072944303,0.3018349219664475,29.64395409537417,10.07895309002416
+0.14838051888977336,0.29645714146121155,34.66521388793286,10.99298187546579
+0.14872113936317696,0.2941752177513343,27.781412503624622,8.620205033640095
+0.1502716106006808,0.30378168186319754,25.87233968068197,8.905886652306144
+0.1494606526771229,0.3020408078275209,27.30000410744591,9.186713583169913
+0.14805998331115525,0.2975410512595198,36.70432634026305,11.796432676541592
+0.14939314291672123,0.29986858004746597,27.077631190859677,8.993470264235327
+0.15075588720167263,0.300851483012567,36.19917270759613,12.13263943846799
+0.1509326389534458,0.2949754078922568,34.714724827496674,11.054291212413816
+0.15138858382758066,0.3026131209002586,30.872036145440124,10.57373967140795
+0.14914178436387637,0.299862319809515,26.01755515227816,8.580735530277664
+0.15056881562648386,0.29989240234088904,31.724061970127636,10.560745395334024
+0.14932912910274593,0.3119926784972076,29.57576466418941,10.990776728060661
+0.14849213766759733,0.3021364196609171,26.74580161668225,8.946538982356994
+0.1489334197655789,0.29629806538814013,35.86520034650329,11.350002670987365
+0.15021677976924774,0.30884280321231333,32.09587365314105,11.648530821805952
+0.15059299335220533,0.30375425050143195,28.968119275752816,9.968512642098972
+0.14998996156300157,0.296154015826597,29.276427907885285,9.344756810961114
+0.15172035565235537,0.3007442121371496,37.867350920028564,12.83717119189501
+0.14922456403041703,0.30081981687462594,32.65276024835169,10.826367218164261
+0.14946741916897519,0.3003101914027999,33.34297461980381,11.053973528829186
+0.15025543263372534,0.3021579851506451,30.439583502185545,10.29373220196607
+0.15003875660122135,0.30137417587092735,32.03929910258014,10.776538113346524
+0.15018023203048453,0.3071920023937107,27.78105138876704,9.93264274322018
+0.15001859654708857,0.3065685034975503,25.7854819832491,9.16053134037225
+0.15128749381711218,0.30167273334308414,31.59540513858968,10.664974133439017
+0.14991605630840996,0.30490508912724984,30.770290161367342,10.726798199225577
+0.14966519845196866,0.29733707229006023,32.699495539775356,10.45925635131811
+0.1496623004039936,0.29854373731845285,32.000981333811616,10.47013988798992
+0.15099125429728752,0.3014235424295824,32.10478019388745,10.84083825400878
+0.15064815314581614,0.3013209615661064,27.466591156527,9.229790125419798
+0.14945301106507863,0.300933377550713,25.149835842268544,8.334603512835368
+0.1499615756808566,0.2976613455549162,27.470437040736073,8.896065969535172
+0.15193734316447108,0.30055628284606034,25.486926591736097,8.558631151434192
+0.1501480262652061,0.3033407324860105,32.29919319780624,10.981026935595676
+0.15027217644863589,0.30125412783275807,31.93838404739987,10.63735841178267
+0.14962706740198267,0.30330944144611965,36.501956901450455,12.48136982678313
+0.15051835166125535,0.30061714886699126,36.15859907808126,12.08208306644241
+0.15105173234262076,0.29651328318625236,30.532276263999833,9.84484153064835
+0.14927044761532215,0.30301188555432196,23.41575012114615,7.885288830626537
+0.14970159891164067,0.2989857399528463,27.527391313482664,9.000159347592957
+0.15076835996938107,0.3035918943696703,31.51159632084542,10.881764143778913
+0.14742774186063176,0.2964464146682,30.618276499884217,9.594209276427293
+0.14951862628074358,0.30433446958978405,33.87006542192904,11.762052428429033
+0.15157279267562157,0.3017088544534536,22.635261502301322,7.6924489815960975
+0.15029126933672765,0.30097597348049193,35.09474330854233,11.720130278117585
+0.15013517563372422,0.30206146571327014,30.873859477451543,10.429549112415577
+0.15150136733667993,0.29278887499200396,28.486946950352777,8.908175577480772
+0.15108611992470827,0.2929763473045553,33.23617001638077,10.362973147352905
+0.14889635849214522,0.30532178221377543,24.005144179498075,8.309769374931872
+0.150937685638516,0.29593633189772023,31.881305074622567,10.188644452330943
+0.14998654077364318,0.2931192437911638,25.91754274596232,8.007533983466832
+0.15001372525248866,0.30246740777850173,28.583944117863012,9.721550051528311
+0.1508059402373685,0.3033347795517856,30.388657534307782,10.444991035255544
+0.14918613954106863,0.2998074160659683,27.33758190080939,8.962927060864109
+0.1510236003438804,0.289987662392049,31.6555682613191,9.472140840876072
+0.14950143644270464,0.2997811181288079,23.073341875991286,7.56832995873447
+0.14995499538363685,0.2945212898066783,33.76754668725887,10.592191115076549
+0.15107291062233838,0.30028824095241424,31.604892867334573,10.539783860010711
+0.14897744160366866,0.3085046054170418,26.45831618482862,9.420444506685868
+0.15141283023521593,0.3015041341878187,30.136922764413423,10.185229746053519
+0.14762666649594935,0.2993637662029128,27.291392295213935,8.873284770562869
+0.15006423875398403,0.29989562891229926,32.41392338278956,10.75243625106582
+0.1489512208018944,0.29637795881969037,34.88342010337186,11.067613438171369
+0.14852318123230684,0.30419513252641256,35.9896688877274,12.331662807356187
+0.15041761172546658,0.30094156366002434,33.29561415398657,11.20710952724135
+0.14936673570650297,0.29934612429443463,35.63410509301917,11.596052507269599
+0.14999615201392985,0.29716737188817866,27.245571049802972,8.742134763668354
+0.14901868450845251,0.29432479924205845,27.04880734044346,8.369919414820473
+0.15071597819450855,0.29992889311433496,34.181118301890436,11.300229727379396
+0.15018866456604216,0.3008217376428249,33.44091945765427,11.220056409410645
+0.14794387604954953,0.299945474345407,29.198011113527915,9.514176261026051
+0.15088968154762258,0.3022619673657594,28.771051319827812,9.76649300418183
+0.14914889985130467,0.2978580941484519,35.70690459936236,11.522204684134268
+0.15025996788273904,0.2978002544553836,30.214609929955195,9.816563407186466
+0.15026618887022195,0.29870525029477446,31.80347751078522,10.43956326575468
+0.1500137539124828,0.29708434099728376,33.063176596445494,10.686008637865871
+0.14953949754577628,0.2916234793561537,36.32707234013692,11.004653642711645
+0.1503129480106543,0.2988898825982795,35.19959801916428,11.56929031067122
+0.15170443049506974,0.2996211150114338,34.447648197249144,11.432129182682546
+0.1501752195272987,0.2927535344724037,31.804551205309274,9.825265260870875
+0.14838358741597696,0.3004080293425511,31.093975537133975,10.183096364258576
+0.1496067981768419,0.30211837611273085,27.63191929961708,9.32010694088763
+0.1476939995857755,0.294806881413546,33.96506422008545,10.46960718282136
+0.1510533905869901,0.29829219621223013,33.406410205237215,10.957776374901826
+0.1512242049490659,0.3032870134995776,33.80445147157506,11.670589657708819
+0.14916744963982242,0.3061261883443064,29.407473356573654,10.303071677091312
+0.1501204022371424,0.30217714612460683,32.71552216260066,11.097094010430462
+0.15080888615692886,0.294735017358906,31.456994421047533,9.933285342533209
+0.14978579080645862,0.3026652664402885,30.19299026386127,10.253523750369805
+0.14823173193558636,0.30018954236847534,26.97234864159212,8.862328648479297
+0.1508816361315773,0.2957853667688422,37.42465495206485,11.96280147088533
+0.15033343762128457,0.300561720799264,31.721720170211864,10.59817170291047
+0.14939919409839245,0.302508523376945,30.305380707156544,10.233033207692523
+0.15006763693664407,0.2981711107285202,35.855512776273734,11.619723193631305
+0.15002520749919218,0.3026130516136215,34.593621498129615,11.770056402184327
+0.15062667677313957,0.2969836196710375,36.20042937635599,11.695876578225128
+0.14956622090726757,0.2982735185074939,30.680841265240353,9.94572882688327
+0.1501291804880908,0.3004859160830332,25.736741820372078,8.580036312323314
+0.14957997111358565,0.29607779323199995,25.897047668044394,8.240589033330718
+0.14990880397586995,0.29745501312143396,29.39660497745309,9.507115420622418
+0.14810116189704758,0.295115683198499,29.54458089848283,9.18348460222281
+0.14913530822175125,0.30270925072468485,30.485640208739824,10.309818619860062
+0.1510290807570725,0.3020427974475401,31.853770023353228,10.867387555148479
+0.14869509840329742,0.29926660885657236,26.51632463548105,8.672069524224176
+0.15072078078182774,0.3017304271744159,33.361510264567436,11.242310713831738
+0.1509367605754511,0.2963234152522311,27.68947073760433,8.896595134724901
+0.1506830469350529,0.29694822946232674,26.434389760897645,8.579453983659022
+0.1504977494317284,0.29889582470758785,31.24640089011988,10.254247797759087
+0.14906374205329614,0.2989539374740569,31.910509296208765,10.386106879165496
+0.15043294783217107,0.3022923578103525,30.479594507469496,10.385825502885126
+0.15103033376788386,0.306558769330646,29.114676009900517,10.375406011182175
+0.14813800100510763,0.2985758406645905,25.983801171498932,8.375189142157899
+0.1498239478978008,0.30395755867524604,32.049911180077785,11.021361371939852
+0.14830487926303187,0.3034081430133935,32.5471203996736,11.06495093536526
+0.15053478252873861,0.30453961152271075,35.59144116307631,12.352695862727236
+0.1515203393270186,0.3079747960900987,37.123394827212344,13.498755986199946
+0.15100960549879305,0.3007039491224379,29.256633260245682,9.837151677984464
+0.1476158617298777,0.30236277449305604,27.234355514259505,9.070490729137697
+0.15072330919523244,0.30253145915006197,27.59895360141533,9.46514951290072
+0.15144397693259856,0.3025853020045724,24.047993818909195,8.25354725186766
+0.14976916870570445,0.2999385961403044,30.719932933637097,10.065942738556982
+0.14945411194360014,0.2945401631480439,34.96909307431436,10.920156468596382
+0.14856798008792343,0.2927448735811818,25.072014310215835,7.636178913210427
+0.15020901157943053,0.29956654801610744,34.99302487141387,11.583192757805296
+0.14863197041458337,0.29797735622241217,34.783059379367934,11.161632465566225
+0.15110530025835425,0.29921596374742093,28.251532981484026,9.31401755151908
+0.15048452882289368,0.30011501010920477,27.967516910313158,9.352098923992132
+0.15243895483406758,0.2975008420199631,21.650865789222493,7.107085211072656
+0.15067138335718613,0.2970915417518866,29.99061812260256,9.721014478828373
+0.1515247804056468,0.30317031349612356,33.059729283195736,11.361672418892676
+0.14953099259110703,0.2921683087911748,28.431904907272767,8.670840393366774
+0.14957457977824412,0.2914517733387389,25.781854344021617,7.801649019914036
+0.1498902377627716,0.29626303964398026,25.097552230910587,7.981953616048438
+0.1498006955516171,0.3095514188456642,32.96534165555802,11.937590414783557
+0.14992211996844215,0.2956438729616089,27.499617964178434,8.690186643323932
+0.15056435963681028,0.3047674293501293,30.56532167665073,10.669978065969064
+0.1495138894325046,0.2880664905932088,21.883329271507712,6.417950263282249
+0.15020964920694496,0.2988724279659941,29.283225588971106,9.6107859898356
+0.15082697546186735,0.30065932155023306,32.85995724210435,10.991574391161471
+0.1504118438320323,0.2993437012961043,27.91229244476032,9.215587839641776
+0.15237753531682657,0.29977232642238977,36.54926100909067,12.257913980499692
+0.14916746084735927,0.30571841346496953,31.318280451474283,10.906867446401455
+0.14980871251157968,0.29196342457094177,31.089335366468816,9.432312685067243
+0.15052803513510668,0.29683738691145545,31.968677448488375,10.281480808269658
+0.1479024251901781,0.295846705780382,30.941350264546113,9.691274285405807
+0.14897218005543578,0.30015655339358105,32.85721050937354,10.823515432651437
+0.15114125169489967,0.30204159106289247,34.08228645353533,11.584930382793006
+0.15052720153998558,0.30171089751491736,27.75606936023637,9.3793462284118
+0.1490189532116427,0.31339213590916637,29.282629468392027,11.020600640177715
+0.14931858255736838,0.3045059111676515,25.364211422566452,8.737833109831781
+0.15020911549698143,0.2996736504595719,30.93095963370729,10.246001443613583
+0.1512471836611624,0.2977910292707081,30.089065165671336,9.803992129689632
+0.15189530899743495,0.2986461604770501,28.20517986604195,9.351932241057213
+0.1508691292370478,0.3051062150010043,30.058256235097634,10.495639055747139
+0.1499322836335957,0.3043476505734612,37.46630126977707,12.920569432220635
+0.150527559254552,0.2964948641735151,26.746121279229676,8.594892458484802
+0.15054727252357028,0.29966143130475625,28.27589033133696,9.364626273409906
+0.1495166882833843,0.3025465284559638,31.6187293525856,10.743421113529362
+0.1496149122080071,0.2988446072305597,32.14063234538184,10.527418153830086
+0.14822810549607887,0.29855471406750284,40.50216035830114,13.045942907881523
+0.14958110380085657,0.29622429559008806,30.042987888871412,9.613133930636812
+0.15009866425000715,0.3048230748560001,28.841776676405694,9.989615941981587
+0.14918783620076195,0.29829332209061327,26.090096135423217,8.430721543889055
+0.15089008483345806,0.29462508197623516,34.78567159799842,10.971799138270168
+0.15031324270911942,0.29584364657253964,27.360308007465825,8.700360249968233
+0.1490067256156974,0.30586547270079606,33.96027395289742,11.86044751949246
+0.14994735727886896,0.29999057568664284,30.24169409691199,10.021821587565075
+0.14986122000819457,0.29660596655518484,32.17193130267108,10.326364992280173
+0.1514659648717259,0.3008358517144191,30.51487565645458,10.247957704262044
+0.14934166676786056,0.2988898854693365,37.05438062622995,12.101372536950185
+0.1514357648599,0.29436326811462066,33.527773857055976,10.607357023246358
+0.14935547119016884,0.2962995151275229,29.8841395530142,9.446401141681639
+0.15039603376297547,0.3058240216010291,28.068024960179443,9.848597907580814
+0.14996729653090501,0.29975602550900576,32.67036288114924,10.756640194378935
+0.1488991565664524,0.30566500198673685,28.105002025050656,9.848045414433072
+0.14864280712223094,0.29771316528132863,33.78668686487765,10.843820787728273
+0.14887351854828854,0.2951575289930031,29.093557734549307,9.082114271091546
+0.14938027195051046,0.3042836205209738,29.29201755246359,10.110029547405741
+0.14891354401303153,0.29509796621764844,36.33896817961727,11.39053179135551
+0.15113669043137987,0.3023279715822817,28.639375334428042,9.81310299978404
+0.15052272848766524,0.2999170936947808,34.913787003027835,11.543948571053724
+0.1500252556185344,0.30435383123377585,31.414343797073936,10.828464232926
+0.15068956020418137,0.29643931527458756,32.2446765564611,10.393210941184396
+0.14858706217324727,0.29791320239282176,34.30211782006229,11.060143320312433
+0.1502274209983394,0.30129035948968425,27.916171561600315,9.363678586290343
+0.1502265069004289,0.2970912447943692,33.76873550401297,10.858090756806757
+0.14988050973352157,0.2965877609370473,27.545067302340406,8.839018737190695
+0.14848026919664828,0.2995691535953948,29.607332868993275,9.625359862745617
+0.1505813509878999,0.30088642359710344,29.55176898364864,9.925190573280528
+0.1509229185814729,0.2997843622412984,29.9712161995814,10.00939843856159
+0.15107011097115747,0.300000621920198,30.81194368297223,10.258691685885609
+0.1492170096696856,0.30070771529744617,37.506390657732695,12.475251818368552
+0.15000423669964397,0.307713162439284,32.38927368627511,11.597845364038426
+0.1498798536213614,0.3064370633147597,29.704236775236442,10.525736870788263
+0.1504176478965641,0.30117906931284427,32.637321267897384,10.970785593132737
+0.15194528249256337,0.3049053065387763,30.245800043204603,10.649854805371916
+0.15085633435763687,0.29695610675817086,28.52881167630997,9.228645262844987
+0.1512214384406079,0.289955649363796,33.39641694979857,10.082530387363066
+0.14876669386805672,0.3084198096622454,35.38609048143071,12.61738068526331
+0.1492980527876731,0.2916488087442748,29.07169849936675,8.847135360170599
+0.1508140668907221,0.29391335449230316,39.503654374452886,12.366217229207333
+0.14965989468233906,0.300212058617775,35.551514648235305,11.777463542519078
+0.15230251647049375,0.30499636388842855,24.892018318160332,8.789224160734591
+0.14948378829391232,0.2896675413672151,32.910640350527125,9.812529234935022
+0.14891461207732828,0.3048768140604178,29.44658371926898,10.130587051305382
+0.15037065525049279,0.300307910281548,31.359361773172278,10.455096844860542
+0.15198094096467527,0.3028770800716521,37.35490171463296,12.88725329435983
+0.15007239552825205,0.3022284718225873,29.784375187623425,10.142038499756614
+0.15050842902699438,0.29564889145887113,38.11425141742676,12.139267826207918
+0.1496908433526373,0.3001025493340731,29.172366850873175,9.647477218564111
+0.14896322030323522,0.30203656932377193,29.37823289361273,9.792395477861124
+0.14993481677988327,0.30169299876207045,31.548994585398223,10.627899187689952
+0.14724446318997697,0.29961403920452073,30.746484693573542,9.980440979504785
+0.14840156152653608,0.29850862010238655,34.58554484358456,11.151374621223978
+0.14970014472678264,0.2978662446870938,34.93739547047796,11.324639201111518
+0.15008693225266287,0.31120615852848216,22.785055005035783,8.445986831804309
+0.1510068729769792,0.2975969834002878,33.364789040028946,10.842024137827318
+0.14986308082535857,0.30394543157449244,30.36708525477716,10.46064206170533
+0.14999417816297356,0.298699524938535,23.35615347859842,7.624812148029841
+0.14917786476179606,0.2896892900632804,33.60566948833966,9.962832075369574
+0.1496564852955943,0.3023315201934147,29.910749115122886,10.13532608098323
+0.14989096029553303,0.3015594005074382,29.962681107061627,10.07448710361358
+0.15099152743702818,0.2980664045686478,25.864971662339094,8.455933057439545
+0.15000195991331366,0.29022719203342534,37.15389419105281,11.124104230330971
+0.14732159894226532,0.2944248097371885,28.9442618085757,8.902662571367227
+0.15060641865651012,0.3029626505486804,28.832894045907757,9.88253862130696
+0.15175533707065642,0.3024543550754417,25.967765633133283,8.926422475105827
+0.14922166228034395,0.2996031594590853,24.072895206766074,7.874507522159357
+0.1495974524561277,0.30149968194178745,30.08102670913384,10.15752359771379
+0.15030369232994675,0.2977802392533552,28.929508941792353,9.385589435460103
+0.15047145784126828,0.3091227961115721,33.453919277423395,12.23423492550545
+0.14979968222080933,0.30869684968815564,29.1240331719265,10.515182765634954
+0.15175202020452652,0.29978662983013693,24.6182210519918,8.230811076383706
+0.15111664367414696,0.2929350094907366,33.8070186665512,10.493042771003543
+0.14773141658685507,0.30607896668907947,38.98967597357519,13.544809983048282
+0.15048592577426922,0.29878713049232064,26.437012745649692,8.678134751206814
+0.14860420096978091,0.30230835995059174,27.72777258834572,9.300707687431101
+0.15033857813973972,0.29898312387821013,30.242799146657802,9.968959689094193
+0.1501744352338197,0.2972616334358997,34.0690912287057,10.994471489005111
+0.15077366270278045,0.3070321211120317,31.577679594850753,11.245284211837168
+0.1493241753644689,0.28674473066892975,29.456352127605292,8.51200181832041
+0.1478064272661276,0.30505432656709514,33.835177705221355,11.590950243971786
+0.1505774285902777,0.294560162915343,34.22712842613574,10.72403014862635
+0.14926900797162154,0.29895090526510254,28.007679866037286,9.170429441547109
+0.15100579517590748,0.29166961934724706,37.613694721406496,11.483456086165248
+0.14778256094339723,0.3044204794036007,28.276269757243725,9.64385619069253
+0.15048855839513084,0.2902302281460755,33.02458259298037,9.955742388369185
+0.14916755359347547,0.30574124040546263,30.335564879439982,10.518654547919645
+0.14856133614992226,0.2981573998111574,31.13901131765107,9.974524641155586
+0.14886770353586712,0.3026241367369392,39.0054792454266,13.206429102868348
+0.15123834622570734,0.3024339978455535,30.37779539160693,10.34128559347785
+0.14896924427864364,0.2985398389688477,27.69811415336275,8.975303452126942
+0.14989465091262683,0.3028398121113737,26.691848022855588,9.067952102646695
+0.14900125815311938,0.29427807199618483,34.69372234963657,10.763265927519457
+0.15012800941965512,0.29896757939988955,32.52707625302109,10.72483526325635
+0.14896763672399874,0.2956297048716726,29.105496923372485,9.139690009810595
+0.1510095734377822,0.30157313627069643,28.041499549481767,9.492583904282302
+0.15002612834017148,0.2991004427329808,32.66359320975826,10.684455039595068
+0.14935291167696893,0.29188246346721447,35.82420320821113,10.865994594070365
+0.148930753573382,0.29170717525589995,30.651700834110077,9.216494694636975
+0.1491201210648723,0.30743677326365626,28.9237296966962,10.242124792689873
+0.1488128520083098,0.30422749241349867,27.570868774851107,9.38837645971629
+0.14936186508401317,0.29609047874087924,36.737616308451706,11.704560750742143
+0.1503536399264487,0.2988513317709341,32.07128281234893,10.467220668550107
+0.14968514564629695,0.3033158747234857,31.195580302653866,10.63128252851007
+0.14940747341388372,0.3063282989236877,33.10768514992995,11.538294337126352
+0.14935097113494486,0.2982184420631594,37.799352996109505,12.237690897707221
+0.14948755911539913,0.299896697619842,31.080531093369164,10.227364067411656
+0.15108574145137174,0.29556980989193826,32.52853372346906,10.3807612010461
+0.14923022771449942,0.30398469955910423,32.23819002851473,11.03872272932681
+0.15077514643881865,0.30066407404864104,30.904446062744473,10.369327423043895
+0.15164312556257578,0.2990816996631193,28.57204817108694,9.463817672084044
+0.15034817272081039,0.29429165616988623,31.96820599336816,9.996467156689155
+0.15008002057169414,0.3085144442166189,33.50378237681346,12.068551749304376
+0.15168152183315847,0.2984382555973805,33.171127352305824,10.960291375605097
+0.14763798205510104,0.302755150993925,33.3675500554672,11.188347029656578
+0.14967276125566992,0.2964768111929752,31.179787092686556,9.987883627481677
+0.14995052511842089,0.30270949910514416,35.879603289500636,12.171853657803279
+0.1476496015440522,0.30731891581191495,26.608187235868897,9.253813084500436
+0.14979747703184182,0.29914297820385344,31.6992151657291,10.436932794737087
+0.15036996130707483,0.2996290087383762,29.36445062956181,9.700214374704615
+0.14951088846188748,0.2991240739592116,37.302322599505175,12.173233430849326
+0.14990952257728607,0.30498428997612653,27.575936816078787,9.645056387359476
+0.1506024417954991,0.2982149870435256,33.84410044419234,11.039655582056586
+0.14941565610824922,0.30269401376813276,27.673236226362214,9.38072767472633
+0.14935653419745867,0.2972316726355529,26.459513695576813,8.519889907212963
+0.15034619453873455,0.29826118688405157,30.018066383633442,9.803343078629663
+0.14824270056919864,0.29953624994742994,32.29152288145788,10.46195414009125
+0.14829486237895032,0.2952601939462196,32.041579676760584,10.045994770127374
+0.1495483176865841,0.3028689123938377,31.905102481804825,10.86627170737425
+0.15060847348222262,0.2946587973050093,32.331126670766274,10.165927890397915
+0.14877148654725128,0.2973654914017494,27.589606473519304,8.87423677170513
+0.15093853085285633,0.30356885576257364,24.29356600897471,8.433810667069713
+0.1484150564116612,0.2996020609305658,29.013486390589364,9.471226968349903
+0.14974728380113397,0.2991960724669115,38.479467441650534,12.672399043975279
+0.15041623134378926,0.2958220142843137,34.250376901748446,10.912395141046838
+0.15039723001587324,0.2958192900763976,27.438832154094058,8.758253472855051
+0.1496213497245857,0.3031862780052477,27.145335742023097,9.240787777012562
+0.1507335733456856,0.29489015007701436,21.996937643645015,6.911074855230369
+0.14994837458031549,0.30480959012181186,28.880256929370557,9.994587168667703
+0.14892955227798266,0.2998049260297808,29.50286362880089,9.698570973924685
+0.15079364029295547,0.2973367608647315,29.25986697952863,9.472131824358128
+0.1489897882812155,0.2940538659978483,32.207631663257025,9.988222890392136
+0.15132294426315115,0.29209846362898856,27.445562364428323,8.452489802895817
+0.14968012303706404,0.2986486427303969,31.736089274152295,10.38522811136267
+0.14982222204296783,0.2979044931141044,37.59949579750225,12.188160566568948
+0.15049154835354348,0.29850158128242715,25.212214052189623,8.283537090356171
+0.150369326272289,0.3030893953700662,36.88173728819048,12.650215702585939
+0.15043402036582945,0.29643084963385224,30.24736283844757,9.623714537608368
+0.15053893678008143,0.2997600127654389,31.9112660326813,10.609302279229807
+0.15070298055060644,0.29885549411288603,27.720022152370458,9.111265911311907
+0.15020619370799074,0.3083728671632446,31.28111048427418,11.271043379770273
+0.14850278419933452,0.30109403328217715,29.955173643419986,9.935081287319292
+0.1495685853286746,0.2912853366038912,35.68645900127483,10.788105521393948
+0.14941037729604192,0.29560090126079264,31.209077027714027,9.873645671689829
+0.15237487638363023,0.3012558753540944,36.1396464222715,12.36605948618309
+0.1509183350045229,0.29949213597654406,33.67983039587432,11.214600355945327
+0.1512639339746326,0.3020244101506172,27.176593211766242,9.210257975869581
+0.1513060218981293,0.3011194432541889,28.378362883644794,9.597806323294545
+0.14916548853416908,0.3053376445264287,36.54292541370676,12.72790195657198
+0.15019903172890167,0.29653904927699953,29.763313915514285,9.588910323945578
+0.14803633986788978,0.2987713764794884,33.704847985443536,10.885475350338126
+0.14992693798238738,0.3001308785761139,32.10155798303616,10.59817180458969
+0.14945607801578312,0.3066097991369827,20.677754947807667,7.31458741730987
+0.14936149526160059,0.2946531826269788,29.353966883727157,9.136693437230443
+0.14842637049092258,0.30231390710500855,30.726673694174274,10.333354488079568
+0.15036454875251018,0.3009337262583554,27.94601562241559,9.392342121726884
+0.1507433864127477,0.3039369530372789,33.210124784592225,11.54931938463243
+0.14882338343393606,0.2999167307326857,31.300513203363273,10.28573097907366
+0.14936511958533982,0.2978899374360118,27.13762066452605,8.745230845042599
+0.15004509760551735,0.3121747037511047,27.223813910959553,10.183258932000975
+0.14962144162065646,0.29513392715019315,27.811170986424617,8.734631310124895
+0.1493703297245617,0.2955040696642449,40.72075313303382,12.899352917078122
+0.14912284142533444,0.2968354987710728,30.80534377662007,9.793629925502563
+0.1486433832010338,0.3034305311241754,30.501747914534892,10.41818975063858
+0.15156955389972887,0.3010023840286287,28.18771443914046,9.539312332094283
+0.15070284893189362,0.296821484652287,31.75290882594675,10.233887091153015
+0.14820328187416673,0.2939635857091676,36.15611783209857,11.123441184379374
+0.14961524202391252,0.30540549333451034,25.773909295932828,8.967461665919046
+0.14852123994275365,0.303345854564181,29.44445425976391,9.995818427934164
+0.1500279996522272,0.29451913232840315,27.675272128031548,8.67069598594607
+0.15016583888284507,0.29478329329794967,31.667412427686205,9.969842445194951
+0.15074326491673992,0.3049079976968613,30.188924100931313,10.523473364286552
+0.15116874788587056,0.2942452573600888,36.97549864905807,11.6144951136105
+0.14887704950754382,0.3027640987203028,32.056288989286486,10.799629232097987
+0.14827447429757984,0.29930106936574313,28.921863541258748,9.394477697303614
+0.15025084700925903,0.30261570109488956,31.349164529526462,10.653555033654058
+0.1470584218607265,0.2980859657694158,36.15444618178909,11.490333563813492
+0.14712976211860232,0.3038254235157501,23.554965312381228,8.01005674988358
+0.14929371441248226,0.3030347010851166,28.752313936268823,9.812561075021252
+0.14942245946941152,0.3105450516623863,28.147393911978742,10.289569727346931
+0.14994124751057558,0.30434247841766576,36.41564690658018,12.615297581157886
+0.15041600295970586,0.30047935067582504,33.92848887642686,11.345858051340354
+0.1492297463926909,0.3012417812051819,29.879038420923518,9.935954092260474
+0.15028486685580042,0.30419080195448983,33.435666862621325,11.564221402161284
+0.14975741766409373,0.29703805385374604,29.48314915825477,9.409584395117703
+0.14984177362601503,0.30297871902610113,32.37642612150913,11.076635876617612
+0.15074703016309415,0.2990666471043573,33.80923313328867,11.203894278995381
+0.15077836293640656,0.30243859962630965,31.27161841445128,10.68402937925728
+0.1494111276449715,0.30247723090918416,33.48409641232628,11.371689680811881
+0.15037795862091485,0.2962450680675679,32.94272495124692,10.50452289039227
+0.15046923736910248,0.30007952297787427,33.145595494331346,11.02405563501966
+0.1498322992142315,0.29616666278973197,26.749294423184747,8.527147905492836
+0.1516247019771861,0.29793915939891547,32.96158384035529,10.802201849679731
+0.14800760080521488,0.3047344725920896,28.550689194643244,9.747183359410737
+0.14882830919817405,0.2991130949982938,36.46571990497994,11.888958028540173
+0.1523989870137238,0.30729643713866445,29.706522990827544,10.685276944601641
+0.15029716627657774,0.29186405607044985,32.197226290434244,9.83325582396172
+0.14794680396580245,0.3078230610617153,29.697071949608137,10.434151719027476
+0.15092498034035182,0.3012773320414277,32.94348755068926,11.054685585687508
+0.1496979857414595,0.29757610711075627,28.37094100768026,9.141916905449506
+0.15168385126874626,0.29742510710855197,32.40317375033911,10.632726633963207
+0.15163851489104488,0.297780393297562,29.42314170999978,9.624565942021144
+0.14878670244962217,0.30363815463550076,24.90808548247289,8.427820472035355
+0.15120976349572732,0.3023990500813756,34.587735784909,11.829221768025379
+0.15240187593429178,0.3010293301943819,29.88097596783993,10.179007781059518
+0.15008276957758526,0.30279579787618577,31.19844246639446,10.612251681382192
+0.14790564940273407,0.28899923723894383,27.570864044735767,8.107963837249777
+0.14825065131910714,0.30114020134000974,26.549245923165934,8.800865789642893
+0.15128351939828763,0.30302175609109744,25.74601759927487,8.8649513110186
+0.15130931660459537,0.2936985971781909,34.40277947700914,10.779466319929336
+0.15079520564085203,0.29308300510306007,34.267179148397936,10.535502056871117
+0.1492951504653158,0.3033000858483651,25.544685889766985,8.702974658355021
+0.15090966749230297,0.3096888418980245,29.769388536754242,10.850189572400199
+0.1518557909996164,0.3026499074940581,29.135972765306267,10.04110706017011
+0.14952884549219642,0.2986342740238656,33.08918355717275,10.772624710301033
+0.15124842402942196,0.2955763158282231,24.026945916890895,7.69070709195597
+0.14999945715726432,0.2984295126585671,31.939564223482673,10.40604290756835
+0.14889464205216732,0.3035987065561859,29.188950042678833,9.919934951005317
+0.15026522100028816,0.3020283085466606,24.54099314348005,8.288251140018547
+0.14954314385688236,0.2939754309900081,33.173059040732205,10.312777422785024
+0.14970272507408455,0.29768306363394675,34.897162561709905,11.314770639942527
+0.15271868726180066,0.2912164128602422,31.16995964701568,9.657639548182411
+0.14977714505328044,0.29986746268268055,30.085977468286522,9.932647808008072
+0.1520524037885954,0.30352647144754735,33.14252911750455,11.584009463634427
+0.14828174056077514,0.2957845862002923,33.12813917444116,10.366751102333607
+0.14795614979041186,0.3032703107459883,34.24879225027465,11.575281231606544
+0.14866576498716522,0.295413276153987,35.440284037607725,11.061192585400065
+0.14945219747636365,0.3012790017269356,31.763652459883694,10.584150615116968
+0.14961294100393924,0.2996612121180742,32.298921448438506,10.628765140384235
+0.15059856685343245,0.2993103550307022,34.97592145975992,11.549777934718719
+0.15016441525784224,0.30040589898810693,34.38882429370533,11.532882830762391
+0.1502092166934864,0.2928309886976596,21.74295443448976,6.716755416958289
+0.15149816829228197,0.2961328605831056,32.31212403224867,10.40604234261362
+0.14897342687786946,0.3043279717656695,31.05911280927118,10.652602868343063
+0.15004558120298933,0.2953834037819675,28.802156360268015,9.16165794096953
+0.15024836794486515,0.30196202845059894,27.733877787833464,9.361259958269066
+0.1491221471391855,0.3031948696231033,27.63056204199924,9.362207861509567
+0.15008306821062553,0.29821859474455054,35.0967350304914,11.403112669910563
+0.15086129091799794,0.3066732719027212,32.15202566300617,11.35965219840607
+0.14997149625870432,0.30222762143505594,35.57154229735635,12.060745787776181
+0.1498781177721117,0.30300363403917147,27.668469244843724,9.421557147855316
+0.14965442989082026,0.3046840678501446,31.771531704697583,10.984653319392388
+0.14818107329777067,0.2971358134378948,26.604002829897734,8.431666456547042
+0.15046157458971735,0.2949292742527998,31.13496143828097,9.849437832752928
+0.1491152647866057,0.30114746285366645,24.268049838363435,8.12308585219697
+0.1510252942825907,0.3014785347273398,28.572798873678842,9.652889640930008
+0.15154254827038044,0.29489463674504185,34.891319536744795,11.111084380152667
+0.14989411751424553,0.29908908551194613,41.102404554948535,13.526415950112074
+0.14915756425025528,0.2998371798520187,31.64358574399457,10.426353436039792
+0.1486523670723883,0.29515085815352726,27.082596490558004,8.47676414591574
+0.15187153168580672,0.30521730846071643,28.038370134126875,9.989687081454052
+0.14717237928272345,0.296081068507249,26.504348524287046,8.298868371718122
+0.1522029007652614,0.3026590389912453,30.830524112005154,10.661550683308748
+0.15055689370541295,0.29699106967254185,25.313458753359015,8.149554847064563
+0.14722658640453307,0.2865305586520426,30.228897639850373,8.570984548807846
+0.15185234142220128,0.2968654363240554,24.011376566580388,7.77230523539533
+0.15117814254505815,0.3017747945622344,31.839586948785765,10.809910471309694
+0.15022314796230954,0.2957943151470525,32.67168628523149,10.348763742779333
+0.1504513867080999,0.3007201992713968,35.98269219271867,11.93211911862384
+0.15250416911581083,0.30065490478182916,29.537868572143097,10.068624228648677
+0.15285204484693823,0.30381370375040645,31.795101355636437,11.174161646612594
+0.150799659342597,0.2973340933396511,24.2700873528348,7.8488609347304825
+0.14947730948203178,0.29930807618546384,24.775072540357144,8.14446558216435
+0.1507747972002694,0.2992691913201169,27.463779813309372,9.074210418940561
+0.15043193672748797,0.30115158547515747,28.87964246496451,9.695187360630133
+0.1486439458121444,0.2961820023461523,29.933515026673515,9.40036158238847
+0.15051204576183067,0.3034771342403714,34.352491474717,11.843500345816077
+0.1488150459774939,0.2972042546522167,31.341047120734263,10.063117184251048
+0.1497015670823031,0.2992103632636857,28.980071552568404,9.499415355543498
+0.1485285781479657,0.29716281023163005,29.802452665339892,9.438410624672446
+0.14983694909204961,0.29749695877494603,25.15737825775932,8.138752526428837
+0.1500378881401528,0.29375534103806206,34.326776056191,10.615535834328954
+0.1490298874020154,0.30343188912389535,30.5767041995004,10.436821575606762
+0.1506656300754701,0.2991386211099758,30.670444671275778,10.194419709138508
+0.1495463689533794,0.2998957979418523,32.81753221578038,10.791768508348191
+0.1497766094076069,0.30534304733170453,30.981210891778304,10.796664980840802
+0.14900863874111983,0.29938121331999,29.413743224901673,9.579141065797973
+0.15224021884529318,0.30142331884620693,29.04782875821011,9.912115835803585
+0.15129947198437194,0.3078269985228101,26.89827119637988,9.691824153143124
+0.14826080806521522,0.3014072254295658,23.619337335316466,7.862061418807246
+0.15184917985875127,0.2996028351286746,25.51432283204836,8.566124637325471
+0.14999905628228674,0.3006656020227518,34.301096559621755,11.41883231719507
+0.15019228229692283,0.3022706219239683,32.210089792779726,10.907458415246467
+0.14908439848117278,0.30916393163699346,30.825092027015735,11.129838528304402
+0.150836557366633,0.30176658939568995,24.421409487907493,8.231826223901782
+0.1486063538906154,0.30296737338167384,27.486751369095856,9.346583102649928
+0.14797986077799483,0.3002458728058413,37.327920115602396,12.227058429483957
+0.15072768124054528,0.3029592165826463,34.1285443385658,11.749986581343354
+0.14890687018064147,0.2989810285276185,29.977829491747944,9.775222191907552
+0.15068743512738056,0.29539047258074735,31.30285771817441,9.962720928128768
+0.14944384205949157,0.29773551203563325,35.441240817056475,11.426474015138549
+0.15108929523505413,0.3088737311630149,24.506237777585085,8.933677377863795
+0.15143827657017672,0.297599614053814,30.19531725443829,9.930029302703419
+0.14915975647706403,0.2950783672704274,38.94819927042723,12.223090538014613
+0.1501014860727677,0.29942015544059103,24.023528480249688,7.9557441223497385
+0.15028540174785118,0.3046045758931146,31.083999713157993,10.808873810697703
+0.1491665774245523,0.3011479272639561,27.751822782893395,9.247282471607782
+0.14955779181019413,0.29401690593270385,31.382984532731253,9.792928519189395
+0.15012901157724032,0.2964096651107698,33.18119282511111,10.609855777469527
+0.15141739284643638,0.30320256224289543,26.059715401801334,9.043881611164247
+0.15048432881933616,0.3001110660893503,26.35947396604435,8.787272250911114
+0.14978751036976373,0.30436048668597276,33.57905974614406,11.536622001144199
+0.14940893312683448,0.3042421553707964,29.123298221357057,10.025330974660562
+0.15066549458284567,0.2934892792480278,25.240453226007936,7.883124385720567
+0.148639054723853,0.2998163426711326,27.860241871551516,9.150468323489577
+0.14908231998852303,0.2962545678312695,24.528586547251972,7.7427674249576555
+0.14909810441637353,0.3044294970781771,26.94944282281854,9.281956981151525
+0.14941428927852252,0.29946221424307257,22.17795299237561,7.279230262860078
+0.14937363277595173,0.3057574857198953,34.44401703718449,12.061714717333512
+0.15113695684658485,0.30351633535405875,28.789693096659523,9.940269430082827
+0.1490267271079294,0.2951467852501461,32.73336641163018,10.284394603520202
+0.15152923334965354,0.3016052783177185,31.337062751974685,10.709436690941715
+0.1512570901742366,0.29757265945692263,38.27162608370882,12.462552549579769
+0.15063884409396996,0.29861159914769797,30.551863480748775,10.03753123578051
+0.1499119278743356,0.3011174553987141,30.182168833483743,10.097177886349368
+0.15191302014569985,0.30112609185195294,32.88449028631618,11.105558071934354
+0.14994828349347578,0.295920614076779,36.019905549940695,11.380818651676677
+0.14928409092327896,0.29720822529776936,31.2002536942577,10.019422340583901
+0.14935111884498675,0.2931186562885259,33.37515068536127,10.26429514642783
+0.15024273104523303,0.30867223252817794,34.70996285888496,12.569416778065255
+0.14706236099162628,0.29984196033581867,28.888690549253727,9.35105296261869
+0.1480976320768652,0.30228186632718895,32.21477833038945,10.754052491574704
+0.14991639344151628,0.2989965511877896,29.82375974290315,9.78919035154897
+0.14856708938901259,0.29292598939613906,30.405693258467434,9.342820593778514
+0.15249026782718075,0.2955275627749801,29.460663497514094,9.503476488100269
+0.1512441561408844,0.3042575544229997,35.662384445431776,12.40665663380423
+0.1513044196544343,0.3022562439684038,28.81138659122557,9.81878959630101
+0.14894457493897215,0.2920560745713303,29.217651394351247,8.868408419165155
+0.14916094658326678,0.30499010263398674,30.724076624310026,10.678098424396806
+0.14940818254721758,0.3013228893439938,26.470960891930904,8.899949132600215
+0.15179643574898577,0.299930107843136,25.848228475271245,8.68823162876136
+0.15049941315067564,0.3000341787519676,32.895711603207964,10.910223375862326
+0.1481658161669803,0.296532977867018,27.81886386752761,8.763025554774172
+0.15181865579795076,0.2958862387672113,26.53539202665052,8.628085602302269
+0.15073750526295426,0.30597375909987107,28.127415811682205,9.95871771933104
+0.1490652861346166,0.29669884314119105,33.960869006703554,10.850851088884006
+0.14998629213826295,0.295302570534676,34.64806249198976,10.923482048135305
+0.15029533161994796,0.30158482729332814,26.40454511864855,8.870686147519876
+0.14974857263327326,0.2986613933379147,28.333234772233336,9.186212315515668
+0.14968965627299946,0.30174521311530944,27.18910806472239,9.144861850834735
+0.14795155214737638,0.2946653371682274,29.924012958099283,9.291098032670853
+0.14922507486158787,0.3016890099365056,33.095286243717545,11.118300457492415
+0.148021144398743,0.301292854429391,31.816663124369033,10.49324879585377
+0.1486534533003364,0.3008990938111918,31.286938421174334,10.33984791293095
+0.1469475706671714,0.3023484324029646,35.53152264321541,11.795115020853292
+0.15178920781473065,0.30155361339710735,31.31536265363243,10.655280332410461
+0.15072056491624622,0.29647317568425424,30.995155393347158,9.930448585779278
+0.14854232123378763,0.2968054929060531,35.91784802391071,11.399836922916275
+0.14924202036554815,0.29849096481671555,33.84539006179409,10.943744878949214
+0.15034298481234673,0.3009670441178653,29.51152589529176,9.898916159846058
+0.1501163203311695,0.2960598700815152,32.27558126253294,10.274146331553037
+0.1518829198484428,0.3013864355466777,31.88395481889839,10.85885664399941
+0.15022208150097036,0.3045651172055795,22.254778943468875,7.768409882108543
+0.15023278840743035,0.2980026151803848,34.70690383554117,11.290021742032184
+0.15193624298929623,0.29512925423050035,32.21662814889485,10.307678732338392
+0.14981018178662486,0.30549390620299594,29.54059380070454,10.365877107297848
+0.1489599556817976,0.2954561071394947,22.574428423261743,7.050521312636185
+0.15234615812927063,0.2947490079267672,27.314098304336305,8.707496511222491
+0.14966759933183155,0.29577391524638624,22.864444464511937,7.212366915492233
+0.15054659734581263,0.3011330657391337,32.97534424613733,11.018320612837865
+0.15010361517323487,0.30430363474135197,35.37313844987407,12.235227373343129
+0.15039519619592187,0.2958432431164147,34.01618926144468,10.7999635413438
+0.15036698928169265,0.29798828864119625,36.015130571978546,11.750677137321418
+0.14953134313970884,0.29801375226420673,35.52135111652815,11.490332831988605
+0.14992300057951277,0.302298323935611,27.367598860266604,9.312536726490121
+0.15099039589687105,0.30419580351678016,29.73544158009539,10.3094474956076
+0.14734207717363776,0.30292791840054106,28.053752547889793,9.351756619982751
+0.14934610868208578,0.3018718846252582,28.367442197550186,9.529800918828192
+0.14988102301916797,0.2997815328428469,28.745100284872333,9.47965631209071
+0.15101812536903775,0.2942536957575838,26.538621991728085,8.329156053576513
+0.1542977259546782,0.30239397990189903,32.04439545882984,11.18785660939395
+0.14899797092505307,0.30009541928536826,27.265256850502183,9.006247951708957
+0.1504699937050365,0.302040853636646,31.6915824562699,10.756361685404014
+0.15099149579377966,0.30553837767713815,35.31843737521924,12.471835613549066
+0.14953258413343912,0.2969398152898945,29.978798021746,9.578510672266418
+0.1516085837626562,0.3020864695487571,28.60564932711777,9.783511282627003
+0.15007872607951725,0.2944438049480725,34.6947669576105,10.883355771748391
+0.147454451575264,0.3041283870524879,33.45459331508136,11.347096306781685
+0.1512207292406704,0.2942293227501555,29.92183288923934,9.417193974103512
+0.14912434377340802,0.29745127506763575,32.408188728551515,10.38315218561443
+0.1487316364311185,0.31003631877768284,33.24179060643001,12.010757714364058
+0.14869274517078818,0.29327451077643096,33.777906791916976,10.410663766616949
+0.15026164735836353,0.30010639816225776,24.901807163844758,8.295580133428208
+0.14997610381021376,0.2957364800583772,34.74129818571201,11.007588295986638
+0.15051326951347796,0.29781385503924607,29.038599548732492,9.442441131383713
+0.14991581717988492,0.3036823955557383,33.7735103665097,11.587219742204974
+0.15019854258277696,0.2979464315024034,31.998208448078127,10.388489415490174
+0.15045950340344708,0.30259697445595,38.37439023140611,13.095655658294346
+0.149697633689417,0.30351588029257676,29.85932851337762,10.296195914164743
+0.15048208024374526,0.3059570923726008,30.637052307364268,10.764706405159654
+0.14997033223789602,0.3020435603699073,30.98678426699514,10.460911117614831
+0.1495357877851856,0.29830313548285303,33.67303180637947,10.913470416684358
+0.1507145822167922,0.2870859868841147,34.758248235128775,10.13564586214739
+0.14969576049285008,0.3008135926302299,29.96489061269328,9.972156669511824
+0.15033993254092562,0.3045769029277473,27.588412198533284,9.603257473593528
+0.15035769319879244,0.3005213909692996,38.00094210390058,12.670909998915139
+0.1505929622883625,0.303096124082179,28.234468041783703,9.697300486987391
+0.1498703148716866,0.3049082367213551,28.0118704483275,9.811894697339866
+0.15056529447156763,0.2975616793114516,34.39092248319009,11.194912267844815
+0.14901148653588198,0.29937223488775355,31.240930482031512,10.275277131946025
+0.14920116188489602,0.3044075166494896,31.569364887660818,10.849692127627772
+0.15097921181309348,0.30447832822016907,27.767857088338573,9.6608829177008
+0.14961974458668678,0.29251825691831174,30.03747735927649,9.227513746769016
+0.1512230144896541,0.29693313648681424,30.915526916916914,10.039894526260523
+0.15056220277070828,0.3016910946995463,31.550438480881596,10.677322373554853
+0.14974701660646178,0.3021308147905168,32.248123830037166,10.881934370295447
+0.14758352038436331,0.2941550975666623,27.46967344882966,8.490806564137657
+0.1505745421600971,0.2957514120816745,31.73499438084291,10.069401437645014
+0.15013342809196428,0.30264896588421675,33.035609220670814,11.201482246987222
+0.14952491657495828,0.2890725856443675,27.837978379864055,8.254198110493313
+0.1493953765105691,0.30004301470033135,30.144582679942793,9.946384299168574
+0.15181686549391563,0.29659503646392377,25.072149735968747,8.079509612982806
+0.1521507201940413,0.3055210984972169,30.478992597719373,10.853374191476826
+0.15005297658692504,0.29410642811380916,32.264588868914814,10.063297970922322
+0.14990234989800952,0.3048190855278523,32.96191810870839,11.427818615453548
+0.14951692288604412,0.30014646600666345,28.47863030253805,9.428243892218742
+0.14947667566623477,0.3040518037880625,27.565821563768132,9.469295442153994
+0.14935817641263474,0.29440700350877375,29.332051160584566,9.139153324358887
+0.14985933753391265,0.3027952077277238,29.811284379769134,10.095885761295856
+0.14965838812182639,0.2999554120881189,31.20842670900739,10.335682715501923
+0.1494690857460436,0.3019092379234986,34.70172492857435,11.641479389142313
+0.1494537401637109,0.2958470574634553,28.48591941559183,9.003404500402578
+0.15101086951404322,0.2981655497494426,36.75022422208407,12.01254565859684
+0.14903458240996964,0.29910278190338063,32.613651408623966,10.602575091536899
+0.14853404816596275,0.3012244621133848,28.45043417599989,9.45127053290686
+0.1509804697152294,0.29726452947526705,28.12115855461133,9.134980837245008
+0.15210881704125884,0.30246518199100114,23.666492516841245,8.163752398018547
+0.15009154551109663,0.3015837485929191,34.45475891564947,11.613579616440829
+0.15039182857081396,0.3004071757065047,33.39230737404556,11.128527889823776
+0.15060438825197517,0.3003817995847454,31.14089739103776,10.43712049224753
+0.1507742810738182,0.2982325711722114,29.15696833267372,9.521703186391573
+0.14850989014761115,0.3017628974969934,34.00785897494529,11.217602874181853
+0.15098833654739977,0.29646224638174146,28.534139649826244,9.146597251602495
+0.15160504453155607,0.30679893437893324,32.27025152923241,11.521359443745007
+0.14997592259440032,0.29668646200541393,26.992048773623388,8.678785815832995
+0.15093133594479025,0.3034505865376927,31.062000029319584,10.688246109289402
+0.15070643993270236,0.3028116612751269,30.741867441193854,10.56864513144559
+0.1485208506221559,0.29719832302133803,29.491064629466266,9.38890425710288
+0.14954223360954574,0.3017810726837369,31.824315570944275,10.681407939125206
+0.14977684642493458,0.310841238083303,31.000665172626157,11.427550916794594
+0.1483751055452602,0.3033775358381169,21.6742283553193,7.345477363335229
+0.15085547817486294,0.30488127291024686,27.961904940560263,9.736854523903865
+0.14998855193250907,0.2949151772734072,29.820022872164582,9.387260750975237
+0.1501935660552114,0.29737435440373056,33.19559549505197,10.683541572678283
+0.1509082558937118,0.29874883150453296,36.73976956089476,12.1260629648676
+0.14896041189384288,0.29519964974947566,32.048863984231204,10.02292416289313
+0.1496311611852509,0.3011614430213373,28.85929653789033,9.663344262127241
+0.1498982971341209,0.3024146023487233,22.077920935322155,7.4431134224339175
+0.15023983841205155,0.3047797182819962,32.377612193920264,11.273604626116443
+0.15120407829922186,0.3017220207324411,32.139042247704566,10.914869836008997
+0.14896836443029812,0.30416174496339,31.17485608417208,10.701200667996927
+0.1513106181041353,0.3002265720797879,27.525735231227696,9.189753051391067
+0.15017062641485016,0.29542325835442845,27.695231770798962,8.751120777142164
+0.14897483580186202,0.3096440766339139,32.535308755992524,11.74519728060254
+0.14907165805920639,0.2967042396459767,30.681445971499095,9.739789654658656
+0.14919817052370132,0.2980471299647953,37.05813051067359,11.959069111569795
+0.14894808185056307,0.3030666789816048,36.50489397327337,12.403597933967253
+0.14911619702837497,0.3019857881647587,24.423911870068665,8.202485593872485
+0.1486320719366379,0.3005405687549569,25.06160342515638,8.29630344220285
+0.14877646515201273,0.2968052978892778,34.06918640451484,10.84200774236898
+0.15034583386644804,0.2922195560469238,29.083785302403378,8.927270361303675
+0.15004356192167267,0.2990523291365325,33.13152588574674,10.891318911757944
+0.14939983640451954,0.29769782386820426,33.72425034082211,10.856549674355591
+0.14876205637510803,0.2940081200640076,21.08158006977957,6.4910922003086
+0.15106525367289794,0.30008102529153646,29.82410323302063,9.977423864021274
+0.15049029641303371,0.3019006336828716,28.240400061194155,9.558339969431563
+0.14893844009279678,0.3033799866971777,33.505959960726805,11.311633882741457
+0.1492574384719436,0.30468782691380497,32.59902106149704,11.235333069301568
+0.1492872985035771,0.2958571504805146,27.167139860054462,8.566686954926933
+0.15104575143224824,0.29446104188877115,31.46827193350436,9.921845745689087
+0.14905875435534435,0.29864081277185134,30.7872952789074,10.025578350811642
+0.14904671847527154,0.29341401096286157,19.256800157532425,5.935231637388169
+0.14991184778426642,0.29132180383371487,31.37302389558821,9.488554836644735
+0.15059482550360526,0.2931936472170608,31.48587754441544,9.71383353552105
+0.1512382316914387,0.2921169649534023,35.33224545333346,10.935561925455934
+0.1495448013995574,0.30069435068749234,30.052603060305838,9.956257102464027
+0.15018376313101886,0.29121345673840116,35.72432370903973,10.844025582853197
+0.15097508128435816,0.3024892664456214,24.142206530000145,8.270500649595485
+0.14868480996165098,0.29889663230754965,29.498090942060028,9.567991115290484
+0.15006072840348558,0.29590850417207626,31.407208754429732,9.981251331130823
+0.1485336526877529,0.29275561413480533,25.971375057914493,7.923397584679459
+0.15083081901508658,0.30170624357807024,32.74478822279597,11.115095128583638
+0.14999465770130932,0.29171082508038776,29.79692025200401,9.03533047923699
+0.14818403703298402,0.2959481674760528,29.296263149774944,9.237281098622946
+0.15045375750830617,0.29907385712185347,31.383844388058286,10.3790390684005
+0.14987834798816482,0.30114509064591055,31.969426061675872,10.696504519272944
+0.15107384542968083,0.3066554432347324,29.531126419455255,10.524678552452551
+0.14808350684908447,0.29771562050019135,32.0880389308299,10.289592601951972
+0.14998303431734303,0.2943447882209162,28.095036012869215,8.776501797398971
+0.14781261539528318,0.30942179419900456,33.46596967020843,12.073426397880356
+0.15105116661165982,0.298286393186438,34.5266230462814,11.305300238574393
+0.14908695445554504,0.29536077868254557,34.273378231696924,10.765632948393165
+0.15098283332609405,0.30024988690015125,28.082197821502668,9.371059944232735
+0.14842557334024312,0.29905830127550703,32.438701832004725,10.58693904563232
+0.1488187585807128,0.29400097088334326,29.377996523288388,9.051308357848125
+0.1492773452023682,0.3002679660159002,29.307054501866702,9.680075485115486
+0.14922482959319153,0.302452662322166,34.622487771019756,11.736944650981005
+0.14912944923162857,0.2904014323948326,32.24684589153352,9.694467445767499
+0.15222575452965917,0.29178060051938104,38.082721336193956,11.728157720391417
+0.1505687616121568,0.2977595143371976,30.305785088394,9.908643692745638
+0.15128744513908593,0.2943498331443096,33.468349711210465,10.548132416476752
+0.15092825991578426,0.3033520753420487,34.20068063114669,11.68593282432623
+0.15192949893807386,0.304138410325739,29.45725344285228,10.273581795006743
+0.14894659827188872,0.29985927063863205,29.27085390642178,9.621254652552093
+0.1495131604992782,0.30481544367279717,36.748692285987545,12.718504032436346
+0.15134199550084199,0.3023347365224781,23.90600894658675,8.176311593168997
+0.14933139478178714,0.3004929358911997,31.40582642313447,10.416526817477157
+0.14895863393224915,0.30325023409227614,31.27127649935541,10.66720934519102
+0.15044838329852264,0.2956799385508049,31.735077594166803,10.087713057340759
+0.15002863698867852,0.2969633843276273,31.180162084674055,10.0204524487767
+0.14941592248994662,0.3026226154262668,32.532862428639355,11.052136441992266
+0.14923057824901106,0.3002930789587638,24.02021835933481,7.88080163139588
+0.14993637167902857,0.2973247572619883,32.797970170439065,10.558325147253994
+0.150427507675164,0.3065739526712268,27.992738879817882,9.95015806508557
+0.1500351138583956,0.29580086839268316,33.930036994120044,10.79337623863258
+0.15058650313869099,0.30006340096509504,26.730185947657986,8.930932317597076
+0.14944393028634065,0.2989752809022004,31.152664987920453,10.137325615329818
+0.14994686849274413,0.3019951696172883,34.9585369906738,11.738951421965123
+0.14842662348046234,0.3003056751577144,32.64267271676609,10.735823750630887
+0.14859670352124357,0.30018052211066787,28.880610259198136,9.478615569791447
+0.14836200578061046,0.30215479523925143,30.319802675015175,10.16515832866473
+0.15057973567723992,0.3001588346190782,20.64792691053741,6.8732791470349985
+0.15139220528609856,0.29708803149821067,31.999703237326106,10.460410689395717
+0.15018201701181763,0.2892807320969717,33.530096039335945,9.93051892868961
+0.1509762801809613,0.3034151270127956,23.064729940984222,7.9435940026176795
+0.14870535067251722,0.298356146302538,33.69644066416409,10.911616720863204
+0.15081697081238907,0.2987881988002808,25.8677900481857,8.515817674012736
+0.14993408317691514,0.30006292979166604,29.396460440704647,9.721456834475095
+0.1484461797240552,0.29862654517241577,35.85058875090493,11.496333007805577
+0.1507236841962306,0.30083625432274813,24.110448563353238,8.100756937411633
+0.14959052703433418,0.30451175574105016,32.539844582686406,11.258578016756552
+0.14990297970672206,0.29607676632618246,30.63598051414949,9.724823539957638
+0.1496571473157076,0.3019161978295728,25.472404803943697,8.561906448726068
+0.14889695107657216,0.303264215636668,32.12242849175659,10.830346862064069
+0.14969424592246455,0.3027376804635408,29.610209069869022,10.045663328572646
+0.15015708367841898,0.2996409348284474,30.183355424777098,10.006410268042096
+0.1508873292731702,0.29614895531208163,32.19556571565813,10.32665076729002
+0.15007770754918012,0.29764104849933876,31.185105048009532,10.136560443494748
+0.14968205639863114,0.29559165665367826,31.350934881343225,9.956540385153398
+0.1500066735229222,0.30286699876248624,30.901633811698556,10.561927628982309
+0.15000136513565637,0.2973350592277371,35.65172635787433,11.540676785179759
+0.14869394829003105,0.29408983023486773,29.48304494818623,9.164698452201064
+0.1513098916069711,0.30959952196119295,25.60637510356099,9.402925156700062
+0.15075716960396413,0.29721922670536066,26.012056235220495,8.386261345483152
+0.15058816925547444,0.3012366162598834,29.38906810156734,9.854878874309932
+0.1494347481079723,0.3043831626365798,26.31989062453836,9.057744427175502
+0.1499562149541483,0.30432974187267775,30.31937288956581,10.468993342611126
+0.1498814601432157,0.3073587783815908,28.86685780066414,10.349627544170376
+0.149764128767413,0.30174994998581645,34.25226686755304,11.510412623932597
+0.15051644875441925,0.3006445096255513,31.90629895406775,10.688806450553447
+0.14960371041951662,0.3014467041035283,27.433020891314012,9.20631523339963
+0.14913469408316016,0.3058987784498792,31.079915069288525,10.810946155886736
+0.14952743489817327,0.29874865128571176,29.019369467639425,9.449088610740558
+0.15112731143765903,0.2938923632296102,30.743109661922862,9.642157161920588
+0.15075886695102883,0.29875682975655565,33.15445598377537,10.95525409398866
+0.14945676851547454,0.29823387344076074,31.37293637532068,10.121525420492498
+0.14916020799471555,0.3070007077695401,29.056266427618596,10.307045663074513
+0.15156158090664945,0.29687337740908776,27.676250844578302,8.9820462358796
+0.15034760504050634,0.3016948637125913,35.06497682052266,11.784224075504046
+0.15077776848695496,0.30341420632808186,32.5283345228566,11.178311565738685
+0.14896328831428673,0.3048678538205391,28.638098498967583,9.873992779893683
+0.14950971848446604,0.30226444389085466,32.53790101882153,10.998825357057648
+0.1498128827459202,0.30210024594747636,26.928617181662446,9.069281592248139
+0.14928420346523227,0.2965651450762306,34.65976509824766,10.978472281002066
+0.1515454193587206,0.30884789873424673,25.51434065815729,9.332723949000655
+0.14980889447748827,0.30086693200560183,31.815938296251108,10.609261446956577
+0.1476180874269917,0.29516460074875994,29.378472479316596,9.163421755656742
+0.14892691811033595,0.2949007289892754,30.02683323279956,9.357533803852414
+0.14983842382776902,0.30085606168864404,32.60935103653713,10.957039547661378
+0.15089331332102357,0.3018297277287705,28.878571183439107,9.857099804009248
+0.14896467655458664,0.30332962814958103,28.340503590866412,9.669412209737484
+0.14994031425655818,0.29600900913239775,28.35098184388226,9.018442706699759
+0.14978366961816394,0.3036558165903757,25.754038616205847,8.803349232440063
+0.1500240332727593,0.29995119761768835,31.667332925634653,10.499923764595108
+0.1495470000269736,0.30647637826404794,25.948072903246697,9.107181973153569
+0.15217003848477512,0.3033367081987749,26.64746565393097,9.297330818850952
+0.15133506900401808,0.29408316694025377,22.790003418140007,7.186426600049563
+0.14991840257972186,0.3037222345289988,32.99959597533918,11.275840258630119
+0.1525053389480852,0.3062868404038934,27.147186723845838,9.662480812672447
+0.14985921710689934,0.30719981905042565,30.346981962627908,10.779143936169993
+0.14954956679256712,0.3038425514899261,31.811931137396574,10.935959841022498
+0.15029342291062622,0.28837470641391955,27.349552392877534,8.045819509875129
+0.14803546401969883,0.2971658308920223,32.943380397351795,10.51829273078949
+0.1494853687386452,0.296919961620455,28.028685151987247,8.9532214524174
+0.14945903115883294,0.3026598752244181,24.328650368874115,8.233744480429197
+0.14910646943503414,0.30810287268678793,26.734840977480207,9.54854231073999
+0.15047728834474075,0.301807104277891,31.335866995585885,10.577220072036571
+0.14990123386769413,0.2990455418856575,33.04566595734408,10.843374962396808
+0.15115255033271224,0.2980369700248842,23.36192552452994,7.640801014648934
+0.1499087253968656,0.302014551717269,36.106718141389905,12.164931037905474
+0.15221084930217602,0.29586431528223744,23.30302906316268,7.490257800982626
+0.1507290298951174,0.30044418629024944,27.98181713584829,9.37794595896077
+0.1529366940834884,0.3042285255319826,31.056314081427224,10.96595311068201
+0.14959351101132579,0.299525774605121,29.903207082766034,9.844541777990818
+0.14853225586884122,0.30744015592629936,26.577057985074404,9.352948891789707
+0.15263227058241904,0.3030669470065711,29.563479228631955,10.259584433961408
+0.15160411605171106,0.30080700685394424,28.445406198748405,9.617942227060484
+0.14983080036319463,0.3064227438408191,25.492639782741012,8.977814077482803
+0.14983093987517393,0.30576112662894966,28.664790660084304,9.960068571335254
+0.1486088436218202,0.2969351215888953,35.597152139470424,11.27680155229831
+0.14731062090026809,0.29818924977237715,33.019285131032284,10.52740386461114
+0.1480165092364799,0.2970227799199571,31.111010714422665,9.866977171042208
+0.14995044774963148,0.2982612690468014,32.66210034464846,10.627328178027799
+0.1504881468291324,0.2975372114335078,32.033011249531434,10.398728307342584
+0.15043342740739804,0.3002561117549777,23.400131541296687,7.810964000438065
+0.15159127832408267,0.3076753035951774,39.24564327033253,14.187831823685514
+0.1486501633999267,0.2965847286512209,25.316716163973293,8.048053499796566
+0.1504333726074961,0.29316604984262074,29.6887167263886,9.227208006276097
+0.14960717972685791,0.30523818378584955,28.546520595190763,9.926983665062336
+0.1497397517939679,0.30055325935499677,30.782475642600176,10.245109463495751
+0.14978636526893563,0.2963782170592973,33.16147415933163,10.570379978023094
+0.1475778777047773,0.3044201693418481,26.92446717930526,9.111618481564674
+0.15001659487482374,0.3082945238325685,31.100668244875756,11.217294553275435
+0.14959308176248182,0.29138010837934225,30.993530929504075,9.389705658442345
+0.15148666698076896,0.2972275182262461,29.549545769101744,9.63385017232459
+0.14983627447640446,0.2962607947049991,32.49173172484234,10.352961334780813
+0.15099590874527144,0.2978532144512811,27.150968894786654,8.865498285252901
+0.1499554244735638,0.2941840076340816,30.628089616784354,9.594905642980319
+0.15146775170455967,0.3005815431568562,30.35828809474738,10.217042263086814
+0.14836414602696432,0.29895861543000385,27.590033133054465,8.856905229669154
+0.1497183438565241,0.3054774825466784,34.179880234789955,12.038609498204025
+0.15202630766027184,0.299159978175001,23.346030337939325,7.75252874381246
+0.14967289055939853,0.29790028600357293,35.08248682042099,11.339435640838392
+0.1513869478309922,0.2995887705966414,32.67250342697791,10.90693833395386
+0.15063878081282941,0.3035930374371902,29.93444825506481,10.349385777612877
+0.15014676767589707,0.2961482182129236,25.565863251087215,8.147892838166467
+0.1506136172276517,0.29652042671332957,32.89231911077783,10.559405661526892
+0.1493411874214138,0.30424845836592534,32.10998638200302,11.073164601704741
+0.15026149835616007,0.2998615313684902,29.686096897542075,9.84723842968751
+0.14788530664316513,0.30329188570395643,30.785745136434066,10.371418256794982
+0.14982672191071314,0.29909410155548916,29.694309674915605,9.68259685752224
+0.14979205206904186,0.2952219349273094,27.89102079483739,8.816931094899674
+0.14988122289467964,0.30193178219970607,34.1414267467148,11.554714061394577
+0.15041428100174042,0.29785600964035097,29.85062026015003,9.749359283270115
+0.14951348092557393,0.30008823944488944,30.699472963389297,10.067845400238902
+0.148798951381552,0.30829100960620626,26.40367682644755,9.423260664359834
+0.15125759334784966,0.29943515908229473,33.5903250626845,11.167466707794555
+0.1512701222038634,0.30708329588977074,30.24256463807737,10.829412610324901
+0.1495307000044656,0.30397829719708774,29.489822950807962,10.1045725514041
+0.15066841025289532,0.29695713240728955,27.40569668016376,8.839676264628746
+0.14863650312369817,0.2971206018804786,37.60003178831362,12.009894913964096
+0.14994912168395083,0.2949035665484288,29.566092505345758,9.269605322077018
+0.1501239299282718,0.2973234181183464,30.437567632513332,9.843147990869134
+0.15174470159948047,0.30082063832613004,31.964140647808744,10.773579088815302
+0.15045369271665135,0.3121252863585684,32.71543494281805,12.193122725087953
+0.15039752639717224,0.30477065736191555,32.587520455245084,11.25269423201941
+0.1505843239502679,0.2962183666822753,26.54342757879293,8.502422183562903
+0.15148533011024073,0.3021135293795748,30.447642990500597,10.383878911122503
+0.15253453012826276,0.30140872777384825,30.263621641050246,10.355998225912737
+0.1511157342623842,0.29171294788151525,38.03999207764575,11.699190589592796
+0.15012497492637364,0.3015099490986685,34.14280736764534,11.507649958731188
+0.14895166798694456,0.30069771042640514,19.670146508061404,6.542967693619584
+0.15109225511910132,0.298129717508938,29.42318876661203,9.672578295908897
+0.14981569639464673,0.30035484529441336,28.459706277340196,9.450561482658166
+0.15046774156969203,0.2943845194397833,28.48458865501022,8.917651622765494
+0.14954892475350443,0.3054637054476831,26.093191368489368,9.096744705267318
+0.1507257794533966,0.30473727715204835,23.708956455117175,8.297601185788071
+0.14879578850901265,0.29586835116048654,29.004619721437365,9.13972880083094
+0.14956158414060658,0.29974854590169664,30.443303245115942,10.059193607243436
+0.14889799768585293,0.29645603372090906,32.4082385338077,10.320484632001913
+0.15110915613971898,0.3017299989441016,36.841400981492775,12.503867584439961
+0.14897358658420723,0.3002674501979019,31.95223395224903,10.541595814498384
+0.15048300023696504,0.2951591525615801,25.280578429466328,7.953956671685814
+0.14959975868456374,0.30013632345162544,34.972134039136336,11.558679552657745
+0.14890689309752544,0.304275314906415,36.064652722831916,12.33771704507854
+0.15257730337223702,0.3037993715883448,28.599341681391977,10.01018709800475
+0.15035767818156637,0.29662228611376323,36.95503552318381,11.828437343399939
+0.14826597638129074,0.3043430993971256,30.77420741210853,10.49470952567831
+0.149346502985431,0.2985283139499167,38.340665256292425,12.506746482074602
+0.150329022266965,0.28937452030780125,27.995959817436653,8.31859502633476
+0.15101444616760587,0.2892626612299043,30.28846112345243,9.091224748077453
+0.14913216195995638,0.2960866423372752,32.04618417626457,10.157515574456802
+0.15048944444077927,0.29268559100563585,25.675409207633713,7.925934427077915
+0.15017614407986668,0.2994734698167665,32.595423144432544,10.740626596641494
+0.14906802232532793,0.30249895296772555,25.627628356908936,8.663706172203243
+0.15003355207018987,0.30674113068815423,28.43869010222964,10.045585100387674
+0.14797265726093028,0.29667877436773726,31.48479175630847,9.938625383615797
+0.15044538673888136,0.29199654057999436,32.087624755244995,9.80303647242612
+0.15212284004800222,0.3011764910650829,28.60913524755909,9.76870118003036
+0.1506814416115766,0.2963780784386757,30.347677031961908,9.757595760266643
+0.14938588199652283,0.3004047564785126,33.431574198190184,11.070835679580188
+0.14790026085225924,0.29499166158223133,38.40316012965475,11.963383108722663
+0.15006553502793377,0.2949281911832335,36.11641154210594,11.321394058243344
+0.14931135374072152,0.295561465651261,42.36109300300054,13.32542693690433
+0.15129066592164142,0.29332980505176914,35.633352744486025,11.061776932156722
+0.14962919544712,0.29977986927540184,28.283971246862905,9.368260185264056
+0.15061961592272952,0.29091506276528273,34.89335369323134,10.550863371553826
+0.15145733272248194,0.3088124541446748,29.124428400866762,10.591662211999099
+0.15094449701963963,0.30103740128359463,32.81770947408988,11.129224211064512
+0.14992343187763466,0.30026072497587225,28.3614391113596,9.426048439287362
+0.1497870598406392,0.30651787249097834,36.79094643422057,13.024187746911117
+0.14805308063350386,0.2994992373242809,31.124075630318153,10.115122552843811
+0.14978308404395188,0.300395081831642,27.389701890396946,9.082213380813663
+0.14906815147161132,0.3070071817911079,30.04709274854667,10.620307362206882
+0.14883710408836526,0.301401290038396,29.899812624146985,9.972667394123079
+0.14915846868046254,0.2958630564905186,31.675917877246274,10.045075458323986
+0.15049040979075487,0.30698419256000714,33.61480174376229,11.913981172340346
+0.14892694770010514,0.30071616057673817,36.68939253723057,12.171753146094197
+0.1496353742180097,0.29803614512388776,34.781456818632584,11.306073972176133
+0.14914143789843404,0.30338587419840385,29.86134955498283,10.181335900138032
+0.15024641099436495,0.30670945650854414,27.283192717329783,9.69792447312552
+0.15133850577187158,0.2967295531413715,37.01410040592599,11.954560162880131
+0.15042857188425382,0.3043091288202729,29.78534729059886,10.28663321076271
+0.1488967774939424,0.29723769605209954,35.636896389241954,11.419506338939467
+0.15220479544906398,0.2937289405563386,31.367913470590295,9.885377988612836
+0.15127480497356902,0.29374147091170905,31.009155774909335,9.737756344955013
+0.1479974772530674,0.30929992280650825,28.600717072383997,10.293364661140561
+0.1523327486382037,0.30417379843931835,25.115747688058093,8.820320207944677
+0.14917597518136785,0.29846114543519325,30.257037513823978,9.778029120913152
+0.14783356932179464,0.30440959011465346,29.612993440725553,10.092942224343217
+0.14913382173391065,0.3022123557313745,33.9112010883691,11.469390261595231
+0.14881853316381302,0.3018136986798845,25.615835154467394,8.669264063869425
+0.15089169726058063,0.2957692040439849,30.038739590497862,9.594081713142737
+0.1514234889976493,0.2974530051373558,35.69324448731246,11.555527054364925
+0.1495459717719115,0.3030769256535009,37.02203108965668,12.619178048848001
+0.15058925893551914,0.30140935469338503,26.882144698426828,9.033792907337759
+0.15137468533266682,0.299803893360839,27.02076786310501,9.014341097544637
+0.15091713521823027,0.2998890310841218,27.793548416568687,9.227401826512631
+0.15087107764422555,0.3043910586030842,33.60653564696173,11.678819124935186
+0.15243131542025085,0.3042141245692451,28.900616679546093,10.118414254155766
+0.15084466556159776,0.3000940746543921,28.325470841013477,9.454135135329054
+0.1501407348541056,0.3020966785872883,36.32303435913135,12.27506603020689
+0.1505501720196525,0.2899148972881428,27.337257932122995,8.220290205677124
+0.14898209392216605,0.30201381199882876,32.25285007556397,10.830024542993996
+0.15270024647873315,0.29251035191076663,31.073666467727726,9.739052979835487
+0.14998672589406434,0.3101108998052885,30.01811558110647,11.041396784563018
+0.14950399985675855,0.30336400725902807,28.648787474754556,9.723013790545325
+0.149689729204885,0.29724950665597805,27.27453235364825,8.734876778752753
+0.1506629258281453,0.3026971274887935,27.283720976523224,9.282629325379165
+0.14912474889250615,0.3019784073806436,24.88072888547948,8.32979784805743
+0.14875156157401642,0.3058748319369839,25.791544284241688,8.972652172681656
+0.14962660151727522,0.3022863757625716,28.334722332817314,9.588677591072738
+0.15070669928882033,0.30122821801749716,30.14087873659318,10.14933042616492
+0.1502877496787177,0.29525073082630854,35.41897984941226,11.194779705876861
+0.14978468371311554,0.2950184088065213,31.36860357469211,9.885729930557304
+0.15162987345044118,0.2986162687679427,31.971436534943983,10.680013262035855
+0.15301633822798022,0.29714408927408636,30.263841932364272,9.945377650409728
+0.15034198317719685,0.30405282055654165,25.398337463543665,8.760132395696143
+0.15177161293600305,0.30290483738074725,29.656422453427172,10.181433951436823
+0.15089106613819966,0.29827005815560304,37.81966700177672,12.353339613987043
+0.14841135226308794,0.3031765393326314,34.96363789953589,11.832091608258624
+0.14887252264948544,0.297082831955259,29.55852917598055,9.47241069960547
+0.15034379689103194,0.3065740469804901,29.070123109073922,10.257369106062384
+0.15079027730776898,0.3021335853000164,27.381653420623376,9.322873773999271
+0.14940564771276005,0.2996730529775207,33.066519741387225,10.887290896225128
+0.15066983746576393,0.29558223512292864,29.019288808972853,9.264055554319972
+0.1499600567750619,0.30973477749179196,29.506323373072544,10.70887932460226
+0.1503202601276637,0.3030461720211249,35.63577936508666,12.194713933024705
+0.14862323220073143,0.2982667492937712,32.910393100202135,10.588843217585975
+0.14909196816101208,0.30196400409871743,31.01330165577094,10.404844125878546
+0.14900679967217573,0.30257344042923706,20.294813072419373,6.796197267001893
+0.1485380440875694,0.29426387161855,30.53123938024618,9.498981414199896
+0.15196675690973668,0.3101078086368599,28.408160354489297,10.517037683246434
+0.15155627523058182,0.3000489164144444,30.170870602979303,10.077290536980582
+0.14726885125660974,0.3058908696280905,36.183303951274866,12.519174424899905
+0.14933408194611683,0.2973125211355466,37.433870178815226,12.008406435743547
+0.14979775274752377,0.30090427961632077,30.77006433821478,10.238135865386178
+0.15012611730942602,0.2972228914720939,27.91591540875384,8.981228047441931
+0.15018285628062392,0.30406069337392644,25.90796175885795,8.968930621681409
+0.14973500771258122,0.30013641551743747,28.608409740433515,9.511448738170238
+0.14988219442179687,0.29813986804671216,30.80834002494342,10.012162533228679
+0.1490370840057152,0.3047052393835798,34.294345571090716,11.748937308215856
+0.14963712070781332,0.297016696839099,35.54266844904742,11.432182475872784
+0.15186431856882104,0.29028256338333847,30.309764620394628,9.206888729232135
+0.14982463129826584,0.30398987152804596,33.44090003597259,11.484377788573449
+0.14845266954592928,0.2958627340983931,27.637615847832812,8.650706611607154
+0.14993502324180633,0.30126651460050785,29.547666402162008,9.918545430495259
+0.14807962864546692,0.3042693043277761,24.77673490124716,8.421636838237653
+0.15027282879953618,0.29737808693217427,33.05248051464212,10.731937748268276
+0.14901807957585542,0.2925757702713154,30.75682828216575,9.39943541369618
+0.15087243723429675,0.2959424107024868,29.831273819406086,9.524129930568147
+0.15014046033668924,0.302432948207494,26.640185732164998,9.016012521254641
+0.14885864812206728,0.30312633448330234,29.73857562489604,10.035869822395506
+0.15059681177566422,0.30960401895410966,32.279361223755664,11.834440619547658
+0.14813291578259397,0.30426812521798313,27.209216986440907,9.220789342754266
+0.1485568153128137,0.2979032144356516,29.324059554392967,9.429175753916327
+0.15067446957796823,0.295856229170445,27.732695088037957,8.849384616679716
+0.15160702414839639,0.3015187996336067,21.593342129943856,7.300711729998763
+0.15058994713204388,0.2927756797552162,32.162077132612644,9.987735589093925
+0.14873705439467735,0.3026539839372458,35.31172745747046,11.929606670124983
+0.14902953079925987,0.29700294944629474,28.757445170338386,9.197191241613993
+0.15091968877220485,0.3053735432026582,29.15978584937136,10.218361528867472
+0.14970712196069655,0.30843915943519323,36.95240493456866,13.265922971327255
+0.15072733957922313,0.2999837479330044,33.74298262859775,11.237601039199639
+0.1491600190498714,0.298610299400593,26.99459233220837,8.748424345220954
+0.1506939863061937,0.3025518011416921,29.877666659767332,10.268239794325792
+0.14849125819620554,0.3026995323863267,26.13533873412915,8.797572545285648
+0.14952292197464515,0.3095596075909492,32.388370570898324,11.798416337468208
+0.14954583375856284,0.2983585540907181,27.0237797631759,8.79572714114451
+0.15030187362034728,0.30433838978893635,28.867885614025116,9.96232489625766
+0.14949825968665093,0.30231164699320223,33.26975512421812,11.28824978451811
+0.1502642177641268,0.3027893526508239,28.146794232160538,9.658656306862342
+0.14895923166618935,0.3049784907031482,30.526969888176193,10.490183256941712
+0.14932546283925127,0.2963419893725216,27.730759571512923,8.824622257900744
+0.14998465918616777,0.29791264315243166,38.10535180496843,12.337748344753736
+0.14875489231808534,0.30392801765489774,30.211649865691545,10.307524358196096
+0.150348153467411,0.30261229974128057,32.88622959890314,11.254985865938599
+0.14981595708492382,0.30172758622129936,28.41511142243779,9.512712231182556
+0.15044335986645277,0.2982564723586002,30.73053449230192,10.0283012358876
+0.15024336881588038,0.2973603434543813,30.30529195517483,9.823257611290982
+0.14992455323590728,0.29462071817856067,29.96745522658081,9.376694605613913
+0.14812418864676666,0.29601761731950565,32.098360643844984,10.073204444416678
+0.15036161232272272,0.30024369145781854,32.21882992277146,10.699882386558311
+0.14857103537032249,0.2942214424021992,27.449202968454806,8.522029309984624
+0.14884585096446337,0.30392063629151983,29.895716311745673,10.208216451960286
+0.14912394433430476,0.30164783252642624,31.146039031349854,10.474976676462283
+0.14932365104773776,0.29750616911244193,30.853822839145224,9.94811251137191
+0.15139988085649375,0.295073162304386,30.704190124030863,9.785144311155488
+0.15039008248506613,0.30127211089320866,25.300566612158345,8.524695777664553
+0.14966534011142557,0.2976921071106637,30.290255954708744,9.763517702393354
+0.15059577504215022,0.29884870896694427,34.34090574715547,11.224824741695421
+0.15025285464189597,0.29942830131697407,27.226108002711157,9.023468884985558
+0.14994708850547617,0.30455171623901117,33.150019304155705,11.464675257414799
+0.15330055767886494,0.30611201322151366,35.129580515653146,12.56430698465474
+0.14880739576623295,0.29476278324158994,30.922158433150457,9.606316687703096
+0.14895306589162713,0.29939663534078736,33.28112922235441,10.91215737867772
+0.15028537673187473,0.3078337342596627,35.47897813231867,12.780271042940335
+0.1509447348982303,0.29731044549330937,27.426891752985632,8.943121913800187
+0.14896887461921282,0.2903639641821149,34.657429529421506,10.347649280423324
+0.14910276306601247,0.30543158193845504,32.91496325367645,11.403037244665983
+0.15060319525843122,0.29952310315353126,28.592246970975108,9.452275538595543
+0.14960114559175736,0.2892881034305204,31.55285925499768,9.327744075766233
+0.15159911660125133,0.2950070275675495,35.698306443044686,11.404397661673258
+0.15242447984123036,0.3006029250367233,30.446736347530045,10.340538305235658
+0.1513084301469129,0.2939775572263108,33.38986000664089,10.451222647934177
+0.1492286331363385,0.30509165939805377,30.469659320002208,10.609410962352806
+0.14852153380958502,0.3050214553897647,31.62801695412589,10.84388859284403
+0.14961737870139738,0.2965157163127063,36.724246047974844,11.718981562802156
+0.14999110046324415,0.30728493292829323,32.435519125355796,11.537346315158524
+0.1469232929693161,0.29399451637699725,32.182460062826934,9.865611479139625
+0.15108343855845818,0.3086931307207892,31.57418923449266,11.528955966520448
+0.14745359769559274,0.29871645912394584,31.601261430331817,10.13948048161434
+0.14970476878786962,0.297329110651904,27.58232296160176,8.876185691253317
+0.1492642711522131,0.2926302904247786,33.85491615639427,10.313070366274749
+0.1481489078366517,0.29368126141700585,38.90883058894111,12.018144829836395
+0.14934342745600654,0.3030445759355111,28.861789179119462,9.85443271151325
+0.15096419878728715,0.2990910030426432,28.549644247528274,9.408940736329425
+0.14871137714627083,0.3055505117803512,28.93178579496648,9.997506313311153
+0.15055148396613305,0.2902800808065348,23.34177416263119,7.015141226801424
+0.15000893362069853,0.2934824069201333,29.031872843056913,8.961002760545547
+0.15013040772187697,0.2948758735689979,29.77865225288852,9.349297937058711
+0.1524160352073255,0.2986973643623877,25.411496063857356,8.433251546711542
+0.15029067041614602,0.3007237501737402,27.80413946434738,9.285279928677221
+0.15160777331586242,0.30220360575663807,37.1674882063486,12.718798235795665
+0.152038447288642,0.3061827356272248,25.671258491490004,9.200144551002353
+0.14953823584870787,0.30607963413378164,34.4393999348103,12.014652550049453
+0.15034527315020205,0.3069076201601502,30.750227894932635,10.902737420872954
+0.1504323631961632,0.29696062674966817,31.124520526623996,10.018933424396902
+0.1493195443388536,0.30084925945174995,29.06995817505204,9.698803702342078
+0.1507462016762587,0.30319183439382263,34.505403134299456,11.870065655436722
+0.1490080152400608,0.30745412639002795,26.3890868719593,9.32154494823567
+0.1495930779134718,0.302062597397883,28.92073078233601,9.723328452061082
+0.14941133567726372,0.2939023213677018,30.604931881401594,9.488872332567002
+0.15102151266921807,0.300836335403934,30.865387784401953,10.459236799647849
+0.1487095495495878,0.2962513271433802,27.94392385655112,8.808188750760094
+0.15023971137371867,0.301163308319806,31.757558800755664,10.712986545844743
+0.15048635240777133,0.3091139883897978,36.94566250587359,13.443753633325288
+0.1503046142553627,0.2934773838938724,33.64845978722138,10.440033438144964
+0.1512951202233895,0.2987181154982495,35.011466607983316,11.561351513198527
+0.15100649558463833,0.30370272247345015,30.3044819410838,10.484357142372676
+0.1505790031776242,0.2977288169794257,32.48497090798989,10.587070515995716
+0.1511995826287247,0.29660193145074815,26.34262373231169,8.513807548247184
+0.15057093031595906,0.2969920015961771,36.62267984408259,11.785942265429927
+0.14968158255729935,0.2987610910688213,30.21409605935066,9.87743861070166
+0.1507582654334865,0.3027903677876011,29.35298059861528,10.030972813450225
+0.15022685844945027,0.3008796443526829,36.00150132031319,12.037497286543624
+0.15062802667419714,0.31089551469947113,24.713236624311087,9.148040505417445
+0.14915131680787616,0.29422801550490524,19.408480699302324,5.993968332279883
+0.15117107415359618,0.2995500763167286,28.225624364149905,9.37402784293218
+0.15154416983979377,0.30728288680973365,34.57509051440547,12.496657060864353
+0.14866226809838162,0.30086775918766157,35.26580574387141,11.70235511886849
+0.15151657904897364,0.30775151621743285,33.279428111892784,12.000753645224346
+0.1498128827417418,0.3011562646597917,24.990045981895925,8.379208843208337
+0.15034509626771062,0.3021302155302349,26.751801976867654,9.095482246385776
+0.14874601373770033,0.300528504168351,26.902131119136204,8.873465044124405
+0.14814879999931446,0.29458936451879797,33.03189535820808,10.26528110748503
+0.14903229147880506,0.30446836811935,26.35097149976043,9.069695703512181
+0.15149259237704565,0.29231044777260984,35.05965975369023,10.846072737567685
+0.15149310243302821,0.30193402450360457,31.43474148545587,10.727561003312559
+0.14790794834103327,0.29422730342373843,29.793708479415788,9.136541233214635
+0.1471510527780385,0.3026114176970686,30.588164609235005,10.275061268783974
+0.15076252268580473,0.2934613245921129,30.256816897290648,9.456358512408219
+0.14890941766519045,0.2947633991788063,30.180937106877998,9.434297691180287
+0.1493459971247042,0.3022908055527914,26.120339822331765,8.78154598261759
+0.15021086795303792,0.29687267571778,28.214777098615173,9.102268591786169
+0.15057817007333987,0.3069888195108598,30.132820205448635,10.768021314980604
+0.15097230917064985,0.2919172131577889,32.80014727701795,10.143262373847682
+0.1510606526077132,0.3044791908004799,28.24578103165277,9.87006755985953
+0.1518832609600934,0.3085446387794113,27.744338608138992,10.11339753628359
+0.14987221480297153,0.30148195303224884,36.03079506961075,12.072921311250052
+0.15132169728605316,0.3025769760856489,28.48878720513068,9.764239648108243
+0.15043460822903207,0.2962315478372809,32.01215207841719,10.194678845073382
+0.15121890413756106,0.2957711340091951,27.73626828771082,8.867996430313138
+0.1495610507621615,0.3010700403202734,29.230307444660692,9.765653961140352
+0.1506859961139968,0.29228985090453735,33.71425011489931,10.394119968716463
+0.1476688031822984,0.300185348629255,30.632505233474877,10.005269327168074
+0.15179730683341242,0.2997641320567405,31.442999698576955,10.53843118945548
+0.14989521770670144,0.2963688187174632,32.92310390812726,10.523198563250023
+0.14999509465965177,0.29287343066557275,34.338768947623954,10.712257019059956
+0.15103744040105455,0.2928559452246967,31.64622324311485,9.78560986176677
+0.15184867032793947,0.29636692609705095,34.58076507587146,11.142639462669226
+0.14992433155587293,0.29730671161399885,31.603342708692868,10.205036051537007
+0.14933033412651492,0.3020121420519806,30.972995535955352,10.451764713300546
+0.1502991273556835,0.29991525562219445,26.803375739250075,8.882596026842238
+0.15059780679529378,0.2943915075617714,29.41196634973738,9.27039415320671
+0.15004697010001242,0.30482192788745854,33.4214678489096,11.63875343973865
+0.1510431269123195,0.3004793461188385,34.70771847579585,11.656824794516526
+0.14772461052238522,0.3023568072861861,33.3103272234157,11.123439000791167
+0.15043008108249503,0.3001295202598569,34.03912496374996,11.234817701816562
+0.14985959336157248,0.2962931671856666,28.154755686664384,8.950468074589018
+0.1507742601229193,0.30845392455592824,25.835804576564307,9.336681200473839
+0.14938313517539226,0.29575539720999566,33.05414518037676,10.489563610332752
+0.14947015525848073,0.29845079245173367,26.330301438933127,8.533428700185981
+0.150774806898448,0.29019833587605326,27.443901903085067,8.27354223247691
+0.1494669749644858,0.3029944896216185,28.430325825833865,9.668443390928937
+0.15118076921442858,0.2987656972855362,27.329464778021244,8.966596705953567
+0.14816867561362324,0.29823129475185384,28.94173004822847,9.322726607983055
+0.15070944583997414,0.30027256256443285,33.941978316136215,11.36853286714588
+0.1484134321573814,0.29232311463446836,30.50202846146171,9.274639341579933
+0.1515086211812547,0.308248374587825,29.775253852747127,10.698355376065066
+0.14971496295241773,0.3026732726909654,37.457763647637904,12.672436691571253
+0.1471304997197766,0.29896410888104147,31.716784322696583,10.101004963425526
+0.14977170923700583,0.2965580583527487,32.695891231616784,10.461885876620938
+0.14992922621184415,0.29864043957917885,30.75367318813268,10.149722727131676
+0.1510957775434675,0.3029882287535858,34.83765705970965,11.978883179374785
+0.15044803665897313,0.29611475172949303,28.291481472269794,8.982107661702308
+0.15067351682279603,0.3066201561519702,26.24525377321423,9.343680343891819
+0.14931070169633295,0.2999911029107765,25.315530572857025,8.327186572942342
+0.15059988950140266,0.2960924993396853,36.00550186517108,11.59136418689494
+0.14788637305403607,0.29564551285727136,34.378470356035066,10.74696323672083
+0.1498810075932557,0.3018473184633435,30.789453751795364,10.427651637042832
+0.1501154019045179,0.29977754810307744,24.938045196976105,8.211883065426845
+0.15068880462259532,0.2992580110375749,28.668489134145617,9.499049334530719
+0.151220005324676,0.2983966424086536,31.07440513697433,10.237310359130918
+0.14927715273671294,0.29086555780458323,29.873202109632647,8.974239740296051
+0.15009968108229363,0.3014850004917324,31.132930379354395,10.433359763661288
+0.15236208927424358,0.29349281842811364,27.54446476247883,8.65215263159151
+0.15049607626813713,0.2934455806171751,31.400564826551953,9.717559003334333
+0.14901844191821087,0.2907298570758176,27.941982095762178,8.39152707653335
+0.1492003437242695,0.30371493911770786,31.263435945358722,10.69239139052768
+0.15094926899408365,0.300980036507261,28.332863353038434,9.555820720839751
+0.15194627306986813,0.3000830175470388,29.59353119612059,10.023241702596954
+0.15089000041168668,0.3045939547671543,31.34401394448892,10.916105412678291
+0.15068162323786294,0.3020121453664716,26.275435971732783,8.948663920870983
+0.1500711029013748,0.29888015910811444,30.69281283995926,10.15271152537821
+0.14948754930045327,0.2938563061474292,29.325267226266764,9.026333686119075
+0.15054754876346574,0.29953768821541915,32.41712957483046,10.77082335700364
+0.14881953089447714,0.3008640465547994,31.53767786571031,10.473319993468483
+0.14999149768807246,0.3018055328613127,24.226290790323986,8.212888943403158
+0.1519213682818353,0.2957139933369865,29.674938028852104,9.48321722263086
+0.14819904468267045,0.30103407688267597,28.175320713172912,9.330949298704128
+0.14932424326465504,0.31240380774565585,19.613020707406456,7.3022173414286655
+0.15057313555797566,0.29126837005250705,32.971681387271985,10.028646554044508
+0.15103374958032303,0.2927180664468213,28.677380459247473,8.851312830356253
+0.14976544763567418,0.30379067520573644,32.19911807871424,10.970022366899382
+0.15108440236489834,0.29814359722246536,29.67576196224293,9.653463618006931
+0.15137181643451889,0.29965713584620485,35.81270265070755,11.910630034991147
+0.15019279577820796,0.2987734815228041,31.567437287195744,10.36565623150825
+0.15045964610925727,0.29460080339939854,29.316874894091594,9.21150970568529
+0.14924145461496635,0.2981768509320001,31.88105576862833,10.342949016028339
+0.15041407556195457,0.2904569958685075,26.268544063632447,7.887997275079579
+0.1492020088427761,0.30226647862670486,30.69778356108123,10.326627318715483
+0.15002326884940428,0.2986838608789926,30.763844859144136,10.033108128473808
+0.15151918391890365,0.30010107480420906,30.955906982671898,10.415449738174305
+0.15035301088470232,0.2965467071410002,35.646003145994555,11.396635648245196
+0.15065487139220515,0.295506106004831,33.051450754638495,10.538313490778059
+0.1502669285542142,0.29888736458630016,31.818577966717747,10.433809351236025
+0.14976653035508358,0.2968343215505765,29.833310953527413,9.556100135913958
+0.1511991229082891,0.30395582144024,33.52930692603067,11.713886132768485
+0.1510369791760681,0.29685055435152147,28.4981228139477,9.178791649541965
+0.14910296596590117,0.2996417013002109,31.578908334443998,10.328219516503372
+0.149528155854134,0.29909337679672554,33.78649739925598,11.102375894597317
+0.14878991791885998,0.29940949485763535,33.797924396901465,10.998126904283982
+0.14926764714811191,0.29983045438090256,32.43006695134997,10.699485746638668
+0.15088681737170662,0.2945029197329137,32.78573928813811,10.315829837334435
+0.14998418830527643,0.302355294791954,28.713218117383413,9.804992915095479
+0.15041074739287738,0.29914360894122627,35.47461208391715,11.607229654750878
+0.149888408771864,0.302836978069785,32.06760975882903,10.887587376684353
+0.14777977560744437,0.2940614551567987,33.92299258054551,10.42685167902315
+0.15055446945947182,0.30768670156344313,23.490979967770624,8.472447015845093
+0.148263509366539,0.29779323493162446,39.035926800091424,12.500774796539984
+0.15086074638623673,0.29621976094924074,28.648313712092243,9.154688188735916
+0.1492925575657649,0.29093658701161246,34.34329099826759,10.323630980736443
+0.14887218395584953,0.30726702229429986,30.58472318644466,10.821063887743318
+0.1510446501368456,0.29224341972526424,33.10438980987141,10.181711438547364
+0.1507400168091013,0.29317815755345716,37.240253616840384,11.523783137010437
+0.15121593800070457,0.30263478468534516,33.63169092637875,11.584530842944561
+0.15117766065255528,0.2976016974457809,31.907158883094947,10.389993180195345
+0.15089574769031902,0.30320318299689847,28.080754215930416,9.65655400737332
+0.15050589037748854,0.3010436753737675,27.99207784014738,9.401914974327115
+0.1520065549257504,0.2988261388884181,34.98933285226727,11.626504975910443
+0.14914959610075376,0.3075858053886476,27.06004976656196,9.614366676097507
+0.1504780599276882,0.29409591887933456,30.821441368246404,9.580612312652418
+0.14980065178164695,0.2965829234196055,33.304331535933144,10.659862424334516
+0.15026182888229653,0.2969626703271358,24.36593755615013,7.861151151410196
+0.14740622536256273,0.30482724143420115,30.8320652222042,10.485218519736595
+0.15004107553082352,0.3037232118263087,31.170806612494992,10.751511218277209
+0.14830044816336907,0.30895526598090534,30.2705608784917,10.860898357156753
+0.15270958549914032,0.2975787699172909,27.455770949429485,9.034566536232912
+0.15106391815551964,0.30341811349685305,31.6331790302197,11.024792988011173
+0.15167386187382995,0.3018258188667581,27.534662536379514,9.448623066105016
+0.1496977540300201,0.30028777197343387,33.74322952656242,11.136740462617162
+0.148701041833549,0.2932289880059655,28.78973272752735,8.854022058610695
+0.14912428104951425,0.3122610152444428,35.39079321192779,13.127925284304178
+0.15033960842865823,0.3029784684336279,28.478844429894536,9.699320876638332
+0.1502161383326461,0.3038731963508528,31.71721101355701,10.89028989067416
+0.14968673120767084,0.2982943734778103,28.44655006217986,9.221234957623127
+0.1530863015986719,0.29903575931841825,35.19079765665449,11.80766352423933
+0.15067607426364735,0.2985207959393135,36.751093305390455,12.072579881625707
+0.14956758124860062,0.3035390712094153,31.819180584663457,10.878812522467957
+0.14947137930874885,0.3024709591986557,26.934387911937634,9.129269128070385
+0.15024181998807667,0.300408770363316,28.81232073821449,9.59159629507517
+0.14918652519283482,0.30074110267546805,33.742301219295534,11.178718430858224
+0.15018888583554643,0.29880777561645266,26.33521557937092,8.637022518048255
+0.14918119003122648,0.2949886745954398,30.349600067280985,9.484178868991917
+0.1500609424969694,0.29945640496878273,32.586820472698605,10.769049424132366
+0.1507930456705503,0.2977578023900573,37.97660672598229,12.408063745495358
+0.1499483875710816,0.3015060352583475,34.70208597655041,11.65744568329264
+0.15002510311239348,0.30598378984462055,26.575215710798958,9.294056691560405
+0.15058553243646697,0.29674539347061435,31.19757417957157,10.019551262858315
+0.14860707857955005,0.3074614676208342,30.35356963236896,10.741797504629394
+0.15063485854581035,0.2958916958603231,31.16232944031297,9.943465958093533
+0.15023543687792787,0.2977655817475944,30.2976514566363,9.810146855391272
+0.14733343495181112,0.3007964467767419,30.42955020754591,9.985837229051368
+0.14862878363405777,0.2974833489865996,33.13930559382762,10.634163067096425
+0.15254406574655036,0.2911122291381535,33.55764185385508,10.368089386492462
+0.14788914002739084,0.2968503290340743,26.916352958850005,8.484270381797899
+0.14893006043991475,0.30296924288550475,26.876907629745954,9.095578164788611
+0.14954490295484538,0.28938656920399924,33.357076720602294,9.865071894993102
+0.14927245458388458,0.30887779257831766,31.24155308539835,11.23364547146142
+0.15031638908735806,0.3019413241719382,37.395881000548094,12.657532820776128
+0.1505363462699479,0.2997831065109857,31.98692920684378,10.613077583981081
+0.14757181606651643,0.290578507966435,27.960739075481015,8.244341919000489
+0.14907816749669353,0.2975942128445508,33.27186659506231,10.662485086242034
+0.1503166101807711,0.2932889649159534,30.312760941182482,9.409491659704175
+0.14991646260878996,0.30199124815161443,24.64443744467545,8.32963856404686
+0.15042780594455243,0.303355031939687,36.49088220965446,12.64427782225258
+0.15035458569994473,0.2979835566289129,28.379381134625913,9.212661785966164
+0.15029183964603152,0.30278520157295025,34.24909377638521,11.657630489943035
+0.1488816458110228,0.29899077477230523,31.30461239076017,10.169906491465271
+0.14947736822905427,0.29890919497037377,30.819045278213853,10.093633072002945
+0.1495774472714237,0.2932235282394989,34.985618140693866,10.8663189491922
+0.1502093669834713,0.29745861278691543,29.534961774571208,9.589313249245327
+0.150288884708207,0.29947931535727773,28.91600978582943,9.552694433632679
+0.15001109404790114,0.29832858786679806,32.34203887139163,10.54768853588139
+0.1499275881703455,0.30369984731247784,33.355445254633224,11.44559014574646
+0.1513014283331823,0.2999003881029739,28.75475568127949,9.604974847741019
+0.15060958081846865,0.302111568381731,26.86255351249752,9.120166063391329
+0.14913580783721297,0.2966410934007188,31.356425182097237,10.000698578913134
+0.15123594992738035,0.3029999655506147,34.07614779142296,11.690871048085878
+0.14980419441133716,0.29861985740736313,21.65418110160892,7.064653320354372
+0.14755325684455525,0.29577129135351,31.45560802140075,9.827939088298221
+0.15111200084379992,0.300375275430702,27.05759584451394,9.034597729719238
+0.1503672167472082,0.2993168419837496,27.347544059747865,8.946689591520146
+0.1508797987486247,0.2979985140837423,32.06983708343784,10.478289775242146
+0.14995192817629743,0.3013063131257225,37.73383129226039,12.62558671033307
+0.15051167272389304,0.3060378456987253,26.850201674371398,9.417138479994184
+0.14916640621633792,0.29443221355127186,25.432660645925623,7.974422911438147
+0.14839627634881533,0.2993851880613422,31.06103690755286,10.09232340700511
+0.1505187950544749,0.29928413615784355,29.329808338819102,9.667827121752978
+0.1500336105632486,0.30091377533319713,27.526275162872775,9.19412672915242
+0.14998065575639447,0.303902857790533,25.864135841626535,8.931738313954337
+0.15080109470597072,0.2936403269697337,28.629353068901278,8.926897165344975
+0.1489656387429419,0.3037636393567041,28.771783541266856,9.83967347268145
+0.15232530060664726,0.29903331404514233,28.405855264011635,9.519114586680374
+0.14747276128914413,0.3013777354963375,28.956363811635274,9.580493355681625
+0.1493956953299319,0.30106346805155215,37.40349273714969,12.478300315646056
+0.15174041100787,0.2965009731225903,28.712680987431202,9.265596090069748
+0.14937580314256566,0.3000786633078995,27.8185524525386,9.183714396705252
+0.14902703275600226,0.2999401035064703,34.583929263271564,11.388814495241258
+0.151190233430722,0.3030337509472216,33.61057203177463,11.57407203703368
+0.15159802254517157,0.29762008463623274,32.12843088682959,10.512306451877096
+0.14948650520637904,0.3015657010973747,22.75852252412735,7.682099955334691
+0.1496642365530021,0.3062310731433325,31.117341917312427,10.955113383448342
+0.14893460894165575,0.3040635550213462,28.326104799733514,9.680153389838946
+0.14981368956256017,0.29634706966985264,24.515147232835627,7.786792643612841
+0.14837738591834368,0.3025612668295916,28.2041636522841,9.478565880134783
+0.15058507328943255,0.307767172018818,24.026217257158677,8.634950671301269
+0.15071512161665104,0.2974263079378452,24.120250712282466,7.838928033439598
+0.14986745802251702,0.3017673577509257,30.98884997428999,10.403769980576635
+0.15061419178847887,0.3024523962816918,26.010232885198878,8.887554610748081
+0.15076773708787708,0.30177464425281686,31.42341309373993,10.64327820582826
+0.15077198551307922,0.29535256317577085,29.1405112687025,9.316532115621941
+0.1509171891624966,0.3015552153980775,26.637589469515056,9.069028802168285
+0.15025449929797186,0.3027407799030195,40.90901754176369,14.007678158247998
+0.15133899708750123,0.29731909805997886,22.917810875216013,7.47403302710069
+0.15096592039757228,0.2977481951673454,32.12315843276999,10.451092681124747
+0.1501180132460969,0.3042766688516099,31.75417422762076,11.037991497898384
+0.14951245686781525,0.2947501304710391,38.55733969260438,12.185092683137514
+0.15120327633638617,0.30676173139415336,30.02003359626483,10.743516196501087
+0.14842085694901078,0.3023849564197311,34.184970207572704,11.425962110772922
+0.15156945357188584,0.3018084210773706,35.91328806842829,12.291936187626469
+0.14834020547374457,0.2901269982497304,28.802247484511142,8.55069405087363
+0.14979524218870371,0.29786927065667135,28.656686992844932,9.367135983224506
+0.15045868672132423,0.3049435641177502,33.05307129489781,11.480228336407132
+0.1483942329696348,0.29962957421272235,27.26291740266668,8.933976901590235
+0.1491995057834843,0.30710004597732055,27.83361017691259,9.84249380735658
+0.1484485181204472,0.30454111321959804,21.516988974191953,7.325137234735966
+0.14976585224782815,0.2983773673446415,33.78232967925452,11.003285398330037
+0.15109298644400412,0.2978244126301829,28.12407870160748,9.128148339936741
+0.14925901981686115,0.29954782840251426,30.865478522725645,10.127005451739775
+0.15001861381841472,0.3036047515518665,30.2535749106866,10.350989183524003
+0.1509664425290446,0.29965141764442393,27.038615442670476,8.96087818049083
+0.14883004450813458,0.30052277040826314,29.33661606299958,9.685695245902734
+0.14856572494398707,0.29976026924651344,35.37448013951501,11.531540048230147
+0.14876709526083517,0.2985619195066997,34.403528065249866,11.160824306219265
+0.1519374995494205,0.3018883468886618,33.2753532354352,11.343168375683367
+0.1506559243433495,0.2977189104939703,37.183921138987365,12.102308015548106
+0.1495068789546399,0.30139826185093505,26.493090639649804,8.81646838131137
+0.14799889156802182,0.298398125735086,34.373375761707294,11.094654528647894
+0.1488554167531753,0.29565195627176066,34.50759284980067,10.861420592122949
+0.15104901291048523,0.30356906946381806,32.86819628867165,11.370904189985886
+0.15030188127232255,0.2977156218739811,36.97153014847191,11.956853369813441
+0.15067934514853276,0.3052041412930608,29.97295514367326,10.51916310380066
+0.15089506253561888,0.299085612373873,30.222565735219636,9.903578595845705
+0.15015417916661541,0.3060428252301413,30.648040413980187,10.789680114805424
+0.14930833628841975,0.2972488491427643,39.31956537560325,12.60460982014103
+0.1500939954835521,0.30206108904455536,29.846907404132438,10.053253326378725
+0.15064559389868318,0.29444978264230093,32.012410829257455,10.12335512275027
+0.14903369309058892,0.2886664472374679,41.86523974514648,12.281069557358745
+0.14940455414047613,0.29425767885210363,29.076064703523944,9.03887866809193
+0.1478846709131926,0.30134157394046684,28.205762233193845,9.369917606315253
+0.15078310154914792,0.30419282285707216,26.974500802757333,9.48534854077749
+0.15012739922854448,0.2996634272667118,29.043598931937762,9.61506608427027
+0.1506704927168307,0.3040273447535611,28.03333102471922,9.720804495472434
+0.14840646908447533,0.2984653977788898,30.19440904560796,9.743713135484583
+0.15076792476451653,0.295841427108785,30.02747214294451,9.63423754014812
+0.14996191496353556,0.30302343913316443,24.42479866778968,8.367892156172406
+0.15059303334359786,0.29708669256218473,24.36637794798471,7.837883664130253
+0.14932176288251797,0.3025862569044024,36.120460693202155,12.21717668732971
+0.15114377690224862,0.3012623097260764,27.568088705529593,9.350293008089363
+0.15139868708209775,0.2994404511999676,30.89046308499769,10.286731279281053
+0.1494914905381328,0.3043462488197178,29.528923992427814,10.17291709717721
+0.1513631835619302,0.3019751716445081,24.913257849395073,8.520317197516897
+0.15086352814518159,0.29735696824386887,32.89385798250291,10.703261951038595
+0.15294431894325225,0.29600077419338156,33.390329698404095,10.819937433259417
+0.14961938826186996,0.2969337656316086,41.60391331355774,13.315599426170293
+0.14958780325107568,0.29800700049364104,30.980564829307696,10.02136954992727
+0.14868556251864165,0.3004343505308605,31.65574551417104,10.449871879558987
+0.15045138409166842,0.30652681260511305,35.768878124634426,12.654930207986212
+0.14924784639126135,0.29400071279425644,32.096217002234866,9.959733116217834
+0.14993371021225804,0.2965532742826185,26.087130161882097,8.316644750798135
+0.15029780316677474,0.3046031214138099,27.3274974525436,9.486191133972929
+0.1516064765431956,0.30179270681234455,31.35472126219318,10.651689604359023
+0.1493558758743699,0.29519051417565834,29.779535788589367,9.343204622779442
+0.1525703625926854,0.29464016300082174,28.656690363781134,9.097111280629534
+0.1507865219169648,0.2927518727426689,34.30725392565914,10.643567221950576
+0.14990576108632325,0.3071638497860718,26.041991870711463,9.231525643353597
+0.1509701340730554,0.2938017014450783,35.41327471286722,11.097048199129084
+0.15206275718509027,0.29930325960030907,35.86589770793475,11.967911233976473
+0.14964386284521097,0.2976650411628569,34.36410563481566,11.117661464227005
+0.14925922414411005,0.2930284250877264,26.751762769801708,8.234830670249135
+0.14883913559172476,0.3009645329309352,32.37105692462787,10.702426208202489
+0.15043752215647896,0.30231484850584117,26.66005812989897,9.116584825704194
+0.1514478640689323,0.2980819265059424,36.07398971181157,11.877759085742284
+0.1512851063130228,0.30178835926275227,29.647354059508793,10.097067526523238
+0.15079868309713954,0.29740237673305037,33.40995542454431,10.805866502171604
+0.149662560010074,0.303604675733528,31.472608944103026,10.807342948217384
+0.1506762125088467,0.3084932692702251,27.918431751073662,10.071743543247528
+0.14782419543131053,0.3023506050850495,29.416612881734483,9.83877681503561
+0.15046478619120485,0.3093496541516581,29.329825945799783,10.635884604419395
+0.15179271441217693,0.2944958468580398,27.934052544840014,8.8858209178518
+0.1512002232089866,0.29653521642643194,21.743940783814363,7.027605920072059
+0.15060844664235318,0.29678401277819083,31.766620468926046,10.272843202269941
+0.15002726569425265,0.29745531038049206,36.47376895388054,11.805868828564899
+0.15075242929204055,0.3009343270203643,27.287057800111853,9.183440144516883
+0.1484453650861081,0.29952744388358765,33.187870844583664,10.865601683529729
+0.14837304071291316,0.30100993971986384,35.844345203333894,11.83045083568649
+0.15050618145951317,0.3028850322225646,29.673298259012007,10.118391419431811
+0.15029785875999183,0.2919472473495795,34.65804212105855,10.604291367652767
+0.14859128207774175,0.30028356250509647,33.43570092258685,11.053662464597139
+0.14926490565642783,0.2974614497826881,25.290674934968514,8.182411078925668
+0.1496825134901875,0.2948095576809765,32.81299060401424,10.31009479789265
+0.15044226228066837,0.2948654006972061,37.668118785536265,11.845821014235648
+0.15268540998779342,0.29937374411697865,25.994114804085385,8.712242335019372
+0.14858861216720107,0.2974894023640524,34.10702758813251,10.887277339937047
+0.1518635466679473,0.2985271903941027,22.196781680856997,7.344883204310118
+0.1497536947134575,0.2977046877583109,29.64126564582211,9.613096844422211
+0.14943785354981234,0.29922856753485255,37.90341403591808,12.433923761296008
+0.1503166713622611,0.3043172520426554,32.3661963461317,11.22711146933555
+0.15078710919310742,0.29803933531631943,32.89411509820583,10.75817903701078
+0.1498462257059411,0.29394545414788037,30.038123804429713,9.344910297943104
+0.15178025321190733,0.308059464988682,32.43842613683945,11.83780291767408
+0.15055498074624993,0.3053690614243249,29.332671122638228,10.332356053415863
+0.15203580092835575,0.30181203010056945,27.684861842136456,9.45385105101417
+0.1500111399875533,0.3030077959156818,30.69067834317036,10.524794548047643
+0.14833781205159577,0.2982966216177999,30.118904273312506,9.68933762676507
+0.1486827549305727,0.2932752637565865,31.31827242655602,9.559841210339005
+0.15048801567206602,0.29367949397890286,34.3714149449578,10.726497578548218
+0.15046997850298868,0.30627115418879364,27.522331244808488,9.716677422029955
+0.14893705952775874,0.30038848810185376,35.41807228497105,11.687757313918095
+0.1499727911597267,0.2996889919954292,35.124151199939675,11.558593794917503
+0.14786225504452571,0.2982375441204221,33.0052503134442,10.589025058666365
+0.15131376222526624,0.30782145879767614,32.540813110276446,11.77523395213765
+0.1516430037873756,0.30207987821487986,34.355402329339775,11.801933386505732
+0.15098007242011552,0.2950849413479891,37.10516579401164,11.737719622488587
+0.1520703797749854,0.3068270463276858,28.573921898456106,10.267344854871046
+0.1490084767659443,0.30737616761521047,34.973224952217485,12.477947950400424
+0.15109793939918886,0.30346697154674557,32.814825817867614,11.334765195332846
+0.14916932882595496,0.2997578491015143,28.529918067730033,9.373951982067886
+0.14925465247216566,0.3035437011678686,36.69045648801905,12.568504926337088
+0.1504007251539926,0.2989149812474215,25.712485991295193,8.46577011459349
+0.15067367911590415,0.29543544976639347,28.221997741590023,8.970829407892522
+0.15006186380694703,0.30103741318622407,26.4439171865534,8.884665515140524
+0.150458602512474,0.29992379409443903,33.0149161054601,10.928122526682312
+0.15009318332513552,0.29334759620661766,29.40316717877247,9.074141647034734
+0.14998094998334777,0.2955356905084732,30.22436574789431,9.54524479612075
+0.1499024226887319,0.2977483730160399,34.28606258304423,11.199252723038182
+0.1493339392474207,0.3017042399087699,29.319380880418514,9.856125544718987
+0.15011265282128067,0.307712054359878,24.472678539547932,8.793160469341734
+0.14962079392127406,0.30312604831730633,28.760271493442033,9.74783063503945
+0.15160264526390219,0.3012357717896196,27.978854793827313,9.510738147642947
+0.1517835729905002,0.298901463237264,26.73451378914395,8.869973544846678
+0.14977907206909624,0.3053728171437475,38.44583677625377,13.414837709503171
+0.15172958607107817,0.30462397517290885,26.182559924621252,9.183515735388715
+0.1503056474595276,0.29308744377324986,36.150191051617696,11.193363634599772
+0.15165046027251256,0.300568271870888,25.734348685190028,8.673804420637332
+0.15058360625962472,0.29752395064539633,33.74599534665227,10.954061194688098
+0.1502136465338399,0.30841594778004905,33.72834938912091,12.203067222864608
+0.1494447310905674,0.3056617103739779,31.625896638837926,10.970614976179696
+0.14901669566095727,0.304278539486677,32.805176798947464,11.356159813747162
+0.14974510920245884,0.3100525679538434,28.12351864954404,10.257872138623558
+0.14989477410624058,0.30222117173486174,28.902852589409303,9.771566899608903
+0.1519380124932902,0.3035371492351673,28.511645846344607,9.869875560889344
+0.15049135121630877,0.30576780341006576,31.573171032310363,11.092190708611657
+0.15000121538841918,0.29248220379363565,26.283968993226676,8.073477080514785
+0.15113143245379496,0.3035866006018007,35.758922943198996,12.385039268493864
+0.14920379009815882,0.2905500488537573,29.186761964271646,8.785607625015592
+0.1505182316508701,0.30561366309689536,25.11715409477581,8.824960381218203
+0.1504111246086181,0.28971564963212043,27.679152679067904,8.264833318180205
+0.1517653126627752,0.2990648616856187,30.563759062048867,10.134209820184717
+0.14711830500830458,0.3039216677131862,29.981307104015904,10.192592991135728
+0.15244821527059224,0.29720624366247356,32.393755277079755,10.654645420316823
+0.15091815716259357,0.29830882485821547,30.568265096482754,9.986659616437745
+0.15135654444640625,0.3022739113468509,29.200623919011,9.977744266470019
+0.14936179389544246,0.30043635162215615,32.427402959303734,10.737224011721548
+0.1501135977559615,0.29614124177416307,33.69551125834044,10.779407787037705
+0.15057437908678659,0.2999563796725782,32.20108130724556,10.720940691730906
+0.15195396274157577,0.3051676508483932,30.892294460746903,10.856726738714121
+0.15316698469541248,0.3031570121557386,32.08647816226913,11.179681328403003
+0.14840413681230077,0.2956900063397883,30.7564095160484,9.617808642340874
+0.14853336583848084,0.3052431719288173,30.51018098137511,10.554134686279033
+0.14978978969625084,0.29950798528816946,25.73759698252809,8.504128867005564
+0.14989138689466233,0.3027347162337493,28.46159515168385,9.6936173045858
+0.14962773750211597,0.294796012753617,25.570170623840113,7.990075517146106
+0.1490959310679919,0.30089989286114743,25.078544952577296,8.308677378198935
+0.15061688127928843,0.3023311170584441,34.63977259626869,11.797043221415642
+0.1506412473412563,0.29999769371254753,35.45640751649038,11.763116077335656
+0.14984560888327514,0.30427414212978976,33.51611710598689,11.513729534654649
+0.15147885917332754,0.30397189796552815,29.34167875338313,10.15776889327649
+0.14952841605327724,0.2968051561276766,31.974405378603798,10.246467333401519
+0.14897975528899043,0.30578039816342417,32.614761068198796,11.342460854128117
+0.1516189178307404,0.3009002899142972,27.387357219553113,9.282891850732574
+0.14991349958260705,0.30642640211005423,31.5038713133312,11.083777150565602
+0.14968809381274562,0.2992576409896357,31.233932754255008,10.28397362046969
+0.14784261107828545,0.30021726221830675,27.28281039231393,8.975500453473808
+0.1498179143072107,0.2966764701044324,31.610927524030114,10.151748757277831
+0.15041559694197038,0.29916741041488054,35.648235754394065,11.76219640264478
+0.15114842004101242,0.30175178675148095,34.61477001145648,11.71393474579716
+0.14992963441145607,0.29819348781943456,28.058300601571993,9.132709725246523
+0.14970269873044656,0.302012804456584,31.376996189138346,10.627310990173388
+0.15103445365916993,0.3011267857925183,28.557473458909094,9.615854342746147
+0.14983286659984904,0.30147985245893505,24.254769547203054,8.166707099317279
+0.15105151504097133,0.2962741915788476,29.024659474320103,9.337742948891357
+0.15174644657474176,0.2982332536215918,32.169106398154184,10.576570702629374
+0.14758083770801989,0.2963723147685643,32.48533962386824,10.193326606874107
+0.15124963628039348,0.3034722324881955,32.67851288298868,11.31839403176165
+0.15059599455666153,0.30187845357756543,32.61667355037423,11.082360697911204
+0.15068931058393414,0.30636598448309904,29.883576778470292,10.5489199236166
+0.15034562597514187,0.30454874421088474,27.064811468697886,9.34741607295157
+0.15013435694275057,0.2977993546068196,33.17177305553215,10.71729113585237
+0.15231048765051944,0.30632905742261296,32.15670847463518,11.48366107794676
+0.15013561033314135,0.2953382592876757,34.88124663083172,11.032722809752773
+0.14954007543665873,0.2987652378741349,24.00627042876532,7.799959333470975
+0.1491219530689186,0.2962949125552235,29.297952156464824,9.314092067683916
+0.14938251031483513,0.30120122632563157,26.107009995782256,8.722244745913583
+0.1495295716595131,0.2990552595936066,28.911798711898488,9.442975991645431
+0.15084112580545736,0.2986681601618449,35.545953544669985,11.753604523942538
+0.15251595841701968,0.3052407358803844,27.278573451843773,9.673833139157749
+0.149258620959451,0.2975906340906592,36.51840344715672,11.762365549776417
+0.15072158376348704,0.3011072141923236,31.080905568967722,10.477529867939111
+0.14966491138160476,0.3033288096755311,22.87802387103197,7.819043528537824
+0.14955245835078781,0.2987905709795551,33.73499384214836,11.023106231668152
+0.14786897400232282,0.3000781133651611,22.92650773745782,7.519749886552095
+0.15057948027630677,0.30803837943829565,29.043048867379408,10.485087231740868
+0.15086523042852037,0.2926523689319778,32.20186634868834,10.032616894970294
+0.15099745740073592,0.3056137345617117,32.34825754516426,11.466172644604573
+0.15002548999890755,0.29797201753311814,29.84987594837209,9.67257754144264
+0.1498995407954346,0.3081939909701393,26.442551898606954,9.492682467877826
+0.14918714578329784,0.2998108385743562,37.09315909413145,12.265553327747655
+0.14975588351327826,0.3039525526331161,29.310812464385826,10.135825425630223
+0.1490657005296821,0.29414362922187326,32.03094092785737,9.94541569389565
+0.15023042569571937,0.30387449924746973,33.3742555004203,11.439189492275565
+0.1495943388088155,0.2947419019308138,33.82153258378142,10.584963155492646
+0.1490807275341675,0.29660932303501464,33.68689130913752,10.688403096270378
+0.1477470430339939,0.29314722802700044,28.827097280086587,8.764213099371382
+0.1504130822123104,0.29994732367885496,36.510029240594065,12.118068141369603
+0.15052669742688332,0.3067723426558577,35.07565167992693,12.414967279986215
+0.15089941984932592,0.30071577212644535,35.110212811776854,11.7184538687149
+0.15061005798919339,0.3023926764435178,28.84140182531002,9.83534219739323
+0.14940956736778638,0.30574335945493997,26.490032852842322,9.267008088411059
+0.15305457869656253,0.30543488340556807,23.780304427831624,8.491670954493214
+0.14998693807024996,0.2988567673227526,32.727043669982855,10.722515241454591
+0.14900611277349946,0.31140915520781925,28.122281723961933,10.361782091553442
+0.14830231140898287,0.3024337623969262,29.00748558998098,9.7306341100213
+0.1509743586931614,0.3031434588054985,30.012083825849274,10.26935429417903
+0.14754947250299014,0.3039426890423583,31.17306250102355,10.546845169452272
+0.14905553122380977,0.29853867348906155,29.562281976840552,9.59859880331741
+0.15226789875201893,0.30510106470968784,30.05668817841987,10.682286375729477
+0.15043913988422614,0.2975169977271814,37.16012280920702,12.042169444367296
+0.15210190438374066,0.29735276786859505,31.782311777782265,10.43422561072627
+0.14945104843600143,0.30052868636457475,33.20622713581717,11.05218520053436
+0.14843056757411224,0.29635574874613363,36.21697138908513,11.535312524339854
+0.15228936479768446,0.29762026567665545,31.514266564677893,10.404642694959948
+0.1490486339479674,0.29537651179645424,35.04635822501938,11.012229323098925
+0.14891396774968568,0.2979667193486029,27.810476315827668,8.93655263359963
+0.14995241474544962,0.29056922452948275,30.07825326155587,9.029857178054897
+0.14961210847164694,0.29551559381699316,32.701847765933096,10.333342134113154
+0.1494078496561292,0.3034747107222194,29.521094197012797,10.080924548093238
+0.1513561996536015,0.304487450402533,27.23849028229049,9.51214173740032
+0.15030256602132055,0.29160478811027457,32.12973866307207,9.78809063765503
+0.1519451866855394,0.3025884024411119,24.753422376902037,8.534614711835841
+0.14984265593643567,0.2989964182460706,35.158661478401356,11.521506826632164
+0.14871622503097046,0.3010293237406419,24.97010013693717,8.307663321972719
+0.14987765194375208,0.3013977537463907,25.917529274620087,8.702603774682617
+0.14930997294470263,0.3100266650186661,30.974907085746427,11.213006263540422
+0.15193451096617464,0.2972551190725762,30.805847402842232,10.078103698950489
+0.14995383698964435,0.2977347862416087,27.295020347744554,8.845510856834007
+0.15115454307489748,0.3059078355377124,35.34122831120001,12.410137345021255
+0.14897212700025705,0.29917425285254395,31.20605508722129,10.21244988552118
+0.1505905944832905,0.30321193138253116,26.088206368038435,9.007940066265393
+0.15089134821943764,0.2995488236399267,31.70561433315827,10.519349789135736
+0.15024343199249532,0.2963381457137584,33.3425478542958,10.618379556387588
+0.15082491025335795,0.2997803381553344,33.53938382104793,11.102324162725868
+0.1502447814794903,0.29544657452389633,33.426058722942805,10.603599032267855
+0.15101602308826914,0.3006422059371935,30.265343936345197,10.169090248052852
+0.15083676344899152,0.2979844083093604,22.8038691623805,7.429778636201351
+0.14938027506107074,0.30749558610018224,34.263783101755976,12.233317627149912
+0.1501226453030666,0.2988524964950044,39.16820591318921,12.792168433106848
+0.1481255803919269,0.296817633017544,23.466404253924694,7.431987096698485
+0.14952660596477851,0.30287918111546064,28.512354293644684,9.733570577178368
+0.14951195086926022,0.3009515154556572,26.00158434823065,8.68371213925973
+0.14911658052828103,0.29885415100845014,32.62153665828278,10.643167264142406
+0.1524121528611297,0.29812224263979437,36.307984716040416,12.064975498203285
+0.1490226130797118,0.30053282724023306,24.195760062833237,7.965568330510173
+0.14998994459969056,0.29493641665694126,29.25616035486067,9.213952849185521
+0.15081610602905168,0.29853924749116695,28.10247848217867,9.202412706131799
+0.15210339271192266,0.30574175045272844,29.454865174630257,10.441639388133552
+0.15090286867020183,0.29947437272485483,32.457623503790764,10.794158832709602
+0.1512236528389253,0.3006095676750337,31.234683201982673,10.504287476498773
+0.14987316219003224,0.2994848902947294,28.830359197392017,9.485381132329348
+0.1494375886475715,0.29164037344391397,31.769971936508668,9.595961030051873
+0.15006652015649422,0.3022988211320481,32.237238930721105,10.91002601805552
+0.15019961866380072,0.3042564408909161,32.68928116098304,11.312482208803827
+0.14716259830276776,0.2982304260744898,33.50653062020291,10.701389055216678
+0.1489370737937158,0.29430041205836976,31.742641050978904,9.878417901800866
+0.1510591852055156,0.30053563549955614,32.314009817925935,10.815930560172609
+0.1500683996864978,0.29319048078649584,25.747266111945915,7.955372701493358
+0.1527351091031644,0.3011973730775738,25.599758837292306,8.701822751705699
+0.14847541765062802,0.2977367874232298,28.392836081200187,9.042832674475374
+0.15103121812304204,0.30125709714974247,27.674250699279497,9.359124456855472
+0.15020930345774838,0.29536177654193313,31.493506610090346,9.985869477952585
+0.14878010848653755,0.3020758740794454,30.469929937362124,10.27736919971336
+0.15015387740268826,0.2990193500874404,31.716325851296496,10.43924965236406
+0.1517159429551546,0.29800062017413753,29.270218851364454,9.584808663739084
+0.1492346238589625,0.3016926611834917,33.46886705843642,11.271266256764422
+0.14838644787747177,0.29839857780008394,36.90683034835058,11.883387600713034
+0.14693957152142495,0.2972634795177829,31.85528718981324,10.106821184323744
+0.14933658254798657,0.29801684951741825,32.79728936807681,10.561361707779355
+0.1492980088942162,0.2947797023444563,30.382262409702765,9.506621347202737
+0.1518251009931771,0.29856166720568506,33.54815058142583,11.078488495290063
+0.15040270525503105,0.2963788839947866,27.614640908625493,8.88218884939443
+0.14961445042414867,0.29464386660592556,29.938352374244822,9.38364209148678
+0.14778180649538492,0.30426672549711586,36.84025826069673,12.584813559446197
+0.14980708082466976,0.3007079069978591,26.252597252246296,8.696058367554393
+0.15274009527219806,0.29999704885990014,33.96727977191954,11.467948083594058
+0.14783977157912478,0.29830624203298106,27.636716968120528,8.870691007422955
+0.1489908891394261,0.3000118769843524,37.84579296793654,12.385013070531814
+0.1518887726862126,0.30501399595746015,32.36591354593466,11.351776981518608
+0.15083728138559363,0.29635252022640823,28.74158917654963,9.197663615606723
+0.14995335072451974,0.29637324071318355,31.68519841956116,10.130306854602999
+0.14993709507753533,0.3037310139209619,37.49994697570696,12.848582257181244
+0.1496377096318426,0.29602110694728667,30.42776691501946,9.710816946620291
+0.1499653198160402,0.2935947245941898,27.351594626547936,8.478986883760882
+0.15032523743454446,0.2981972409625269,35.104035725524916,11.441815417290368
+0.1493399411215471,0.30047033080057445,30.880549926522377,10.227859310193463
+0.14904533706235404,0.3053246237107596,38.817137466357366,13.403397896317326
+0.14869221475507743,0.2987795225241276,30.11741034496078,9.771682317190635
+0.15164199201300382,0.29370244890514924,32.05757070250891,10.055400771438196
+0.14986838720373896,0.3055103733476672,31.491852333594146,10.997081006484967
+0.14966268042376135,0.30154870020743796,32.73708023177034,10.99178327152146
+0.150839487116341,0.29426569444436373,33.44941663331996,10.474217827431886
+0.14810958341244596,0.29845045129940084,31.649616444697596,10.133592060622028
+0.15026941732361762,0.3003411317221501,30.19572926848951,10.021011000695832
+0.15128912127141886,0.29512482110944976,32.3364019911512,10.327089511597165
+0.14923094988843985,0.2993964432909584,26.139239247869998,8.553340611866796
+0.15108863520372692,0.30380747318905627,34.15411764873236,11.889175659331901
+0.15046900596186674,0.3002769642122158,26.198219159765195,8.707152253984102
+0.14847904392165065,0.29470341491446755,31.16174561453548,9.663021863281708
+0.14933903033014262,0.29331610605785424,29.912519291486976,9.194048523394503
+0.15014635738296211,0.2986267144105876,33.009806899845785,10.749820773810367
+0.14926219576422167,0.2991287988370639,27.929898696449698,9.105389174960711
+0.15096232595354986,0.29840640013220276,27.782995112474808,9.148721243105586
+0.15089407912224595,0.29643947435892637,33.958793029606475,10.951831320787717
+0.15139743383288354,0.29676849774214664,32.87733729590383,10.600394325841869
+0.15039077530192352,0.3022892770052792,31.75503987368839,10.779433638871273
+0.14833167063277777,0.29799967019331997,30.631219284891884,9.79974429232994
+0.14886988799974363,0.29968794473882676,35.529083250796646,11.653881356555667
+0.15035230292395393,0.3005821008350977,25.807946187569538,8.689659371445895
+0.15103130484957158,0.2972166618776366,32.0424363608141,10.462623554480091
+0.1484086589860006,0.29844322472835266,33.12803176772427,10.714730325404517
+0.14992245489410874,0.3054023845737445,28.41836447799476,9.895467055983302
+0.14921457724707535,0.2981549205933556,36.76981125047101,11.947194938973292
+0.1487459644599827,0.3030774994877274,26.507618907835738,9.01073109209503
+0.15184982184315324,0.29951190342510253,30.989753800222807,10.366041550774131
+0.1491219136369299,0.291150129295906,38.201999009881966,11.44459886626592
+0.1489544269308193,0.29770653855804136,31.614882415551243,10.125848202879423
+0.15060473123291554,0.2955567662703229,27.81338650034433,8.834854128392067
+0.14936622070804226,0.30565199493672607,30.370794019464746,10.58451785453938
+0.14950628919376313,0.30257710159273543,31.243471278006112,10.611550863184362
+0.14902621766942925,0.29814445313841725,31.09250653049076,10.0634718130787
+0.15146902838990248,0.307951564376593,27.50025977459792,9.931061762408214
+0.15110142272108204,0.30700486794300114,32.06683596307355,11.5741838280249
+0.1515002520709796,0.3032457344287544,36.47759185482699,12.60762154814187
+0.14990644566615946,0.29505767765984187,36.31849042634872,11.45548021190611
+0.15126437388424174,0.3006426006255089,30.95830401748985,10.361369140602264
+0.14856448509382764,0.3023734458839488,24.08396550094241,8.104159511238723
+0.14963467037663988,0.3031807102868111,28.225801476612354,9.670323526919002
+0.15060049721480442,0.30093070793819493,31.492500215498875,10.60098227694071
+0.1512573581542411,0.3041905410073968,29.533604643262905,10.198890557708493
+0.14895422253849394,0.3005169534465003,26.39145255138857,8.681659908628605
+0.14868303557816728,0.3044207469398809,21.848444485717636,7.482759210652104
+0.15089161126319037,0.29586469552301553,32.72457907514438,10.461582193388043
+0.14886507893298825,0.3065206271755803,30.79396386783072,10.774713125245556
+0.15141815657822552,0.2972479456435866,35.639278034834916,11.586746533026202
+0.14927464752957295,0.31163986579615754,25.604549714788323,9.462206945936085
+0.14992581275306963,0.301735924218969,29.335315132442123,9.878306035613424
+0.14939381212662842,0.3000809316233396,36.56674448168843,12.056639512166953
+0.14965191596873734,0.306598500231194,29.625736046083055,10.4630865485185
+0.15013855252018993,0.29374708021665413,34.34137996784177,10.672567598415654
+0.1495905686683194,0.2985619476393674,30.174658880378633,9.829925211106545
+0.14912681335220787,0.29623939308566305,30.284526184817942,9.588267975791927
+0.1502215779341742,0.29150075779298934,37.95121920946127,11.54219236415367
+0.14877067014602763,0.29397198118439627,38.4984019568799,11.949104276397877
+0.15069946841390192,0.30377028003851303,29.602983332278356,10.26588731374153
+0.15002775746741706,0.3060098225389147,32.19458696765707,11.299655729550311
+0.1498389212075861,0.30005143805133544,36.54225154588567,12.081632911313623
+0.1484778092124284,0.3052412132486323,31.51168683605781,10.8973028468805
+0.15061642915702497,0.2937732891367114,36.010277314450086,11.205584057188343
+0.15011628595152215,0.30000993973604134,32.721538327348604,10.822664685939005
+0.15089612167471125,0.30148958753311533,33.780540052020754,11.36103239692745
+0.1497913438746319,0.3020479774812572,37.365943309407044,12.57495678966826
+0.14763957798961055,0.3037769157238261,31.022819642257968,10.502445512938955
+0.14858497983219726,0.29504706442459816,33.65458454776302,10.466324293657898
+0.15068090017356048,0.3002314756160755,35.639545385998126,11.897474091856733
+0.14950458667762778,0.30159308410360397,29.81615605575868,10.028295097258457
+0.15062268938817033,0.29978859148400344,32.01317139886879,10.621052442642569
+0.14849882374732837,0.3031603120177008,29.176934501070992,9.894852809154793
+0.14882818364846326,0.29613832806253826,33.44694234128975,10.616104821289754
+0.1502231044193082,0.294041608680571,39.047636608674765,12.176846653549289
+0.14988806726302834,0.29898821800746217,33.432973110694896,10.954949023725364
+0.15123725164636534,0.30325317546144176,35.43255406710468,12.269003391027587
+0.15137645316363108,0.29576612395478674,30.057553920143526,9.591851729689292
+0.14866128109377624,0.29218335626311315,35.337503665731454,10.74562509102911
+0.1507114449932803,0.29796117097869496,26.42457098351239,8.591653272747486
+0.1474751062146439,0.29683322434024006,32.21729166515678,10.229360651866937
+0.14997323284514189,0.29400548519494085,31.028625387628402,9.700390726942683
+0.1496900175302749,0.3059097007702383,25.21440896633716,8.862649067593082
+0.15017558018779706,0.29672910386518175,32.49455659297476,10.448426544499789
+0.15010804254471166,0.3035593522606751,32.036439888198494,11.045251876298195
+0.15100636584165858,0.29482553698695163,32.118853941286936,10.126401354981654
+0.14807374672102622,0.2924985405397616,30.185351133406126,9.15536108464795
+0.15155937152560933,0.3055164957380218,34.49286277661478,12.190846196722582
+0.14949480600293408,0.295669898909957,30.234182398405217,9.565293384184526
+0.14970491101308225,0.30953116803028285,29.90160110287066,10.852929024672601
+0.1495553403826854,0.3081594853830914,23.939082842244474,8.537768869033577
+0.15114208210183006,0.2992021767245965,33.32716343155302,11.027983060576592
+0.15021687902110062,0.29914359396486145,35.206971175349565,11.526536443542952
+0.15117053191602267,0.3012979610811482,31.367845135534385,10.536431975917193
+0.14988736546992903,0.29926186450782244,31.34656310779805,10.25782416838898
+0.14649013485454598,0.3013520839329527,32.252266088385184,10.581122894291868
+0.1505025665002184,0.3036716701663051,27.796798384631874,9.578633070356108
+0.14852356873650588,0.29683324015738977,25.4189173721337,8.103860066353349
+0.14987759599057784,0.29320326318849127,29.293377047461902,9.05406081776733
+0.15156213376389835,0.3007078379397594,31.18197955028341,10.548439045177062
+0.14812026260256936,0.2972989773059099,33.32751342322278,10.629660553386117
+0.14957647395751075,0.3078099645478263,30.53110293600416,10.926504896738393
+0.1491706990790362,0.30131938423650034,29.074257130672173,9.7328546074034
+0.15056427884327897,0.2969813627242164,25.69424451876189,8.282885423700213
+0.15103247254229404,0.30311041883575657,21.52341976644704,7.431996904371315
+0.14927094757420395,0.29946277169431956,28.555406857833354,9.381069537972484
+0.14978823689411042,0.2982154115695771,36.672749889455574,11.950371968594675
+0.14882592083702945,0.2890596463264531,28.49853231643561,8.386617002939099
+0.1469139289569334,0.30228321835315514,35.371956160619945,11.707798672037525
+0.15014680145066303,0.30181286844138033,27.81434385899134,9.30380644506705
+0.15126085250718646,0.30791897108575067,25.07524547959044,9.065262679269331
+0.14962382841485092,0.2924279977495159,35.03461019738396,10.70976407959776
+0.14828431111980422,0.3002062755141525,28.713589005365495,9.42451393368351
+0.15154922464304812,0.29355448917322297,28.90779943327512,9.07426243887716
+0.1491352785279899,0.30537508642016997,32.8076154896629,11.383593178716817
+0.1487577784668054,0.3002962270250212,29.590969142651733,9.762971240751618
+0.14855671379267388,0.30156423999261867,27.237000034239536,9.127677675447506
+0.15093144785180032,0.2974273809606362,37.219462991783516,11.991494404483154
+0.14885365520571447,0.29885742185938263,29.785140220443882,9.635829567754453
+0.15162965916562124,0.29819363444319597,35.13605439097562,11.55869255437926
+0.14959633481128848,0.29879115705651127,25.873800023799177,8.496709424425736
+0.150020769255686,0.3043194544985938,27.770478594257206,9.610388269535086
+0.14988460676762314,0.2955340599732605,28.84515848258835,9.15175178967659
+0.15000606723801962,0.29469639947946585,24.49700624565225,7.70524253458591
+0.14860461440326472,0.29969782181655985,31.034573252956804,10.131024433302773
+0.15244963838098305,0.30104934808696066,24.914063455184852,8.49840954027161
+0.15027882146888796,0.2937660751602545,26.819496364758518,8.335939011279795
+0.1505674899764466,0.29656207185701045,31.426817636998646,10.083588621581784
+0.15009570710893236,0.3022823633068904,30.92747933841131,10.500239182011153
+0.1503885711639228,0.30772156410027257,28.822604416482218,10.355608214824244
+0.14974219536266675,0.3008762457514425,27.304992269733024,9.084429876112695
+0.14966899392227298,0.2948042227391801,28.341662354602718,8.883020569044762
+0.148605592982625,0.3034936095122714,29.416909398230867,9.980348202350386
+0.15021097777014877,0.30200072136860806,24.616772124749247,8.354562823138645
+0.14842656025365275,0.29445189621797996,27.543132947150276,8.546997006004013
+0.14911755670143723,0.306095437314028,30.303504635363012,10.6675484166124
+0.14791265811654392,0.3023076646444922,25.878255384075434,8.639450750076977
+0.14843212950915002,0.30375563866357086,30.716405215350697,10.455832808594332
+0.15200961928341977,0.299753157006115,31.614102237277113,10.572900659191344
+0.14909050479336555,0.30564899632021036,30.19679529761848,10.572990130119898
+0.148868496129533,0.29835826267750243,24.4515186845967,7.924400539911656
+0.15030580026594378,0.29534900463460656,29.610269965703953,9.427924206573984
+0.14921836472101915,0.3009452047293238,26.349960950912504,8.810483734495609
+0.14968926734555765,0.296241047815268,30.007982663559044,9.556363654695378
+0.1507675672646331,0.305739838324496,26.087109861740526,9.23240860842218
+0.14879517708972972,0.30215990188289066,33.89536819761618,11.338513123383844
+0.1478123407284101,0.2986666247494249,31.157151975644734,9.996265534920148
+0.14902906441344843,0.30230729837306397,24.93539816040477,8.400421843680864
+0.14867776414829853,0.305537011681018,35.11607927788973,12.229601663604871
+0.1494305258332063,0.3038172513523241,30.686047954754752,10.46959547300332
+0.1500489521181132,0.29309649847663083,36.02437948722979,11.096177340253437
+0.15069499728781496,0.2975194168080365,34.06136306494189,11.088937843998927
+0.15260229966347652,0.2932659732715001,32.06200167721216,10.115223038065627
+0.1494073366504768,0.30010300073828977,31.92246502589612,10.488934967213895
+0.15046802303305096,0.2957556079607044,27.49009460457592,8.730630336992428
+0.15291166070287115,0.3018946002929562,31.025346248016735,10.684114737087299
+0.1487076269774488,0.30197105801465624,28.41661696865332,9.532123119876324
+0.15251140053023307,0.29896383036992064,36.53441081824461,12.211228961754339
+0.1505109802268618,0.3014625728942782,32.16237895032973,10.888616588372015
+0.15103285834230312,0.3085536322060762,30.10173690564958,10.931819168505093
+0.149872408085312,0.30592679312053184,30.73041855354044,10.786819045874195
+0.1486821656801985,0.2986732180789458,30.989747686818134,10.073815924299225
+0.14786341740220535,0.3057606593504986,25.297296004136385,8.752806122965623
+0.15010489847325237,0.30242935563788886,32.276113177663234,10.999279466724218
+0.15101937104139346,0.30998376300743374,30.762215837296022,11.308582839646334
+0.1514161551848098,0.2984641278064703,28.818678438862893,9.470514568809133
+0.1490441905931958,0.29399622172168965,30.02618967268817,9.363011767234834
+0.14992942209828453,0.3005407941295903,27.650130122110852,9.198475270565162
+0.14982641688975623,0.29926684017169075,28.53317574233274,9.38569993666657
+0.14938570996097728,0.30335754294917483,33.1658968873097,11.325253222121354
+0.1496986001106675,0.29876540120595557,31.946254741325387,10.405253979064065
+0.1510276693606119,0.30320067088147923,28.35142953491283,9.787071471758606
+0.14919412508629618,0.3064032409435371,25.57273352570982,8.9696252943287
+0.1514789325020476,0.3048511662372515,25.909448997960006,9.105933974383907
+0.14948320292410688,0.30405204432844607,31.444143108423614,10.806822513968285
+0.14917813842391844,0.3066944636520636,35.44527349372798,12.568174839744394
+0.15065447271772733,0.30095319680736204,35.61615156234291,11.949281050445403
+0.1509673692587444,0.3049763224754768,32.999572831790516,11.571716625466292
+0.15008105665036223,0.30767540421063566,30.532122628791257,10.86679405709687
+0.14950938635409844,0.3013159557709386,24.03010542228435,8.033029617135888
+0.1504280170475523,0.3054477867349794,32.791526180370354,11.543137661972022
+0.14846126574152557,0.30068176593343465,28.459584686747796,9.437499830042292
+0.14796115172561078,0.3060840434692183,33.22074033220536,11.540629524830095
+0.14927911160036905,0.30433498869533826,26.85910965664198,9.286526933584817
+0.14893758757364656,0.3007390208786864,28.88869795792514,9.566180099200295
+0.1498978140577355,0.29314893918999024,29.61133148985972,9.127002101645992
+0.1494991657653962,0.2998303341650729,37.070026824191366,12.162348961792834
+0.1497298030300417,0.29811390807737426,27.713647863995853,8.967268042247913
+0.15114875998113123,0.2951321865081292,34.552410663435005,10.97135547546592
+0.15011639886326394,0.29931793188114253,24.674893975387693,8.1162810059456
+0.14874739517590924,0.2948674686452789,28.564048156218657,8.9634082365805
+0.14892853518896398,0.30300184038134126,35.13920256997946,11.95816264791777
+0.14995186508107547,0.2990244752499473,27.830330174561624,9.099283939777116
+0.15055823824223144,0.29969659415613065,33.77558379220329,11.19402052982699
+0.15002547432505042,0.299179712092461,33.204984778386084,10.85470617974718
+0.14832491355571084,0.3017527099461995,32.285458726157394,10.717559094643153
+0.14888729273097226,0.2941482233899941,31.668249000893802,9.75661622298298
+0.15046155190714058,0.2969145138623272,34.278932047079195,11.065813329989794
+0.14984338438844044,0.3030931962534722,32.52048570586843,11.057153563413248
+0.15194084337824185,0.2936991883652056,33.73633464063362,10.624582759149352
+0.15030523384615338,0.3073522583315362,29.58745860079518,10.60983888785151
+0.14826844346969115,0.2965634923448856,23.895162157121856,7.539000408928343
+0.15044771428359907,0.2994932699996416,31.138022924827947,10.265472109781472
+0.14950073878519377,0.3037071343394339,29.775158248223182,10.226149932946829
+0.1498650540106989,0.3017214697642521,33.92631414440393,11.408168536660014
+0.15060510396706925,0.30286649490633294,29.697552224609584,10.14875535539261
+0.14974310972177488,0.2973391312475893,29.237291905865217,9.390918464265924
+0.15122710057409924,0.3013683183886862,28.58132087145672,9.708695459343533
+0.14998038752543294,0.3035197230196378,32.24938997319818,11.075161954623502
+0.14971608015807278,0.30786780218757165,27.84515991949288,9.95060866505608
+0.15055483112434073,0.2952670041451316,31.736832503507127,10.086214909825037
+0.14769071170798742,0.3013162858511099,26.360012075567358,8.697920656874363
+0.14967265886417971,0.2958008051133539,27.48757647487058,8.649877369662464
+0.15148116098535558,0.29715005413424694,33.0205612247871,10.763216301265501
+0.14993637692746628,0.2944501856022593,28.577597267214173,8.95317492650386
+0.1511591822634846,0.3021444058375381,19.609850881116017,6.7212373384969055
+0.14794990366114247,0.3068826406935906,26.57370089822467,9.208509265466269
+0.1498875463838598,0.2956339845170752,29.353800816263114,9.268648469953742
+0.15122947388717894,0.29544324089669083,30.260363626659654,9.718999382323489
+0.15007859674063448,0.29730291071566906,30.976807516305186,9.975143215207684
+0.1508372170410046,0.2979035237474478,31.63107983094313,10.326686683884137
+0.14904740744149753,0.3001619614392624,32.57757914938888,10.716182806874896
+0.1506968695964704,0.28854515889279375,38.522575537015655,11.416516356525829
+0.14932437615884464,0.2996993110612438,27.330179051935307,9.006158857078347
+0.14927923718545064,0.2968329209620745,30.926440389741217,9.87135831780085
+0.1491396266977126,0.29353194988779197,29.72106199162324,9.178845335096277
+0.14934728796948946,0.309092548201297,26.80931298653697,9.717745065070183
+0.14969938107063713,0.3028992053230298,30.41170592392228,10.323579803430782
+0.1498826432031402,0.2985682804511687,29.587491079447,9.644701620347591
+0.151256129955294,0.3007136015387298,36.55179100017127,12.265833913689864
+0.15001181907100905,0.30459417815705575,28.912490131791476,10.02323230289265
+0.15109474699836734,0.30153197141701155,31.584732333269304,10.648805715524588
+0.15002024388613014,0.3060945110114892,25.550090936111527,8.959324901047399
+0.15038421787366277,0.29709146268545134,25.778867013029085,8.312071016390878
+0.15045920784005531,0.2941411551371066,36.427805865021355,11.442820136205759
+0.1504351085506781,0.29409858889697266,33.570220666851256,10.495867587133915
+0.14902706325450654,0.2980172301977332,22.404495018472524,7.246662419349878
+0.1482527766003429,0.30146189528456896,29.898305700059208,9.93431134739947
+0.149999797531062,0.30307436003164573,22.798970535690508,7.726056121080916
+0.15124368910527586,0.30123161594910747,32.69657604438874,11.06045288896375
+0.1502745824536864,0.2979965487107304,26.26211345448015,8.53669948166061
+0.1505955163417204,0.2982619356796979,34.39253880018118,11.202222560451322
+0.15059516148042215,0.3038771232965374,32.28236446810889,11.1908469549184
+0.1498899795384696,0.30822770541865674,34.27793721375125,12.236335921961881
+0.14896247563429846,0.3002682096134269,33.6427313884217,11.127101209586062
+0.15057349782362117,0.2922365923993413,31.858723252552018,9.799332288432197
+0.1521089256759632,0.3069751040483736,26.02604629770635,9.35376542139134
+0.14942300973009875,0.297234025769301,23.415427883202966,7.522962176458976
+0.14946274757057035,0.3017132692781655,29.68535584084162,9.942103570670639
+0.15056916894651493,0.29302228250183204,35.32113814565237,10.898960416331898
+0.14899579085771153,0.29726477112674016,35.45882200404859,11.363986468486127
+0.14986150334751416,0.29180390594953287,31.52343109272824,9.5705680395365
+0.14998292721091064,0.2985628475334373,28.51509364942571,9.351971178910725
+0.14876815600871804,0.30506312056612966,29.466665333994563,10.185953484560681
+0.14964944807373565,0.3022722755294284,33.16263659215154,11.226011352997277
+0.1512921159373944,0.29535846788993214,30.06815055747296,9.602795884714594
+0.15187630307645697,0.3015169389957715,31.94542920178098,10.870037405547558
+0.1509599433121367,0.3011392665231418,30.227826321337766,10.201964446539751
+0.15052120581687453,0.29940413235900315,34.01705651531714,11.264588917245652
+0.1491275748581561,0.2970646868662652,34.53329131647802,11.03305497698238
+0.149652155885294,0.2984228180821763,32.24609969709865,10.533444488250435
+0.14949172491288537,0.30836578794425906,28.235043072115317,10.159140684505122
+0.14690290791864186,0.29136639672083164,29.609733739907085,8.81396746911685
+0.14840514958231685,0.3004488920467771,33.71761010167078,11.11770427388945
+0.14967548612963147,0.2973380126093687,32.27470807579881,10.371030659863461
+0.14987255052138454,0.3015071507167964,27.365056492858542,9.243647503061803
+0.15011960678607203,0.28881497945177254,27.72722165477243,8.191092806841556
+0.1505898572207173,0.3035992634212374,32.65592974637135,11.280744803662618
+0.15199182463909536,0.29465506219971543,37.01846630073175,11.806011112123304
+0.1483525434846565,0.3006264238034318,28.411390722906408,9.327075833968134
+0.14798962999791496,0.2961073973690325,36.1075661430053,11.316368417556644
+0.14851294074294602,0.2984148203204947,25.196911216071076,8.14843027794436
+0.1513202806740523,0.29121455303698157,27.54499236402919,8.385082370490027
+0.1495748675694851,0.2966968031071554,35.38861268785101,11.249389408325996
+0.14868618543404513,0.29625593972376163,32.52465608807319,10.31711154506508
+0.14867940241876484,0.3076733966169209,31.89972393001516,11.26506508090484
+0.15017544974554442,0.30781992405258357,34.532357987073,12.345496380838124
+0.14981906307612894,0.30214278472501,30.36734813883662,10.271257449003341
+0.14760633901480427,0.3001461509069223,29.705354723879527,9.730450725031693
+0.14991595492919102,0.2984052133027884,22.427461878447083,7.307213111049208
+0.15010364658656386,0.3015330608394626,31.832306388667234,10.75728775168154
+0.1476998762419366,0.293772038417253,30.550795535732,9.361262345552683
+0.1486356102969105,0.30276629959023127,32.17717569626349,10.841495529713212
+0.14964491775920513,0.3002376168819587,31.28315866690355,10.376928720821732
+0.14926433552645604,0.3023194191650926,33.090143048768326,11.133046524923657
+0.1497521060262597,0.2941748923516563,27.96302277648373,8.740771357122512
+0.15120206245477083,0.30220826858172767,23.99406961041793,8.12774375281102
+0.14866790266649954,0.2988816971524031,30.769108737873843,9.995779732767193
+0.15231090146045898,0.29421598495503576,36.21682517152425,11.486969271914324
+0.14956779101831866,0.30862051458776796,26.139623152724027,9.427331824533974
+0.1492680766680745,0.3065317319035186,31.507877767630795,11.10954905887245
+0.14896887176694149,0.29302274547240686,33.69573056662001,10.341027787639755
+0.1511570837003466,0.29952074461906925,27.162764924980713,9.028781243713098
+0.1508905222394315,0.2961684539788763,27.56747246567262,8.774106155860837
+0.14796351253080037,0.30151527311916415,29.522034221927957,9.85020258077898
+0.14820822036322653,0.2868816488208629,34.58546502056767,9.902384850909206
+0.15222254485441236,0.31008248588673043,32.08049521414072,11.885854769059055
+0.15002169940636137,0.2945027630642081,33.29377887592012,10.423822805812815
+0.15014865392200202,0.3020486003536902,29.711005022138472,10.083106970587208
+0.14926341877387186,0.2990890939695514,32.78645723759185,10.712630306388725
+0.1490156054607856,0.3008200888649332,27.961460928249576,9.305435281767753
+0.1489283710622661,0.29770155569290213,28.509867777757176,9.168609427570857
+0.15015529736543312,0.29592997443162194,30.57710552590698,9.7420756713131
+0.1488157895998444,0.30776752330328366,36.95199305763871,13.110432855027154
+0.15092684368917436,0.2979349750075548,35.71631287917044,11.624905530896106
+0.15082540122171076,0.2953110015697303,30.921035004907782,9.826204515182667
+0.1501814956988744,0.28784192941841136,29.42492537768089,8.60960935109231
+0.15047271379792218,0.30392230182354457,27.718182222924813,9.655522186024093
+0.15128469168228462,0.2940610883994778,29.054043918428704,9.093265362778238
+0.15033152485418397,0.3038678096316422,24.6445722417661,8.510817685444275
+0.15094813757780276,0.29978069094392923,28.57645512630378,9.551089840464389
+0.15137927599462123,0.3006707879206192,34.89066079846014,11.812133544266292
+0.14807366948395467,0.30355125490979756,31.379793245948637,10.584699116476834
+0.15067075681151818,0.29297064293248604,30.380266171695954,9.411579424854203
+0.14948720685628894,0.3098718363150751,29.872096010906986,10.907423162323004
+0.14934755165682476,0.29950827930477886,33.3551817166329,10.908534079688636
+0.14824409966298438,0.2957396952193832,33.38886648899569,10.468072166486525
+0.1483305253735885,0.2950766640650365,38.631078228392724,11.990444235736213
+0.15020574851441773,0.2994192280628607,35.344757765811664,11.564145269414938
+0.15047681196108184,0.30454978544058325,24.48356829819246,8.493503962300439
+0.14863078088004653,0.29658923949796323,31.34907519206892,9.899472250135085
+0.147939721699655,0.3014808580777932,37.023111600233,12.287026710050018
+0.15081052979099716,0.2974786543879697,31.641295920104696,10.24502030274979
+0.14993771103059056,0.28739279798332773,35.56041645881522,10.358016638779802
+0.14886757148588764,0.3006925033333732,30.76630212519725,10.171674620081209
+0.1501138058850867,0.2940744641510798,29.194309623577865,9.128353272118193
+0.14985358185001596,0.3024551126315369,33.624244377061224,11.389727761955088
+0.1507371133981216,0.2975673031922062,26.448427832412758,8.55233417306252
+0.15032891026685283,0.3022787731880768,23.144514195900737,7.854529723853721
+0.14977211827336934,0.29771671191772703,31.12865088874681,10.090009677310386
+0.14965740472387368,0.2927722726652706,22.150066629782675,6.814084356479826
+0.1513260416002775,0.30252088867811594,29.623413782500187,10.193554364799468
+0.14797847044639953,0.30303949984859885,29.086409210280863,9.854205117721301
+0.15052056091013863,0.30014102729013825,32.42018905583195,10.79442110666853
+0.15114570990299359,0.29653936201104264,34.35984769301421,11.025948946665153
+0.15134160937052382,0.294199459129098,30.240090612220293,9.503677861179177
+0.1497750102349008,0.29882731986890065,32.18207479457769,10.525098283160602
+0.1510526287680108,0.309492087178215,32.32948174342018,11.818541553816054
+0.15023897583540516,0.3000358089088164,33.27946674866395,11.011641346647675
+0.14857436423288853,0.29659238763368156,34.63923904778641,10.976324209576884
+0.15005115613934308,0.29205086926061957,31.43249048926533,9.610103267584302
+0.1499750718392601,0.299276700664247,27.921044747177067,9.208595116815196
+0.1502054853552482,0.3039582367855805,29.98705769961588,10.346851800856971
+0.15099084691820877,0.30487951451208856,31.261619789794064,10.91944775312138
+0.15039945461587736,0.30613664669714774,29.802916474717023,10.513813163399892
+0.15050088557815675,0.2997002517860517,33.33776757747649,11.101550889116968
+0.14645586796458512,0.3025991410715975,26.810149515506108,8.902963939658877
+0.15181569898867173,0.2969935703100777,32.11844502876672,10.467582221269959
+0.15096468258227727,0.29490743416407833,33.00180993969867,10.448591687138393
+0.15161716121049162,0.29787106960149684,34.23414807915989,11.231126790462543
+0.1495378964889124,0.30738021625273765,25.547080434596687,9.066613618071425
+0.15147395987498682,0.2996482729627248,33.98303649397673,11.387055573979115
+0.15013367780401835,0.3016628768851793,26.45488877584498,8.891419389475725
+0.14788972756006655,0.31083044625616557,27.625246595891614,10.047210414496151
+0.14875503528065992,0.30209230479122384,32.16079853583899,10.792382813246666
+0.15215431999176726,0.29794301700840214,33.54402347760463,11.050176078693875
+0.14950936998075295,0.29068274656536347,30.490612020705033,9.191696911858706
+0.14989791510337147,0.2985927652832632,33.65144766558314,11.019352835694683
+0.14929809238786226,0.29785821278826125,30.3366342930611,9.790674644776237
+0.1486613379389852,0.29663249145812864,32.85705517416077,10.443606614067056
+0.14924698416621202,0.3003992056868047,30.898118964305574,10.212706254418578
+0.14873209511372762,0.29273485554001094,35.525787551017,10.863365959017413
+0.1489677032869497,0.2958519804244177,31.121836601774465,9.856044020758514
+0.1490133642817165,0.30318896367802056,29.072364828033056,9.912569299648062
+0.1503037793328231,0.3001477150513311,27.49953834308739,9.164212076247955
+0.14970901643046783,0.3026607947653859,36.29012769841112,12.335353434310651
+0.15125678827685787,0.291104210167792,36.28240369234204,11.054212874375724
+0.15048415136234156,0.3024117876267578,28.35460985946546,9.583091188920209
+0.14884809806260227,0.28872594855812656,33.14009542695273,9.696535469741468
+0.1520694573096359,0.29552531873895327,31.903443178962547,10.260290079614954
+0.15069490879242028,0.30043068456727995,32.54702130355865,10.836860354313544
+0.14999323819321814,0.30302479013506406,28.278277109852734,9.70364736931498
+0.15113114019189516,0.3057374959103277,36.735132256675875,12.962230594486503
+0.14857480290495506,0.29689320636590083,31.27706072785381,9.96023853709986
+0.14923429488116718,0.30651638061720715,32.2983966201665,11.445551115574599
+0.14907315783728978,0.2954324453113937,30.934899308471444,9.744902644638703
+0.1498193377290417,0.29870153031820057,33.3722447582064,10.87859171446133
+0.15002437160459928,0.2897008194000884,31.30456276322422,9.359849828875303
+0.1504846749910417,0.3024792524887086,30.443275599023046,10.400141902550603
+0.1502395954421454,0.2966506271926968,32.22797697358163,10.353494036615837
+0.15021099510193636,0.2980282344161049,26.581462991049,8.598221528856408
+0.1477925543222577,0.2969374079627099,25.529140377476473,8.129704229336431
+0.14953101510800917,0.2991014003277289,28.139138601766298,9.188141523213606
+0.14931153245448342,0.3020998244573696,38.21450464080064,12.756426257211537
+0.15176920756902143,0.3076481903134066,23.37093054235926,8.418612349674078
+0.14982276413619044,0.29805396970263126,26.4028142038635,8.607216865138613
+0.15099199729725604,0.30606382923326814,27.116321902321296,9.625942756395787
+0.14960064647034052,0.3016206833472833,29.249022008429264,9.844585348564236
+0.14946068210733846,0.2916964761473818,20.22793703494355,6.128474155182738
+0.1492574491615284,0.30671121417825115,29.56249321986638,10.35356749719643
+0.14979858865106568,0.2945194249179175,34.25609061280836,10.755577255533172
+0.1504414736356829,0.30249285938138004,30.973992675834705,10.556891103420735
+0.14924102843429962,0.297683332084331,31.328747454399856,10.049411612337751
+0.14913238313607072,0.29497604153456175,29.831367461063916,9.356303666100452
+0.15150140532341758,0.2989084227564561,30.37753657288228,10.040326355235774
+0.14947825764732398,0.29835882179263035,26.541066006112942,8.619780893929207
+0.14862273878055124,0.2935164045643788,35.20845978184,10.88275979713503
+0.1489607529999297,0.2969544442904765,27.73926286164283,8.846257171941161
+0.151169407483031,0.30252952171913144,34.49377486215751,11.808129940560164
+0.1499503207817476,0.3016343591712529,31.89886834918161,10.705606705734196
+0.1485862776274546,0.3003087658449724,28.855166175043273,9.490756513846442
+0.1512960983143978,0.29538797236144215,30.276103554415567,9.646282094244397
+0.14819164620410477,0.2999970267617919,34.84284761231417,11.325718725112747
+0.14940827855299696,0.29663435127174886,25.614546839803364,8.20115261354438
+0.14871767851110285,0.30744405170239364,30.807819514251065,10.884618538898266
+0.14920108145430983,0.30361950370535273,28.497665088933566,9.763695004325948
+0.15139735434464266,0.3035901005776587,29.571485762952452,10.244193134101973
+0.15012181087255863,0.29629184782548823,37.26241642865198,11.935364945086148
+0.1526058280972359,0.2996941884611459,23.330565594694566,7.832109922451526
+0.14939401425547894,0.30229836352029077,32.33574388954975,10.88002501007811
+0.15005453546588723,0.2989713568288707,32.27764601492652,10.547079493675835
+0.15017822558894336,0.2999289760448921,30.471932651372473,10.133583656654858
+0.14871499412922679,0.2977195585800254,30.679688139454225,9.892219278690515
+0.14856527617137907,0.30773488090935464,30.607319800701287,10.91796056725689
+0.14999894269420577,0.295574119779408,39.99920009209341,12.686691102999905
+0.14999449929090464,0.301579592334226,27.683878927883235,9.234572753522386
+0.14993449672388623,0.3015269803780047,28.480080543877932,9.579783258529272
+0.15128804455277114,0.29741193722560055,34.71100860185982,11.292616605532658
+0.14957011679778118,0.3066668673796131,34.260611774647316,12.064115833968636
+0.14799292477898493,0.3030520741567467,25.652221853589353,8.617525236158489
+0.1506538145336844,0.3017145994208696,36.98973439390947,12.592922618281245
+0.1484941993403921,0.3016196320409745,37.45156878576095,12.504825457251558
+0.15035111169147297,0.29537678446931454,30.348668141002868,9.604726361028108
+0.15028801537083977,0.301249299935818,29.764713235780583,10.02217092982409
+0.15087609239424163,0.2989574358526387,33.19310065784189,10.927052207714913
+0.15006416003270873,0.30715163454621597,34.18359749183143,12.165376658787231
+0.1500375567119525,0.29555898577544526,34.04900762928355,10.837860195694997
+0.15123715386073686,0.30264491076595607,30.417198060547836,10.492488747817966
+0.1524887711727224,0.2950338348574098,32.62697042628214,10.457867984966835
+0.15021125472432753,0.3061710874880104,36.33272586649872,12.797485825796656
+0.14862769940121426,0.29562399481725765,27.20463135580855,8.52658413837377
+0.1494495299953155,0.2904695369533957,29.28558481279983,8.79380739353955
+0.14868752295376772,0.2946106126703555,34.08832216253303,10.590925544718061
+0.15255127064510454,0.3059363901167279,28.275416083508265,10.11941138318144
+0.15098732324695074,0.30349123651478455,37.140115798423025,12.84736015807844
+0.1483441164519105,0.29999899714071065,28.53198127407743,9.329726319947607
+0.1508976107992546,0.2917475696583048,37.60362757925471,11.48490266232347
+0.15068288332237578,0.29266699425470544,30.547537778940317,9.405017106386248
+0.1492856216526658,0.2966020152486308,34.81553763219232,11.075600770943502
+0.15103879762551195,0.3026128695676911,40.179411243359986,13.801277934194665
+0.15076605584059574,0.30090647819056354,32.749164059454564,10.987450065122395
+0.14952092447284052,0.3016615638784237,27.932403115994664,9.380393258020973
+0.14981989828136766,0.2953944444753555,37.5410835070026,11.857769967899396
+0.1477135090049562,0.30303885508728867,22.367107318002933,7.531063580446716
+0.14955916641120268,0.3035013663573492,32.477756836496404,11.11677739722257
+0.15050774669158662,0.30625653239252915,28.677321242400627,10.063718570647945
+0.15147601862870108,0.30009022979027,32.469722223948345,10.904852954892924
+0.14878987061438503,0.30310021405411575,27.454728336835636,9.33833837789966
+0.1512930703914391,0.29765698346303654,29.065467802249763,9.403484921552431
+0.1505541802497736,0.29276420167320544,31.123058247320664,9.629502773658247
+0.14793713976626582,0.2941527124435379,37.43058324022697,11.471089212712302
+0.1502697503544137,0.29672793855479956,32.44282865694396,10.393166146409477
+0.14998910921529854,0.30118934907276357,33.087885177766005,11.137541692975535
+0.150616173605318,0.30396562871906907,29.276235831643856,10.148786832018336
+0.15138665333943124,0.29435721976875284,33.11203094387905,10.484862816803044
+0.15049278972360355,0.28930582951448935,26.673790468960025,7.961473961280664
+0.14858593609315945,0.2990753952606713,35.708861160444044,11.619804641382817
+0.1493894778152282,0.2983762200528547,25.60399447580653,8.303018844670245
+0.14867163614194442,0.3021707885395499,29.400435942763778,9.847848237450902
+0.14963832321053275,0.29533778350753503,28.692800248610805,9.055743547286841
+0.14866176323255706,0.29745346115244414,31.99093811619319,10.24603475435079
+0.15137209695641934,0.30250082260839556,30.30541414062356,10.393166573148184
+0.14724325473987518,0.29667388481304524,28.439915447952586,8.949758521424279
+0.14922108218764352,0.3087859263879597,29.674139682053983,10.656634235460869
+0.14983785337394684,0.29214247991098746,37.23113282125903,11.399086481716507
+0.15153558537157175,0.3019834967142261,33.2572436179282,11.391921366859949
+0.14907266546711995,0.29255146105313135,30.362316586428353,9.281652111014886
+0.15219871357347833,0.29764606930278903,25.087937725230574,8.249008476431849
+0.15062548748476162,0.29638846516246,39.089263577601415,12.511309130793633
+0.15116900350568807,0.29458856675260303,34.33076619202574,10.870236705301936
+0.14988833429905324,0.30447137472216484,26.751042784098193,9.261954270438467
+0.14904480781917956,0.29350398680648787,28.397726738012263,8.791249187284674
+0.14876632486771404,0.3040187045185498,31.93851367666077,10.871499808231736
+0.1496081498711914,0.2913254301909701,28.681204168688357,8.70781434806039
+0.1495656481028336,0.29471285578849415,25.004773392592355,7.80950499785046
+0.14932413579102016,0.29712064884545597,31.23647339574155,10.04708449052797
+0.14872617817286654,0.2991559815841991,33.73029098102711,10.991301011624863
+0.14975156834932038,0.3012648177692105,34.133624515349375,11.394661584877626
+0.15021063206276283,0.30045014480302684,28.480769200083138,9.489828408477326
+0.1492128305592765,0.2966913896015689,26.385980545669614,8.407652461814827
+0.14894565732117263,0.30051379691791796,31.144722174994904,10.322902790643466
+0.14950896435219965,0.2946816033446604,27.611680001147953,8.667353410110513
+0.14961311881746991,0.30711174773834643,29.305313186618775,10.394442696226413
+0.1520663535107025,0.29926737823726723,27.133654212636333,9.054538378866983
+0.14955288625925298,0.30077494423906553,33.116899491139804,11.02869790974976
+0.15095699169029458,0.29382087368017357,28.840744237228343,9.022353667737528
+0.15134083281358066,0.3057471261886158,28.12823248516208,9.903981180286666
+0.1494497586070562,0.2944861837156314,30.12540751296775,9.35611919711405
+0.15010104461102933,0.3015734652668515,30.68432571340977,10.3197160959342
+0.15079594539713118,0.306013293783361,27.797471673656847,9.850559173770474
+0.14933119142918191,0.30339328523670733,29.259969466081987,9.995205013518987
+0.15085185975460735,0.29800548605870214,29.0620086959259,9.550174271877522
+0.15132789270657926,0.3014671259196212,27.722591010472986,9.402956037440154
+0.15036556120735342,0.29707660349397746,35.602207035567005,11.424574220460304
+0.1488528795829192,0.29900885055838433,30.315095822258332,9.874839807625724
+0.1493792432638709,0.2940546319700472,32.03383007480709,9.901042504372647
+0.1519839709675911,0.2947217020819583,25.692519102382043,8.190521303835695
+0.14920766458817827,0.3032813964214038,27.02123213046217,9.179801855917635
+0.15034117845487602,0.29898244335967117,31.033436099323783,10.16881935063563
+0.14765779653476932,0.2922180834680862,23.40794243194452,7.030110563814025
+0.15064926969942344,0.3046312404162434,30.47156703891164,10.623390073726759
+0.1499578674251292,0.2998244980593416,29.650948123126636,9.839409139415078
+0.15039095632849084,0.2934371881884244,30.052090485670213,9.28905684443697
+0.15115433439069237,0.29557220183371213,36.40669495248344,11.602408942685434
+0.15230463535928118,0.30097895446168244,26.877816697591324,9.11814166829997
+0.1488384833386981,0.3039354109385887,32.33438477869721,11.115023864169835
+0.1511764007009291,0.2978777886360229,29.2282147736894,9.536420744842086
+0.150653729604558,0.2983684559594173,32.58250195202131,10.691117210931829
+0.15034831028183657,0.30156960444696795,24.53659358808907,8.300184223895048
+0.1499069158081259,0.3051829330620302,25.05523214263512,8.798804250088713
+0.15020995838908335,0.2933526340494089,33.122720943401575,10.242189137246289
+0.14789795748937695,0.29714314541283404,24.015180317701745,7.629136494945911
+0.1497490255614566,0.2942401879846339,37.11894631556975,11.639167005956033
+0.14886633552128506,0.3030341551200493,29.591222189444988,10.024774043175361
+0.14933658153342824,0.3045162294525463,31.073429785486365,10.771386628029983
+0.14920264709700098,0.29225579053370493,30.459711721498177,9.24904385489372
+0.1482446649734762,0.2928670391176107,33.38848329781785,10.1521030698736
+0.15135438685869412,0.2969229977413132,30.42098022765133,9.932298619030039
+0.15014277672443208,0.3000196861884131,37.459940378455656,12.413770785108312
+0.1493298329631623,0.2979177662874133,25.912503979045702,8.333310270388866
+0.14855165735839745,0.29979013952537475,28.10669409284742,9.21518381839141
+0.14842805846243698,0.3043056770128097,31.40496622721553,10.745750313701324
+0.15072681642846839,0.29771655790625146,32.94956258372149,10.731819700850084
+0.15024667587370405,0.302566643315993,29.680824966097852,10.06816731065838
+0.14908924385888678,0.29757736999835044,28.339363857333595,9.121066945039175
+0.1517744741184002,0.29673053705403485,31.375578925495883,10.170048220676103
+0.14842002212696775,0.30060406751079877,34.247559162911216,11.284088034839845
+0.14900337357647908,0.3014189929994734,34.71736394751464,11.56164518270468
+0.1496211063002685,0.29439314197360267,31.085324038483478,9.71712874696822
+0.1494740039213615,0.3044642789050865,31.466918413399554,10.869470762059363
+0.15055313670523002,0.30317067997947944,29.85530237840948,10.277416596584299
+0.1487859970985092,0.3016126088750556,27.82783177432842,9.236857484705734
+0.14865243974388032,0.3026989406539749,33.626533978086755,11.368874992986296
+0.15019731609967235,0.29522161706102534,28.445131764591224,8.98189677883556
+0.14956924451364673,0.30206887692356604,30.949665534830896,10.468452686473045
+0.14836796313145892,0.30049819811884504,32.38861910411385,10.635274558884177
+0.15035178553180187,0.2932534346826723,24.79609275663509,7.669131304754092
+0.14984902868719416,0.29435333946454245,33.965604545111496,10.682517217139205
+0.1499524657469356,0.2984460996070768,27.667050417580764,8.98813735973988
+0.14908510535194372,0.29704099372200415,24.320825965764605,7.7258098321356545
+0.14982234256488167,0.2974484722306304,37.42880519805877,12.103752534928198
+0.1484458597086347,0.2978486814221021,30.350575828480498,9.711388612612947
+0.14989752083867666,0.29910403900479327,25.9700194262035,8.520982556367255
+0.15108036985036605,0.29606678796754016,26.720025456547518,8.575942193359118
+0.14870933884231602,0.29592743504497454,34.19449804232284,10.740054875175353
+0.14814516776684403,0.2981260931836523,33.31975172683718,10.681666718307918
+0.1499466825507866,0.30337355132633653,30.455337430373994,10.382902863852202
+0.1490454449982624,0.3017904951955264,30.912286340577257,10.321304992227322
+0.1497017566448227,0.2919410159502931,31.59855928412209,9.646140783126874
+0.15017053520338244,0.29637698761299264,33.081574395118274,10.641578624298639
+0.1499404753383808,0.29615417064942967,35.21874809757844,11.266719754044953
+0.1492295631723333,0.29192066306717207,29.37835407921179,8.902607144071771
+0.15096991515529465,0.30629875830664705,30.371716903092697,10.84802144225713
+0.14852857751670775,0.29978581624540834,29.39371016558173,9.630326521634116
+0.1502603910804987,0.3027457545304455,25.62263613621338,8.721479452445674
+0.14921070334706618,0.30156799952864866,28.219475037024115,9.448223592182838
+0.15037400864649794,0.29953261641158657,34.19280412033338,11.297265167659226
+0.14968578226200424,0.2940107235667621,29.841462651217675,9.316080598035045
+0.15009826661294642,0.29184035730028157,32.167137408940896,9.788086877294296
+0.14737402606234798,0.3044961194528802,30.48859345283718,10.366157773697994
+0.14939479473064646,0.3087994491660741,28.35872190672944,10.224643020995622
+0.14949017878483578,0.2961674205276579,31.026282214256135,9.855236676899592
+0.15041796766603474,0.29638604277892155,27.077255478202883,8.672116333996538
+0.14935501246803068,0.29427920334743446,26.3457070192256,8.176585285918648
+0.14995614927077464,0.30060121540520446,27.631901526308265,9.224758158241785
+0.14784172021468828,0.2941542711547484,32.81735604963042,10.149024574712012
+0.14920859736664008,0.3036925192952972,26.174328060601667,8.931638855355299
+0.1495743122913789,0.3035037195170273,27.332531315917766,9.399583240203311
+0.1500942992637808,0.3077690158433898,29.924660469581163,10.654892996427252
+0.1502854080726727,0.30130253824596387,33.31958086047155,11.234172674127995
+0.15043310448174962,0.29626056723482114,28.71496003999646,9.215509745910987
+0.14976631528288586,0.30349499674192776,29.780594807306446,10.153503926343516
+0.1477311517198725,0.2899975632174251,32.45463769552771,9.565954930826294
+0.14839862461960018,0.30201043419554224,27.405098265616207,9.114587082720192
+0.14988687207411927,0.3063525509392931,31.607618555728962,11.174284443705846
+0.14860026277715496,0.2921306359434917,30.664154138642047,9.310010813128748
+0.1492577357745439,0.30651099646336893,28.266863448602724,9.892024493061953
+0.15102842831308774,0.3091317525866396,31.83195068734497,11.646940346455905
+0.15138783006106968,0.29855496016923166,33.41878996815118,11.008649109673758
+0.14825064053598463,0.29919579074581826,34.96522842456004,11.320059507576829
+0.15016872202201303,0.3078414952837485,33.778179257372976,12.068014278267185
+0.14861139065025047,0.2981333867410804,35.25272488959999,11.326117506018935
+0.14801192562670992,0.2919287677768186,32.919132810511144,9.947062533683114
+0.14946465318469385,0.2992616424669362,25.904047502247188,8.531294514461806
+0.1491328543750145,0.30198722402428063,30.909061728371487,10.348459104862874
+0.1516555115233963,0.2949977069871955,32.392631408079026,10.28769050190307
+0.15082930771253064,0.2992986431095184,31.07955044340652,10.321294559194119
+0.14949008234689393,0.3006743681382189,29.14827525657818,9.696110058207728
+0.14975770275042077,0.30381420451715097,25.471139143741716,8.734261711841862
+0.1480198740560158,0.2989804866067878,29.62300034335842,9.613663798118438
+0.1503484029490885,0.2955841852585785,31.10030960929874,9.891722978111142
+0.1497500048159324,0.30421813654626345,27.47437400891313,9.49925682235692
+0.1490437606354778,0.293739718011721,34.050432952125064,10.519080007489698
+0.1520745484174731,0.30680132819429606,34.021255738880335,12.16245720256891
+0.1489356403705011,0.3000243023328318,18.669924274827522,6.154977829928493
+0.1485472833570378,0.30624545381821994,33.68706208178396,11.754206912449384
+0.14800748818065967,0.30127888121440183,32.33301824115385,10.674038488981582
+0.14981286956435289,0.2992762111063801,32.089699287167214,10.466302709604163
+0.15073442164293052,0.3016481531980852,32.54174409390011,11.013633578973714
+0.1510567349493497,0.30255489435504257,29.79339627584716,10.188281204876874
+0.14973880588267158,0.30413552385728193,30.58549991496495,10.536777734583989
+0.14960706256577835,0.3022498444699225,29.78172138087522,10.134687449699587
+0.14909432226954286,0.29651940627546586,31.376240044433082,9.972539441943908
+0.1501622243091739,0.3091285178848296,30.304412366688787,11.03092820089743
+0.14939515464805536,0.2952976936462183,29.25126619445309,9.186627145773603
+0.15132246700683033,0.30081608248025016,34.53457578296701,11.62780274822593
+0.1503091747641655,0.30203437940971983,31.344947911719842,10.665318783655458
+0.15137016503222664,0.30094429892742064,25.90660377826598,8.773694801364993
+0.15179818882427043,0.3011352330452675,28.932319531014066,9.830334151648294
+0.15046081259367824,0.30094039943436884,31.92012616577994,10.725407353867492
+0.15083967146596589,0.2948976202644054,35.520841568873415,11.27578750495999
+0.15041601327739001,0.2954863736852537,29.207248792660696,9.221902387935785
+0.1500401227787799,0.308384125449839,33.04548403249105,11.917283742541551
+0.14822975964839888,0.3023966895359634,29.713086050735743,10.006340478363473
+0.15016974903527308,0.30404580115183316,27.174857414239817,9.371206396014665
+0.14918160616652698,0.2964901238404795,31.502075108251642,10.033616147539568
+0.1481346961275278,0.2971270007759488,30.80241107175193,9.815827635240696
+0.1515743056852208,0.30031696175794426,30.484788703241083,10.314051752358239
+0.14907361047809017,0.2981645426522144,40.04689079431709,12.928410893676572
+0.1481913342592643,0.29884484333383476,24.227380272832313,7.83586742468237
+0.14977107902684916,0.30406933736696223,29.241116109863654,10.049993431635595
+0.15127447533402522,0.30750751266025944,29.457563756971048,10.547165976662475
+0.149109103672673,0.2985798821852634,25.95082350353434,8.43415829175974
+0.1500052180066964,0.2981352791288554,30.93882886908194,10.008775778394677
+0.152354230163436,0.2919583941917942,32.937696390581564,10.191738492107747
+0.15008190978310482,0.30256849110388956,30.230721544853598,10.32552114258786
+0.1504872137433576,0.3002427495081483,29.91853867961132,9.940137073578613
+0.1516572059055469,0.3000238696199626,26.8223698199233,9.01802873332646
+0.1512470457073407,0.29331158220684017,26.8652980815075,8.386090787777544
+0.14942920862705247,0.2947469289414168,31.607982587908005,9.926246223244236
+0.15005950123754794,0.296038865063365,25.370099366194324,8.113216347643426
+0.15059588861189768,0.2989162011247787,32.02719941589581,10.5226705335392
+0.14949674363200358,0.2977780663981329,30.66842430340807,9.885801455056344
+0.14863041793181656,0.29847846135490685,32.94676338254714,10.653764957402162
+0.1486087429225583,0.3008020663795074,35.10461540045329,11.677522946602645
+0.150758226127179,0.30748034696327586,33.03496477266876,11.897921127619467
+0.14973620880815455,0.30320327816931997,27.447579810030344,9.392407230874236
+0.14913385144760163,0.2930159313034078,30.44552067440856,9.392738381735198
+0.15004064670655606,0.30313654243491955,31.21650811154401,10.652163341200263
+0.14941974500856597,0.30743434170091505,32.43461830812643,11.518254589133251
+0.14869836583638749,0.30458288930009586,31.090008587329663,10.73761006814985
+0.1504478316413525,0.2968151705984984,33.48226807500696,10.768088896103029
+0.15080580179569966,0.2953336232244747,30.52785575915304,9.725614218256421
+0.14948955555533,0.29842625401706996,32.492833816786295,10.513788630457611
+0.14941641136507766,0.30495588898298076,25.954184614957946,8.990485501083473
+0.15199683069998346,0.2997435593913502,34.039266964101145,11.432318398253765
+0.15224822601553545,0.29802311664568043,33.30495217366891,10.935399174931687
+0.15077054599774878,0.30155602783667285,33.49953368216873,11.303194919888423
+0.15087927693268152,0.30115890173944476,29.97050655306997,10.091072606914702
+0.14936530397103656,0.2962291233043873,28.140543871010337,8.887986527314228
+0.14960695395476345,0.29893421618976135,31.269241642402008,10.18257831225109
+0.1517059848093937,0.30180797940885234,28.306464200761642,9.677874879566797
+0.15138883202137635,0.3014226774393414,29.991053060833334,10.188053593780248
+0.14976707105702788,0.2941709060564584,29.09757077782726,9.06248816684724
+0.15118934934540657,0.2959254332323661,24.48732722024753,7.802420352259426
+0.15077917902788368,0.30868866855059235,28.89059481172245,10.483961697335953
+0.14907276279293427,0.30370938168126566,26.03689976665551,8.85870678884724
+0.15013196261508524,0.3040536580464752,30.59002292868816,10.602686488235804
+0.1493926006906491,0.29815340544594,31.80395096590623,10.321827761325519
+0.14930541810251666,0.30410248847269905,27.789085656557923,9.498036874869632
+0.14990568736909052,0.2992143945472167,31.804761180219412,10.428356808058645
+0.14855498290235547,0.3028474776936483,27.792475996815217,9.373956041411443
+0.15003531415814222,0.30256536173482534,31.71621948078119,10.719834585503794
+0.15186806136960865,0.2962196093187158,33.23490864268922,10.756331226147884
+0.14974691851021218,0.2991913443091309,26.71160560382483,8.715272306797946
+0.1514421747581074,0.30455529490065997,32.421648925840074,11.329456432084601
+0.15191406617636996,0.3002103609286297,33.06295285095912,11.213431079973269
+0.14969194522363813,0.3004612643666757,33.27553707073521,11.021632285308678
+0.14945934516993015,0.29648025822890733,29.413848980581058,9.334514461184511
+0.14997904536628814,0.29851634963749124,30.38987261429582,9.918582522365556
+0.15187477173183844,0.3083010275099292,24.851545838239282,9.031602176491255
+0.15068552106451608,0.3021616559881324,32.820967440810186,11.174712248561631
+0.1505412093991277,0.29644968865538074,32.72755839723797,10.514594483445999
+0.15084033666193333,0.2888174857985579,24.896186749913678,7.422344930560398
+0.1497928336301585,0.3065319513053497,36.362106263175264,12.769160517809167
+0.14904011194245978,0.30027544003191947,32.129561736067885,10.561795640207123
+0.15080192787017302,0.29663754901140627,35.72444513495367,11.492153975113343
+0.15019347028359592,0.30283168364351515,28.673880623362063,9.760585993330068
+0.1523287050362359,0.29829041527459677,27.231637116894962,9.050933130394744
+0.15069802340999086,0.29551809897368997,31.428002069016337,10.03649326172372
+0.14851986601822706,0.3012251381661157,32.585498231519566,10.800288973461065
+0.14968016506727438,0.303321220583436,30.026499016911426,10.28835074886064
+0.15160233890180602,0.3009062979010729,36.30082395433563,12.208546111237206
+0.14812242092386677,0.3003925122536717,23.873204334927422,7.865096166632972
+0.1487214605669303,0.3025192647532891,27.891226309009912,9.39846018906425
+0.15187390700263156,0.3034566827564279,31.181713669054282,10.839446905289394
+0.14987187762483922,0.2965116108166391,24.086954149504688,7.7230121694792695
+0.14993042713215274,0.29687167990378116,24.838571184936143,7.994683234338886
+0.14968797980321843,0.3050089818347094,30.309063962309903,10.510822236917415
+0.15000386423747916,0.2924824083169497,35.46323227495485,10.887632097109615
+0.14975299606780448,0.2976972444698824,32.33181118844643,10.451712669981788
+0.14905566421987113,0.2930696517370505,29.325430901239795,9.006489365214296
+0.14936081892301833,0.3046413176350899,30.953109768477667,10.750506181213838
+0.15020608217161213,0.29698297091812853,39.89057765926289,12.792379334196454
+0.1489398212171489,0.30096054324320226,28.69750896002852,9.541029047098144
+0.1502367406999258,0.30483006778544747,31.608301914016636,10.992591238279495
+0.1498863953375269,0.29946680141881404,30.067833967312545,9.869653910666653
+0.14995874770395146,0.3067949955144337,38.13342201927412,13.521707634835813
+0.15141061958943894,0.29683416438766386,33.052977270373084,10.719516165779542
+0.1510815109532038,0.30212633940163347,31.71925030443675,10.858781289575333
+0.15072766963575016,0.29396474750220364,33.476999527707044,10.516308263497132
+0.14972961735317802,0.3023469322869604,33.98048141843153,11.44088670880714
+0.15067616527960637,0.3025016168771485,32.781952985688235,11.149267552514027
+0.15069765161784923,0.2986159496375919,31.47139915113055,10.306757824641947
+0.1507489578141288,0.2931693367728534,33.90183188914584,10.55193760919378
+0.15065197338780262,0.3105237919889188,29.67454190997589,10.970097286914655
+0.15057715666617702,0.3066599223783641,33.10773254399766,11.806078223385624
+0.15010962352733837,0.30142418274355137,31.178465062011103,10.501458918465815
+0.14955002542314652,0.3069636747252206,26.608670672594876,9.385678119912605
+0.14880874445883888,0.29491212658388444,31.11695618718649,9.690236247007395
+0.1502715775141707,0.3046295490652119,32.40697252817482,11.305994690959123
+0.15079436610174962,0.2962610539507452,30.499895463886578,9.7693536902944
+0.15075696800214014,0.3026730101751817,28.63407026565214,9.808688122983465
+0.15097370967711785,0.30073789476906426,31.307864202660298,10.51155495210636
+0.15078985272900608,0.30760517009623056,28.854616107954836,10.344583682796843
+0.14882191977122053,0.2969559110693046,33.960581457170576,10.830203257439626
+0.1502220834037896,0.2972447306833727,30.298885875108724,9.747014567258324
+0.1472027773793738,0.30397418851765745,29.779437964179426,10.062838904830029
+0.14995334423757045,0.303441341202552,32.67994854608827,11.20811958357367
+0.1527670994536614,0.30000237685706355,26.616511784372406,9.00651640038054
+0.1487475707380604,0.3005622054252957,27.16177254451676,8.946824085973887
+0.15032522255025163,0.3008562752590758,33.046391695537295,11.079152473234817
+0.15080721076707845,0.2955135649308298,27.795577876351448,8.859412648133938
+0.14930860113410793,0.3026531626286513,29.611935924863037,9.999902503914228
+0.1497944431557947,0.3043979766583116,36.06588748433671,12.485792100861987
+0.1508845886756924,0.2987230701239053,31.89152176589562,10.474513570906241
+0.15204338753418015,0.30085451183678036,29.694607770203742,10.080794296559041
+0.1508360625288325,0.2964205011319248,33.38799720975172,10.77716542796697
+0.14931773969525197,0.29337095951701325,30.89844628903715,9.538479717213031
+0.14945537919573137,0.3052573372814481,27.058592089193194,9.442379666341068
+0.1504357013971954,0.3023319198348644,29.128241505810564,9.894514702590353
+0.14854688339528863,0.3041349951423451,31.290409247370008,10.712076115863551
+0.1513105104259164,0.2967438244680712,33.385445988212645,10.77910944152698
+0.1496026799130961,0.29516435601163044,33.56754347301672,10.571498943306835
+0.15114704641894508,0.3057538395034736,33.79686433692095,11.95973389740671
+0.15071592932351077,0.2970341318988117,26.76324654246937,8.65486156377754
+0.15152197972150733,0.2995277387334031,30.342395134448076,10.113647986793167
+0.15036421526970417,0.3017045266364655,29.53081786068933,9.98960664733626
+0.15046383333102722,0.29232757616338473,28.712850083450004,8.826941785721182
+0.1509655795625167,0.30013326882249786,33.21640962285784,11.038170704216343
+0.15073078964278194,0.298512226117998,38.87406978670754,12.667699015806317
+0.15173344962620824,0.2992726522160836,31.77875409603203,10.497415535328063
+0.1502808781068652,0.3045390781465455,29.9666162291207,10.42285982752639
+0.14932367052978535,0.30524678834807195,29.368265329214143,10.157829564377053
+0.14927901009135286,0.2981533022103994,29.469522361544687,9.549534806300898
+0.15037320317757633,0.30140603716143133,35.26562885849645,11.919002149240804
+0.14999985729993287,0.2963197466537008,34.76717474230222,11.068448637624064
+0.14888148555488526,0.3014331902947741,33.08083313461529,11.003634367117744
+0.1494007565566521,0.301065055475783,28.52157033311379,9.546270307059151
+0.14959775241999207,0.2979009059404781,28.12254296751511,9.072070388673344
+0.1492180141733341,0.29376379385836016,29.859852532414997,9.243316469465576
+0.15194036406928266,0.30684370207110623,27.946086026146595,10.00268642225216
+0.14998477878158945,0.30006929891941453,32.79766388448502,10.821560496579876
+0.1490138409813838,0.30341470774757956,31.709715397521627,10.78705829559199
+0.15049780840455165,0.2990262855428169,39.4016506311597,12.927402760826936
+0.15091500531147842,0.3003835079194184,33.5058141172669,11.237692985666934
+0.15008736050359933,0.2933965207331989,26.678454115675983,8.270491944313722
+0.1474308332754758,0.29780890217872014,31.245893152955514,9.956461062123358
+0.1526969268051385,0.30400552746151027,28.67817422073331,10.081099811044943
+0.14984431441129095,0.2999354012821707,26.171946770547457,8.666705036514104
+0.15049958289486254,0.30132488386535106,33.078351859798794,11.18450155189797
+0.15220867183884765,0.2968029341151998,33.12299255548963,10.74639020036753
+0.14920125201050682,0.29940640248002864,34.270793778315266,11.217884261892223
+0.1497466180986925,0.30162753706979234,33.42409775699059,11.234607438058239
+0.14867875290509838,0.2882641010595247,33.240770800727475,9.730202681900646
+0.14927963370516795,0.29244584844515314,34.65836562995973,10.636866485042491
+0.1497554478916365,0.30360459121291283,31.29922151429405,10.723046134545028
+0.15125157489179983,0.30230814676836437,31.888980881236897,10.914069317724302
+0.14864372960282007,0.3026184550948954,24.68731206719738,8.265289553748579
+0.1493032164687627,0.2968825155860467,29.490569388615196,9.399574826256723
+0.14994623912423888,0.31024120870835714,28.071019980768984,10.244456216190526
+0.15006706684492727,0.3006454637244262,33.05868543777737,11.016768361424038
+0.1506224830700678,0.29939463613952344,31.34593157761961,10.343712719539697
+0.1502462713060135,0.30668299738701515,28.7289391069407,10.212404227913613
+0.15159085356295673,0.29457175833614485,29.69717146682835,9.394478799094331
+0.1499844017200477,0.29471659493667446,35.679901872384384,11.15875402297158
+0.15158993132306456,0.2983337762650887,31.172322567145017,10.32850586178081
+0.15046306668741416,0.29613860714434986,29.25642749473277,9.315778440315842
+0.1489698586804745,0.2984757703398498,27.728244975938633,9.045047823154563
+0.15168186424454014,0.2946837204983158,31.529683152156288,10.020714555418829
+0.14971508588846336,0.2896671888855328,30.38723245635816,9.050478942968764
+0.15183601311247422,0.3005830302644944,28.409727330127897,9.545614268503403
+0.1521553948068235,0.2947438103987859,32.66246359838032,10.398921684347599
+0.15079480027239772,0.29355347929825576,30.67618329669741,9.538535578231993
+0.14951905797091156,0.2995081955654008,26.276484066718606,8.623546364028718
+0.15123283684526295,0.30377231701673685,30.74241332204473,10.715897902484917
+0.14870387310069935,0.3034603305019377,29.726467581903176,10.124754894432925
+0.1497109403288454,0.294025462078789,30.126137450355863,9.36972950785382
+0.15061968993239297,0.3008716673405388,29.154360138652947,9.804269839658408
+0.1505344665905559,0.3007339928614618,28.053628856339536,9.3690290595295
+0.15095843320894775,0.3040272371872766,24.88092720023686,8.648622726091965
+0.15006978672791496,0.296265880674527,29.021242776596516,9.286657604489406
+0.14952997229262924,0.2982279938485511,33.83289095939914,10.940715614218892
+0.15152639754539454,0.2999386257483888,22.371974869567588,7.490660754475877
+0.14825865011847922,0.29649131515894434,29.634996874090856,9.355375829797756
+0.15002855158867914,0.30607144915129897,27.210365578522815,9.545951340680615
+0.148466259929669,0.3070457806115962,31.640009261734342,11.109071942478634
+0.14915918217215268,0.29844949384232794,33.60444686711569,10.941363657330157
+0.1502341592819998,0.29419938075548036,35.458890469601755,11.103711875053717
+0.15042621491397754,0.3072120701235366,31.725613846709514,11.2772730139953
+0.1504229720592804,0.29781788878922594,26.50445532406127,8.687976261753704
+0.15055299266432617,0.3009954101128926,33.48338335760052,11.274033417132973
+0.15114802899526095,0.3008172350236654,23.06645741795298,7.797329526914034
+0.1514829420760294,0.29902548599667006,31.11079756313551,10.35575651236677
+0.15048791508247808,0.2942266534582375,29.981445056039792,9.422479213201646
+0.14937600824050212,0.29323572694212235,32.38169121556348,10.042673799954978
+0.14973879208576485,0.30730928234815874,25.592523261447056,9.056090571196272
+0.1504578726046403,0.302279251938586,21.9901272546769,7.465971819244437
+0.1504641950638229,0.29455257036202653,24.618559306877874,7.748001178602279
+0.15128273080375812,0.30305467447868756,28.11888092916806,9.661132103747788
+0.15158392041776012,0.3019104024198162,28.115584594402243,9.561793846512629
+0.15037605453753677,0.30385708271534106,36.25476716889489,12.466440505755221
+0.15197926348001858,0.2915895494296114,31.356471158624363,9.672034160321084
+0.15051189069049203,0.29589631116438825,32.03475213270902,10.274858445265787
+0.1483498091262607,0.2966842723563442,33.10441659513931,10.444535260235417
+0.14994956386713443,0.3068922295621916,30.911747183507448,10.951746922409344
+0.1486570436745984,0.2988577036003469,32.96615503532279,10.628631378259533
+0.15030651069314943,0.297588848959711,29.235702983944506,9.498936550608287
+0.15191474698080243,0.30338501092546266,26.130151433546438,9.121090509324869
+0.14929983455198748,0.29647794536367783,28.214912680738195,8.97423087485924
+0.15141147924930615,0.2931972462407378,25.315958179081328,7.925432838646991
+0.14991586749136887,0.3058177202589954,26.044270364092522,9.112576727364925
+0.14767718645628675,0.2910148146089071,40.289061779511435,12.011983023398203
+0.15112921813862626,0.3029642355947397,35.62505981111805,12.308505253334385
+0.1504869471367079,0.2990959906699776,26.27836867508219,8.616237944988947
+0.15195633890608237,0.3005714478588066,29.28291008275983,9.934423047846133
+0.15028753209698664,0.301144138101138,29.975373944011164,10.058560622602238
+0.1506195930190322,0.3000438501009137,33.32678709780535,11.081594402233753
+0.1508272489820335,0.30661714363689896,35.775909040895755,12.725505705667086
+0.14868103411612757,0.3030837027099698,28.612208457503527,9.75745752321023
+0.15003557779518098,0.30335650179537704,28.17093687454318,9.621504179229728
+0.15103763337471945,0.30255731282695614,33.86615386692645,11.584948939543866
+0.14932435406598107,0.30074806103284507,31.95063884492903,10.63227481271124
+0.14931315625960795,0.3040295758031785,29.40624833982933,10.06380300012516
+0.1504650433283574,0.29409958990664326,27.168726086031427,8.515129468448166
+0.15061282739317755,0.3053014606340604,23.28820572194536,8.147903831827698
+0.1492119782970842,0.2997278889514853,37.71694418265116,12.329842520802298
+0.14998511885140048,0.29702846549255,33.73901245925508,10.85705519760846
+0.1508667098226756,0.29992932184442084,27.851559286819743,9.235368970995923
+0.14920102850078143,0.3030252668356909,33.01996889966566,11.28875696673719
+0.1507210749658682,0.3063064663876098,30.23955918385737,10.683480485744928
+0.1492873727618258,0.2960493858467969,25.64112484114324,8.10342974662121
+0.15097037898794394,0.303449676761166,28.79473569746567,9.93405053961764
+0.14846707199509213,0.3002570732049601,26.453272868430883,8.705670904183815
+0.15078695736168934,0.2974668044886989,31.876957854641496,10.282830539942806
+0.14848900868513468,0.3083387385284128,33.98677737199045,12.09208002663876
+0.1488408838607492,0.2996104272312263,26.035069646698037,8.508334175152296
+0.14883275705840793,0.3102731527051896,30.107443604196416,11.009899730136926
+0.15010913808313814,0.29908912810442956,28.154562557107557,9.273402832432918
+0.1490655639954912,0.3010119668416879,25.359574030855455,8.391844801836603
+0.148558081060578,0.29747509014451545,26.875108313699997,8.560954577476684
+0.1510498532456531,0.298928316158837,29.714747397833616,9.825387439292449
+0.1509891328655058,0.3027539712709605,36.442026054639385,12.471381560361195
+0.14934545468586863,0.3011992168898658,38.844544677385684,12.937631950229802
+0.14817802603662444,0.30148610311764956,29.71032382178374,9.884767270813759
+0.14862514808091665,0.29314426869359006,33.04335421790559,10.101151696524523
+0.14956192066911345,0.2953331466913765,35.79463931302081,11.237391956678191
+0.14882819851081278,0.2925284229608988,27.7049644868336,8.462174726929774
+0.150194578332161,0.30092498170424703,34.64105438601209,11.556561099625988
+0.14805297157197594,0.2981085652542085,33.69928674466049,10.814121744209455
+0.1488304440548724,0.29575087110575515,32.53835987761112,10.253095990772321
+0.14751063183396998,0.2977300978951996,26.586185718579582,8.492737260230047
+0.14998229528725218,0.30746961125029093,27.50700790187116,9.843225593523275
diff --git a/tests/test_model/PosteriorGeneration/PosteriorGeneration.py b/tests/test_model/PosteriorGeneration/PosteriorGeneration.py
new file mode 100644
index 0000000000000000000000000000000000000000..c07594b7493d70b5e1fb2f1d0ca33b3a50916144
--- /dev/null
+++ b/tests/test_model/PosteriorGeneration/PosteriorGeneration.py
@@ -0,0 +1,174 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Nov 11 2019
+
+This script generates the posterior distribution of the CO2Benchmark model
+for a synthetic data for three given uncertain parameters using 10000 MC-Simulations
+of the original model.
+
+@author: Farid Mohammadi
+"""
+import pandas as pd
+import numpy as np
+import os
+from tqdm import tqdm
+import corner
+from scipy.stats import multivariate_normal
+import scipy.stats as st
+
+
+
+
+def BeamModel(theta):
+        #### write an input file
+        global beam_span, i
+        Beam_width, Beam_height, Youngs_modulus,Uniform_load = theta
+        Youngs_modulus = 1e9 * Youngs_modulus
+        Uniform_load = 1000 * Uniform_load
+        # Get the number of function runs each 100 NOT necessary, just checking
+        i +=1 
+        if i%100 ==0:
+            print("number of evaluations {}".format(i))
+        
+        #### Run your surrogate model here.
+        I = Beam_width * Beam_height**3 / 12;
+        output = np.zeros((11))
+        for i in range(1,10):
+            X = (i/10.)*beam_span;
+            output[i] = -1*Uniform_load*X*(beam_span**3 -2* X**2 * beam_span + X**3)/(24*Youngs_modulus*I);
+
+        return output
+
+
+def RejectionSampling(mcParametersets, origModelOutput, Data, InputNames):
+    
+    
+    MCSamples = mcParametersets
+    NofMeasurements = len(Data)
+    NrofSamples = len(MCSamples)
+    Sigma2 = (0.01*synthData)**2
+    Sigma2[0], Sigma2[-1]= 1e-10, 1e-10
+    
+    # Covariance Matrix 
+    covMatrix = np.zeros((NofMeasurements, NofMeasurements), float)
+    np.fill_diagonal(covMatrix, Sigma2)
+
+    # Likelihood
+    Likelihoods = multivariate_normal.pdf(origModelOutput, mean=Data, cov=covMatrix)
+
+    # Rejection
+    # Take the first column of Likelihoods (Observation data without noise)
+    NormLikehoods = Likelihoods / np.max(Likelihoods)
+    
+    
+    # Random numbers between 0 and 1
+    unif = np.random.rand(1, NrofSamples)[0]
+    
+    # Reject the poorly performed prior
+    acceptedSamples = MCSamples[NormLikehoods >= unif]
+    
+    # Output the Posterior
+        
+    Posterior_df = pd.DataFrame(acceptedSamples, columns=InputNames)
+    
+    # Save the posterior data frame
+    Posterior_df.to_csv('./Posterior.csv', columns=InputNames, index=False)
+    
+    return Posterior_df
+
+def posteriorPlot(Posterior, MAP, InputNames, nParams, figsize=(10,10)):
+    
+    figPosterior = corner.corner(Posterior, labels=InputNames,
+                       show_titles=True, title_kwargs={"fontsize": 12})
+
+    # This is the true mean of the second mode that we used above:
+    value1 = MAP
+    
+    # This is the empirical mean of the sample:
+    value2 = np.mean(Posterior, axis=0)
+
+    # Extract the axes
+    axes = np.array(figPosterior.axes).reshape((nParams, nParams))
+    
+    # Loop over the diagonal
+    for i in range(nParams):
+        ax = axes[i, i]
+        ax.axvline(value1[i], color="g")
+        ax.axvline(value2[i], ls='--', color="r")
+    
+    # Loop over the histograms
+    for yi in range(nParams):
+        for xi in range(yi):
+            ax = axes[yi, xi]
+            ax.axvline(value1[xi], color="g")
+            ax.axvline(value2[xi], ls='--', color="r")
+            ax.axhline(value1[yi], color="g")
+            ax.axhline(value2[yi], ls='--', color="r")
+            ax.plot(value1[xi], value1[yi], "sg")
+            ax.plot(value2[xi], value2[yi], "sr")
+    
+    figPosterior.set_size_inches(figsize) 
+    figPosterior.savefig('Posterior.svg',bbox_inches='tight')
+    
+    return
+
+
+
+if __name__ == '__main__':
+    
+    # --------------------------------------
+    # ---------- Initialization -----------
+    # --------------------------------------
+    np.random.seed(42)
+    beam_span = 5
+    i = 0    
+    
+    InputNames = ['Beam width', 'Beam height', 'Youngs modulus', 'Uniform load']
+    
+    # --------------------------------------
+    # ---------- Data generation -----------
+    # --------------------------------------
+    
+    xdata = np.linspace(0, 5, num=11, endpoint=True)
+    theta_true = (0.150064, 0.299698, 30.763206, 10.164872)
+    model_true = BeamModel(theta_true)
+    synthData =  model_true
+    
+    #plt.plot(xdata, synthData, 'ok')
+    #plt.xlabel('x')
+    #plt.ylabel('y');
+    
+    # -------------------------------------------------------------------------
+    # ------------------ Naive Monte-Carlo with rejection sampling ------------
+    # -------------------------------------------------------------------------
+    ndim = 4
+    mcSize = 500000
+    nofmeasurement = 11
+    Likelihood = np.zeros((mcSize))
+    mcParametersets = np.zeros((mcSize,ndim))
+    
+    # Beam_width 
+    mcParametersets[:,0] = st.lognorm(s=0.0075, scale=0.15).rvs(size=mcSize)
+    # Beam_height 
+    mcParametersets[:,1] = st.lognorm(s=0.015, scale=0.30).rvs(size=mcSize)
+    #Youngs_modulus 
+    mcParametersets[:,2] = st.norm(loc=30, scale=4.5).rvs(size=mcSize)
+    #Uniform_load
+    mcParametersets[:,3] = st.norm(loc=10, scale=2).rvs(size=mcSize)
+    #sigma
+    #mcParametersets[:,4] = st.halfcauchy(loc=0, scale = 10).rvs(size=mcSize)
+    
+    # origModelOutput
+    origModelOutput = np.zeros((mcSize, nofmeasurement))
+    for idx, theta in enumerate(mcParametersets):
+        origModelOutput[idx] = BeamModel(theta)
+    
+    
+    # ------- Generate & plot the posterior -------
+    # Rejection sampling
+    Posterior = RejectionSampling(mcParametersets, origModelOutput, synthData, InputNames)
+    
+    # Plot the posterior distributions
+    posteriorPlot(Posterior, theta_true, InputNames, nParams=ndim)
+
diff --git a/tests/test_model/SSBeam_Deflection.inp b/tests/test_model/SSBeam_Deflection.inp
new file mode 100644
index 0000000000000000000000000000000000000000..d8758c4a3f8562d0c4f521bf07e3f472e8a0e5f3
--- /dev/null
+++ b/tests/test_model/SSBeam_Deflection.inp
@@ -0,0 +1,6 @@
+% Input file for the simply supported beam model
+0.15 % b in m
+0.3 % h in m
+5 % L in m
+30000e+6 % E in Pa
+10000 % p in N/m
diff --git a/tests/test_model/SSBeam_Deflection.tpl.inp b/tests/test_model/SSBeam_Deflection.tpl.inp
new file mode 100644
index 0000000000000000000000000000000000000000..6bfc3fe96c62923b0a89bde26b5dd83375a418db
--- /dev/null
+++ b/tests/test_model/SSBeam_Deflection.tpl.inp
@@ -0,0 +1,6 @@
+% Input file for the simply supported beam model
+<X1> % b in m
+<X2> % h in m
+5 % L in m
+<X3> % E in Pa
+<X4> % p in N/m
diff --git a/tests/test_model/__init__.py b/tests/test_model/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..4287ca8617970fa8fc025b75cb319c7032706910
--- /dev/null
+++ b/tests/test_model/__init__.py
@@ -0,0 +1 @@
+#
\ No newline at end of file
diff --git a/tests/test_model/data/InputParameters.csv b/tests/test_model/data/InputParameters.csv
new file mode 100644
index 0000000000000000000000000000000000000000..a0ff5dcf2f2576aa57f06a6c696b42db6856d4e2
--- /dev/null
+++ b/tests/test_model/data/InputParameters.csv
@@ -0,0 +1,501 @@
+Beam width,Beam height,Youngs modulus,Uniform load
+0.157273329338393,0.315533780303244,31680127940.9143,10643.4004588287
+0.138141895643606,0.308218660642714,28321606595.7333,7647.68743220827
+0.149535905747769,0.306605844437465,30552276402.2584,9236.23189018043
+0.153383076910337,0.295497711468594,31761399663.944,7309.16022380918
+0.148200930653566,0.293817818770393,28018177950.2595,11966.8615497731
+0.155163413920491,0.298580429033683,26833968221.9714,12509.103705398
+0.15127259014584,0.316329725288591,35178534974.5191,9214.47221317446
+0.14875343824136,0.311973945216133,24850753238.6524,9387.67488771496
+0.151756833722548,0.296311569518993,25961923101.4477,10889.4840523989
+0.150728984042148,0.354436738364159,22957269053.1972,9642.72342687284
+0.150163255227266,0.306203460414847,22160128744.8397,14239.2076304184
+0.146098657456629,0.312141500135723,31358307777.8954,10684.3198694204
+0.159272350629841,0.307411055030341,39307062162.4182,9977.19695224498
+0.154839475948027,0.294281413758414,30242289491.0974,9702.12972655218
+0.15587358045112,0.280152827690146,23121684518.2006,9064.17404524275
+0.152972209050633,0.324842476073234,31014319169.6111,13895.0556840787
+0.142687801246096,0.299336640713574,29221071579.1713,8431.81667864198
+0.155313584912084,0.306312280867227,30769034883.6714,9073.18034281152
+0.150834807159884,0.30176628986798,23455841842.6986,12853.1092616226
+0.15705376912135,0.318983539423807,29806311279.8473,9118.90317351403
+0.142772783709399,0.304533185614055,34222907263.8048,11382.2856802332
+0.152741198796834,0.271688989917762,27609276746.9817,7626.82876146585
+0.149480548119323,0.29362624908125,32190969319.3093,10076.8351340425
+0.153258666471034,0.309588743653066,40530343248.3485,12446.8292730245
+0.150950743452471,0.299061649258384,29786444431.0535,10595.2245181033
+0.151515250705557,0.314919881171,30912221439.4448,12777.1495258022
+0.143045613699742,0.325217637957378,32274204094.4085,6732.64470989785
+0.145960779680579,0.292136380290302,38375526659.6108,11138.6558787486
+0.149904777869286,0.28223995061897,35737057874.7975,10171.4499182627
+0.14541236254477,0.304732753478261,34584184505.3689,9110.76485484268
+0.140565282328202,0.285119556474362,25814768425.2241,9527.04173113151
+0.158405425840665,0.308015378461452,29457140340.3715,13026.4591511358
+0.147062712940694,0.287337832761341,28492800025.1372,8182.37591617192
+0.152818491723875,0.280636382305268,27249509229.5066,9276.57511433137
+0.143616207885392,0.303759929152041,29419129987.4364,10425.3339540397
+0.155847218453832,0.28618257416615,31993300636.2147,8426.08722073316
+0.15954342687246,0.316243931263279,24378400639.9206,10764.3544204923
+0.145446629362724,0.299011083675202,24139851424.4138,10910.0972883477
+0.144982470930532,0.285625531209732,32086277045.9272,12940.1079293741
+0.147494497056934,0.321298053881594,24273332319.4764,8248.31760372167
+0.160195032193099,0.321915676919562,32975333654.6655,10417.2063092623
+0.137309165991511,0.298116959896924,36943293624.0055,11404.4362166986
+0.153526913954077,0.290642545532531,23183383282.8266,8787.98619061344
+0.155616452312264,0.315670464436449,34651222839.8062,7371.72772685946
+0.141255546713097,0.27711640150862,29441333905.6025,10486.9772189557
+0.145868162156837,0.274919344045281,26237098467.9988,9102.33162097466
+0.156799222936308,0.303191200616944,37812275680.1961,8683.27599768718
+0.166017619489282,0.314437909511048,28896826447.6357,9471.51814186481
+0.161566550394723,0.292739048587377,25986821393.9433,12287.6531594793
+0.139996427360497,0.283947071249968,27482201841.5366,11446.6800474391
+0.157174289654026,0.285901851646491,25026589940.0165,10434.2540235853
+0.154540094641902,0.311213582003469,27575409589.6803,6659.86098640352
+0.149658609379049,0.292217677889468,31927707046.4376,10459.5815760634
+0.141627898262656,0.319179715619972,28226735211.1794,9500.57518353102
+0.147966239036803,0.312559246019768,31412833983.5484,13423.8707590047
+0.146417892877244,0.284264506405543,33711403159.5534,8365.59237731792
+0.135739602437767,0.300131288541504,23021480015.8773,8293.26395631976
+0.142317678533382,0.287979438798621,37242563119.381,9457.16433749469
+0.153148034312336,0.295593875827393,22410952918.2401,12797.4937298763
+0.143693331808809,0.30653241553145,33489766918.8659,9140.36529591894
+0.153888677166311,0.333719619384251,17172519939.2396,9407.06817120616
+0.156393424534854,0.310733575198434,33700762681.343,6941.20428805412
+0.143283870154165,0.296935036626358,28414229548.7007,11413.7882194074
+0.145121539613129,0.307810601547503,35446287636.1414,8983.35607382967
+0.170478215712113,0.30285017392789,30818652055.0559,9330.43569992877
+0.15619566449174,0.283647684211104,32668196670.0694,7966.92253038346
+0.142818678137129,0.313271119115555,25528926115.9196,9563.90173552053
+0.150146061464561,0.266311658527246,23507435601.8333,11576.9270780127
+0.146304735918141,0.299477361633668,31439092099.515,10213.5755929473
+0.15771086267443,0.296320585973032,25566218293.3022,8948.01774693703
+0.158574730941766,0.317804400196918,28466206382.2162,10849.5366461918
+0.151969358904865,0.303322605055927,31567631190.9243,9145.82898523604
+0.149948412761577,0.316424821136921,26757859321.1251,10635.2727988085
+0.143467657753145,0.28761941006937,39175779957.8246,10666.3276493212
+0.144493598443067,0.302110162377977,27805892410.5279,8886.59299316267
+0.147119707263871,0.305059616735056,32825131713.706,7111.973146954
+0.157803467207671,0.324050150258021,26251033794.5305,8566.04881850651
+0.150700656560063,0.309320764607116,32546293325.1943,9899.72537629124
+0.147303237240511,0.28547442937934,25644983922.377,8282.26597928091
+0.15113630244456,0.297729010694382,27440203700.5214,5938.77861210632
+0.142931645845642,0.302530804410811,29955686676.0399,7690.54050733153
+0.13776028865028,0.302419812443277,30283418715.9688,9169.01881990784
+0.147572751645141,0.288754682606876,28937405296.7787,8160.22671126916
+0.155353990426,0.281768079489678,36674723305.1636,7478.80530316898
+0.147768073795944,0.298428862881102,37442071230.8482,9627.27056982313
+0.152680996934355,0.300015568646548,27905946579.9334,9014.18193991756
+0.152353469656746,0.286079023378992,34495938356.4371,8834.4651803988
+0.14041354596877,0.317737845979352,33928304134.061,15496.1584436295
+0.154886289438715,0.312425262384327,28959300567.931,10110.9049361551
+0.157196478266411,0.314109663738522,23770915234.9911,12024.1611043864
+0.156429524923626,0.318331697787117,23859315224.5401,9622.11606837092
+0.159408046943803,0.306440352463408,30949255114.488,9356.02692975176
+0.154921970374684,0.294666133650452,26747843736.1099,7888.66581776135
+0.155444537253361,0.284527994765782,30389410414.6764,7587.7578247096
+0.16324433302338,0.30116815314045,30965683832.3286,9132.21092696043
+0.143342180794508,0.305330595490664,33292179725.8845,8801.54892844872
+0.149351883173185,0.31672572901749,31592367300.4922,8575.91166575094
+0.150879311611769,0.300264613649309,34270717998.8489,9055.51085395367
+0.149971527259755,0.30729429333044,34182193600.5918,7565.83925996352
+0.161801712352618,0.329120456262822,37688940135.671,10723.3964954116
+0.156728097798797,0.295916567129622,41214215256.5782,10838.3737156539
+0.147649034150431,0.291420231322581,31063176327.0991,8194.67834047271
+0.149864390976486,0.310459332035944,27124987538.8362,10402.6096940959
+0.139856450734421,0.305506872717147,34834324941.4621,8852.29791650357
+0.155543852531798,0.33051036674213,27734159138.2139,8991.71206127208
+0.148643170161142,0.279369237685049,31788242912.8817,9176.38805581485
+0.132758090787141,0.301591931805573,39816975494.2681,11215.3405623887
+0.148369319847746,0.284938383563526,29019739795.4499,9575.75496199339
+0.155233171281441,0.307157438220847,27204445537.9243,9482.59272438166
+0.159001862993053,0.294876167312886,31126150525.5767,9031.11628261542
+0.149431278939188,0.324275589150095,28036926739.2453,13158.9402066015
+0.145721730791658,0.293842855904684,23312438705.6075,9208.62931697676
+0.16068066818176,0.286584248289735,34396018909.6039,10531.9955592419
+0.166385350363139,0.287855084465017,30355516030.9627,8862.64682342043
+0.158444293076054,0.297316839083123,32636393308.8632,7448.65379575885
+0.156029697492133,0.291094053887777,25936457099.3931,12407.624687375
+0.142238989957683,0.267668231562368,33934825977.7682,12200.5347233452
+0.144192645256195,0.303256866955325,30839267057.762,13647.7207707158
+0.155684066134604,0.301115871135244,25081262895.2011,10258.3950382817
+0.153603769061412,0.286744283415495,32315160909.6734,11363.4634429674
+0.136872740484988,0.264637877372499,26132254081.378,12015.3615277033
+0.153317166033567,0.339083660589451,35108819613.3909,14161.5126582691
+0.155073828704837,0.311376272121216,30303853810.7035,9872.51826712031
+0.157703489238461,0.312641457686603,24924582925.6272,12751.0438209744
+0.145116114690371,0.301301430181125,31538628028.4122,16387.741699019
+0.144693123400298,0.288969049057902,26703122638.8738,9428.61601265116
+0.145807081415191,0.307366093674031,40137637817.6518,11703.8242380008
+0.159783890144466,0.309095801667793,31277628561.9125,11767.3743279517
+0.151915322653206,0.333430730955544,30455022697.403,12476.9229778322
+0.144456279237872,0.294156592298661,26407187720.3227,11366.812164621
+0.147020153695185,0.305221213774026,25464649331.1153,10612.2699803675
+0.144986238690833,0.274503191758496,41799771729.2918,13573.3278951273
+0.158916683987151,0.319305920963597,37199076090.1854,11343.0746670132
+0.141824325363403,0.300880878079949,30906219186.9522,11742.2866279647
+0.13524891901158,0.310066379853646,26645973330.2989,6496.53157802799
+0.171080581126727,0.320436365702539,27313017023.5024,9586.55573110094
+0.162926956782468,0.301249297097922,29091870952.4364,8143.73623884407
+0.160571728702103,0.289552711076286,30018535976.2705,8897.29001806582
+0.151878366429926,0.314855922125476,31483059721.982,11701.982700612
+0.14893234568713,0.326847635981545,30323049447.1572,8725.85255562028
+0.165870232144203,0.309422039067453,32411403130.5673,8555.00902772552
+0.165153309985352,0.308084564518293,26049502835.3935,11908.8120591846
+0.147592790459642,0.289948793535627,25633332343.3763,11240.5925893102
+0.178749455014694,0.29015007311364,38974028493.7221,7977.16464915931
+0.150517959650212,0.285363659791868,34780916954.2103,12679.8599186052
+0.142963519152829,0.301003905259395,25716994648.8892,9254.85722570708
+0.140949996429799,0.301584936697542,29177234474.2837,11331.070153056
+0.140491956310065,0.322502040879565,29064989305.3909,11084.867258023
+0.146030650925909,0.331476319471251,29743581448.1238,9640.54548526117
+0.164034152089155,0.309971888373434,22866032269.3914,13227.3473592741
+0.164390197475592,0.284495471087793,29891258037.3069,13364.860565086
+0.152019714372916,0.319716482915687,25909708156.664,7208.58033911451
+0.14550311191048,0.298178603313427,31652697078.4391,13845.1937954381
+0.135549350634415,0.306928043431475,22616733599.3245,8959.58487916659
+0.150472588254181,0.308981409289052,36166385818.0579,10359.1152497346
+0.131798120830273,0.300964797747775,34904955743.557,7132.82029333546
+0.15229373994684,0.290310363411516,28786918615.6035,10242.1457383615
+0.142604298388527,0.305174156684061,31346767435.9883,10572.3827291139
+0.158034625084875,0.304445316492524,28277221222.6945,11828.405566501
+0.140248898559146,0.308880969242891,34048720324.3117,14147.5061939607
+0.138636581637615,0.314162126075986,26681594987.0349,8110.67439725928
+0.158257417818384,0.291672481989156,32233917146.3581,12533.8876604845
+0.146531370316148,0.319960822532214,24103357081.6224,6835.25595584062
+0.146854571588662,0.295938269603895,30494829932.7842,12658.9183935761
+0.149810370546442,0.29248971489796,24169512602.7517,9925.55842658985
+0.140300090972127,0.289829587781959,32894671648.7539,11604.1066215874
+0.159934737117546,0.315330982962802,31226042482.442,9539.8737163492
+0.149308035724648,0.286913805960228,34975048336.0735,9045.72409623386
+0.146358718445446,0.304655536716797,32220959449.5097,9831.05722730184
+0.162407555362241,0.327359790742973,30527128346.3198,14057.6120160167
+0.146679935279591,0.295855491303752,28107453588.155,6677.85746583957
+0.16009281717824,0.285089517625475,37119244850.0013,6061.58392002997
+0.150013643567002,0.290479974020889,24744317422.9857,10828.9520848131
+0.15400302526463,0.313644346332769,31683520203.136,12566.4235379187
+0.14799675745249,0.288118875273482,21812135975.0026,10518.3018998575
+0.15368177261824,0.275390329530766,32004172800.1284,8239.72910736861
+0.141735406781766,0.311665057040245,27278297982.2303,10256.2978636918
+0.148538063954179,0.29767351561188,36322093303.9344,9765.52913922952
+0.146336705307573,0.306131720352788,35587282875.9364,7708.73881468646
+0.161768303412537,0.320804737472824,28656878905.8989,11542.3825722584
+0.1475402030122,0.318490253071998,34123757318.0155,11226.1142219631
+0.142040976001781,0.28378820651412,21411008573.8388,10474.7438182351
+0.136244316848179,0.273611823542572,32283189611.8502,13019.4591015999
+0.146166399908816,0.305645111325034,28635343227.5101,10175.0162161685
+0.156628976115945,0.279806223876601,32941669778.5597,10234.1076237032
+0.167609818644296,0.294412182516561,31027245704.9106,11315.1989723488
+0.141544003234651,0.295709825198121,33599675894.5981,8774.97273686886
+0.145745764308297,0.290010603556372,24026335385.776,7896.733750917
+0.143751219412098,0.274176711147232,27870292073.4879,12121.6237779816
+0.161317132800756,0.289393802582935,25746779410.5279,10619.777314437
+0.139663543109367,0.301740986235439,30191232912.3226,9570.85271767098
+0.143497964903255,0.306625153084975,22303922785.6408,11065.3724266436
+0.140747108734094,0.303421251513264,43325724188.6937,6762.80181427769
+0.14690787706703,0.296772713694181,27578519734.1774,6436.68414037373
+0.141933647449646,0.29981153685288,35547820888.7637,8922.34475186232
+0.162765673143484,0.294722550171461,30737677391.5392,11462.7341691308
+0.155919347437603,0.300396752963097,27148216661.8382,11163.6638230824
+0.152708691328423,0.297130543934763,39932592556.0546,9401.74579781728
+0.153200337960358,0.286270187030168,27645424991.7262,7771.19257820927
+0.13951239350575,0.305569638660813,29884978251.5836,8514.79427350113
+0.149196442790377,0.267219511412434,27398049603.2468,11871.0802036843
+0.154638442792692,0.293184293670212,27986475908.3902,9935.71001166969
+0.152447606201619,0.310594437589559,29854826548.7466,10563.6038624309
+0.149585725456874,0.279941063872111,28201360653.2733,12981.5251518045
+0.155127279309965,0.313801191719019,21238925634.0642,7942.78972227062
+0.137615128791078,0.274763268574346,33758920868.6351,10508.0345160469
+0.15022939442942,0.290542731198295,24687198593.7195,8370.91207550888
+0.163130781323811,0.302979309378258,27922252570.3502,9951.81513153565
+0.141757168283654,0.289079566209257,30097369633.3866,10773.9759461129
+0.141950943952917,0.291168940007742,32740887493.5739,7397.21626316554
+0.158721197225937,0.278887022015647,34046271691.8816,7427.69597071116
+0.157104789151271,0.290344458824082,26590223554.2241,12366.6948647974
+0.145910595873645,0.307112749276585,35741350135.0596,10445.533520971
+0.14424111769406,0.276827494060869,32760100157.8669,6246.43792746647
+0.152156777290903,0.303681431549114,30660873410.1771,18013.355341855
+0.150419192005348,0.289468562679617,26453215862.4134,8758.2461212974
+0.140165115439547,0.302162932520594,33342081719.9569,11306.3698765769
+0.136405594649421,0.295372031095709,45320635233.6249,10714.2151022764
+0.147703703971257,0.283373533402401,27711835778.761,11261.6154001386
+0.144177197834844,0.284138016537603,30269992024.8472,12163.9482915759
+0.163841822737971,0.28044288934363,29282853581.6705,7857.54937573291
+0.151933846296297,0.306986331528307,24316749829.3431,8541.99178918038
+0.169611267791722,0.299417073659056,29365026997.8908,12229.5326105313
+0.149376164813404,0.31889683760169,26872104378.1719,7167.1387206059
+0.155465542252217,0.300531961249053,24001047604.7826,7348.12498272079
+0.153766354056938,0.29835042013244,31723954278.5003,10306.3238387922
+0.140871130781504,0.309316873222476,25444638181.0368,8663.30974293663
+0.164257285148077,0.277250846249811,33605743163.1188,11812.5608068274
+0.139012789504243,0.302730202500653,24797039626.7561,9489.72983238277
+0.14462897769696,0.296015475790565,29498400919.3697,12045.0792430055
+0.159137851604808,0.298896171612515,26059320940.5395,8029.17811525644
+0.148295728840691,0.287067218534779,27240988731.0165,9922.52802031716
+0.148406718870034,0.283327796702623,25413529188.5484,8390.76638520678
+0.142503523945173,0.304980590139419,24570474312.7041,13739.0233900656
+0.142853726853747,0.295672473603494,31001135316.9312,10282.0094855662
+0.144322966397739,0.296182850058703,32703014732.5564,8338.37457697189
+0.15384245931867,0.312932303873594,35255303999.3495,8607.03565458002
+0.160832578094778,0.310545079962988,28563806631.4513,9436.9269732311
+0.161508794374703,0.305957007097081,24991878980.5193,9294.25681074514
+0.14262066600762,0.32143695821225,30631612335.2941,11506.6017690493
+0.162006930748886,0.32810998989029,23531919940.1406,17051.6979411276
+0.139807722913219,0.295136305369661,23660016943.8456,9221.19736837077
+0.154079159706849,0.31526790433393,32052638075.5987,13496.9037381418
+0.150587722696425,0.287248670206595,30789831195.7869,12465.345419553
+0.140059280758988,0.285692908382917,29765364082.3971,11045.3665942612
+0.134726803208553,0.313930447682043,32782269237.3186,11943.1190700103
+0.156001784657353,0.291310263810375,28814641901.8376,14870.7322986095
+0.152486267636273,0.302292243111617,28241143017.8744,8083.71819340317
+0.148427854839199,0.291789403962934,25490707457.738,8500.37700676848
+0.146949575031678,0.283139204953503,28789615881.7061,8528.51568142831
+0.141088618973449,0.288623202204042,28730556312.2739,7988.35944422175
+0.156574078653449,0.295198458333104,26496216450.5345,13197.5269821292
+0.148884296421218,0.320174164590526,33028627021.2738,7841.73869906627
+0.130654321046541,0.317413490897922,32433775191.3202,11200.9757594447
+0.152063000811867,0.275893500520871,24514677718.4596,10159.837069531
+0.147417666564491,0.326537106504607,26950943530.4809,6972.97174905202
+0.152419469921069,0.312969039436923,22362685456.53,10978.4417034758
+0.154778595316251,0.323378744821839,32468714422.3353,9377.81400039928
+0.154374080309165,0.277861905970155,24615234332.9469,10011.0403331212
+0.15067060409777,0.3057073993981,26615870243.2237,10055.8082135725
+0.141183051240506,0.278962770167345,30599901573.7915,9717.4520975498
+0.145308227738082,0.304158309259055,30047780281.0423,14336.7314441672
+0.134120789625503,0.27024410239022,24773257337.0596,8271.83531439237
+0.156864516636061,0.323751526133761,32924420222.9111,7949.6109349774
+0.163338165214429,0.289734155875244,29598217826.7513,9603.88582452165
+0.140829625682904,0.295435836001877,26146106692.5326,8688.15413286153
+0.162582098917174,0.275551610739853,36065560431.319,10052.8400631481
+0.157878130686594,0.317188697433945,32592122349.9688,8168.92671684849
+0.148183615981483,0.279594846803998,29129295775.4739,13103.3372477757
+0.147907534881314,0.300799112516381,25850639601.9887,7534.69611663268
+0.14968391654556,0.311943264020833,29480440226.6796,12252.5037378721
+0.146128501862651,0.278672212188287,33412676049.0758,10786.6771735502
+0.150103353225135,0.278253391541213,24220311877.1177,12327.5745833981
+0.150074684187344,0.287121828370324,28994892057.5504,8648.84148955468
+0.14683483875169,0.294120656802448,28905324934.8576,7082.10218897132
+0.165606784431945,0.269669624528237,34602526398.1594,10661.8965981548
+0.148689124733862,0.314561794247153,29634191486.8998,9346.85637807176
+0.151358631426128,0.284657428215728,23736666587.9132,7417.64418085737
+0.133331198031345,0.26176813774115,34314961524.532,11475.0897057398
+0.145567567942322,0.325689253788032,34331644204.9519,11788.3646682269
+0.146594186821587,0.299261717937374,37729301330.6679,11027.009442185
+0.147453433746717,0.298778920735219,36859786309.0759,8708.11792523267
+0.149102426206807,0.259373799461345,33547287919.1584,8783.9625111026
+0.151623898156857,0.301821448559606,28080646298.5216,9802.75521437258
+0.156122303656545,0.293433786255281,34745779710.566,10551.5413313478
+0.148847117008719,0.313502045001774,27097953213.1212,10118.5979104462
+0.14551670738104,0.280780861729708,29348709173.2143,12718.5730593904
+0.137010035448671,0.311436379937132,38123893321.935,8214.294242192
+0.145665233026947,0.292805539324621,27343710248.8336,9262.61847613033
+0.150279095200714,0.315097575343346,29619619189.2081,9739.18931448694
+0.151029928828406,0.313393717249974,33189379205.4694,9316.90756309644
+0.148501693605022,0.311754921035644,34515325311.996,11169.0269215547
+0.148063785052129,0.287428263586439,26322748885.2249,11008.7878580321
+0.149275593785824,0.303069290837567,25277777519.1231,7337.16075091357
+0.146498262871579,0.299215545299679,30593351482.3813,10098.0794550375
+0.139180987640651,0.298657900333775,20674535433.0245,8259.15901069209
+0.146201249082193,0.297831847103594,34435569762.3658,9419.67852071169
+0.153797342355889,0.296474030674405,23596313498.4242,8223.71111748972
+0.158811797760696,0.276303514404863,33132427757.7124,10023.5074399398
+0.166929847404766,0.281989332838504,29521300478.5762,12597.7130815782
+0.143387088836529,0.296748945871033,30706781604.8191,9026.48333675389
+0.160756947449849,0.288006237983678,27062817673.6522,8930.4307417607
+0.143738664441836,0.300678932364604,31867899399.147,10916.9639929661
+0.147332754816306,0.325354232786207,28695803479.1231,8119.22655678406
+0.158149587250985,0.29352118587437,38940884954.9024,11100.0143809838
+0.161072047392909,0.273054250446742,22080530156.9053,12913.8444077502
+0.147816076514506,0.307707739060996,38590282566.5248,9692.84110366063
+0.149711958206179,0.300526836042729,19553544041.08,7870.12578564509
+0.149443430191605,0.297563132987058,22525555894.3728,8473.72535925053
+0.152396395751927,0.304311743659207,25584755531.1056,8700.86688019806
+0.144726604203436,0.302481209961088,33017679994.4972,4545.28333487137
+0.139568114473001,0.276206484013425,29558831312.0409,9552.80196266229
+0.152904264879663,0.298568707594572,26000032849.5489,11629.6768976349
+0.146978312500106,0.291837298175202,30479214448.5094,9883.22969164853
+0.136001582916677,0.316969741482022,26976813727.1625,8635.93378446992
+0.144417038930145,0.311102941468614,37321966441.3028,10299.0494886845
+0.147691722940839,0.305408724706339,31185491624.5078,9309.06831016026
+0.144098686674543,0.299131203083666,31248484536.7037,10867.5992035113
+0.156889515057216,0.313763950451683,26570638260.0934,9442.21328529448
+0.153298326199933,0.287505166793124,36617009906.6631,7035.75061023748
+0.156265602582663,0.297180393839217,31205134136.7027,6905.68707875947
+0.154309486130716,0.300741010120398,30089460449.9721,7809.05899017276
+0.150207219780921,0.3437070791156,31084991235.4645,15749.8968580576
+0.141016274215968,0.301901171653476,31168558334.2551,9861.37013617544
+0.148461286200015,0.310382048405539,28154096542.2697,8467.998984442
+0.149621990983232,0.30973785395997,25236755904.8112,10813.3411645973
+0.142385203800476,0.307540651894799,27948622225.2949,9722.57450079029
+0.159888603909307,0.286791575642425,26174181825.6395,6315.41579104616
+0.154156568191422,0.313076573597957,29997139971.5014,12625.4358476183
+0.147880296511805,0.288902570963964,30131481321.2609,10949.9772439881
+0.152161298284141,0.282840936431729,35923471513.8102,11001.561565607
+0.149832428206666,0.301972450753568,33527849693.7337,7488.17793685663
+0.138099784049842,0.29795644306993,33114442659.6387,9517.57368620336
+0.139373351012065,0.289213986365913,27181256935.0142,8323.87381825588
+0.15748117507515,0.30433664700403,32510804900.1524,9600.31836974254
+0.15167943820917,0.312196289020486,28297141469.0314,8822.33341005447
+0.14398250721979,0.282804824303219,27818056023.2665,8304.22762337295
+0.147178122274735,0.289657016405575,31822448629.225,11728.2972333024
+0.138298090284907,0.321844482556272,33389676831.2039,10269.8701555552
+0.137461180420535,0.319476210909299,20042509953.3171,8748.92048803217
+0.127934082797514,0.278366449452792,25157596173.6116,9674.64297918472
+0.150778570016323,0.292394974766242,39593560939.6711,9970.2593353108
+0.156357978818677,0.292096183534138,27516589045.614,10465.9111129237
+0.149030059450824,0.292870338984461,30062927856.2886,13278.4232886593
+0.144007844493369,0.281119734092956,36479937999.978,7744.23904409752
+0.15578056304829,0.299955365771873,33206426054.7403,7073.91517410933
+0.146251424514169,0.297497749962731,25320229352.6032,10202.5450850356
+0.15353318907439,0.296999722726317,27494915704.6445,13760.522822452
+0.161170957975189,0.29503821111019,26297896362.7474,8138.45052258253
+0.150383177739087,0.285821422173983,35814736403.5761,6866.68984439712
+0.152574894409136,0.294035535693469,28072128583.9315,8319.0397914393
+0.168522038167896,0.321091157981203,31608595489.5325,9681.52920193895
+0.149172271143794,0.317932862033168,35228543073.6915,14683.6782188786
+0.148249231483185,0.298245624867422,23826675799.5549,9184.56824775748
+0.146602581015645,0.282422427382467,29664114163.8829,10125.8359334482
+0.154399791232818,0.282656028494526,36413596469.5173,7798.01415043298
+0.153132158835756,0.277673383179352,31506221868.7804,11586.1290096256
+0.152558163016165,0.298810517293613,26799822776.3494,12128.0243317589
+0.155293764779385,0.293009843285031,27743947292.3605,7923.8601934309
+0.157525335024752,0.322213886036221,31844694871.4807,10388.0617485759
+0.141361973527039,0.272609948263857,25127159284.3149,8617.25556008705
+0.155730079277904,0.291970217341516,30175393818.0924,10588.4888166648
+0.152801539540369,0.329944976034292,36771128201.5777,11270.195074517
+0.147255585997738,0.296678012083276,28390960238.3508,13606.637836398
+0.160335772920394,0.304088685866913,42413993752.0304,9667.86043288291
+0.154979845603637,0.286374612241093,33285925368.8294,12272.2377910996
+0.145346392398361,0.324445026846191,28503125537.9025,10895.0145340957
+0.142114599394599,0.310981240764226,33657998215.2752,15224.3181767936
+0.159529236509578,0.30136213867047,30531708801.6728,9988.45525809696
+0.144906202326738,0.30847626518161,26373755956.9803,5686.77507753211
+0.154602772678031,0.308709067651343,28984368380.612,8736.03600922617
+0.153714023977682,0.310227713254962,30741950604.4782,8739.78671957748
+0.147800474772948,0.303460141919249,25313996860.4584,8581.34176774076
+0.141468075779163,0.291463674687089,28389240997.3776,8999.44925778845
+0.15168799562776,0.30263104223955,35317961357.3667,9806.13466292437
+0.154457604098322,0.303915356862367,37558172445.8953,10020.3046357807
+0.15209369419696,0.317469120821843,38745779248.7506,7700.47517474236
+0.153019118794229,0.304935300993851,31109701063.9879,7821.13286380097
+0.143945755009935,0.28851109376238,32506543153.629,11429.1804981224
+0.141313252521479,0.276725754037583,28578422624.7262,8624.52355556162
+0.143808957995844,0.308149049490112,26537421870.3139,10063.8662571128
+0.138834328013808,0.298032085438411,33831871576.3839,11985.2212962614
+0.152998459762724,0.292649589485575,28612754652.7509,8444.78552670142
+0.136753352634907,0.268709369635377,28591177724.2902,10144.8076874096
+0.164782817701042,0.307668616179422,35657646056.3282,7293.94357828163
+0.149213937789951,0.304590150487266,32063453319.0017,9794.61058320691
+0.150918940458964,0.318080862158793,35094775542.8198,9086.10968937964
+0.137156948917142,0.288290331724406,29681625317.0269,8405.55604807675
+0.147081671191395,0.295292260454245,37046275380.5102,8877.49347718557
+0.143148504498187,0.272327184654124,27047650552.0192,12828.9058701963
+0.143091381199974,0.281364799887477,26216548154.5213,10375.6608929833
+0.153644258015067,0.2983711783601,36004958988.5469,9852.57584133203
+0.14907788276293,0.334982876263667,27430094592.1137,8092.57872285205
+0.138502143508071,0.294321945119696,25855354928.5782,7600.77141812539
+0.159067738472933,0.315834101436745,21648559148.0636,10349.5007273758
+0.151188402441721,0.289250702860474,29185070790.2437,9784.17664596919
+0.158305862058553,0.303621017969864,28005383084.5277,11648.0416088339
+0.168271709820287,0.316536864249261,24338598652.3236,9658.97734306882
+0.144063814398441,0.30583284386032,50641071405.0952,9082.06621908118
+0.145192692768152,0.299748265151407,29823874279.873,9302.88000710362
+0.153940292897684,0.311079546126552,27012940146.3964,13463.9779318598
+0.151483729495252,0.312721877386976,36272208054.076,11135.0667156116
+0.147380433698416,0.293929599723711,28437481607.7464,8524.47320367189
+0.162122614912126,0.294985451163715,31752673092.0134,10933.88144783
+0.152257001274927,0.294834183446277,23222604683.0117,14807.0342144437
+0.157933829264368,0.303563144311074,30412298124.5084,9772.29334828514
+0.144531146003574,0.290747859038516,29919094807.9357,10856.0036616043
+0.158659716630433,0.300323571930039,28721665235.0119,11122.2629065513
+0.153089063662168,0.264158484437419,30212100094.224,11883.7422611746
+0.138927618649444,0.322814510832831,26915009255.9415,11853.6483054323
+0.147229834430864,0.308622338388949,21170020543.6864,8596.50614344569
+0.133418507569758,0.304869498194058,29147282552.0832,11499.4473556866
+0.151420564636813,0.308507002998153,36203601492.4393,13303.1747837124
+0.149018319211979,0.299650871796079,35489721329.4256,9956.12267073045
+0.145822062228831,0.270563349462532,29041497752.2454,10981.4658658939
+0.154754385676768,0.309864931108516,26654718376.2452,8971.74845944146
+0.154224692610862,0.296906954370733,24494508070.9794,11533.3227848473
+0.148792283827022,0.288235975875554,24892155199.795,8403.27411073519
+0.152231358446055,0.299898677785938,31959797098.6765,13984.8435439766
+0.150640407977044,0.309138973572498,29257509935.6973,10093.1012814003
+0.144879092346924,0.282289250463014,27338634459.7564,11287.1941690693
+0.145062794614511,0.280884910622208,24438935689.1406,10321.4040939336
+0.142435852877008,0.283017444142725,28137015910.0454,14533.7123126232
+0.156138114272839,0.309615963103824,32371962444.9011,9908.63913260548
+0.150830935152853,0.315790267570476,26437566568.3913,7736.2708117426
+0.148042853082672,0.300179655288873,36529586156.5389,10695.477054769
+0.157609406997591,0.294525032898103,32115695985.8944,9463.33462546876
+0.145987669150502,0.293398264006699,35915469792.8416,12186.4043512371
+0.151244826107673,0.290933844950059,22823631876.1552,9341.29403772814
+0.157375323480448,0.294548203834106,21848534655.126,9282.92810524571
+0.151544690595986,0.306061561539238,25071798252.3265,6144.17563683288
+0.155570569405386,0.281843374868283,30422993729.6747,9192.49604706162
+0.135177511809392,0.3275263360972,29400623346.3649,9749.2133205955
+0.143891961515161,0.293742789854574,33441276893.7753,6585.20173068403
+0.154017506883496,0.302785155041972,33886553147.5078,8019.91531627141
+0.151573448358683,0.328571564171138,27667474331.8063,8354.60774238756
+0.151397599885125,0.293198640156257,26808266555.0777,7912.61314972827
+0.16219539552131,0.320346032114897,29099770341.5259,15123.964425265
+0.160421661671093,0.311535455644166,26336547192.0255,14490.6042575159
+0.15930985402496,0.279283711176277,27891543730.9575,12306.1531234628
+0.142152845458048,0.290120288311067,27769274000.8702,8956.98340316297
+0.140640652031542,0.283550540054299,26089442192.3276,9371.00115355881
+0.159696314145766,0.281282839499001,34894993049.5857,10189.4736994527
+0.154247594721958,0.332452402327918,25693009094.8722,9157.74925952182
+0.146765634547782,0.312299611842962,33226960799.8606,10547.0861501554
+0.150546535178386,0.310843802495607,23912308090.5509,10220.1958668665
+0.153435194481,0.284796192164171,26889930045.489,8051.77677121484
+0.144775818078854,0.320749790451691,32152227814.8391,7193.95701887044
+0.148574244804963,0.278058236645859,33788569810.8046,9844.30815584419
+0.160130411289767,0.288847052620634,22710878276.1777,6809.21183520192
+0.143266561401909,0.297765833264355,29538213569.3869,8073.52463991396
+0.151142828847483,0.292589443350414,31317390660.5679,7504.69875160773
+0.14529008170744,0.323269170275935,24652828240.1179,10496.700988042
+0.151761418792441,0.299583723199603,28189692875.6684,11077.8626818416
+0.145220409400849,0.330771738720484,30679807931.417,9247.94966633806
+0.153479054401101,0.291213637004116,29730622736.8425,9507.73849628225
+0.15110029250465,0.293277559892336,28753375848.9323,15828.3453066145
+0.164866272815925,0.3040566712001,25217477908.4129,11923.9856704286
+0.141604096317137,0.296128981865047,29324717581.0463,7543.84549698328
+0.142269706005752,0.293105057778799,35008741518.9392,7611.80943280602
+0.15666879186287,0.308768622843998,28358845757.3021,9817.87801048301
+0.144609422025287,0.314759177696342,32343240705.9386,12385.0813356203
+0.143549060510254,0.322570150228815,28545227573.0469,6566.24485612735
+0.143220182960968,0.30593734429988,27382980255.9738,10741.887730612
+0.158506003966431,0.281647714300108,32606606302.6475,11557.161739249
+0.155045233535355,0.273448412738736,25765148996.4945,10753.0714492957
+0.152642960256668,0.310180000151139,38456677718.1813,10702.1261946819
+0.134442378940421,0.306781891150097,28844345054.036,9893.74413761009
+0.14673454772039,0.271069845761203,27830996212.9927,8455.82449377057
+0.150997227684,0.302277769278801,31904216911.1582,12075.5453592402
+0.156497665033397,0.297271136472531,35365516119.4633,11670.4304476736
+0.163522550277898,0.296555482428988,29966974923.683,8011.41634897212
+0.138441659198344,0.296437182394639,24943406490.7135,11034.0261758343
+0.156980030685497,0.288386246441662,37996598485.0547,7259.76788701387
+0.146448585183699,0.326021068333078,28859576330.3974,6347.78446496704
+0.154480371291303,0.34059380219663,38246083609.0963,10365.0846156136
+0.146640325543983,0.28410368191154,29229733053.9203,8846.26625904077
+0.148081765633323,0.303953692560935,34150942417.7235,9733.34679818962
+0.144353482479687,0.302946713446696,30874239027.1629,8055.07531962335
+0.139341054736863,0.308363718339144,27000266143.2299,10038.1809759212
+0.137943864376295,0.329606346001542,29312418727.5003,8492.02575027124
+0.150355225230765,0.292350602785877,34698271171.2325,7238.0919665121
+0.139114935247758,0.290950560709462,27682089799.1468,11193.0063237236
+0.149763104893321,0.285220908036993,40899862195.0927,8905.15101172936
+0.151829817457749,0.318720194878174,30153134534.5921,7762.43778496707
+0.148963974980993,0.301481016867496,31452212322.1162,8671.49511742863
+0.148147417628754,0.307882725146699,40715116609.3341,10001.7274504014
+0.158085115114716,0.306844215039608,26488227716.7114,7672.20496117991
+0.157435414209682,0.317049981537393,33984837400.9298,11653.2200379032
+0.148339559315757,0.291597528973301,28341715219.8094,7004.32819019267
+0.154670278646553,0.290839719758839,43067997755.8632,10957.7956699207
+0.148674866901811,0.286475217914869,27552111473.3895,10796.7611544454
+0.150334042046705,0.31606265951875,27159627819.2843,8816.26731299458
+0.15131673597729,0.336124669614247,32857455411.3572,10316.899970278
+0.154116714268293,0.297403512395981,23401127176.2807,11797.7700178677
+0.148801464041723,0.291946490875356,25366453906.5981,8912.03370911009
+0.16095546118095,0.280313249427881,20847038253.2782,10138.5041418307
+0.144830286563319,0.287782389520942,33066904259.5015,12098.0284549783
+0.145619443540745,0.337571044376165,31392265663.2585,10335.7401104771
+0.152857012959213,0.314361511096435,29707241152.0273,13084.3830817813
diff --git a/tests/test_model/data/MCrefs_MeanStd.csv b/tests/test_model/data/MCrefs_MeanStd.csv
new file mode 100644
index 0000000000000000000000000000000000000000..e9592bf45db032790f95259b8cedd7f961e70a81
--- /dev/null
+++ b/tests/test_model/data/MCrefs_MeanStd.csv
@@ -0,0 +1,12 @@
+x [m],mean,std
+0,0,0
+0.1,-0.002623091088022,8.06E-04
+0.2,-0.004962749295994,0.001525818175278
+0.3,-0.006794367435948,0.002088956887598
+0.4,-0.007957511802197,0.002446570522429
+0.5,-0.008355922171325,0.002569063468612
+0.6,-0.007957511802197,0.002446570522429
+0.7,-0.006794367435948,0.002088956887598
+0.8,-0.004962749295994,0.001525818175278
+0.9,-0.002623091088022,8.06E-04
+1,0,0
diff --git a/tests/test_model/data/MeasuredData.csv b/tests/test_model/data/MeasuredData.csv
new file mode 100644
index 0000000000000000000000000000000000000000..5774f51566a8dfc04976e30e56fbca293ac296e4
--- /dev/null
+++ b/tests/test_model/data/MeasuredData.csv
@@ -0,0 +1,12 @@
+x [m],Deflection [m]
+0,0
+0.555555555555556,-0.002507972252554
+1.11111111111111,-0.004744950561407
+1.66666666666667,-0.006496185008909
+2.22222222222222,-0.007608282796739
+2.77777777777778,-0.007989208245903
+3.33333333333333,-0.007608282796739
+3.88888888888889,-0.006496185008909
+4.44444444444444,-0.004744950561407
+5,-0.002507972252554
+5.55555555555556,0
diff --git a/tests/test_model/data/MeasuredData_Valid.csv b/tests/test_model/data/MeasuredData_Valid.csv
new file mode 100644
index 0000000000000000000000000000000000000000..426ba7ed46ff82621baadb3435f79c2a0f47810b
--- /dev/null
+++ b/tests/test_model/data/MeasuredData_Valid.csv
@@ -0,0 +1,12 @@
+x [m],Deflection [m]
+0,0
+0.555555555555556,-0.002623491033022
+1.11111111111111,-0.004962750295994
+1.66666666666667,-0.006794369935948
+2.22222222222222,-0.007956511802197
+2.77777777777778,-0.008355582171325
+3.33333333333333,-0.007957591802197
+3.88888888888889,-0.006794363675948
+4.44444444444444,-0.004962749995994
+5,-0.00262091088022
+5.55555555555556,0
diff --git a/tests/test_model/data/myBeam9points.cpp b/tests/test_model/data/myBeam9points.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b78b641e05f5fdfd8caf6d9eff4bf8d1e9c790da
--- /dev/null
+++ b/tests/test_model/data/myBeam9points.cpp
@@ -0,0 +1,131 @@
+#include <iostream> // for terminal output
+#include <string>
+#include <fstream> // for file operations
+#include <cstdlib> // for exit()
+#include <sstream> // for stringstream
+#include <cstring> // for strlen()
+
+using namespace std;
+
+// C++ implementation of the simply supported beam example from UQLAB: uq_SimplySupportedBeam()
+//
+// UQ_SIMPLYSUPPORTEDBEAM computes the midspan deflection of a simply supported beam under uniform loading
+//%   Model with five input parameters  X= [b h L E p]
+//%         b:   beam width
+//%         h:   beam height
+//%         L:   beam span
+//%         E:   Young's modulus
+//%         p:   uniform load
+//%
+//%   Output:  V = (5/32)*pL^4/(E*b*h^3)
+//%
+//% See also: UQ_EXAMPLE_PCE_03_SIMPLYSUPPORTEDBEAM/
+
+
+int main(int argc, char* argv[]) {
+
+	// If input filename not given on command line
+	if(argc < 2){
+		cout << "Usage: " << argv[0] << " <input filename>" << endl;
+		cout << "Exiting..." << endl;
+		exit(EXIT_FAILURE);
+	}
+
+	// Input filename given as a command line argument
+	char* inputfilename = argv[1];
+	cout << "Input filename supplied on terminal: " << inputfilename << endl;
+
+    int array_length = strlen(inputfilename);
+	if(array_length > 256){ // This is necessary because C++ doesn't allow variable-length arrays
+		cout << "Error: input filename too long! Choose a name with less than 256 characters." << endl;
+		exit(EXIT_FAILURE);
+	}
+
+	// Variables to be read
+	double params[5];
+    double beam_width;
+	double beam_height;
+	double beam_span;
+	double youngs_modulus;
+	double load;
+
+	// Reading from input file
+	ifstream inputfile(inputfilename);
+	if(inputfile.is_open()){
+        string line;
+        getline(inputfile, line); // skip first line
+        for(int p = 0; p < 5; ++p){
+            getline(inputfile, line);
+            istringstream iss(line);
+            iss >> params[p];
+    		if(iss.fail()){
+    			cout << "Error while reading line " << p+1 << " from file " << inputfilename << "! Exiting..." << endl;
+    			exit(EXIT_FAILURE);
+    		}
+        }
+        beam_width = params[0];
+        beam_height = params[1];
+        beam_span = params[2];
+        youngs_modulus = params[3];
+        load = params[4];
+
+		inputfile.close();
+	} else {
+		cout << "Error: Input file " << inputfilename << " not found! Exiting..." << endl;
+		exit(EXIT_FAILURE);
+	}
+
+	cout << "Beam width      = " << beam_width << endl;
+	cout << "Beam height     = " << beam_height << endl;
+	cout << "Beam span       = " << beam_span << endl;
+	cout << "Young's modulus = " << youngs_modulus << endl;
+	cout << "Uniform load    = " << load << endl;
+
+	// Compute midspan deflection
+// 	double V = 5./32. * load * beam_span * beam_span * beam_span * beam_span / (youngs_modulus * beam_width * beam_height * beam_height * beam_height);
+// 	cout << endl << "Midspan deflection = " << V << endl;
+	double I = beam_width * beam_height * beam_height * beam_height / 12;
+	cout << endl << "Moment of intertia = " << I << endl;
+
+	double V [9] = {0};
+	double X;
+
+	for(int i=1; i<=9; i++){
+	    X = (i/10.)*beam_span;
+	    V[i-1] = -load*X*(beam_span*beam_span*beam_span-2*X*X*beam_span + X*X*X)/(24*youngs_modulus*I);
+
+	}
+
+	// Extract the name of the input file by reading until the first dot
+	char outputfilename[260]; // input filename has maximal 256 characters, plus we need to append ".out"
+	istringstream s(inputfilename);
+	/*s.get(outputfilename, array_length+1, '.'); */// extract characters until the first '.' and store in outputfilename
+    for(int i = 0; i < array_length; ++i)
+    {
+        if (!((inputfilename[i] >= 'a' && inputfilename[i]<='z') || (inputfilename[i] >= 'A' && inputfilename[i]<='Z') || (inputfilename[i]=='_')))
+        {
+            inputfilename[i] = '\0';
+        }
+    }
+
+
+	// Converting to a string to make appending the file extension easier
+	std::string outputfilename_s("SSBeam_Deflection.out");
+	cout << "Output filename: " << outputfilename_s << endl;
+
+	// Writing to the output file
+	ofstream outputfile(outputfilename_s.c_str()); //re-converting to char-array necessary
+	if (outputfile.is_open()){
+        for(int count = 0; count < 9; count ++){
+            outputfile << V[count] << endl;
+        }
+		outputfile.close();
+	} else {
+		cout << "Error while opening output file " << outputfilename << "! Exiting..." << endl;
+		exit(EXIT_FAILURE);
+	}
+
+
+
+	return 0;
+}
diff --git a/tests/test_model/data/origPosterior.csv b/tests/test_model/data/origPosterior.csv
new file mode 100644
index 0000000000000000000000000000000000000000..c5ac7661b1293e88b1d8f257c7bf183962be336f
--- /dev/null
+++ b/tests/test_model/data/origPosterior.csv
@@ -0,0 +1,6458 @@
+Beam width,Beam height,Youngs modulus,Uniform load
+0.15055984558676253,0.29525432449198297,30.76127334738532,9.723836401962199
+0.15172323185227535,0.3018864526755948,30.900386050140906,10.572937395098421
+0.14973682706047656,0.2978203129324041,36.32602379774441,11.755511440017944
+0.1517705925936338,0.305488518618717,34.50777554904536,12.185971698925812
+0.15122339466850782,0.2926128752190275,35.56672182303718,11.0301930879105
+0.14845810152750857,0.30211679811976233,29.835349622421052,10.024544145665512
+0.1489486486032762,0.2976793170334428,29.594984582798585,9.521736085316368
+0.15058053518912617,0.30333441137936284,27.27802142418919,9.342001468585726
+0.1507691624131821,0.2939876743771734,31.27163912090209,9.792688628012431
+0.1500870646038146,0.2985441999148553,39.81677531480247,12.987496647396311
+0.14898608605561217,0.30375423088389003,29.52705674493042,10.062549985258489
+0.14970824383703807,0.30315407503168046,35.2631265265265,11.99629791617248
+0.1498912371993728,0.3013950044398239,33.54132459098164,11.248721986783334
+0.14918575621696326,0.29880381550532065,34.150652209795595,11.118554528090979
+0.1489969356057506,0.300082398957258,31.002479481593078,10.219384641989384
+0.14963859664258394,0.2969265555129175,28.313546776132057,9.088993931185307
+0.14924423341105603,0.2961598248152436,34.8669105697025,11.066044927367999
+0.1488627318567911,0.30339555022808407,28.7659733754671,9.719728325570129
+0.14904620979099514,0.30205065043454093,27.36896794141427,9.15878555321657
+0.14886154272190172,0.297571249578671,33.98280136527889,10.993246687313722
+0.15046175526021985,0.3014252784837413,30.320866515147358,10.245770506771493
+0.14895131444063903,0.3006988921964416,37.02907995194387,12.254220550055356
+0.14822839215760572,0.2967015482530759,29.13063987848894,9.243997918545368
+0.15061583048688917,0.3023050340792065,26.381591123053003,9.039144523940172
+0.14933137568234386,0.2976303918077185,28.185860267431718,9.099539621429873
+0.15097333701125473,0.29884114856849325,32.448149132581875,10.725091737113342
+0.14861246193204933,0.2956301496342977,31.53137989477175,9.887819803283998
+0.15075147769579367,0.29426575882827677,32.81116563700903,10.356665887389468
+0.1488838808015214,0.30969592007109076,23.314425369188026,8.41259635215697
+0.15089032060024854,0.29975849822448203,28.330198030194403,9.395440278016995
+0.15171896932446038,0.29697069253763303,31.719864538400206,10.265446132573281
+0.1511638954444731,0.3064294498625754,30.16270383629635,10.712742355905162
+0.14970391336634295,0.2933263997782806,31.105997921156632,9.588629000761
+0.15173385801101136,0.3026504423355007,27.856008806744917,9.647971253145494
+0.14963903690066988,0.2992892791266329,25.62644199051723,8.41447349619034
+0.14786899863171046,0.29465218763471346,32.73828816801097,10.110488762340273
+0.14830043739463228,0.30179590466397616,33.33391843314495,11.074223059030498
+0.14972066572015155,0.29329923960466125,29.91942642817336,9.29929818095726
+0.14968180670910078,0.30368487275388706,30.888973401246478,10.545427119589773
+0.1518739419436568,0.3021836590473556,34.00577846722855,11.670888200124832
+0.1513373569201578,0.2992960113169822,29.659969447444713,9.860813347162992
+0.15160436704895,0.3010981673626241,36.64411401601438,12.449286997760847
+0.14870809657944523,0.29324066965704415,33.40093193356068,10.250535977092024
+0.150329666654505,0.3015776803893649,29.295545898925752,9.904251047292721
+0.15110408601686112,0.30238317785012736,33.19806246609083,11.353712675878493
+0.14911287190577996,0.2992352248448469,30.347226764990197,9.90312082340579
+0.1513478466633895,0.2962980407271981,35.68541092831026,11.460068110037875
+0.1503563256692775,0.30714086924433825,28.569871495685874,10.186432339695088
+0.14891257103394928,0.296688726025247,30.734192595943526,9.743439511560911
+0.151105303175229,0.29894996065185564,31.884589303779972,10.46387013660202
+0.14683980110850903,0.29302131628940636,37.91487937324246,11.521781589410088
+0.15005118664246028,0.29614219476553616,31.612243932956268,10.103649749107161
+0.1502371893551997,0.2944204279777004,28.55807190100987,8.953242542734515
+0.1516111490053176,0.3044040258957299,30.347403454026416,10.566693853101615
+0.14821312224234226,0.305553714812958,27.762839297622556,9.580249090441534
+0.15058036389882157,0.30120964748854995,23.304137265628846,7.880051394316492
+0.14751159516124104,0.3045117430978514,25.625863623354057,8.777248324422054
+0.14968171786301937,0.2979298363954319,30.265733028953793,9.809306867181538
+0.14902637994484685,0.29436900881321476,32.94978451310034,10.246990173014247
+0.14821532118475994,0.3061690727243609,31.682038781139664,11.007031013157192
+0.14926641068125943,0.30674418982891644,28.45440326279706,10.08300255254922
+0.14941809741096518,0.292584520491891,34.24498923168918,10.538070061953654
+0.1494371702021553,0.2986140517197328,33.90742531182021,11.050570051393581
+0.15061256206078197,0.30127244886893073,31.55060000864165,10.692445609275516
+0.15180893258345682,0.30914066357851544,29.549067783101776,10.790145838160383
+0.15068728655039282,0.30148840873794036,26.882296892997054,9.074449939020091
+0.14942716567458997,0.2923218917496673,34.26192248389427,10.496615929923584
+0.14980292323154265,0.30137721959111047,24.945347103870077,8.361949478660202
+0.1486372195220464,0.30348665546178627,30.825887911149117,10.463615818344296
+0.14937896477437884,0.2976727021751642,25.491255100968537,8.185568530092164
+0.1488265616723196,0.30297766723896785,30.641895492682583,10.385503058131476
+0.148838855994559,0.30068669479470905,30.19295051607365,10.034973817737873
+0.1506531831503386,0.2976345133477932,33.73310641425946,10.92219062603582
+0.14977990320362342,0.2982886259205805,32.732305316522464,10.625062422281657
+0.15000084994829443,0.3000301295153972,27.658024991021872,9.106955193691304
+0.15225710501013492,0.2978346445274063,29.91895901482293,9.818553925371916
+0.14817305361997635,0.30528908407897076,32.9734146523813,11.363147869847735
+0.1490344402055049,0.2943411804090603,33.9012644331582,10.513566096077135
+0.15025966169314448,0.3109671410224573,28.169493920086914,10.417199062512964
+0.148583316685014,0.3007806398250571,29.69795195646071,9.837671584721877
+0.1510825560762331,0.30232957350044304,28.50738709183433,9.748590869656413
+0.1495004260725029,0.30016803986102364,28.273580690642955,9.285662388512815
+0.14981439928459667,0.29881513808789495,34.50392392360294,11.289112459374614
+0.15091068054381374,0.302467459505437,28.311260389325504,9.613980971017389
+0.14909997719166432,0.30479042137133283,35.65438926788075,12.276695718506792
+0.15130616156420285,0.3038436201604296,28.970942637849586,10.04549883005259
+0.15186843568301658,0.29225167822589815,29.877997715611002,9.265560868188839
+0.14977494259410137,0.30192895562495725,27.66737404766756,9.346035286973285
+0.15189383237894763,0.30119200504941274,30.92548692793698,10.429113557842532
+0.1493896872256712,0.3020106084226828,27.244612736455554,9.177666015264949
+0.15036568554485277,0.3006719966701882,36.73988935552735,12.302849181812002
+0.15050728093898388,0.2994238110413449,27.82675162060344,9.187549196960479
+0.1499824925468035,0.3104885096845966,29.408171042714557,10.834360112828678
+0.14927979151865797,0.2963020864286519,29.33177505167398,9.308447373692195
+0.14949314255982643,0.2992559712577732,33.515172505333155,10.956492945956864
+0.15223538030184647,0.30371694105146685,34.38740887209568,12.04509030468316
+0.1513333785359546,0.29673535517331967,33.63053320690034,10.901160508591673
+0.1486884767803919,0.29960827874237556,35.66544646652888,11.653871377930248
+0.15022785417528656,0.29892598811010074,34.255202806799495,11.155145100083288
+0.1500446847038556,0.2947741300092464,30.883318926874477,9.693701333386489
+0.149530729694222,0.29793313186228654,26.34257337687657,8.56280273496689
+0.14785240398769836,0.3038824613025239,34.384275000045875,11.638938769404774
+0.14978234736190676,0.30247484130040897,32.49578111835835,10.998645782608914
+0.15081562716849634,0.29502756823272464,37.39273141591937,11.807808752137325
+0.1516947658363905,0.30214832436982675,32.48047556943996,11.055921988750107
+0.15128828263897434,0.2979108800648392,28.943963217364768,9.480860622511818
+0.15068116283040608,0.29975875562671955,27.34583784453978,9.075480460016735
+0.1495663750815079,0.2954199845583222,26.52315469716406,8.362502810976341
+0.153404983193812,0.3005152233901543,28.312684516574297,9.61342418466401
+0.15197700649943188,0.2991297553322459,32.30142569149332,10.71322644139777
+0.14915503460944793,0.2906435524385892,28.217206656216238,8.435126234651827
+0.14992032971143876,0.3073871144233205,25.838767024280966,9.182180630220786
+0.1538480867673471,0.3010074574157471,29.633520381070642,10.222685034618264
+0.15088176598636063,0.2916312967389822,25.446640477176196,7.790483619271734
+0.14993612643293172,0.2945369963866243,31.322249860359193,9.825497546378267
+0.15064391203039237,0.30539121155865867,27.972462898445155,9.903605107768124
+0.15136632172546702,0.30629825593407006,33.205609563444206,11.787452889288033
+0.15002053542401364,0.3098112267373979,33.94061708235345,12.389304462581826
+0.1501655527227246,0.309075792573876,28.20474154794161,10.204701229195155
+0.14966392433192938,0.3033427640110384,28.37661073485141,9.732244863392218
+0.14895087593485662,0.3029541125038597,25.708971329380212,8.715270367914593
+0.14874171289070937,0.30384815081731836,27.403406001063047,9.395321061579356
+0.1498689145466191,0.30151414645490554,33.204065929342306,11.091474911329973
+0.1511065664332087,0.3054692362131533,34.88252203197452,12.206359291083874
+0.14876906418405475,0.29695451593481553,29.522162582340016,9.364710359504773
+0.14988303524504276,0.30688639886867203,29.42119617813994,10.40581014806049
+0.1480558555254069,0.30247020489426407,32.477701714570614,10.798638566645648
+0.15021712656855019,0.29881511348141326,30.641069040579335,10.009811818444462
+0.1482840007392455,0.3046378237755229,28.496742184427145,9.755129123427965
+0.15232874591163678,0.29680254757082936,39.16262584770895,12.753504758885263
+0.14949931774512287,0.3041063151441979,27.05540339215973,9.293668741165693
+0.1505928479246886,0.2964959715990655,28.223548558035123,9.02754806727615
+0.15012427175262796,0.3010637927773365,27.220561179809124,9.094992859787487
+0.14801980301660816,0.3036543801001375,31.34849857487015,10.629067506812659
+0.1500867385067023,0.30634465152224427,23.51097156734263,8.290304883724216
+0.14877077745974351,0.3015486014242194,30.90770151335038,10.291509070092474
+0.15024106836095674,0.29596599786352074,33.61079380343045,10.681497984693236
+0.1489978193892505,0.3014684736226687,31.58319671240412,10.563937986715448
+0.14926634027697147,0.3015404725512661,31.484248598815753,10.557864061225922
+0.1491314705637946,0.3069001461105756,26.807949439174564,9.431211274268472
+0.1520519079767036,0.30258511857102466,28.57537466305894,9.83818394033662
+0.15007774098039034,0.29643262551590216,30.899661724287945,9.87659072027582
+0.15068963222309179,0.29919820648602014,27.239551741754372,8.992518582194263
+0.15051526087122283,0.30287684769117834,32.626001750187605,11.17536875883694
+0.1494887500861804,0.298894867175155,27.586617439801273,8.985403322166203
+0.1503604979685574,0.30747438885938255,37.92815139196196,13.452723763873648
+0.14853069376702444,0.305234906947794,28.5007342542425,9.818475212315807
+0.15133925171115922,0.29795144165275245,34.9696604115056,11.427903172401512
+0.1512476979870864,0.3019411896931407,32.369960748916185,11.030947701774968
+0.1515489465579641,0.30263343046831487,31.43855479165138,10.911714911031918
+0.15160879200171345,0.29802657744652544,23.88976491776734,7.848603688134473
+0.149064300181178,0.3029967164715359,29.72992939615525,10.060173788200132
+0.14965437424001926,0.31225350973842314,25.051638508321034,9.297753868406645
+0.1514650269457611,0.2968004738364224,30.502684118498053,9.88155165779316
+0.14876051230969034,0.3004418943053964,27.693585003297645,9.125791293416185
+0.1484086853098675,0.30727801960447515,29.599580050110685,10.440832193932605
+0.15033697768411095,0.30628613330376037,27.52341505419809,9.737181128446311
+0.14919815372860634,0.30082176769673474,33.09660787485743,10.971005632337823
+0.14959564600833866,0.29916945393343425,34.84748979206722,11.429990101950287
+0.14718780610125706,0.299746528495256,31.503390935029834,10.21067366823202
+0.1498602266062501,0.30366289062787777,28.208889038388122,9.682978747576996
+0.1510453374964302,0.29910330631973603,32.03089859340307,10.557506445205682
+0.14900887560237508,0.29680965930551667,36.457299493717784,11.619969420759853
+0.15039549818449718,0.2994452707681189,28.287579715121574,9.335720051423205
+0.14939070683862868,0.2886794580577476,33.22018309609472,9.766110255396727
+0.148745055432814,0.29476802012579584,31.11828480696371,9.738225304456279
+0.1496362985449041,0.297811595134583,32.606545583712006,10.512848919471093
+0.14874344070048112,0.2921575314186452,36.02116458874868,10.863341878743029
+0.14958800944836867,0.2999392233979651,31.750309703064552,10.508558858775233
+0.15010271603800662,0.3045069303719998,34.89886877563877,12.09929985480022
+0.15020652805386578,0.2935117521867393,31.57812545069551,9.78426577606543
+0.14920701740869194,0.3001947499199989,29.678186056046982,9.800266460890446
+0.14899500681853833,0.2941874702544053,30.813099330757144,9.6032661765239
+0.15178785364962707,0.29247576997089647,30.51755213502337,9.477760519482972
+0.15304507858941244,0.2966447293812387,28.708114319920096,9.368012020511118
+0.14946869732953577,0.3071440256512768,28.11179637204363,9.949527533422806
+0.1530573452385186,0.30180656296999936,28.91485367004659,9.998635210408647
+0.1480007668899303,0.30186207882588795,24.757988252563564,8.276430018547003
+0.14946782803360084,0.2900758996746606,28.501833153308965,8.51406386951207
+0.14934116320600377,0.3045398715336866,31.59290918469803,10.930060035663235
+0.1499416032166091,0.2986041561880714,28.275555738606226,9.261641945464493
+0.15092343377430512,0.29742545996956865,32.03950272152434,10.419242730653812
+0.15011435224950923,0.297729464370605,24.206251889985758,7.784485957001749
+0.1510189582361033,0.30134913051182177,34.68690784951749,11.684729057230019
+0.15036452875263903,0.30929920914101355,30.730634237710785,11.221971379980342
+0.14671348716270663,0.2889661015626476,33.48283722005661,9.691192978316995
+0.14961660568352309,0.296050785135825,33.074152561554236,10.525844112121085
+0.1507554977678148,0.29992742103317116,25.54387833737656,8.510250852233998
+0.15128676226610152,0.3018045195674189,24.62547278601421,8.399027286145987
+0.15181300527395006,0.2979184440695008,29.662935740240332,9.775382699188885
+0.15119513917883112,0.2993542950592609,22.21256873434029,7.322151521038533
+0.15048454614953574,0.29562220266994793,34.07762493642974,10.857519763126543
+0.14838119669507693,0.3007689462543949,30.222945004218083,9.927756375813932
+0.14975207226870937,0.3026094606167818,26.208738117259756,8.872185977374953
+0.14980298071873221,0.2928263537860688,31.73733771187316,9.796836930870741
+0.14934388404680854,0.3063250921874342,30.288841287547353,10.613296273639772
+0.14976059027164404,0.3031422716446645,31.349065262371838,10.67021978030094
+0.1498408020680534,0.29938262590939285,27.693501980662774,9.101994062971542
+0.15111803648108216,0.30239546012294555,31.963111378008435,10.926273173384027
+0.14826792205709147,0.29570549045065386,31.574053309669193,9.934626331339368
+0.14981537320978033,0.2939572749649994,27.80629596627346,8.640943729490157
+0.1489882112504195,0.29729029691614267,30.116691944523907,9.628761736466783
+0.1500822648362782,0.2975041871410536,25.6710269666928,8.277387193085927
+0.14902162945262012,0.29774104031568455,34.26601713491265,10.991386403253186
+0.1491555766469372,0.30804030666564103,24.54502636768644,8.724187497092355
+0.15124352599211235,0.2991613674665899,30.40932275500175,10.12268590171712
+0.14798054712407785,0.3000148354952253,29.796658153465096,9.717482174257155
+0.15189067191738573,0.3071158127333312,23.101406636568107,8.2476121734044
+0.15007457761277063,0.3031497910318296,31.976451966360592,10.926146372894532
+0.15057017834231676,0.31152396925547704,28.460199226450925,10.640886574589103
+0.1522771346084892,0.2937341692041088,37.34304918444231,11.787290522101543
+0.14966661869806655,0.2958412345828857,30.063880656371857,9.497455277604528
+0.14861441625704627,0.29427590666408693,33.997918533450004,10.546788135325198
+0.1487343280709861,0.3017060403401639,27.148412018563384,9.048234341365424
+0.15098348299066197,0.30788668857656515,31.27945197684635,11.219983159844665
+0.14884479304777434,0.29907538810286705,27.824669078320497,9.083786797540489
+0.15012063325482902,0.2940519375442823,40.307544332204984,12.550150923263567
+0.15016120127610302,0.30485551492262464,34.04475709440887,11.822907898487575
+0.15241561156454103,0.29851553362206984,29.65544387404923,9.818649632343295
+0.14872019875655726,0.3001373881311435,26.70775812539404,8.795795418043781
+0.15080751353239563,0.3018408190451544,31.248543171355955,10.594128404991215
+0.15053090276943745,0.2973438798313409,34.85215403382923,11.232099118267381
+0.15099519532945224,0.3019916426618645,25.544022330622436,8.654280482632828
+0.15028120443040704,0.2964859666951222,27.057394018131877,8.622360099926349
+0.14915747375071,0.3005050680682623,30.35122825547351,10.061680601319015
+0.14877204033028296,0.302220433380282,27.420400355962098,9.212411840896046
+0.15125736642174265,0.30494762703113415,30.490686066132223,10.595563761749547
+0.14779924267005687,0.29529259089737864,27.687571639439938,8.609169339070927
+0.1499047754788092,0.2988239139274257,28.21315986844262,9.24990874476866
+0.1507002517005334,0.2954894725319827,27.078293163019588,8.65474727577832
+0.15035010113194794,0.3006207407169748,31.725648601472805,10.668851834764412
+0.15210012943902212,0.30513578301430266,22.414443652835157,7.905746571014915
+0.15006272035414744,0.30026826591762,32.57035201011891,10.769869474907654
+0.15041136876320343,0.30864212509992994,37.34079542493906,13.538068585495218
+0.14891732063086624,0.30704187573636904,34.20339318192538,12.062451326402229
+0.15111217168437657,0.2993555076833791,29.457546528185986,9.821653735808562
+0.14917712053834456,0.30038848720815337,25.93335017691198,8.56332638090726
+0.1519067084382722,0.3002300567356726,37.879395995683794,12.749477546207281
+0.14991865193986956,0.29759815855392724,32.04001327414488,10.306694295047105
+0.14930927885154074,0.293815522367974,35.33715845537655,10.971039696202741
+0.15181732211865637,0.3083551922732411,31.163211865239596,11.384245340728938
+0.15106522092731342,0.3033723746923159,29.981836299054144,10.382599743915275
+0.14905748447314163,0.30608950112816885,31.39794477527777,10.91489306651549
+0.15054844712532803,0.305463122112815,24.592175109918685,8.675892956928802
+0.15145316666266082,0.29946493814942404,27.283163094262555,9.07810812874611
+0.15116523474612856,0.300186610675573,33.362499449421364,11.177987781886637
+0.15014961909292454,0.2987830643019073,29.088164396446643,9.51967825978883
+0.14932682799309635,0.2985993780906179,30.589803283378075,9.96360303287355
+0.14852161179841675,0.3011011855220957,34.17713495644102,11.321126112070724
+0.15030319553731605,0.30187309700110304,25.69774310443523,8.693373906623659
+0.1488139570568861,0.3049209403992994,32.16769920134675,11.12080943485244
+0.14968163375635532,0.2995028699525601,28.951090875858345,9.533006700412372
+0.15148903319553794,0.2978283506038287,35.317495232372536,11.548913267808015
+0.14952445572832593,0.29543915530033765,29.372789464059636,9.222772248084631
+0.15173723335907577,0.30463868041947784,30.668067903425513,10.82127275943284
+0.14901534408032557,0.2982539028110938,28.52014536603087,9.193357643249687
+0.14934273246529872,0.29782943175822,32.46199888695863,10.445512314468221
+0.14826889688375675,0.29862210307294773,33.4147063173458,10.779068980989635
+0.1496143672327263,0.29423556424387903,25.447224040321657,7.893732604936797
+0.14913730896802493,0.30290985526267095,21.561731606026772,7.359102655064715
+0.15224699088217344,0.3060106786744574,28.876127385822628,10.357077816738874
+0.1493391670192003,0.29446357326361217,22.496972665757877,7.0119100705839355
+0.1506718108031533,0.29901133649391853,25.37104500644519,8.383767996304819
+0.14934194154934383,0.29789396058464024,30.57898148770403,9.849258252801745
+0.1494174425084412,0.29822077232257127,27.69708221741343,8.965681141777214
+0.15093135042266742,0.3035134095605013,24.449887000227463,8.431536657354064
+0.14964430847329654,0.3015546040920544,20.72212018377121,6.978487633759805
+0.14872643532651258,0.30053621656949303,34.45644867243379,11.432834464697807
+0.150123054463629,0.30519471981423374,30.84635117215684,10.769084721575103
+0.14919200289735668,0.29983949883065997,30.897753634012368,10.192561651850477
+0.1495162100841066,0.2961158372832322,28.467440884960737,9.050137006275445
+0.15078473020398495,0.2990270188857155,37.91378398897915,12.529395238569068
+0.14969058172767438,0.308008496751349,29.30860619379051,10.479201117055737
+0.1510504859294013,0.2984806751033729,29.3546867228218,9.640972871650584
+0.15153967472433752,0.2984665595130986,24.35546897620516,7.976415961785806
+0.1497479209101268,0.2992339095114881,36.31438862346043,11.890170797630965
+0.1491550025093411,0.29874944528384734,28.98366387427587,9.437334775330685
+0.14937846502552232,0.29303768919036993,30.834425333541148,9.426162570071122
+0.1499411772569658,0.30174826685135164,28.052118734501285,9.451001782195622
+0.14913885249490463,0.29267557265693445,35.29226962828841,10.720818264289933
+0.15206863236952384,0.2943459802650546,27.346282470696906,8.655096792824835
+0.14741902827912312,0.29466001096771066,27.252111333103972,8.430739015143114
+0.15062899511190472,0.3059288616103764,37.57116039034379,13.245955305137027
+0.14965071326135765,0.2958868066823978,40.740150610546564,12.914951637617886
+0.14878459712332862,0.2985736878467162,35.51078564383348,11.511270604378174
+0.14882212577625686,0.2984291628646143,32.073483325258806,10.305828728383872
+0.1502318848565183,0.2974292659438344,29.650317628151097,9.597903672856555
+0.14986867492965752,0.30135721882409255,26.582726667838383,8.910962172831352
+0.1491184456465211,0.2977737383469291,29.65025856307935,9.518980844607546
+0.1491680241277339,0.304134180238478,26.851651292513374,9.252248304156252
+0.1526142775522997,0.29818513346284836,30.308407683078457,10.026969845626711
+0.15059088867869366,0.29819217053634134,30.630290355358714,9.9794575644142
+0.15009187620219455,0.3008266229099315,30.4040240532869,10.18170319900686
+0.14935386202143278,0.307054697551981,31.751073388988626,11.20852657629564
+0.1514100197594207,0.304683573207516,35.80845144910144,12.567714463158097
+0.14792157102981773,0.29932326547740074,30.050731501029667,9.740789651873008
+0.14891498502411013,0.30337695011451493,35.48956479727424,12.063245659457644
+0.14953512067721256,0.2987205511252022,31.9799021300304,10.410718809710039
+0.15026732637128806,0.3024764519098979,20.02631857077032,6.797353958567772
+0.14948461911518465,0.3023996433128415,30.42976475416596,10.273605365122691
+0.14943160746722328,0.3024572955973802,28.33359613500148,9.632119282797328
+0.14846812089397998,0.29724758337215185,18.239624704413714,5.827787194746103
+0.15033033271472904,0.2917858511918958,28.099272690302982,8.607096992066781
+0.1485933156025488,0.3022578992282033,26.976147859636832,9.05863765717649
+0.1508963978324125,0.30159972845868205,29.067314494349894,9.853371604547197
+0.14902978936605013,0.3027927143470135,31.61811090252395,10.678425824240387
+0.15061374871072847,0.3060400195364271,30.10342581618345,10.633131710057091
+0.15168041856401326,0.3061970422030104,32.10759927220783,11.457897918920988
+0.1495398017624066,0.30725530944279966,34.06986848973423,12.039571358100124
+0.14944862272628653,0.2956877155847981,28.091980366671436,8.867766856657994
+0.15140503109450387,0.2986243008203451,32.94402825156279,10.872903661466523
+0.14910983325724517,0.29473158536277266,30.6132270130783,9.522054047375676
+0.15037861529507426,0.29881760697218346,23.378469585620216,7.693075736528165
+0.15055730754782531,0.3042420886748917,29.357877683535204,10.181571399849737
+0.1510837562296279,0.298489560346636,31.355134877912594,10.283737971914226
+0.1489896218530212,0.30262237707933665,23.97414770016584,8.117670478941406
+0.1498910881898534,0.3044507915902215,29.926712123749343,10.372938640964005
+0.1512493516153254,0.2979938173342998,35.24637438512325,11.556546704821441
+0.14929214659486115,0.29937239018888406,37.20692476580979,12.162148166705705
+0.14949771906518347,0.3055240602760612,29.280459015672626,10.209407420367528
+0.14770507450592274,0.29566272755314443,30.089720704363607,9.446256325236508
+0.1484629395829242,0.2937218437660126,26.030297062810067,8.042927966050712
+0.1499321795067112,0.30825102034506013,30.144815010237142,10.79751735508709
+0.14870552122501857,0.301193121801619,26.781605833201326,8.898743078468081
+0.14995894393256742,0.3006943619948541,29.09227584256573,9.689425174433975
+0.1499825205899331,0.3111641199060322,32.42375804921548,11.959910064016746
+0.15280073763367996,0.2918516728755794,33.292340440537615,10.363926505181457
+0.14846324772003752,0.3000832288898834,29.721405083090747,9.790143221951945
+0.15219466500952536,0.298215694556894,27.580702979511823,9.118715274192626
+0.1495760856861593,0.29844028610242396,34.33763617593761,11.217122882805375
+0.15077491601056386,0.2980002928006384,30.31006048596984,9.848811451199015
+0.15024930113536691,0.30659212456914403,24.473943273487233,8.612155169590151
+0.15091111452622977,0.29856326137619554,30.575979103093083,10.006834549549453
+0.14949413367772957,0.3037564049190828,31.055608707327167,10.679861131081061
+0.14961243357695084,0.29699156984127745,29.259473117195245,9.406889564784223
+0.14956123785977174,0.2990791260322669,29.953812657377032,9.809920006537999
+0.14984588805523216,0.2959574540621208,30.330033123128562,9.616295051859154
+0.14996460917313495,0.3037619039747305,25.87190815111976,8.887914909907565
+0.1480257226408688,0.29385236444999624,24.00491625871529,7.415584558314747
+0.14900984546133592,0.29800626550157033,35.69235646754341,11.521813088324128
+0.1494021709385801,0.3023794252143484,30.42660570646331,10.274389403325698
+0.15060645497097538,0.301877040623659,29.824376968668904,10.153621324925327
+0.1500333845176352,0.3021376433141179,32.25554093796441,10.938356263939855
+0.15167483488864333,0.2925411138020343,32.17187165264918,9.996099838332814
+0.1505035609895622,0.2986022095508008,21.401029673867733,6.998351391913655
+0.1504630614711269,0.3009463757737091,29.257174788807294,9.740726188762508
+0.1508469667290671,0.2986421453982684,26.00328767243224,8.534305013218301
+0.15050580807899866,0.29848158760409776,26.2332959744437,8.599843394054588
+0.14819342984621311,0.2959305276821364,31.372916161864048,9.897302049634238
+0.14923711764130698,0.29710309339786817,33.56729558896696,10.76325692915899
+0.1508952694753759,0.29712352356594807,35.055410206468096,11.328192535465035
+0.151522160751871,0.30334513951335157,25.141754541624874,8.696047862727795
+0.14925329228104184,0.2961764024729039,35.715031791752466,11.35200407045951
+0.14973974418744754,0.298978595700762,28.043057005833383,9.139958254405876
+0.15023758211142899,0.3022507770094781,30.975777031548677,10.496513410291604
+0.14880739425700093,0.30502143697116757,27.6534174759722,9.513739440459156
+0.15112056388830875,0.3036886941997729,33.85986311104277,11.763074187258438
+0.15095956839461552,0.28889461662062166,21.88276594484709,6.483880193817931
+0.1491411861949391,0.30179026653359614,28.858060377684417,9.667857777598877
+0.14894232459511672,0.2970496864357128,28.947319559444473,9.25484681608827
+0.15007139455496743,0.2965730288945393,30.569270166147284,9.806350879228807
+0.14863071320713872,0.30332823336037995,34.39406575198916,11.723983358112505
+0.15136454603303562,0.3001751794679093,29.29771986241849,9.774527864482451
+0.15063310632553145,0.29133171003791986,32.30145991918147,9.876231515337192
+0.15011578767695663,0.3035215597482106,34.29635454950055,11.706214023226632
+0.14902585656006004,0.30727658485627457,29.884417114082254,10.58010315277547
+0.1511807797862923,0.30221150457180285,30.578604042619222,10.507037268538841
+0.15103309222731956,0.29742666060974593,25.780143457298323,8.317782512238757
+0.1487766502627119,0.2974799815709442,31.68383776557351,10.139737290818656
+0.15020146113030744,0.2975177317045459,30.14319274708062,9.75511898560725
+0.152317168972062,0.2926761640111467,36.56952219702545,11.46868343395447
+0.15053964222814784,0.29411314626134966,30.606088336027955,9.564511965510913
+0.148657087766761,0.2953316094116469,23.427092556508025,7.325509934784851
+0.15147658134832234,0.3068649635521136,31.809090876376626,11.360821824150685
+0.14912085623290092,0.2987958193875473,26.981602799647035,8.760638358877987
+0.1501541028443787,0.30275459731998444,23.642033314238596,8.065961928589967
+0.14959500185109015,0.2955250428501214,29.180394836448098,9.205813058897137
+0.14706547668521716,0.3000506205074221,28.081517221189266,9.07193571899043
+0.1508736824734018,0.295908273214061,29.77115332366316,9.52108115479004
+0.1504328905640732,0.29593712526660354,29.521182732288754,9.39356213537008
+0.14889539951215452,0.3011636321707227,27.677772344076658,9.181755128766273
+0.14941291996802777,0.2969178488774501,27.573572563488018,8.78258749128284
+0.15091003632256547,0.29425518539651413,28.879406355779295,9.145857017026126
+0.15093014660374854,0.29436256542809197,36.59760388764741,11.508237335362212
+0.15314235412938362,0.3025767233615449,30.763775481842938,10.639112802096825
+0.1491860566358692,0.3014357579409271,31.85368511969487,10.627168772567037
+0.1479654673843062,0.3032025069485427,23.838078261946126,8.037821980226834
+0.15013646231780012,0.30627808176638033,28.94712852981048,10.271280946263486
+0.15057275733173497,0.2994687477111681,30.725182171807766,10.18749396083978
+0.1486631600440337,0.2990068915734763,33.912813237301705,11.05059292346624
+0.14831358041657317,0.29959784640181936,33.878947032437935,11.059998283026594
+0.14959711565627537,0.29166189984092095,34.92904124863464,10.658420025752694
+0.1504850305374941,0.3008023096533805,30.91907585083221,10.39955661726275
+0.15071673126441568,0.29969573484042045,38.48745411640155,12.823262320225282
+0.1490817370964279,0.3005769226406982,32.546549512462796,10.741141059481908
+0.15069765785810676,0.2962327925809819,29.622421026046688,9.537547945886256
+0.14940853170996088,0.3037750260222448,20.19769880029473,6.907064932654375
+0.1500889423589155,0.3040224035042571,27.111136145436575,9.353013453253306
+0.14985153750717023,0.29358988385770146,34.75857625868212,10.812163817031175
+0.15008319695786607,0.3048731311403147,29.16658887817879,10.08673917843446
+0.1473448269199635,0.2974835746764654,32.15790461243691,10.18023406788845
+0.15024995757551493,0.29465180530783974,35.13635609269776,11.020823513617792
+0.1514009158094101,0.31201066714675757,29.181765185523577,10.981333795770183
+0.15017511879388318,0.3088041533053905,33.28177073163513,12.023419738642426
+0.1506245980777018,0.30229730706826186,31.63300376582034,10.74856519577247
+0.15054588656794113,0.29958432268703267,33.46144915011455,11.061581833270576
+0.1494253575703012,0.29772286701727885,27.378969809749464,8.78585423749199
+0.1488826986037764,0.2951293045090014,31.460052188678024,9.8435007205761
+0.14832753433515963,0.29776911176525855,32.30373151561594,10.362796339271949
+0.15244139655013833,0.29101153767070737,31.705575337664804,9.749157121433942
+0.15113871611006288,0.3082620345483787,24.98903162659579,9.035058408148565
+0.14912871208304712,0.30338038861064126,20.673369466080196,7.0327655600006675
+0.15087605845629665,0.29528222667164605,25.712482831149664,8.169583444536414
+0.15079648579812518,0.2930724256876402,27.708584278050722,8.641395921689426
+0.1496842365272227,0.30031561163310366,29.80179945743069,9.885905400332975
+0.15012704237797095,0.29546164446314843,30.435123429679255,9.675608860448063
+0.1510471063891252,0.2977451824681645,34.07302272607536,11.044179985502755
+0.15042802422379306,0.29895953805998265,23.636043992404847,7.784709115758189
+0.14957730261412397,0.29921405271643947,36.20652593590794,11.900878961846212
+0.14958827594953497,0.29706355864168743,29.25448534609478,9.378265331268556
+0.15101170997086635,0.2954596939890875,32.908254887106615,10.512042294174059
+0.15004250919707388,0.2976803069341217,32.05099894376916,10.376912532811142
+0.14943332680260898,0.30445324948208435,30.889270733194333,10.682079329109298
+0.15011083666320588,0.30367878013126787,27.95835232728612,9.586266955600143
+0.15055857587259602,0.3037181268166476,35.829868260686105,12.389115077395378
+0.15002500348034503,0.2994472135167083,33.421807212453096,11.032914216680252
+0.151172183605408,0.29590377959527125,30.497127325020635,9.76814854112289
+0.14980215496747631,0.30394557981993836,32.37559356615698,11.158970656905538
+0.14938680091411766,0.3040392188557711,29.20489579870351,9.992998723509032
+0.15144908122872064,0.3004888416488506,30.173632072819874,10.172499584769295
+0.15015522013623153,0.2992264484814328,31.826596316776577,10.436126293638983
+0.1487235724979198,0.30594527866482285,30.901846846146338,10.766635971485945
+0.15114150267704476,0.2951937898172113,34.23035736931596,10.9062916771717
+0.15263008505194842,0.29879298483757144,27.49577246839852,9.182744212439308
+0.14956070555998957,0.2999028577469079,27.816587337166602,9.195553385147829
+0.14628987801419369,0.3008235800083747,25.760663681403585,8.440275159970756
+0.15131629576342273,0.3043090330461232,26.749649317237225,9.341605228160908
+0.15055694943616213,0.2993897808226218,28.059973432311708,9.231172254406035
+0.15030134331258493,0.29523974356408683,27.72863610132116,8.807791273520943
+0.1506482480350617,0.29745414956130284,32.4346750832933,10.573867924516044
+0.15015996592716005,0.30482774357149217,26.13844936707493,9.065677143856897
+0.15040790795574058,0.30235731385047004,30.786762424786104,10.44977551741484
+0.15018221526750766,0.2981139215649245,33.239790761861244,10.814262122132225
+0.15084612908226816,0.2957314662753635,41.18691454207346,13.19610062411596
+0.1508618433434742,0.29414888924432814,28.11608010492822,8.802138422941963
+0.1501638866594775,0.300956801882725,37.14699436076744,12.534696548081417
+0.15199659310103322,0.30214792532120055,27.457894785971572,9.430136104022711
+0.1489126868335239,0.3082248649666756,30.769056618968435,10.958500121854772
+0.14931884975740572,0.29829181594638016,31.635118977869656,10.265020575848503
+0.15061053250801895,0.30284575228017746,25.55624561666887,8.787108028269742
+0.15065574351334124,0.29132464170810674,24.637644450834582,7.539816644230832
+0.1521226488656385,0.2909646066180605,27.909269033376283,8.606127479874944
+0.15124498148719523,0.30038695249616404,35.13783090830752,11.735238059783017
+0.15057546667566343,0.3007133745793283,35.91930998412292,11.998821977580768
+0.1483483478332004,0.29812827315188495,27.09329317981287,8.76047841696497
+0.15080683139852316,0.3046533076584855,33.0546139097074,11.450228411959804
+0.14980104156385424,0.30428481109386835,28.2506036735804,9.731414844627569
+0.14989746328919257,0.2913562061620193,29.47370780996163,8.939785339540418
+0.14970939665498822,0.2970251233707702,34.41395623221377,11.101697136997947
+0.15076883127244167,0.2951979963362588,29.386287256492455,9.289375416166767
+0.14853842728837263,0.29947966249568336,30.45116052671035,9.903815695044626
+0.15057972337474673,0.2985250795860804,30.34771774602401,9.953481023588102
+0.15032038443840787,0.3066071266342161,32.36922741576723,11.370664028063732
+0.15180633579267314,0.2967117981028808,32.54220873329364,10.52069433660834
+0.15168470117675253,0.29524836742563065,24.9596907643182,8.023620699830184
+0.14939997679593267,0.3052174163621483,29.688804830706548,10.384364221528307
+0.14916467040675715,0.3007245281133914,29.47800866583047,9.739895008910658
+0.150566044336451,0.3026503772101429,29.37235646138533,10.022059446577844
+0.14980009582685144,0.3022529903969485,33.57016150213883,11.417437254249764
+0.14992039301308016,0.3050828090644713,28.468975414279384,9.86226938654436
+0.1476527317941712,0.30062561910482544,23.765492918450065,7.826075144728294
+0.14941857058131866,0.2977262266462387,30.238810484398766,9.726015111403239
+0.14855683389992813,0.29873507632913965,25.84039648437522,8.344340028976996
+0.14810264386090102,0.3042927299912458,30.2199464535226,10.358834271377336
+0.1511094939380544,0.3007998087013436,29.931399252602592,10.03701639131078
+0.14722525574169346,0.30367005258464774,30.860086907563538,10.413280479121998
+0.14955314209641557,0.29764310479379447,35.553772921988724,11.426727815972447
+0.15176751571932093,0.29929660610998754,28.9840118709319,9.676856194272592
+0.15087155552818132,0.29265134410996285,32.45800271439821,10.026473318465804
+0.1510855894482687,0.30293760312065166,20.901500511140448,7.169998420390856
+0.15005196298765647,0.290476789204969,35.9302329380256,10.801627495973657
+0.14870390374457443,0.2978288937717562,31.8684962591826,10.179359155734396
+0.14966252541239375,0.30302896233042365,29.15384327224427,9.876596288486652
+0.1472035620393613,0.29899824785596213,29.841621629273455,9.584896427595018
+0.14996599717516457,0.30311274881141964,26.980930763608367,9.180509095132143
+0.14957184558310052,0.30415697181340573,25.190650455187598,8.662578101237925
+0.15003665683749276,0.3029787159884705,29.685526312221597,10.148576379261256
+0.14976739759364474,0.3033526282613485,25.516565266335064,8.708699345824051
+0.14794725347352286,0.30032360304196953,28.986409570754283,9.551024511387988
+0.1499666602165532,0.3018195418980935,28.036874087064156,9.405690861402993
+0.1474775787305305,0.29672115583084,27.658479121619706,8.682374836645792
+0.14993737997204828,0.3039694056182393,37.13499755626592,12.828156849036896
+0.15109509444741573,0.3001093079148672,35.23163457331781,11.718012484841388
+0.14854756181138218,0.2969396111160809,25.091954319497205,7.99315413224884
+0.1500305599206379,0.30239451343982476,22.818754849077756,7.746134062288748
+0.14950385712362932,0.2963036307395636,26.128493994085,8.28044971173436
+0.14994341822860704,0.3045222682041515,31.944484830609962,11.089443155602213
+0.14846089652132405,0.30605454060258036,32.03756911486029,11.163707870354832
+0.15013582762606253,0.2979242693917266,32.6443773967764,10.557717486643783
+0.150073640426966,0.30045786602202773,30.08824633270982,10.014064099056451
+0.14924265913784782,0.30122265743213067,33.1833480245727,11.077366576478926
+0.15306071327887236,0.30137582316823136,26.53096916375681,9.12123078597179
+0.1502635258312966,0.2994928676272812,28.474058984861305,9.414666022234911
+0.15042865352859366,0.2980716876143727,25.060268722712173,8.13978952610261
+0.1496763557885887,0.29262643048568276,28.801651063351926,8.810061554268703
+0.14913100945226004,0.297286549384086,32.50185103304084,10.373430415689647
+0.14912467149398978,0.303293717596043,32.748982877309295,11.132291493363024
+0.15057184966083811,0.30098882026312995,21.267482900950327,7.1376220297120705
+0.15013968399150748,0.3061523075386729,27.99139872398668,9.859997568401987
+0.1509283303366912,0.2913948417195026,34.51116356802715,10.570560507046144
+0.14946427579851523,0.30227731823298837,26.465356796198755,8.90259797513959
+0.15000890839687844,0.3015260387834789,28.01769285295905,9.412289673692824
+0.1484751773742092,0.2965327007853438,32.58903987299041,10.305487811523875
+0.15069022419785016,0.3060168574399029,30.571684465460493,10.86635766505315
+0.14863070209114726,0.29796176325082624,29.614474143318354,9.51939709476121
+0.15134573068152657,0.30296748922748945,25.716564524016828,8.88041763763647
+0.15081879854970412,0.2980248027004772,21.45897078512217,7.008624273145392
+0.14745810274036042,0.30565473039503105,29.270526769420933,10.107834652199767
+0.1492534601774889,0.300340726535067,34.75757302907004,11.520208070806323
+0.15038512347484084,0.3071842592054775,34.78384004643853,12.418125751327405
+0.15009517618229423,0.30722125221172786,30.01603945854036,10.737540515611103
+0.1491584818993425,0.30259805875650236,25.46298862027588,8.626127273931255
+0.1501647686491723,0.2997257327982886,32.29144891703004,10.611319302503315
+0.1489336323780241,0.3155795829477371,34.66961660590635,13.236959074190834
+0.14996350967311728,0.3027033555027251,33.81836684474702,11.554677502353607
+0.15112955891742694,0.30309442726779917,34.01332968362189,11.714805275988551
+0.15219118695246783,0.3020163159513072,33.75205334989588,11.601421771496407
+0.1485457625904523,0.3031700017658926,31.78596923317772,10.734410405076558
+0.14897020617834567,0.29973533719833795,30.042880751329278,9.863484992982864
+0.14977308097777525,0.3019816948884039,32.2139907335767,10.807347469480353
+0.15045636885364788,0.2995860174721442,37.60566898747301,12.464992413490094
+0.150746055398752,0.30380127091404485,34.33567829258946,11.873973421370222
+0.15022077136517206,0.30031611946971976,30.991533498776487,10.334896662161105
+0.15077153213875627,0.2976190971054179,29.0122894122261,9.466032978370418
+0.15105249361168355,0.29808747598513285,34.2425267091802,11.197425555735082
+0.15161145439299778,0.3006577605054715,32.68765919586306,11.01197550196764
+0.15188246937005692,0.2935780471978487,30.524231681372164,9.621491408921452
+0.1496177063128402,0.3113549986867437,34.55945620840114,12.716709065290036
+0.15203825954803898,0.2990851367011101,28.689016072634466,9.589192928063232
+0.1501132920554986,0.29827261634767427,27.11624105022958,8.793264760150128
+0.15107333512271764,0.2999440188287876,30.43366465845303,10.135254733212292
+0.14883239381575752,0.29910592076133674,33.17814200449787,10.832138075818952
+0.15082079014483563,0.3025748579319745,32.04393329942213,10.926989694088672
+0.15158905459358193,0.30372207881662044,28.445977778595086,9.94356723101183
+0.14854983351440168,0.2943482485577552,39.38210694863326,12.232911113266107
+0.14959287090778747,0.29622455699568023,27.891238901710906,8.867273668436425
+0.15201855218065352,0.2965889175489323,28.133932991927345,9.089261874341682
+0.15118004268405702,0.2993794819326196,32.5428106843994,10.755657105615102
+0.14778426753028703,0.2951734136975467,25.139465738920386,7.818542503756957
+0.14913526925205906,0.30377772734870706,28.083810151578398,9.584111353408977
+0.15191090497118898,0.3056415303811612,28.230921483641982,10.000511803908706
+0.1484882381934001,0.29834349810727484,34.08079886068081,10.98020721217452
+0.15144392003909588,0.2958014986386183,34.801756157506695,11.183311899284156
+0.15179417815286658,0.3029046075723229,26.580097149946457,9.16004191931725
+0.1490163691509792,0.2942320733756115,32.927358053237946,10.184598869083835
+0.1504005356697204,0.3062613537677499,32.34103392753811,11.463703678336824
+0.1499454383361951,0.2967875959928261,29.884751441340264,9.547117387896137
+0.15008284321975793,0.2949731203385351,29.18292820426911,9.202326694424457
+0.14998152285076788,0.3021350981194945,26.812082213265782,9.068899784557134
+0.1514147962140816,0.3035962804042345,32.669549267810936,11.306267716770495
+0.14955044799956427,0.29967360184776265,36.25293251815223,11.857131258695443
+0.14904952153265036,0.29712006169290817,33.48440250184578,10.724476342124195
+0.14927468504520522,0.29891405095118756,29.953655661651503,9.78871451920998
+0.14970372939823806,0.299951622211213,31.544194862184526,10.416317092554406
+0.15003837275228746,0.3009753448903261,29.66932372261937,9.900288724121902
+0.15117930885910108,0.30253476139717533,27.198360489589458,9.306077999402962
+0.14943439884521453,0.3063443981116435,32.371644067217886,11.354976014563086
+0.15096206837455728,0.29694287002711467,30.911510598638195,9.987266038670288
+0.15057071096251276,0.2998736596096519,30.138501639638044,9.984851313745082
+0.1521511652746639,0.3136535350669949,24.473416208619845,9.372502552337172
+0.14918293569206503,0.3002909893396902,24.090056906405607,7.963650060648746
+0.14869176461237843,0.2985078551904009,30.85817181055191,10.017965362410457
+0.15064097768326065,0.2960873180013139,28.024547343869575,8.953083720396604
+0.14903830908548032,0.2922688421920057,33.80623318154196,10.37170590405411
+0.15067996868282763,0.30677890560119964,28.94008397817612,10.343294006273222
+0.1508622625233087,0.2977239714760468,29.60533856460739,9.589497519852197
+0.15054603386921428,0.29953199052155666,30.983311551589942,10.266697097923975
+0.15014118403924334,0.2970138150147447,22.40729883228875,7.252336139878895
+0.1491896187403479,0.30249838164138027,30.58234177404367,10.408895272836867
+0.14867165244158445,0.29747047324023795,27.94895152663642,8.947632861344427
+0.14992040937909334,0.2980122926736729,27.67940096341664,8.94934535229599
+0.1500352403911064,0.2988069520196299,29.615573069329805,9.719548934280118
+0.14943711959818654,0.2976103722904502,28.28099601050286,9.086498956540684
+0.15019435108910922,0.2909989076250412,30.934535532833934,9.321381679692436
+0.1503600421890092,0.3052445147305015,27.895349313964008,9.700407240719326
+0.14986509838638232,0.30558970013441106,24.68925334320747,8.603159069132515
+0.15023401709645937,0.2983807222859906,28.807330025501308,9.39707862273289
+0.14966799215222226,0.3050919291880867,30.6631701647629,10.682235645882818
+0.14916729070947932,0.30059023033293086,32.532988994480895,10.805782554929683
+0.1503419277358287,0.30361188752647805,30.882569568967984,10.631038380173122
+0.15000742068592474,0.30031159974690363,31.70209460265815,10.547643571755966
+0.14759163497996114,0.30158337157236526,29.053953769255784,9.60530097237676
+0.14943493461042975,0.3083449916056496,34.64658161591563,12.415832015529665
+0.148332035166729,0.31087880950915986,30.004433713542724,10.906900385391978
+0.15018174651514707,0.29918427303062306,29.215654425144557,9.578866820415161
+0.1505515598030791,0.2974783857487953,36.01371334198877,11.647381580787403
+0.1472243151921999,0.30187097186747247,29.877090332460966,9.90953557892298
+0.1509764430142271,0.2978500286507289,33.254593388240245,10.811902487036933
+0.15007104554383793,0.2988103832328719,33.33453682436079,10.92493632256222
+0.15171423933431796,0.28992539661433386,33.55896636733532,10.14617373438563
+0.15002041908932967,0.29438768248416936,35.18438762205645,10.992046353505572
+0.15102371253752425,0.29919103083491455,35.994316192947196,11.907642966938072
+0.150975979761627,0.30155564822659336,25.586057637103053,8.647764351732922
+0.15044713783439256,0.29492824314511434,31.93235560642705,10.115140054891818
+0.14910783115117807,0.30134013876079585,29.826330957698985,9.93928495407546
+0.14916418281448665,0.30661062383191606,32.77420870203761,11.535937359074534
+0.1492361638486164,0.29952901297656764,30.39260472061772,9.985416267853433
+0.14964311425997281,0.2887615572035871,31.557904422456364,9.293398839381808
+0.15080878499498981,0.3007564212367959,29.53404880159411,9.911769263345175
+0.15039532032426242,0.3002519526742686,31.206398982283474,10.44450326435303
+0.14951941156332618,0.3030135557230122,28.95321479383778,9.881260644838484
+0.15093892075135332,0.2949528871014366,30.787956178541613,9.727494528056024
+0.14959203237478452,0.2890559105886098,33.36971667580648,9.8471510372342
+0.1510865295268145,0.30231912122093174,26.181786440441766,8.910579687232959
+0.15042754923519816,0.3066997112838843,31.601079427386342,11.245122204068208
+0.15089986773229647,0.2967813363732004,26.990216111743102,8.675319517589742
+0.14994742251585894,0.2967319705361209,35.61679070607965,11.384987253210745
+0.15007661762487792,0.29810355709728553,36.774733992528915,11.962312104593959
+0.1489555438804885,0.3034596237617873,25.276383082204177,8.689817036477416
+0.15012156279922848,0.30382376737691325,29.251035523229497,10.118787964229277
+0.15020128428018065,0.3075236309433366,27.503831698642973,9.830632375974282
+0.1518968277101748,0.30099570347035004,33.09463123563412,11.255434572772375
+0.1505220179511371,0.30840618181896073,27.926440134872475,10.126554936598634
+0.14917079578803963,0.2976443055445046,36.4768941894277,11.686936068887887
+0.15010183354736495,0.29584527685641443,30.406764058166644,9.65535669266472
+0.15146083102084873,0.2990042547753686,26.507031900679625,8.755355532917452
+0.14844790570911642,0.30168563298975876,28.604238571209667,9.525699548852334
+0.15041959478235617,0.29876199201186104,26.275435229790627,8.654845615331617
+0.15102067722451376,0.29386276078371765,34.859238266791614,10.909591032071848
+0.1508903961321277,0.30592425037814924,31.32658794107276,11.073505400353701
+0.15089621643339085,0.3049656090954614,30.030124468392806,10.514052194537669
+0.1486759585632364,0.3033752797350535,30.23175728656776,10.28012622590159
+0.1512089507081679,0.2997224666186917,32.69447095110937,10.912320059791286
+0.1479012482028148,0.30083731884778026,30.198048605048555,9.932086590228412
+0.15004621669698878,0.29726992927520307,33.90252735538629,10.9432229209386
+0.15125363877539771,0.2991262169696003,33.684105830677304,11.200578680142696
+0.1493133505340897,0.306454890869998,31.94497841434481,11.275377395751395
+0.14959653853332922,0.29635415446660185,27.497138762894977,8.754877296179078
+0.1516761726849361,0.29232536184763913,26.29787266170922,8.145683779245939
+0.1500182161250967,0.3020051817684498,26.647311533739476,9.013308295170773
+0.1515555760263168,0.30115353927703054,24.792947623666453,8.362768030390988
+0.1503585859583759,0.3042008453784902,33.334910084153975,11.514050695322037
+0.15164100202458983,0.29821042838998046,31.541694335424253,10.371304373101331
+0.14961429177170424,0.29512496088587803,33.07581824478645,10.300522494336839
+0.14906569544125917,0.302117304060041,26.80638458041723,9.016949277208552
+0.15136274592076865,0.3103068406487046,33.45337196505887,12.341544368326504
+0.15022148150287437,0.2969756412245621,29.537155909670485,9.51504177296019
+0.15061734068504387,0.29486445324380706,36.33454015938793,11.432107590553436
+0.15209201989229942,0.2950568704582408,30.007091123542278,9.618003762062296
+0.14995391569450298,0.29751240623780995,33.72709163633462,10.868429173316313
+0.15001232846768753,0.3100498631462953,32.76120992816861,11.993922209924849
+0.14956417805435032,0.3082617209326906,24.390216145981533,8.761462569536612
+0.1515512340923047,0.29074130869517856,34.07196729044985,10.37124171841425
+0.14986512582542383,0.2981185557034098,30.503918557880855,9.887966250743041
+0.15031351540815138,0.2990718816375098,30.820754667874645,10.127442855299872
+0.14875686679557423,0.29876326933235875,29.14734723081554,9.47861035895895
+0.15144393522640356,0.30049910927381374,24.220341108407986,8.223661474053092
+0.1517884305917953,0.3029764292453884,29.835269567406794,10.28434564601362
+0.15065828000363055,0.3091059997854844,35.14365303798337,12.843567518912135
+0.15174705020107535,0.2996082725871279,34.90978609568744,11.688791673180365
+0.14752651872607567,0.30404144339678213,35.757803232794,12.086293182024043
+0.1500723962964581,0.30246138487295454,33.70362057925719,11.420213962297472
+0.15151089587674116,0.30391619725626223,31.869005180163583,11.036278589614488
+0.14927048902474813,0.2959658707852493,27.480487601135344,8.718227364847314
+0.14833527660374377,0.2975873287520703,24.98524387373731,7.991621062633815
+0.14786848226719276,0.3080072241923758,24.811535458773157,8.8160567499912
+0.150506646656927,0.29647442348783204,34.61349571149491,11.065289581348381
+0.15090685821297814,0.303860271280687,39.088282406870434,13.574863297628612
+0.1489806346706394,0.2937527850611376,32.72485575533845,10.102024794694211
+0.1492963502074725,0.30225881918690223,29.191203891211742,9.82925207424227
+0.14998752797332093,0.2909312738681106,31.390876833924434,9.472523071756394
+0.14919570697799767,0.30694103684562385,26.44413493935842,9.397383337588453
+0.15019979172213924,0.3064976494948885,32.41986960162854,11.498743462299078
+0.15070191722530388,0.2974119535448898,36.38499488385061,11.73474583611893
+0.1515253233022824,0.3000622615161986,24.45424623152199,8.189796243175874
+0.15167379332329306,0.2989281671568408,33.21827039904709,11.027822257167879
+0.15111264893935544,0.30507577322379714,30.823639530704362,10.719481302681633
+0.14804538264343914,0.29944720586318907,29.008339722399636,9.399540947510559
+0.15273192648133851,0.2968573641464815,33.18474580550856,10.878678828792545
+0.1505495687010902,0.2974536456002474,27.306612591906877,8.861518376437777
+0.14996117368913603,0.2943457514387063,35.686865237600195,11.16463545101459
+0.1475940328139064,0.29834883903691045,34.67596878841765,11.118971246325726
+0.15060888135729866,0.30406808368525134,28.030466239149604,9.774668534624748
+0.1508187350465357,0.307070638566268,36.61210071266109,13.092178565225643
+0.14902666604402295,0.29705163868634593,30.915902866734964,9.868227482453312
+0.15012334242456427,0.30752902235383534,25.920674821990442,9.25477493007857
+0.15116237374829572,0.29938869012121233,29.673880167060165,9.879190837205744
+0.14716669600687643,0.30807047053391473,32.88413452372613,11.535730748825241
+0.1502396993464982,0.300901219435161,28.330886732478387,9.409962887919335
+0.14935949561729153,0.29885931208494704,33.42914925659725,10.883604346647843
+0.1498440094405153,0.29723352366356764,36.22424768476266,11.62321517780871
+0.14895696689901308,0.30607183664782056,26.84162553919353,9.390602833106348
+0.1494042553484704,0.3078667061400821,27.342189765964218,9.718086242706823
+0.14933451168040124,0.3071986697527515,31.015401040501324,10.938539136248405
+0.1503265867426408,0.2961685114688979,32.92513330907774,10.465515549156134
+0.14983936494187003,0.3046654805738976,30.019670920133677,10.359175286166733
+0.15041909813120238,0.31018911572537117,28.487906738596376,10.432961017783782
+0.15159549480395862,0.3007637043939719,25.937445231074356,8.759648303542587
+0.14886355716351088,0.309483757566457,21.01328659927175,7.572320555264039
+0.150752179617311,0.29575768894664584,27.26880463879626,8.719753665640413
+0.1494785282785803,0.3059351253855607,33.18062324596161,11.598035483358354
+0.14925948206658404,0.30524688333395006,30.422475672900255,10.5516014012209
+0.1502916022854355,0.3030516106124504,31.319240722130882,10.705018347911835
+0.1490001330539206,0.31067510111771596,22.464126270461325,8.165204239959966
+0.14773925560537485,0.30703790883666626,21.25498823421914,7.457092926797787
+0.150101489344986,0.30164678044175813,29.487458590896818,9.92325900721363
+0.14911128131729248,0.29718588888321185,27.344918149030306,8.740985937257328
+0.14854489822900424,0.2973088042702456,31.98185317871807,10.19286851016151
+0.14941205889865936,0.2947727683570191,33.9851953740705,10.592158746628847
+0.14936122018958825,0.30578116057325305,29.038745522719278,10.158905289745494
+0.15114673880032367,0.30354247476455887,23.03103946302629,7.966053285317991
+0.1503411567799113,0.30697768183803,39.30724317566079,13.999021405533757
+0.15105472347613266,0.2996169735686692,38.28576639084284,12.704090116037023
+0.15139299745135593,0.2993389008629265,26.753676182640206,8.90336794582846
+0.15064191761943474,0.29852829960359395,32.12431742154824,10.476811111770122
+0.150197633049568,0.3083968720733971,30.787752325326714,11.13493650583415
+0.14774176279401943,0.3101977946859031,31.09475803372817,11.199526092857411
+0.14918767653233858,0.31177204956357163,34.22412317294143,12.58746662147834
+0.15112114512198097,0.29774515144350916,31.93965075660989,10.419866981343336
+0.14996536161638632,0.3019389060169935,28.7566761397452,9.66817398744774
+0.1493737277557658,0.30630772492771874,31.80368597242567,11.193124481926235
+0.14898905411074992,0.3045018692455646,28.61740562597859,9.821272999556651
+0.1523105432518779,0.3004644849817676,30.849351458857964,10.391404312528827
+0.14742204971815365,0.3072980603502881,28.97316470845142,10.118796059011451
+0.15012005019941654,0.3025333299930898,29.62378846967718,10.127140156347744
+0.15076360306880962,0.30055083378714126,30.083219704306433,10.002413449282237
+0.14774774114745037,0.29898294848869233,33.78830051934181,10.919477108804744
+0.1506255164089052,0.30362441569749465,26.158884809403993,8.997229656877021
+0.1500618669117975,0.30020400988387547,29.626278405169778,9.867866113356468
+0.14954372592491003,0.2966790313883309,32.132166684814074,10.203563611295376
+0.15279879538783248,0.28950762209123,33.304262851385694,10.084542940985497
+0.14915975701230422,0.3015906280625015,25.219548581385574,8.452826943368901
+0.14907740456840957,0.3058956773908288,31.662208626378415,11.069475555889884
+0.1489009670635744,0.3015476389547356,26.316141495337536,8.768691722112353
+0.15040775864109587,0.30259821344478927,27.558312881520706,9.327111796184514
+0.1472243227403273,0.30869198579910934,30.908374594522183,10.990654043197056
+0.15090870367118617,0.29401446781053797,32.86923582238348,10.342511408378508
+0.14814522457565546,0.305030735273677,27.68221484796239,9.453099057528014
+0.14963490644660526,0.303098955165886,29.368255265861013,10.059032648787689
+0.151198210097055,0.29885761828823654,28.099624767184594,9.234811336990399
+0.14921554706381188,0.3042906161593349,28.404083008365745,9.778174573962293
+0.15024641531527302,0.30240570232616365,30.44438440359634,10.359745547714281
+0.1498863076019546,0.2987851771117795,35.201171123178746,11.526576855118341
+0.14895581148511014,0.2967824435287926,25.893127168653038,8.225779906122595
+0.1537241241984455,0.30106378664925243,26.217628215120595,9.025076076037978
+0.14908445413709384,0.2913703993026949,34.307075712228496,10.335820924120384
+0.1509934550848374,0.2983794884386259,36.56295130699237,12.054583166590827
+0.14917704466826798,0.2952221615332231,32.308253192878134,10.190490974334367
+0.15063222912051033,0.2995406424695869,30.865623545864416,10.238329688328337
+0.14967489866518946,0.3023697373527036,25.516564069912352,8.652796368270076
+0.14876565383842355,0.3004506053537208,28.643684424144805,9.4815817817979
+0.14979491768061212,0.30097130396038835,27.60908258410998,9.267209030389456
+0.14876016120012941,0.2969464568816164,28.05311601667463,8.981781656933007
+0.14981367925523403,0.2948764050859755,33.50601731386008,10.5259107866057
+0.1506896178007023,0.30572012753160677,30.23584021949554,10.609316750593381
+0.15243986858610808,0.2986552197329972,35.34078198375197,11.736751766408467
+0.1498514574067397,0.3023145182321984,28.65989123655709,9.73219336617965
+0.14973794353484146,0.29862127547049544,33.27937301592313,10.875510798083441
+0.15126033317833118,0.28749122809418715,33.23996007039621,9.786585667731352
+0.1495446565313801,0.29780169482300906,35.53338534264499,11.45485176378322
+0.15082617573720739,0.3000783988592799,33.25006834924283,11.05097604400453
+0.15219647905155434,0.2912563529734065,34.34418015829418,10.583791025068024
+0.14940148959775865,0.29888806435424126,27.509264354132803,9.001649636106386
+0.15025757847894855,0.2968105824482904,30.362226267862052,9.755931540914572
+0.15124259655991376,0.29895477114759395,28.301614393414965,9.359063839191375
+0.15088626447582212,0.30181320392816074,33.94099900689517,11.541376335371519
+0.1512271258648696,0.29897430397573205,36.162024667086555,11.964604484514128
+0.14875836642235374,0.29953924198234677,34.206212951652226,11.200155751707443
+0.1505515177388149,0.30130761226627917,36.018209130536405,12.162356777824936
+0.14795098411128757,0.3028690982786083,32.80147135711972,10.990146056424466
+0.15066345212577262,0.3061379543985671,28.02494372437358,9.889004455209392
+0.1498688962588884,0.3042747364614315,33.224407253142374,11.495620249157781
+0.1511908009081899,0.2997119484121435,34.5040748991875,11.49854148226733
+0.14919401817083952,0.29727460265851247,23.739706063501185,7.601257163175144
+0.1509529340180886,0.30220949312090245,26.12639548000782,8.87752857154905
+0.14948772752465933,0.2999259547186016,33.20767191967741,11.026274545958309
+0.1486349591752679,0.3019949446284335,30.288848401727194,10.152838919818876
+0.1513446849177707,0.29572488890443854,31.659834523778716,10.11892961624331
+0.1473960161818882,0.2947598941578979,30.365672926920215,9.358843952207401
+0.14996077667413607,0.3066571493666906,25.826770918212866,9.056745791449355
+0.15265793617868526,0.2972681847910318,31.29720286764956,10.288777374335583
+0.1492417604472084,0.2929765238306304,26.568839275631195,8.174729966008721
+0.15040357946763352,0.30288980065095356,34.38165836565564,11.702575606891573
+0.14819780466011748,0.3004385530453564,25.32901571279708,8.308012546876899
+0.1507633882125035,0.30557604703980307,24.548169860747183,8.639131048626412
+0.15017079959565952,0.29973940164178825,29.264580213916858,9.680246198517418
+0.14906147535145028,0.2985336340308801,30.496984891246974,9.861557937375366
+0.15050813269843497,0.30031900599836253,32.48606318767466,10.855383436502802
+0.15103612967224717,0.2936868417789775,28.280217907050833,8.876878754452761
+0.15186241427217048,0.3031455275130496,33.8208469929001,11.735049997698075
+0.15185864139833055,0.2956259167608082,37.00160653606174,11.896547625643425
+0.14984246723274167,0.2942681503173357,27.889506808309005,8.70943786300349
+0.1499817950147458,0.30222777973895426,32.05413720934781,10.805688658976253
+0.14848862546753486,0.3055455989847807,29.510163520632677,10.23612894459919
+0.15129089105523078,0.2964009144118516,30.64690884422028,9.911214582317172
+0.15040455379407988,0.30251356444144684,34.949941309274216,11.93079236809867
+0.15014539021924947,0.29892605956173735,36.201172727639914,11.850676134200187
+0.14985837848624214,0.2989250734398376,33.97974748136045,11.04679203801169
+0.15123664103371148,0.2988085881169198,27.314991958444338,9.025691063999346
+0.1514385698313616,0.29616711055042066,27.000425462110858,8.700577618454252
+0.150267348453317,0.29491865363633535,33.372342767494494,10.53105418543387
+0.15008848097186303,0.29969842950694203,35.086746468448865,11.60756674581252
+0.14953789540591875,0.2930842029498012,26.649832577915348,8.18506729121734
+0.15106920111916455,0.2983571357871916,23.28175487057035,7.65758519752106
+0.1509359656941498,0.29990195574388184,29.538083864061438,9.878268321512692
+0.15115501788335736,0.2980387243640346,34.37355300136416,11.2454802129667
+0.1505231310168393,0.2979311562446744,32.4785844680121,10.60033422492411
+0.15137772342566688,0.30124057081884653,30.2694338013806,10.236358786609049
+0.14972691366984903,0.3070264418021966,36.61960663193208,13.010086407743469
+0.15091062143095388,0.2971720230219162,25.000255681661884,8.052370871774297
+0.1511386478466319,0.29634513047331695,26.883437323659237,8.62531195527594
+0.15008462387368607,0.29651094361759306,34.56075023876316,11.07303865179044
+0.14701966409788644,0.3004392741081591,33.85560273829859,11.065562242837624
+0.14867707252776366,0.29723642372954745,39.49476324505095,12.591713864017942
+0.15107986791962177,0.29721859649007704,30.489438377757608,9.89766687599394
+0.15011488875084042,0.30014570682499936,33.7499967787005,11.156958993709052
+0.15221870502758336,0.3084343484274188,27.447044466709684,9.985065883991153
+0.1512509814163417,0.29433003118657125,29.806366898757023,9.41122900682281
+0.15117878805416265,0.29598544432854423,29.061255736555676,9.301509760706526
+0.1500922285589333,0.29706068102798594,33.80006191736862,10.891773547770033
+0.1518879600629523,0.29898065163019705,33.422499113401045,11.091479233322527
+0.15095834497757024,0.30274686697180875,28.426696521684317,9.711058084079626
+0.15079567460919238,0.30515158180402874,30.699130204358138,10.729159162383857
+0.14934075784324496,0.3025310345383543,26.919502673802885,9.153838865481607
+0.1500543144124589,0.2995253449491973,31.62000707458597,10.449382640055624
+0.15155623435919083,0.29961136489622225,32.90123233672207,10.966204958456649
+0.14951995645406604,0.3082201687319642,19.95868440511743,7.097090864042583
+0.14760201438693782,0.3004724537206517,28.232841888116216,9.255904926006599
+0.14779092977810623,0.29071731929837574,32.76202912254371,9.730413085707433
+0.1491623740716588,0.2962389197420503,32.45636496243322,10.250880536508221
+0.14946164117152957,0.29653950548537084,30.464043580216412,9.667011995390464
+0.14949773523804236,0.2969774260578205,23.8620439741878,7.6490579390220415
+0.149960556907964,0.3064415435482632,24.82347834972292,8.77780495740306
+0.1514203322833583,0.29968259716087353,31.42029881437975,10.488567799689747
+0.15055737803637645,0.30630462073295767,33.51689271347229,11.846716321497944
+0.15120864997725922,0.3009440647172057,29.963168545855037,10.085357473220913
+0.14899279212480038,0.29330904312988176,25.62921549120118,7.8817479504385215
+0.15105935335217813,0.3012438082787404,32.960604658232484,11.164264342094928
+0.14784941879844132,0.3079957179141506,29.764299694931147,10.517175839285597
+0.15065036688154718,0.2927757309021103,27.45874628147905,8.46930595825136
+0.14914601331280725,0.2901538908663763,31.888982048951405,9.484488927811588
+0.14893743050870345,0.29711627768431,30.188025048763954,9.658608480162505
+0.15079155143260545,0.29825336392257296,30.654580469025245,9.960743385521946
+0.15121704845259587,0.3044421964303313,27.242633864535705,9.531203494700447
+0.15063654499200305,0.30185562906989977,34.695123633187706,11.817022857853162
+0.14968482659355914,0.3037162050386218,27.555679387581794,9.555450040306123
+0.1496819792395299,0.2989840204308278,27.64664756369102,9.03123425370152
+0.1496333077311794,0.2993908040706199,28.69326418137503,9.424091993197747
+0.14954703288332746,0.3006311534960641,25.34343053950323,8.412849625644617
+0.15003787976313512,0.29660482848075914,34.43554535598618,11.03963931295674
+0.15020503250049713,0.2993006758049192,30.751481624571802,10.123347817565215
+0.15054684233309967,0.3041475918761166,26.76849761760211,9.322336730576316
+0.151176409992443,0.3038507714782511,25.481840204403333,8.85817453451678
+0.15058133634980106,0.29839647203227515,31.410843424644213,10.281842888273818
+0.1501164003578849,0.30290971684315116,34.95081516104412,11.926671744473673
+0.14870870628412772,0.29911373277126313,26.146484303095402,8.534145026886769
+0.15075055057909711,0.30616848674486086,26.923112459475867,9.568316019808073
+0.15074525683937098,0.2918553579684512,31.658167661932637,9.708151450711034
+0.14954554711946627,0.30116243967153034,30.28292408927563,10.161641143407072
+0.14990041386936065,0.30228712199449453,34.272923709166434,11.65939842965061
+0.15045106612158363,0.2990953001137047,28.114167755882715,9.275493092853393
+0.1503863929155109,0.2976212255477522,30.246764388281537,9.751199157027244
+0.15019797827023715,0.3000106448129475,30.88799329891091,10.267543985226247
+0.14966411091296064,0.29763115557517794,36.927849229833825,11.942374095866713
+0.1492068479172189,0.30201974847622787,31.217571536174788,10.498276268257325
+0.1518907073550811,0.2956484448389705,30.43353251824483,9.777252585442957
+0.14955247225066448,0.29815156557390265,27.314507629261982,8.821677053473447
+0.1502436650151414,0.3037466620280247,29.7164154870646,10.231666570937726
+0.14976210244170166,0.2985474226428221,26.70977182661979,8.707835024759937
+0.1512168525523791,0.29655703704774067,33.53122401347239,10.862009990992181
+0.15124997148606492,0.30145148209894385,30.10706251711293,10.215341718284254
+0.15102039477316617,0.3011362668999081,34.2183596729988,11.555388393960992
+0.14927384960338666,0.3000266800372907,28.930875346601717,9.532615066721558
+0.14897381524113582,0.30170070233536067,33.882115245137264,11.331929609037445
+0.14995349467904134,0.30219865676720364,25.209011062506388,8.503995153045514
+0.1488645394878935,0.30362749117716326,31.095209893227157,10.592924690355332
+0.15063115312071765,0.30502852930017016,29.115290844646427,10.198355252383108
+0.14890165875497113,0.2942254254935604,28.82116200352384,8.915033812382127
+0.14893890083967098,0.3041066876767933,26.36411300198654,9.002289613964603
+0.1508052335942665,0.298925637532032,27.16186411164882,8.962375611443761
+0.14842648865049934,0.29962788401843704,30.21863875895262,9.844861017007982
+0.15051416687547736,0.29428404091626553,34.725772830851504,10.87594121439406
+0.1509575144045163,0.2955371444183768,33.07492726899305,10.469402776617589
+0.15176814512964398,0.3026930539329611,30.79893851660414,10.576263476743435
+0.15030164456712505,0.30284831815079044,34.765223990312094,11.826541996156827
+0.15027921642337938,0.30683599634790293,32.51005329560275,11.58230884120171
+0.14728138425921644,0.2926434958218858,31.64923584663656,9.54349678239735
+0.1507575284044046,0.29210042730555524,24.849058613723656,7.684507021154809
+0.1500049250616565,0.3031062058111396,27.194323553502247,9.332150431765799
+0.1487168849670676,0.2964163804595073,32.21573088731027,10.209686191547206
+0.15075699133854817,0.3034139750626313,29.01431882051022,9.989719410597978
+0.14834700891791752,0.29963856881203704,35.08200228687244,11.450391648799496
+0.15182451040441056,0.30392998085130135,35.91982115755415,12.42735166201002
+0.14889302864109205,0.2948418329228591,37.86348995957854,11.824041444916647
+0.1503711211854792,0.2975105405793958,26.840376992498186,8.694657683105342
+0.15125413677062022,0.2921259315315851,34.260986352712834,10.54735717166166
+0.1519646946306437,0.2996683439804958,21.42197425749427,7.17313939741468
+0.1484600934854459,0.2991377244063529,23.710963458079764,7.697749791715194
+0.14891410632892274,0.2988098380563203,31.743169415855345,10.256761434163158
+0.15066958563408175,0.2951500528344038,29.969531644365887,9.53878630645548
+0.15054966845771045,0.3022017488787465,30.747535506480485,10.527917237009378
+0.14806272196892042,0.29465372012727564,34.435503601961685,10.710265284843393
+0.14997172913770979,0.30651510213206745,32.47431075342442,11.417037889899817
+0.15117117131752694,0.2917292272518141,27.764525272700183,8.500357642467375
+0.15159874956945657,0.30115157175264834,29.51188427479089,10.062734759882941
+0.15043374973978196,0.29660831932668114,27.047671261162318,8.706239007600306
+0.1498057484815538,0.30121785119025507,33.89142789793691,11.367397727684121
+0.14789567691673852,0.30196473516278916,31.148834787039068,10.448674031225941
+0.1488294866750703,0.29256419767629227,33.91688094566335,10.34174434433083
+0.15085697837387252,0.2987449175042957,32.92262687052016,10.830422013537566
+0.14920199188867211,0.3008471194837781,29.77245789341505,9.925668151517995
+0.15052748038362745,0.30095241276052387,35.59227534524553,11.940957419512525
+0.15076325794371298,0.29357480346153286,29.340350689559806,9.130312442363135
+0.1501764690265589,0.2995196023313363,24.365027140691573,8.09936415044696
+0.14966904009886267,0.3052383842940481,24.206903430325134,8.445472845994399
+0.14868761060530106,0.2973455630128658,32.29125182245676,10.322375935045311
+0.15063362817850906,0.307037400258243,25.98411130267952,9.292888381135977
+0.14893327816488533,0.29528791586084013,33.565934687041846,10.550531955321762
+0.15017370993630055,0.29823479661294,37.957742666959916,12.436546845933393
+0.15070160401760851,0.30339393884344934,34.812467822573694,11.97663251933992
+0.150832258891719,0.299543367830413,28.108345672654828,9.318232357885304
+0.1495652178989082,0.30892162251966204,29.75510102125093,10.758924632664922
+0.1490765561033728,0.2936808755010839,33.50120921681035,10.357682603202344
+0.1507180329854221,0.30354436302789806,27.86521878224896,9.64179106792109
+0.1497967552535799,0.30216213544523557,35.958024479518684,12.107584721499737
+0.1503944591532032,0.29952990150772413,30.867847503731902,10.16323250350204
+0.14957929628929098,0.30146029662921797,22.82043823563545,7.640989320914041
+0.1502356353774901,0.3056037396018075,26.995701954372365,9.526998896734046
+0.1503338214091052,0.3055681512190886,30.38999455302239,10.708257468749096
+0.1504410029693449,0.2948036468702991,34.35347582213354,10.834846131345344
+0.14856311746568523,0.29654993115068257,28.31349539089163,8.97390091269914
+0.15146680372352042,0.301732767837017,32.497306124371924,11.026076815835575
+0.15042569312934767,0.3005818497522339,35.444084693209554,11.917507516956862
+0.1505274006263153,0.30369060984544877,36.81698494232931,12.64791808385251
+0.15011000129068966,0.3030368117390581,30.093816878650752,10.261939540528456
+0.1515239624134868,0.2980517982761791,31.441045046718862,10.300464234523826
+0.15124208627284313,0.2933373424284313,33.65331225024641,10.497051006788578
+0.14985998052949054,0.3005785195306973,34.28967923656887,11.39011396080651
+0.15021188931656335,0.30171125427496914,28.753124501034144,9.689699131610409
+0.14911313882918142,0.3012528369082108,32.52422251029407,10.890077489548956
+0.15032240581357864,0.3029229043309101,33.70839983360081,11.443637035451347
+0.15085208346857668,0.2989352158071677,36.85363275739923,12.118241764951293
+0.15031841203212024,0.29327163649696353,33.65359890694176,10.435361855360695
+0.14787356351293823,0.30277710444816797,29.265373825893057,9.789588980600792
+0.147614225701062,0.3004627640812067,26.171588071358748,8.602406014502876
+0.14898958289252526,0.3047821475108864,30.778340475410154,10.617208072680864
+0.15152818736152615,0.3018856573123969,34.02404261996352,11.591377767253263
+0.15003499208965257,0.3028292605271953,27.41406625965335,9.379812783330312
+0.15136377013832333,0.2968016101960674,38.35328806281334,12.431948082944324
+0.1498827157796835,0.30843931356550974,36.46909986933902,13.119947155532632
+0.14871337441654672,0.30384476999128057,32.173003035957244,10.945690197405327
+0.15014917077940734,0.2937468278021895,33.408281565499706,10.418815119066625
+0.15302948609505895,0.29789564451548634,27.347464774697546,9.033439218908681
+0.15031386357921248,0.3066368888142671,31.860685450800645,11.323987120272413
+0.15016886402867483,0.30465543523082483,27.771821775415372,9.678442198374116
+0.1502505033534802,0.30017686285155093,31.453346884174376,10.418743623976825
+0.1512462608600947,0.30362550742386146,30.832776602706044,10.64017509880815
+0.1503295284047975,0.2966764728275484,25.960002410448894,8.316749262922574
+0.14952117372988893,0.30165794611401653,25.193815819174393,8.448657346085543
+0.14944276187311584,0.30409938659928093,29.479639548649242,10.130651168787438
+0.1484519765435036,0.2986560450144415,39.04871935204383,12.624017391488406
+0.14871945578709161,0.29947358736515217,34.05779498935618,11.241285095454518
+0.15114992891463538,0.2920878614281889,24.62669395402656,7.5710802071877445
+0.1500224819224408,0.2959402374441665,30.488445405644175,9.648711918238675
+0.1502392934332353,0.3009577572317961,32.36014928630358,10.830675189699303
+0.14974285552240094,0.301591505528705,24.20785628222651,8.101815756774375
+0.15013061630773614,0.29808108589706656,25.150809845683703,8.196801270555618
+0.14967298990034558,0.2997450366378831,38.004137347578585,12.512629895642338
+0.14992919064645452,0.3052126130268347,31.982966766096474,11.244107736229351
+0.1502090834939124,0.304976188279243,30.155283630009816,10.548261420645598
+0.15026848432272913,0.2932701131096796,27.217240708839576,8.450028124342944
+0.14944652947931283,0.3032959770027709,23.6678188520576,8.046422121762305
+0.15040461896191407,0.30206528762025553,27.109039252678162,9.155663379839762
+0.1504922919693039,0.29054118025907455,24.61732150895415,7.447804977599117
+0.14910210523182174,0.2993956696583617,31.589401136626837,10.333482539075487
+0.1508220633365633,0.2988573645562054,31.44945168896795,10.356595799235773
+0.15058994247338892,0.2909510310489874,28.322267752414632,8.623093618504152
+0.14900871860030934,0.29951312054656976,32.533177602715355,10.644224312825305
+0.14929337686013366,0.3029452725227361,29.625730978659696,10.043413877830407
+0.15018649847838705,0.29359053573809824,26.944428272429917,8.355572922789456
+0.15007827273545463,0.30420799629240264,31.910309545382535,10.969322171268509
+0.14993901866203935,0.30066466820325627,36.3791801618848,12.07420164414293
+0.14885856858200075,0.29536921004670624,32.523786928977465,10.198408610603558
+0.14957152920716602,0.2995349861547087,32.33065240642796,10.562178372045615
+0.15051753082043925,0.29992540417637825,33.329345172107686,11.104997219388034
+0.15030228817895827,0.3029717325051204,31.040964576080814,10.615308494931815
+0.1484624525422483,0.2988307561975425,30.05498706841398,9.718551973038558
+0.14888276043656964,0.2969522089042105,28.08023262483907,8.955993133171685
+0.1496719995486927,0.2919109873933123,35.79845797122066,10.965005905284617
+0.15029311495094014,0.3094287001399119,23.45836653918558,8.50727727624241
+0.15091964884714623,0.299963218337733,36.160923779999635,11.957776418657852
+0.15109598329800666,0.3005024472545272,30.993687905045608,10.392037123506576
+0.14965631932309167,0.3019141239628933,30.225162432576266,10.18183570199313
+0.15131396676829342,0.30147361398136524,30.28433077441294,10.329994260638832
+0.15048637978133342,0.2993597464660071,31.84737518883069,10.510559456755301
+0.15016673737018899,0.28999659716589626,35.50364612751036,10.610693607550473
+0.14738591128104175,0.2947372581857313,29.01277831480424,8.935773213567476
+0.1488093878551757,0.30743356580620107,36.335616238205695,12.889863504494825
+0.1517813246349319,0.30324181713326953,32.99783754133938,11.38537009284713
+0.150758728380869,0.2970595202012445,29.24568675497889,9.45656563771629
+0.15131989912749075,0.304031710543142,28.5189431623976,9.908293098869532
+0.15175563571148867,0.2976515901505717,31.920847087078297,10.417592749936498
+0.14824076772755188,0.2968697300776827,34.35004275069388,10.925628780770584
+0.15089729837535842,0.30365925859072807,29.59194908431159,10.274826181125984
+0.15106308040215577,0.3075729492798916,32.37900260840095,11.672886249129787
+0.1517354087338235,0.29025654663565253,29.200397294606937,8.885552830450896
+0.14823542116693725,0.29815827778438286,28.938213478273955,9.264698314041423
+0.15154834876713924,0.29792698181185195,24.008755509333046,7.871932990162026
+0.14959729750167125,0.2994374379576436,32.06393736344493,10.570597731619692
+0.14792977909299737,0.3000417773393517,40.82540593972179,13.351537175515492
+0.15196658111533673,0.2946385411084125,26.09044580106551,8.338997530510644
+0.1510220850504848,0.299738917510093,33.62464381268533,11.196876026008894
+0.15056967118126055,0.2966678130030911,33.61173312173384,10.817619185272502
+0.1517707078250806,0.29349498596725687,31.882869494672228,10.025699943662003
+0.15147506942053213,0.29528351740341396,32.89982952511258,10.474005574162053
+0.1500181040440888,0.29196888047046937,31.410076436487728,9.559782205306137
+0.14868623831084904,0.30016010663540793,32.31530281600955,10.692330174987362
+0.14843661537867275,0.3048619819544252,29.57267827491789,10.147097648772029
+0.14935356041469383,0.3024077044842959,31.254387416036455,10.590472317259344
+0.14929278593165152,0.30429970700145087,32.23894762213105,11.070031787510883
+0.1505337093469242,0.2988069632001269,34.89624555335462,11.493628400831524
+0.15121260121649183,0.3027581628195519,35.08942019399526,12.07934788460749
+0.1489193568264593,0.3033530927076887,24.11312630231134,8.169468146429
+0.15076703786156756,0.29502217255024893,34.08919193457311,10.791119172536847
+0.15054218163325714,0.2967558147490412,31.987682855829018,10.294399367637991
+0.14953055967520004,0.30351860341069214,29.219941031778212,10.002680820875133
+0.14959700788475358,0.3018123199685266,26.10714103576688,8.783203738271029
+0.15117570090083168,0.3040979425724393,24.623430462113262,8.53983093089476
+0.1512568769373476,0.30390501004466275,30.111676917649863,10.43036557237571
+0.14949131369551366,0.29987303894252987,31.667631187325675,10.44095240733032
+0.14900671696079928,0.301513168462388,28.853242167467812,9.602355947064813
+0.14978756623540754,0.2988137179429864,28.60090207585285,9.317503573509804
+0.15036270974495508,0.29006643415678907,27.15392991993081,8.128656074280554
+0.1512837415211956,0.3015567688667979,23.532941899761802,7.975692610765678
+0.1495591644592673,0.3074223300869523,29.786339068072085,10.499009713761371
+0.14828298397720358,0.30549806350968883,26.478325886992987,9.153302662687553
+0.1492822729373184,0.2970438996280207,28.20429896393201,9.095263548669958
+0.14990051644596777,0.30548572048317885,33.42444394001757,11.628652355062053
+0.15005055835352255,0.3031442339835692,30.382556293090627,10.391817052730225
+0.1486067758124017,0.29891551444119185,28.821375362481557,9.343403549793875
+0.1506437316020271,0.30016200232361956,35.844887460099834,11.830060559519445
+0.1490859544222344,0.30457317076830714,31.80362578352571,10.945371769361744
+0.15006509001935886,0.306770807981222,29.232113196279876,10.395637032015946
+0.14932782227031074,0.30045598380072996,31.9918718057975,10.53974966636883
+0.15123907282744287,0.3015247222918784,25.922987946446916,8.796781837609016
+0.1496552659910478,0.29453060569342243,29.463981544514642,9.19744859453254
+0.14875250708547624,0.30144723058369227,25.832422763660407,8.622386789576131
+0.14996107573470427,0.30423699251532155,29.425285949656672,10.219843839859747
+0.15093899029653995,0.28960054393113316,34.13228569972372,10.221225991677711
+0.14955452097681618,0.3013937963023212,26.309347712901648,8.817941914816643
+0.14978146621559815,0.3061178492764605,34.98293931381591,12.24444682965456
+0.15024256964746727,0.3064390527095013,33.191150532791916,11.819635003489598
+0.14882859329938236,0.29936129573981846,32.156847864253315,10.471735546901114
+0.15013074415945168,0.29368661934606727,31.258682223608737,9.711805391483326
+0.1499962394192698,0.30618458846575763,30.75082349140601,10.860163841485003
+0.1483661712219665,0.29489089587624445,25.897643911205627,8.072150279870213
+0.15016909795222208,0.2940812748740644,27.210657771842737,8.53777380221041
+0.14770905240245816,0.2988029679742595,33.04682593592117,10.74821040028409
+0.1504706001374261,0.29360471835183233,29.783580443639046,9.269498121430289
+0.15106720100056262,0.29401558610509215,25.094609778352396,7.943548361001013
+0.15093940259993072,0.2922969940609524,28.880885318437358,8.986781444225661
+0.15175233897053178,0.3038750891284353,27.14456420767266,9.408639459663577
+0.14957513232572367,0.294119013402869,31.947348594894486,9.928199991299774
+0.15039435534057494,0.29539384762894944,32.02003746263402,10.125494170494
+0.15056360878977945,0.30332954606846935,25.313174972292884,8.743527321176554
+0.14939001505792693,0.3077775812330945,32.2496776316018,11.549140382334972
+0.14948332710852158,0.29939340366713824,23.50504751207855,7.674796198835257
+0.14892432182206336,0.2963109690562844,28.98611479585104,9.225921188053903
+0.15005619968168907,0.2971092224727821,31.42829248609925,10.054136377946058
+0.1482419158748991,0.3009716413880165,28.962002423342803,9.617265544013971
+0.15012840183811435,0.2919312229530458,32.36518937033421,9.861727026409891
+0.15020654460440572,0.3059886333848216,25.80801920413371,9.102426706867877
+0.15121393587244067,0.29785226204632986,30.917558037647137,10.122876297971871
+0.14996563010225417,0.30134540552396566,35.12137391320328,11.771037468377854
+0.15029830029940242,0.2949710079177352,31.23133364423206,9.88133328668207
+0.1511119111883414,0.3015865882728825,31.329649884742775,10.62367150512918
+0.14924692296059347,0.2987733718958023,30.27513086974693,9.8587082285617
+0.15127436537312827,0.30154839363563585,28.711165501277677,9.796495236037586
+0.14847706777775357,0.2966056616147545,33.93109741304513,10.726537641138675
+0.14946214455930718,0.28984494673266153,28.212494421228403,8.380500038175887
+0.1506825926411751,0.3064262925111831,31.009909882591167,10.945446748874495
+0.15099243380503366,0.30340702212937015,28.58124642359956,9.801112721573395
+0.1504494182286553,0.3047830913829803,38.47640322115666,13.36450576347629
+0.15106487824036255,0.3005892952081447,24.919222219033635,8.344135055723386
+0.15196836674126585,0.2923502393382312,29.63010102781788,9.19344493910101
+0.14926247152236263,0.2994402272515033,35.52990400329769,11.6920420335638
+0.14976467681821243,0.29670154156693357,38.051075396857776,12.178321145054468
+0.15029593867639982,0.30420229052743125,33.38294066262675,11.523936486991012
+0.14857528292565486,0.3021919233109612,32.19633576988187,10.763034301563895
+0.1510594679886518,0.29973720389448055,36.60107852580917,12.185170673321384
+0.15246804262893324,0.2998333618128473,34.20083288308479,11.500285352995697
+0.1535709971024537,0.30959122838707526,31.668862939015582,11.853204420432208
+0.15123094478754415,0.30549275800011766,30.99913726547713,10.918482367078374
+0.15014861880458383,0.2933854513532002,36.88113647741596,11.481509761423878
+0.15042934534432115,0.3038639078507019,31.91667634402292,10.996945049389945
+0.1495930405242381,0.30331042623897003,34.29334553983028,11.666747088793155
+0.14979711836621537,0.29802794755613404,26.994616966403477,8.769529047466268
+0.14984532953417853,0.29556387253697286,27.0498643164782,8.559434718148317
+0.14869799101823036,0.30434497072303573,26.21586079150661,8.993305473093198
+0.14836285038374317,0.30517211624538715,37.26622461243694,12.852664984418093
+0.14943159371727405,0.28969698619514245,30.66998910233591,9.066638096358144
+0.149940932235718,0.2975049294999836,27.1245990680857,8.762096258382288
+0.14922791883559514,0.2977634618880283,31.13517718691211,9.96238658775658
+0.14926952451310155,0.30083614805899594,31.851987221588303,10.586985105437451
+0.1495666051874417,0.3009023040516559,28.230462642555405,9.443281823166174
+0.15123404167979212,0.3036907729071329,33.631049019883726,11.65065908415119
+0.1506915748929467,0.31007286603300815,28.791522579345035,10.522978193073877
+0.149236094491469,0.2952837526413964,32.337132937049894,10.137734662811628
+0.15027005273435337,0.3033658700023189,26.480970893509884,9.114870928114595
+0.14844500558979445,0.3010653223761643,32.107848308819634,10.681984767554077
+0.14985653448034897,0.30064514440767826,30.196704481438143,10.050163651391866
+0.14953464697694818,0.29900325269412065,34.242284739469646,11.140426989003949
+0.15024043507619017,0.2985587045258194,30.206342209120415,9.83436491844351
+0.15245607917602663,0.30142395567712105,34.34573805931154,11.710476207827014
+0.15007613950607337,0.29951428809644365,25.93698385831209,8.547068560236008
+0.14948567046068434,0.29459933683133566,37.57067084720336,11.799902421384306
+0.14972077488181865,0.3002441567088723,31.9496906294171,10.533847068473596
+0.15032282142747763,0.29885684637501947,34.10185615697111,11.163145758980717
+0.15011087593107025,0.30151323260757185,30.58147659411447,10.299610896279773
+0.15164252198537173,0.29501365807090807,24.532006072465236,7.852103144213662
+0.1496703332648168,0.29424596699080013,32.848038158588324,10.228364741019794
+0.14999798393376856,0.29706567508528287,35.60582101979719,11.435674622125283
+0.15060374276638175,0.29856610266922673,31.134019552887885,10.269183100433752
+0.14995430489691716,0.3018683241406865,24.042705088855634,8.117618952649552
+0.14819069856063,0.30329389305647303,38.994361543850715,13.238693523485017
+0.1510184485200127,0.30247508614175417,32.048296414670524,11.017520555522488
+0.15119218971675003,0.30332837393149786,22.9323035971646,7.923357557494507
+0.15060577459757615,0.29566289570867216,30.654435948931607,9.700718817872058
+0.15033794215104931,0.3042312182154079,30.323577133895128,10.487081761688454
+0.14916663760403992,0.30164730140562657,31.236148612720857,10.511949237930395
+0.1493016947289959,0.3030567651314524,29.057893570185445,9.864812295436248
+0.15172826084290864,0.30051688073430777,26.586032564923496,8.981273370883144
+0.14966676113287605,0.30039227827431575,29.254795160924676,9.6943680767718
+0.1498135767028827,0.2997613639297315,31.03551690024411,10.226351567804484
+0.1503949636328519,0.30230270361168105,29.892999501677544,10.211885598278212
+0.151573802597699,0.2982939553198602,29.42107167630469,9.6998484769277
+0.14831131917804652,0.30058640293349087,31.51515950761884,10.342440708473132
+0.15034405785893276,0.29973775830680177,28.36103096251965,9.379845345378182
+0.14903190317417805,0.3079035700240502,28.3025330722287,10.063550524782102
+0.1478080524964651,0.30955457859831015,30.35901745271205,10.871103933055402
+0.15029019841852218,0.30130550729433697,33.32374829294493,11.203764573589691
+0.14962738778213355,0.2995570057864302,32.16595164112327,10.584775403022231
+0.15078993494856646,0.2984270466767336,31.97557096547065,10.52222327495193
+0.15034022260438115,0.29713208877591196,30.829875770429066,9.901457272457298
+0.1491323979084778,0.3043204588885452,29.74965779562403,10.223674046426117
+0.15040581658257285,0.3005155497833545,29.43965251756935,9.79157941400253
+0.1478512612441709,0.2990195686566001,29.232743188963198,9.470235808418142
+0.1500735641391952,0.29483498293008925,38.76464139601996,12.223634242143937
+0.1487289227115036,0.30412407481335674,29.853001069863858,10.301775850103581
+0.1495354880629886,0.3009103635681213,27.087591140382877,9.092106475576859
+0.14898115608072893,0.305723515109334,24.387767483343488,8.474497798906455
+0.14897699488692448,0.29472217413551693,31.166275609724604,9.766383056288335
+0.1507806833786336,0.2937987107105424,34.40202924008551,10.753586591427483
+0.14946882543439236,0.30557679927484255,31.613262427974693,10.990715626912099
+0.15007446744233974,0.2970966476571149,29.88335297755974,9.577581598329585
+0.14961627985765372,0.29809507390120726,34.31154924430163,11.147886141284527
+0.14889122692542872,0.30256451279338104,31.32402980905584,10.56346332959485
+0.15050269454145407,0.30578553339113806,32.76557981421831,11.567576331988679
+0.15229505271838192,0.2980766828179947,36.38319789957793,11.977440920532379
+0.14886430027943778,0.30531143580287384,34.52110714936033,11.968323603263034
+0.14963434211851567,0.295459189244937,30.302662211960662,9.590708169856164
+0.15016411639580113,0.29662514339495627,32.13514236479925,10.36706838300313
+0.14964471737828816,0.30623342441099,32.11797966513122,11.228588715183676
+0.15089495471534464,0.28669953358657735,32.47598717431585,9.367748841935402
+0.14901439932110488,0.3015817295623231,35.67924275387125,11.9129333301493
+0.15065699854073972,0.3036763041655656,28.312507967551436,9.776709790950727
+0.14922245746610346,0.29832700490896075,31.390042997097453,10.157804154899141
+0.15037367287703232,0.2925690515548204,30.453856114618482,9.403168602634725
+0.15030175150196196,0.30214945370991697,32.583894056423894,11.07201588224418
+0.14976302423069693,0.29803403215069535,34.664996394579084,11.23770611052974
+0.15066174317294365,0.2951221344713463,32.66855482390812,10.304461667937773
+0.15101810601617244,0.29293100172253594,27.392627361136483,8.536144622209695
+0.14872508626990102,0.3008814647672245,21.7817644231091,7.239791857943913
+0.15201803723889057,0.2990632269986326,35.19298258317643,11.613395717018953
+0.15105365960056866,0.29858451747018555,30.197380640425393,9.935498483852733
+0.14904539584416507,0.30301646208662014,24.323889331651962,8.21539122734183
+0.15163033690423086,0.2980432363822574,33.799329180240534,11.093831322356856
+0.14946963993916157,0.29529602543010225,36.78909615567422,11.629944984474523
+0.14918988852785864,0.2940231863042375,30.339571206401775,9.398481960191425
+0.1502965418038214,0.30007676671221867,28.269440520536108,9.414317439700133
+0.1515097059027011,0.304775227234421,28.736069170635616,10.092638780269711
+0.1495828253110589,0.2976348466213151,31.809280218843178,10.285626850498998
+0.14856869286061794,0.30442414789867916,32.283064691468155,11.082020360157571
+0.15073573708215263,0.3018972187753007,30.088391425553613,10.2233142496659
+0.15097968602277714,0.30211186095026205,32.3789178452419,11.019646265377682
+0.15017706037985587,0.30082009425988304,35.36351103601454,11.7893024482316
+0.14828818168020752,0.3042725082702825,30.51656866831515,10.478334292167034
+0.1508488591509756,0.29640717039690057,34.43829542286709,11.085449918410864
+0.14854289556534664,0.2949858792728813,30.643407873853164,9.534437088132208
+0.14944846974729745,0.3001512360637616,29.035524535697657,9.592619040110659
+0.1511193358234461,0.3038840255882353,31.829802691828533,11.065056206478213
+0.15061035143255283,0.30992663218675276,27.13739800766237,9.973450528576388
+0.1472259356960803,0.292873821948525,34.31355818885529,10.333688074200808
+0.1504820054957166,0.29293663947218546,34.12244446399096,10.564758347789594
+0.15002957211115853,0.29204054146181213,32.14621384199188,9.839772179501209
+0.15029129991205636,0.302926946931672,34.88576424559817,11.940177710442759
+0.1490519184371965,0.3092208137824031,30.62775414360587,11.059733703748124
+0.1506192360434431,0.29686306554164565,35.46433093979432,11.445665241656465
+0.1498211913893357,0.3059710905475735,33.17537498227907,11.589815088297865
+0.1499106202647163,0.3052391878799995,29.881247905119114,10.44192793551343
+0.15075946157762252,0.3006716139764046,30.21222067813192,10.14562553060421
+0.14941864819702555,0.3087688492290572,31.011346489877816,11.13137159103197
+0.1503504048849847,0.29452409465573315,32.984415981968674,10.30157179164134
+0.15231336686595584,0.2995847855557831,28.38042668717172,9.498120390580539
+0.14992876770553593,0.2955073007104968,33.84688927454856,10.73014356345847
+0.14778828328970486,0.29554175998218146,35.16309051594405,10.983385609846408
+0.14958180397078402,0.29657019518738886,30.10413394012286,9.639808547729109
+0.14941658735708052,0.3023224618429213,26.458471021112604,8.90399985788873
+0.15054670517225383,0.2938443238772191,28.94806312253282,9.01305642020253
+0.14809105406044193,0.2970556779062674,21.25541490431505,6.754265743507642
+0.14975263655850765,0.2986276239949644,31.757312797393606,10.362837008645783
+0.15108228767347873,0.3031198105675986,26.6938975269629,9.153639858044976
+0.15046852541727404,0.29856093598532274,30.113350600386852,9.874983761990242
+0.1499646622645416,0.2984918196481945,27.807100940766905,9.085050972306021
+0.14733646705132958,0.31225589919720237,26.590665574647876,9.74772233508828
+0.14963801794465154,0.2983725877691983,28.73595081512813,9.369558332461953
+0.15029511066647305,0.300656239004975,32.41485125903267,10.85475495497344
+0.14934110313127025,0.2987606527276248,32.71309643106109,10.631147733042798
+0.15131856242565542,0.29263084290026437,32.93764133478025,10.244594818604536
+0.1508542142177066,0.304585265305606,32.568582245568486,11.310028656859561
+0.1485668797319397,0.3003702945950658,29.60388428417201,9.74775419488824
+0.14808798214606864,0.2982771136447815,32.701877246416544,10.493636595635381
+0.1493555857522384,0.2975563751582676,33.25637625626635,10.729876307909315
+0.14859885165940132,0.29399196516054826,29.43950784204871,9.092754542383354
+0.150117852417438,0.2969059059879977,25.17812588547092,8.115761535597482
+0.1492549549927877,0.2968873683733181,30.45891359866831,9.709929147084168
+0.1509124025985545,0.3020541990916436,31.19217937353768,10.576428810011462
+0.15095647001605247,0.29678947856126414,30.644626116918328,9.849203465645411
+0.15033459171458652,0.3039113140573403,36.71239704942944,12.678631101730714
+0.15003159638163854,0.29579140394140996,26.322359247086776,8.3703114758238
+0.15176791840016493,0.2961909557875221,31.329578367121808,10.13759706794733
+0.14931951086371675,0.2934774643747336,31.792920803079483,9.811213739690254
+0.1494385903976748,0.29849983884466985,32.509333364174175,10.500417985956386
+0.15013535290322963,0.29690211973554687,30.682877330032014,9.83888579036708
+0.1494966940861589,0.3063392998965729,29.813754603674667,10.43408466613716
+0.14871431505560823,0.29883952549613074,30.46311029746167,9.886617007900796
+0.15010738890910708,0.29980573055499643,27.988413693902142,9.252874923285688
+0.15013729898998576,0.2949371164945765,31.267862807104134,9.89156921549504
+0.15050723855780088,0.30575978792356356,31.69148958442447,11.191980545240975
+0.14917028554866266,0.29356131933529805,30.92366236779113,9.548200664643998
+0.14959592960264056,0.3015747576588524,33.60207127262726,11.267490647299379
+0.14964456379453495,0.2959273484550434,29.58575794140641,9.399535250816895
+0.1486305125339834,0.29859172881813506,32.57814235468342,10.494987427389566
+0.15061575573809474,0.30502510243361153,29.741684106244534,10.375878115296894
+0.15078819242972993,0.3079330594219004,36.046347090419154,12.98750247978473
+0.15068822489676814,0.29452844976720544,28.65206436408655,9.040349125542393
+0.150100205720832,0.304509086627755,24.252033702721626,8.444714889250852
+0.15081262193741332,0.2961390177730878,30.68930936578938,9.806830528903488
+0.14951171083907255,0.2989018343235903,28.34341878063096,9.300037648670584
+0.15020592737654595,0.30209872699909185,20.987840718305012,7.104071652179904
+0.14928230993739955,0.305178815499527,36.0740460284905,12.558577348073449
+0.15243122250609972,0.29381058933884696,32.279542284411654,10.21490130593091
+0.14975608415790917,0.3063226007890185,29.929617974990546,10.522990641522846
+0.1519518583900202,0.29549269134844863,29.944448117881727,9.589269820652271
+0.14960138010307075,0.30532195911617377,36.714359798264226,12.783908540477002
+0.1513381247597114,0.3022938272203957,29.57256193317909,10.122499451084863
+0.14742016348772174,0.29804230392400116,23.63076029280212,7.569159768259938
+0.1508788811122436,0.3011513359756591,34.258198291073626,11.495345687046036
+0.14982899787560972,0.30426351790674216,26.863863967461793,9.271968754730683
+0.14895592765773213,0.3023338566832721,34.8640475078041,11.767710338921695
+0.149843441908338,0.29652904148122844,27.470034993196233,8.753383686623492
+0.14869118243343335,0.2914906569034201,32.01754049016726,9.662068460424026
+0.1509533326293663,0.29975110314446235,30.16075104800443,9.99968279622062
+0.15026872128239935,0.3023964658584561,36.1076775035646,12.261560079970298
+0.1495059089558059,0.30203468751484064,33.31421069649369,11.204005475947948
+0.1519729677135393,0.2942390858448879,32.50053461200382,10.316062366557073
+0.1515429988109793,0.29708373018058,31.7577227023881,10.280050704021493
+0.14984015623346994,0.2960191995189967,29.79093951261108,9.50120573611485
+0.15048278654682248,0.29971951315679507,43.15796985567222,14.345835824214141
+0.14911620835477837,0.3098668835671274,34.96104214258803,12.744220199982907
+0.15103311134872527,0.2951589355436554,33.40339822022466,10.670596447363733
+0.1492233648542176,0.2960727504881542,31.853147323984075,10.066029300027772
+0.1511541388364954,0.2966932929987935,36.5113600245607,11.72903458435206
+0.14964890800610836,0.299857433894381,36.17836540547994,11.911300105722779
+0.15084502003737044,0.29427183305578547,31.325843587924354,9.873487873494733
+0.14904632774553786,0.2959303895093903,31.684781236463667,10.03877126080379
+0.14999810677918615,0.308426089727294,28.559957044353816,10.271658734686921
+0.1507735720416544,0.309166400040474,30.04504269330427,10.930716991086125
+0.15213799002347245,0.29195566992334054,31.301913779388027,9.631064954003104
+0.14869342784536285,0.2996925800217488,27.81558077382281,9.059161184667918
+0.14915296529765265,0.30642472330906834,26.794105376723447,9.439291920703685
+0.14951281678534806,0.30602602954701524,33.31097509346966,11.629653940583477
+0.15075171030373752,0.3012043569631422,23.457598493428446,7.9058633835171195
+0.15187371865228705,0.30030071548429366,35.64200335918134,11.96167435980993
+0.1504544588142319,0.29791568586975425,25.955040278615925,8.457068800658156
+0.14904556158487178,0.2967581548584196,26.194804073676437,8.346954160042396
+0.14916263809925406,0.3036509324695845,31.733824884311062,10.846689848884797
+0.1504166952807725,0.30511141515137763,27.38645497690966,9.50517583552963
+0.1518237638743997,0.3084608656971661,34.28351424830444,12.469752280235998
+0.15064377755156577,0.2973977655590622,36.189217947818264,11.75646413668318
+0.14945107990281783,0.30627024178346196,30.895784673755525,10.82479657307176
+0.153075874546962,0.3092038452926638,31.535427149929074,11.64609017306598
+0.1513758310865408,0.29796745075172565,29.58250322883334,9.784147633569248
+0.15008791511188366,0.30016707729214637,30.799763157196203,10.206706850413692
+0.15001836294100462,0.3036653433983236,28.895397736623313,9.991917279607225
+0.1512481417535386,0.3023305880295679,27.784666763475805,9.51674969382431
+0.15045956972581254,0.30311193233225125,36.241726502506715,12.441263093586565
+0.15066670354739203,0.29610240557688217,25.246665377414995,8.045166945388212
+0.1485124729592786,0.3078366436068957,33.97296019928375,12.034676659955453
+0.14747711670244437,0.2957194073946381,24.86512940396093,7.742988269418023
+0.15066759578666813,0.29325299046274683,31.69386342963977,9.885622870390296
+0.1510563186427632,0.28659422675156304,29.297910875298918,8.555689870244734
+0.1494516644647774,0.29993644022008065,28.336291387886178,9.351267581619718
+0.15161683409139717,0.30476336327825854,27.00817101705429,9.470053255235632
+0.14905831750824247,0.3048375834712021,35.224072693551406,12.180733342182513
+0.14919702684568104,0.30071899462840973,24.06725966308412,8.002998014920365
+0.1501634716617056,0.2992221921292285,28.456756380824277,9.354801478498974
+0.14937402607434902,0.29370344802889503,27.1202761540699,8.385355117812852
+0.1484541200649279,0.3020458330149224,30.58205299409174,10.23179323543316
+0.15053540625857081,0.2993223556034504,32.6091123500656,10.776209868568673
+0.15170611011296084,0.29872150499570205,31.50899076345738,10.48362077972494
+0.15173985836955198,0.29525594043788284,28.242838107915517,9.015935753342319
+0.14960984837269484,0.30366258612904545,30.101142830587538,10.363299882677344
+0.15000457230940906,0.2965000521689666,22.590547101866964,7.1911995823474495
+0.15011315700527475,0.2972897651913754,30.217548607899534,9.736742552831384
+0.14997957768805562,0.3039057426701143,26.255442742622826,9.083875774807812
+0.1503612245478511,0.3044532475314712,27.35241093026144,9.54130601317228
+0.15093556892867563,0.2967437162497005,34.026827774689956,10.970173598053728
+0.14953949211170903,0.30029118423471424,27.154113270776367,9.0063410960184
+0.14927420523361445,0.3032515412473108,33.67407410311267,11.442398547796618
+0.14992434108261984,0.30581258866327254,30.8283280426243,10.780464464507357
+0.15132514898323324,0.2983025018542108,33.54658898355271,11.03021673331369
+0.1501750408730218,0.30777668269071,26.9338448798883,9.660872464121367
+0.14969279718448447,0.29905207194077776,28.206741271589348,9.229951078017539
+0.15081262465969886,0.2998605738071204,24.589425604804447,8.170059528272745
+0.14987440005148303,0.299851071765085,27.646879040866317,9.139547944725521
+0.15010238290509204,0.305270414561371,24.903950596280445,8.667927501076225
+0.14931621805311734,0.2990457426194622,23.33260895453758,7.67003201756318
+0.15089689823743374,0.29907932999156545,32.61234053618648,10.78379598447001
+0.15005971835135076,0.29859252528081814,31.314764550285684,10.26099273787217
+0.15012458172767382,0.3012886800514294,27.726753040706154,9.314631200784303
+0.1509276992209322,0.3052936403471904,28.7955295539655,10.133286095200772
+0.1484870517847549,0.2987182338552571,32.4736200066089,10.494782050802531
+0.14886355709859406,0.2962919278560709,33.35827426252522,10.584660725361864
+0.14946046123391016,0.2947879377998004,31.20831621654397,9.776026894226016
+0.14927941501121655,0.3028050797394077,33.28993175604032,11.234396245951933
+0.14820632419588226,0.30255987618440666,36.0969584009121,12.149612076356181
+0.15097068686847293,0.29906105548622136,24.852844349265617,8.23308181086641
+0.14959766787098228,0.30421692933899763,28.53145865689232,9.859100156940547
+0.14814246510283585,0.30519534797132236,35.34362741458607,12.145767913069598
+0.1503396379495941,0.2994137530228159,25.124745245024265,8.288531227142137
+0.14876849980845197,0.3055094092366561,31.094718860237087,10.765890533753064
+0.14832598475870568,0.29689044757437894,35.314182030403614,11.226308235410269
+0.1501055712244124,0.2991027685833126,29.152605158320704,9.562833106142326
+0.14939295098022665,0.2941057608541519,26.130524424285383,8.124635861840357
+0.14961163782095463,0.2940407620988173,24.449323660793834,7.6103776692125855
+0.14907099439580684,0.30097398847461937,27.92472632132697,9.312621993097085
+0.14870034247231154,0.3032182276196772,29.329823789177542,9.926527229636216
+0.1506444429753799,0.29929975077346505,32.57738390070241,10.745552788724952
+0.1521097792871288,0.3018077089978286,32.37398434717708,11.043942759220549
+0.15016203928122765,0.2994893049649995,32.89360255521494,10.888203086153178
+0.14986563126152788,0.3049948198437638,30.429884126822156,10.612359982137727
+0.14861899918167323,0.29863531377985236,29.43082574766197,9.562215464497807
+0.15050136142802928,0.3073271652131244,27.600999490777813,9.857508844443903
+0.14962246410879737,0.30988645253718156,31.053819770304347,11.25597572004028
+0.14947471344233074,0.3071442403773207,27.582968552717084,9.738973582542345
+0.1498440821016301,0.2987496216035186,32.22513447809433,10.586296225390313
+0.1499268635234685,0.30288194081805814,30.099850253408977,10.249635033092394
+0.15171316928084494,0.3067129653452541,31.210970462315636,11.145942602780746
+0.15164523369807315,0.2944032177562788,30.79193545673952,9.719013065466735
+0.14987583957460263,0.2994496095800449,30.214773178069866,9.984043388348637
+0.14663071182531714,0.2984929612524825,25.333830906177102,8.051425076146966
+0.15246909747413637,0.30445389349434687,30.48853162225655,10.682034129970992
+0.14861014412197052,0.298821268347214,37.32471701831951,12.12446954848558
+0.14920583149787542,0.29154072869720454,28.403793469693152,8.636116245319595
+0.14858696037630476,0.2975735846844447,35.58840056036075,11.326177857921678
+0.14969317537721558,0.29496814553357215,26.50084356031137,8.343467900712099
+0.15029768343807112,0.30294768458982974,36.18942176570336,12.341280376804363
+0.15030073026647925,0.29486465352662034,26.346669426871145,8.287884327175115
+0.14993004118851874,0.2887958882281781,33.36712735453716,9.78662803799943
+0.1508832985087737,0.30077881275111623,24.021174521113167,8.05784417088163
+0.1489815478225288,0.3086396075968591,30.00620398349348,10.744233634333584
+0.14887968845402888,0.30128429029644804,36.482724143331026,12.128763260266824
+0.1504453180429995,0.2926372286344371,32.73166493232795,10.06625290657978
+0.1518133898699506,0.2962539698681256,34.28672486172306,11.026579121387872
+0.15116726142309506,0.30787750324104585,30.005710557831847,10.787535414361736
+0.1515489432282429,0.30581690714454446,30.42873479880812,10.82902037533006
+0.15021260437217349,0.30548050607280813,28.524570740752594,9.990589160565722
+0.14880486558318182,0.30897610103228845,34.26344920079479,12.279001319530819
+0.1513317244359161,0.29863947018525894,30.06671109657763,9.892334366131431
+0.1492256156372346,0.2977022266722479,27.6853783280012,8.920452444034263
+0.14892242074846582,0.3035800312670985,27.515039377519376,9.342308600781793
+0.14897720134123674,0.30118078579724133,35.53576077988817,11.848238679077173
+0.15016396775645566,0.29766418827806496,29.097078294606412,9.461986458168386
+0.15080214692665955,0.2996186135273665,33.337915234459814,11.009269945826961
+0.14986425664011815,0.30344246635191197,26.85036834264724,9.203031609581263
+0.15008513686450298,0.30366807337595436,23.054077817014587,7.916443346233995
+0.15035247485473233,0.3097382698789907,30.230629640938687,10.990226332347433
+0.14993975495667525,0.30156100523344975,26.569436428937504,8.968196901362846
+0.1492824903873171,0.3071380903716087,22.918935473945368,8.161907928147203
+0.14912138608553782,0.2989795279623632,26.638574317332573,8.694810440058315
+0.15032983406418024,0.30007686106296866,28.880025656703946,9.591397865155713
+0.1489657558377843,0.29860845883228965,29.664630932760748,9.646077328107333
+0.15014198290068437,0.3109940684028399,36.008073617134954,13.322188716444744
+0.1504234994954692,0.29854896658979196,33.53797891001062,10.982736702673218
+0.15022426968564986,0.2941970353005605,30.29658148022922,9.491879156798033
+0.15025936114329622,0.2960629588989855,29.44034243796433,9.430371934171337
+0.15035027362381653,0.3088554203576547,26.344513675708445,9.57293705265558
+0.14795386377574954,0.2983851438683293,31.220914071465245,10.063321432517037
+0.14817054272801297,0.30040568319095906,29.12824471131692,9.55654719392729
+0.15028692774255398,0.3055680161258741,29.25069580726783,10.290009717191406
+0.1471917474249395,0.3056258982812352,31.789733280525155,10.933399391464249
+0.14998474733790376,0.29541941829728957,23.429808045859275,7.412261431506177
+0.14974700568094074,0.3038961083391735,22.532428738794955,7.761597124682928
+0.1516573156811515,0.29887358133507297,34.534840020700194,11.434363355105779
+0.1497848289528665,0.30348734524816984,30.50376779189494,10.491403983963078
+0.14935389643060595,0.29116085505877193,27.938264356223723,8.453324107028266
+0.1497962332265091,0.3057189392116326,30.591846831922407,10.771275806806422
+0.14883233391858025,0.3014440557517702,27.92725393565536,9.323389903410234
+0.1502987927776795,0.30640715763224224,31.289942878498323,11.162928523196191
+0.1493564927133489,0.29767917270895616,28.45320897970447,9.142101619843656
+0.1495636679391326,0.30136448008653977,29.927657466882856,10.000105701061807
+0.1507716830061682,0.29703543604668897,31.994644557010847,10.370505977415664
+0.14953318138440327,0.2924780049867702,26.696327598434713,8.163167954938936
+0.15273327877786508,0.3069680354185403,26.274204782234246,9.503922861080087
+0.149460073778059,0.2997991240644723,31.910763120238684,10.504848299144314
+0.15190166848841216,0.2944370791811293,37.23451743402805,11.791024987376224
+0.14832790420812103,0.3000894470622935,35.25054624641852,11.572621510330517
+0.15062572050925305,0.2919136307054266,34.81351675585643,10.640147641871081
+0.15083379227707017,0.3044651026508134,28.234280082169626,9.81013764142995
+0.14799698206587733,0.2968838136931571,32.36040447466012,10.264206261446903
+0.15100837724787755,0.30068229231360666,25.199342277051066,8.487124000782067
+0.15099941829846164,0.30127591223860933,34.72240083657862,11.736273969761225
+0.14984442356548883,0.297055313543995,26.909876393808936,8.672201600590805
+0.1507286387504953,0.30246688454220744,30.599288543618908,10.439740753720368
+0.15194001326536918,0.3025651311604872,31.398592478753564,10.877394408662397
+0.1511329684326075,0.3029225548996437,18.63028876719688,6.399280988399067
+0.15082043002824927,0.3024660880921182,30.83527604654443,10.501461233673636
+0.1498710815761281,0.2982346016671458,29.34285346411498,9.50718232216921
+0.14922090669392862,0.2949087215851879,36.28843644144635,11.399013356003572
+0.15222817225288973,0.3036616449152189,34.04223912184769,11.867120110256263
+0.15044844326905948,0.30269794413724727,29.99367347018559,10.25400213878802
+0.14998689612923893,0.30102680834412787,30.42049734096397,10.132641947899327
+0.1493168355279846,0.2961373095731936,36.75377337734255,11.653213166293177
+0.1494493699993605,0.3055435004942096,28.283111120113738,9.86763628494505
+0.14759824884842485,0.30210194149606096,34.31081503762213,11.408485978842984
+0.14925521411450493,0.2955263079249816,26.412378181549588,8.28110303655824
+0.15005669241599576,0.30293548377489604,22.218189603590776,7.592960602807637
+0.15000032143292505,0.302242111442588,27.98017051728654,9.41502567348656
+0.1505351514129424,0.3054099203111593,25.35960004082907,8.971413298557007
+0.15013734647169885,0.30096649722767127,29.990015823689372,10.040379990146308
+0.1502625862492857,0.2990800135028794,30.906641903475926,10.175520011964606
+0.14999719597716835,0.294830119417112,28.45165867543718,8.916207529404184
+0.14981252992282418,0.3012505852448972,29.686187644489006,9.938652206429651
+0.15154124327947815,0.2956352124036493,32.281381857499824,10.324268210721472
+0.1512085130908872,0.29333230773669305,27.701616213725597,8.643185845257056
+0.149424905863411,0.2997989824329277,36.890016628679355,12.139129439631578
+0.1504961555241621,0.31425977970598257,30.28817655112293,11.589553854706661
+0.1488124492744967,0.30099534013674123,32.93900797339819,10.851695251450124
+0.15097337922854182,0.2946251180516484,33.369284187735566,10.530517286859917
+0.15014830810333665,0.29584768089466706,32.418606698001426,10.350687633120097
+0.14886139771325121,0.3018387572180834,26.994048272197166,9.018615540157882
+0.15130061334759667,0.3000243308556417,28.345990679735248,9.4463388147431
+0.15122296095065246,0.29868384484432,27.002942884505075,8.950347972052402
+0.14795985550263768,0.3070089208659452,29.726754230977424,10.412686028188142
+0.1496892070155126,0.29898376284992434,34.06221941581788,11.167611286171132
+0.14929415093360437,0.29780398268037894,31.4827007546207,10.115640678617156
+0.1496916131781584,0.2988147352267663,29.324938515199484,9.580019558073756
+0.1513281016803208,0.295524342993566,33.187172316700085,10.617996166898994
+0.15027967601647976,0.29784412703166996,21.967615203140014,7.170575347190038
+0.15009363822277527,0.30253971187594975,30.20402360032784,10.27984762078738
+0.1505420394411433,0.29667937671914274,27.69172137882578,8.896400222375107
+0.1500331293955744,0.30017839620556186,21.684323036719274,7.204939801831008
+0.14963284219315826,0.29744687779705653,26.28113385616158,8.532972392180621
+0.15068194594943823,0.3061343847286944,26.111733562462867,9.225333583165794
+0.14967599722875413,0.3076800200326965,28.9198519969263,10.324829902129007
+0.14807046998939422,0.2985121199592824,30.76469508803264,9.840437239228107
+0.15100444612208455,0.29745180587405246,24.783041108232602,8.09269156516452
+0.15213935231981682,0.30383307547149085,31.313509736470884,10.952211686505029
+0.14867943043382373,0.3080792655005318,29.106116895941735,10.41933587148494
+0.14930830930698036,0.30585801217711517,28.453975037328487,9.962307414014262
+0.14950856937213125,0.2994301775387612,34.52390648652692,11.268239362409037
+0.15008270299801532,0.3025183373804114,30.753203667349844,10.443333620830515
+0.147888807249661,0.29868405559404365,34.14457109645893,11.039737717620632
+0.15094160846206317,0.29568782076552874,35.772687753485116,11.395273631646193
+0.1509645232189185,0.2985781385934332,29.18280361261936,9.558891816224238
+0.15018806864629933,0.3005184695111801,33.83596761879269,11.3496473461145
+0.14928223410393035,0.29296084046862153,28.250427690968497,8.67941696928371
+0.1501770650248331,0.30818201030567,28.754934083523843,10.35104587990094
+0.1502947979904603,0.2963559000694448,26.694058698378807,8.480370273657583
+0.151131744594772,0.3020070182057061,21.284744901397218,7.244068682612943
+0.14785968642775515,0.30675814450689126,33.27586567851387,11.586668086610228
+0.14900525516544852,0.29696597975616607,30.98592024075515,9.961114817318288
+0.1492805847571378,0.2945825676398438,33.1109052854763,10.352557344103186
+0.15078148296071447,0.29969182290860963,32.96864743573734,10.945011388789153
+0.14851282651401146,0.2916183132153612,30.317250254829336,9.127801371234128
+0.14921877423587698,0.2982639173881653,28.925381995278748,9.36956560043565
+0.15039187606448987,0.29965398441538194,36.01493475976781,11.919092862454317
+0.1481083719775558,0.30051659235748523,25.239066320562923,8.252680218698172
+0.1497863122897759,0.3066948593634432,28.976416587603467,10.230954490672747
+0.14904462241644817,0.30406452476782814,27.21010080318012,9.330363888567346
+0.1489743786483905,0.30382263904150364,27.211541019359412,9.334226473837157
+0.1522280929653971,0.3020264419724161,32.391436329804236,11.095853050158833
+0.15026191428785246,0.2965040354653548,29.056194879822808,9.327388612919918
+0.15087264750373813,0.29826400520776253,31.443131630884434,10.319966865109471
+0.15160047350774802,0.30098844631851057,27.444229343416996,9.245294147609494
+0.14768046274732916,0.2930667749682501,35.273117719153284,10.736042877916672
+0.14990618913307924,0.30127799689737733,24.946552609417438,8.372501808149291
+0.15221840948289866,0.30076299464612216,32.75908648507973,11.087331051491075
+0.15106311356405405,0.30121567658568266,34.0731439216661,11.523747567783262
+0.14911926318439517,0.302321607974659,28.724646739990263,9.69480946935736
+0.1507811028782618,0.2970439092898332,28.62793101162397,9.228297286821583
+0.1493955559484204,0.2988140009918291,27.530626642740025,9.008257231446489
+0.14938779341207323,0.30162462227115816,32.19235303336165,10.799353399620571
+0.15005270405843463,0.29515449394378435,28.036024115388763,8.847496727765508
+0.15043516559510217,0.3020608701856593,33.68921821015433,11.434755287912203
+0.15091623835329154,0.29770312678712785,33.87806857242446,11.050626318243125
+0.15031249012781303,0.2954579124760183,32.02057914739803,10.101605244845528
+0.14949497678899462,0.2984802116314504,30.038440953397195,9.757376696721813
+0.15004301795035344,0.30023018131299134,30.474288331639023,10.11582873526878
+0.15114008108028526,0.30469896553215164,31.136681833626135,10.887815229204415
+0.1488512653493385,0.29856863947108403,33.133648689564275,10.764402495199855
+0.14938064756831884,0.30152732293416945,24.95510809129861,8.356301134165864
+0.15048404276960559,0.29742101862246234,25.5027773133755,8.257472278037609
+0.14972249723558562,0.29513247602660114,36.11891538246461,11.337419716718461
+0.15161875167345293,0.30329994668146504,27.348447368520027,9.450244064427064
+0.15119720345593593,0.29665997579834286,28.187670507731482,9.095387431467882
+0.15012227160020167,0.30277843842606816,25.57051048761817,8.73876602595269
+0.1495970939757347,0.2991464600910206,29.057506719758102,9.545118326559917
+0.1520025955067428,0.30815761185766893,28.701960712750196,10.472143450195059
+0.15056832211425786,0.2995227606784546,36.15805828845385,11.933263142671715
+0.15012785108486718,0.3022570496423323,27.843114886914968,9.481378769334265
+0.14925558949778267,0.29231474294004556,28.36559429058258,8.69239097435106
+0.15137408498196286,0.2988283812154281,24.74927717954377,8.15272647390634
+0.1512526532967986,0.2985003348612405,33.87808964643939,11.152711361712377
+0.1516911560722677,0.30625805760190095,28.96122702649597,10.32784504809697
+0.1509256826604494,0.3067917740647256,30.113577081091744,10.731659594533635
+0.14980057526624577,0.29870593811637913,23.839521436984935,7.763621997331694
+0.15180591688754339,0.28650438799784295,35.006985227903414,10.233984052533854
+0.15011178788595128,0.2962880056798331,37.01079156174243,11.768988543018033
+0.1524013452739238,0.30307322269628706,25.170108472695148,8.752717470516735
+0.14920317241792408,0.30880921562963204,32.879510550644596,11.798266775696696
+0.14880573907496633,0.29927557047780134,29.182586766667278,9.50161739099512
+0.1492125130808436,0.2986644924006054,33.70357641612851,10.939000720689258
+0.14953509791460057,0.2987035017842563,29.440418381217004,9.547129393648273
+0.15207493129631042,0.2943047548166318,27.528801337634228,8.721904798137794
+0.15057456633203323,0.29756614036243345,34.33468153099778,11.164134848358058
+0.150325409543768,0.30036337795198736,28.975500175955442,9.665645465585635
+0.15083696863532708,0.3002733447080845,28.137366354213867,9.359473229034837
+0.14970942519355748,0.3012026555781548,31.809916554047398,10.665514164009986
+0.14896255693408708,0.2983520504582475,27.777092296611553,8.957628181167639
+0.15242307700908211,0.30149223418022153,24.84109159210363,8.479830672597435
+0.15060518830192698,0.29208996040478746,31.888033837975026,9.775207563578924
+0.14998477742896943,0.29964400550504244,34.43155665311746,11.360763680770313
+0.1496866401093059,0.29740447149343696,25.305492835857542,8.142198229250324
+0.1516470146851721,0.30817558160421493,35.117442644466,12.739881437847396
+0.15213351977665077,0.3038491374015874,33.050112553307706,11.50968921156396
+0.14992337437511977,0.29818859037373374,26.701707574280864,8.673109840488346
+0.14864475091623253,0.3025514146274038,36.675428690863704,12.378143495695717
+0.15244074361726803,0.30621651704180547,29.340080406005715,10.461885454655702
+0.1486079386836727,0.3018141498054468,36.112119313324776,12.04943586848042
+0.14819897543526173,0.30355615047733936,32.80081175627869,11.075969099798698
+0.14972386171915308,0.304893640427319,29.790610733601014,10.368572233589623
+0.15025086365921134,0.30228864508977543,26.186279588191688,8.874698120201586
+0.15026688525289283,0.3029337811258193,34.31371417781755,11.702102277862826
+0.1501108112692139,0.2964282232779521,27.317631534558206,8.812731229226713
+0.1498126910398424,0.30417965369645966,32.794245592531006,11.301153705163792
+0.1506974817299632,0.3057821290686507,33.095277678147774,11.552390146256661
+0.14874000475726776,0.2946865500101859,31.326796110624407,9.742173253876137
+0.15052951718889349,0.30082342701116127,25.108513612496743,8.420516371458469
+0.14927104685597978,0.30351183497162193,28.955424616351017,9.85774231850985
+0.14963589069838443,0.2983635373496512,32.93027612148988,10.705746866218806
+0.15053576460028387,0.2946008767435972,24.096850557348674,7.6024963558647904
+0.15062436205024293,0.3013811401181963,31.86341339759568,10.766264206785959
+0.14818169576140142,0.30487275484520227,23.55419782865253,8.091190056422553
+0.1499886751492536,0.30490495084035724,31.771846906437236,11.078823104413505
+0.1507872537419261,0.3035926943644544,34.34574833423175,11.884700678150502
+0.14898145274124017,0.28964097887176354,34.23528904794512,10.126891512483269
+0.14874895985633999,0.2976126211819138,34.77458299307136,11.145460762200292
+0.14948496670293507,0.2959176508114824,32.102081824024545,10.204114009955665
+0.14965217780678805,0.3015933975591987,31.18284449295596,10.468901572260194
+0.14956063368442515,0.3052319520572469,28.890135002136745,10.075331433173286
+0.14893964723123035,0.3022558761126296,32.48206937918695,10.94734995003074
+0.14688478414868428,0.3003855880588913,31.91741543695538,10.380437269012702
+0.15035508586388577,0.30179899749173505,31.140185816582335,10.502961420521187
+0.15091743655556328,0.2939973340503097,32.18386599420609,10.042790060729416
+0.14894560291367834,0.2964818044191132,26.86246237219971,8.542372348201889
+0.14854483313359437,0.30262354291192006,33.39081513788139,11.20643585341734
+0.14962821886708766,0.29731769383173867,26.874271350235034,8.640945394153619
+0.14875514702599849,0.29361653234527835,34.18374290472517,10.43289850608173
+0.14912718817295736,0.2961903636604162,34.12504782251649,10.794049999123548
+0.15181958553483785,0.29860408436378805,29.843128786054194,9.88729749399836
+0.15041845521703084,0.30273525883877533,32.9504853214347,11.186832885564238
+0.15205457474950093,0.3028559302322407,24.865536730262377,8.590437969420222
+0.15041557335435843,0.30268601856826227,30.72241255622563,10.506441093209613
+0.150808313478075,0.3005789226196844,31.38192298166672,10.512310663038805
+0.15034538871716369,0.2986673547739355,35.001483995257615,11.528725114587587
+0.1508814704322279,0.30168125574370275,28.766625677962907,9.74131985961107
+0.1490158166320131,0.2977036058931768,22.665424296448478,7.283357009979763
+0.14979666442266168,0.3023696677764737,31.509743491044965,10.71934821375528
+0.1505171255710441,0.29068190638234,32.15246556597357,9.761765191599748
+0.15013340358829838,0.30740038186083607,33.45087513184034,11.935442883759565
+0.1519787297717845,0.2981165882529669,27.15415962718962,8.924304940325015
+0.14988054934426712,0.30302773822581286,32.704010215853195,11.1248487306371
+0.1495360987924365,0.2969310868400165,31.293193531069303,10.021680319702707
+0.15057718884452106,0.2976580082784839,33.10996067963713,10.7330546610531
+0.1487228304330534,0.30319849788062236,29.1771699099803,9.87336269197575
+0.14905567420144228,0.29959229497339585,28.82540907897291,9.425245181089505
+0.14868281256354016,0.30162546059520795,32.428563478227595,10.808530063364158
+0.1494260884958777,0.2977460684182924,25.112935003887753,8.14363075663654
+0.15133947023668376,0.2998543835987088,37.592191489767956,12.50555865286203
+0.15092000583608917,0.3008955056406372,27.86092727105118,9.41830837021123
+0.1507389074779785,0.29423703350582253,21.67519187825925,6.798172407264784
+0.14843623419335586,0.3041632904485749,34.16295352845209,11.72661037951953
+0.15073957016584297,0.3031615459961292,29.61786423071759,10.144256083228525
+0.15140578191113055,0.3026983774368958,33.25910669226422,11.380231570478895
+0.15039040440742454,0.2958982323868579,29.23422002194563,9.301403258814073
+0.14981423766816268,0.2974147931652726,30.602260616829728,9.858173870411612
+0.1502370150962687,0.29366677041489425,28.670841779042348,8.95038654762077
+0.14854596223139882,0.2993546591986097,30.481005781059572,9.894597873478839
+0.15015093810573926,0.30827334671908574,39.541210183051874,14.204719299208374
+0.14919882203145157,0.300277848773034,32.26306811390193,10.643248672044342
+0.14907910581386952,0.2967624803224476,35.13967609716077,11.182041471950901
+0.1502606484475079,0.29900150747158055,32.06443728488079,10.493890824667554
+0.14933446222009128,0.2989022237158591,30.37209021895631,9.978807042600481
+0.15024074017308872,0.2925352908679993,29.97315922427273,9.244565507764525
+0.14999118987874524,0.2922532353038687,35.2496605571391,10.759938635280989
+0.1485914866981715,0.3087040890872049,32.83673645538393,11.825493709824274
+0.14895914538233693,0.3010829233816725,33.35022956933008,11.076158608665526
+0.14903948682847723,0.29416477437503247,33.98862651702106,10.54423115330366
+0.14830904145437324,0.30636900476862977,31.76259189173235,11.053745410921715
+0.14992175446621292,0.2935526204274009,31.89899967186903,9.90523893260138
+0.1505127021450571,0.30038629388056615,33.35902232235886,11.143127713554062
+0.1493911814223313,0.30527275630775885,29.123289663260532,10.108494518300258
+0.15077551245921803,0.2959661269467682,29.9478264662559,9.594593460372373
+0.15048334142967915,0.3035201547362843,30.1045813996062,10.342143804805152
+0.14954218885044496,0.3032719975516333,36.753363912518466,12.464360820670006
+0.14995557387272285,0.2949728621735323,35.77194822337479,11.17866561095538
+0.15010397167640352,0.3029141122170916,29.755680607867593,10.124794162555025
+0.1509633469090302,0.2997935772809878,36.92148788018323,12.284076654300842
+0.14962446385733896,0.3011647704929971,27.428855691695485,9.164989627809618
+0.14998663957924588,0.2911912177678153,32.25693807185051,9.687922214739755
+0.1518683747642769,0.298858945103879,29.872822611319773,9.888616762439133
+0.15225959401162578,0.2985468134695267,31.706712905546294,10.483080250571932
+0.15047245450993887,0.29492921594632276,33.368831093712416,10.489479199238955
+0.14984687532024996,0.30090596518292445,28.30715371793389,9.451482988248781
+0.15243581817553165,0.2968625600840603,22.536531549513676,7.371573715857619
+0.15187376601470845,0.2983711305207364,31.664041150606266,10.452818724802956
+0.15111741068534718,0.297440508865088,32.46207374753361,10.54723698754527
+0.14981772972620855,0.30108720466417777,34.78965040759686,11.677204407725677
+0.14826348778023474,0.30146727684783875,32.767285175178706,10.895482148978816
+0.1513766289367511,0.29572060346576773,30.76942989854546,9.822019739986208
+0.15135014506248118,0.3021741270526886,31.603354609243972,10.755675896199723
+0.1486383440875989,0.29722273858919357,29.96394681262076,9.529230924042128
+0.15189866667649038,0.29785271713249717,29.76801433636954,9.73625227497407
+0.15031687526101448,0.2936701632163496,28.060600102469888,8.704546157890038
+0.15035834677434534,0.30994681126795987,32.691262120545424,11.90153300453965
+0.15027019587758644,0.29894798838651543,33.62309096177642,11.038233067655451
+0.15020374256526747,0.2980894291003046,33.87042773952535,11.029121150207176
+0.1474740522254742,0.30332729960474014,30.364271246706828,10.229618148421276
+0.14959699146109007,0.2986334024857134,36.61030329007141,11.946214749544279
+0.15053011300252067,0.2918649678858111,26.80323112543837,8.217188107771332
+0.15035752891563312,0.2956455239999933,28.99612589991693,9.213784398692582
+0.14967691438823194,0.3000727884522262,30.774799934422443,10.164447244215495
+0.15082194173870858,0.29809176748277355,32.85084521786257,10.750671445915277
+0.1499383803488793,0.304107145927933,25.380411319154078,8.752910108488743
+0.15068555576073825,0.2966042008050907,30.601448672888083,9.874377579430755
+0.1514367571409839,0.2981518028145486,26.372580392289027,8.669837517039095
+0.14834098525580833,0.3027777751156708,36.58898656043898,12.287030495901982
+0.14977628097229392,0.2997052104469754,26.240760300001313,8.65925686594563
+0.150643100947925,0.302288271728923,28.281631931544872,9.61822124916888
+0.14898356485586034,0.3079496818587827,35.66933459332304,12.681634353035731
+0.14951053591730526,0.29978987583836425,31.447615920488047,10.347293799941689
+0.1505627024938917,0.29466891866021677,37.94228245290978,11.91199196066982
+0.14989560873063623,0.29969860316037855,37.078228812534384,12.308836723721328
+0.15190362265333873,0.3016199295312082,30.52011479320811,10.35382192080045
+0.15051690616188634,0.29498059433075907,30.464121540940344,9.676866880704647
+0.14994678244497345,0.2977087015284275,35.01784118531437,11.287145033043405
+0.15156698267641203,0.30262712754343374,35.136985756897616,12.08467957477632
+0.14945043435615676,0.2995632332255712,30.905255264879482,10.101374706824439
+0.15018947066619628,0.30234784507004114,36.71236511604527,12.405903138988842
+0.14822956302683712,0.30570911123023803,30.054760454375625,10.414024755433557
+0.1495296269998208,0.3058501636576577,34.8282115009899,12.170158773014872
+0.14924355491648109,0.30582183807197055,32.454611952421644,11.267361734579971
+0.15094024428219932,0.3004432513101937,30.01068157321523,10.077152461057176
+0.15112634086391144,0.3036609828958633,31.346497931586047,10.889596973853287
+0.14967421626033448,0.3000955256395234,33.22706719556286,10.978414733736054
+0.15139795459378583,0.3028322081918244,30.07799228373364,10.4089336987374
+0.15003066651132227,0.3014667759668776,28.33673153957974,9.469629921484088
+0.1510828814651715,0.2964010035291382,29.214172116439403,9.414397112763027
+0.15032601732625392,0.30354094372600665,30.965630419758675,10.58093791110108
+0.1515891672649942,0.29529387363277376,30.32259482349002,9.6656130529125
+0.15016903562676973,0.30377587143681445,26.973757329744313,9.214255594645321
+0.14832542185236428,0.2972143535554744,37.98391426195752,12.096884867541313
+0.14904975911375615,0.30051888879180627,23.585822884672993,7.810308005796969
+0.15033547489582336,0.3093301851853609,31.92586290048714,11.625898577532325
+0.1521731811672535,0.2982771781154603,30.822286853263,10.216994542825283
+0.1489718548210939,0.3026478527962207,22.027517984647478,7.456751834977917
+0.14953516681740536,0.2935369689195258,35.19610210508812,10.87603681264883
+0.1489228190179259,0.29950726111170733,25.76557692631601,8.426232597555902
+0.1478966444142877,0.297890814029667,34.6369113780826,11.062427456510699
+0.14941494795930088,0.292707226649036,25.482868046918266,7.814336521145477
+0.14894124066952769,0.30097493272912906,30.519418994165925,10.175104713344705
+0.148255898366642,0.2981466590148759,32.432301192709104,10.395759148289969
+0.1491221958347865,0.2952332935983251,28.399007659301187,8.932168098313609
+0.15173668602886603,0.3032318315191781,32.86117318742091,11.412157127368344
+0.15155745390097639,0.2928468324545638,33.99518923056355,10.564307854390917
+0.1505342492797515,0.2989127297191076,26.150535419349477,8.647319427417088
+0.1486535623398866,0.3056236869496995,22.177181903558292,7.681015120851905
+0.15131870672002226,0.29633802764698236,33.07405751670692,10.626570376397916
+0.1497012045820449,0.29839091040652693,28.605646563782667,9.284460468673855
+0.14968908514563126,0.2959262944660851,28.407098537743458,9.04850036818359
+0.15150892933055,0.2938491524296571,31.39705578306925,9.812686789579217
+0.1498383213345217,0.3003687351574979,36.66966873274587,12.164549441625999
+0.1493262384102258,0.29838443611844784,30.179307977625474,9.80094568260822
+0.15133018305928017,0.2994736763771403,28.443375915027666,9.450862405057096
+0.14812724114631057,0.3013400350963725,31.503811623849572,10.48759803839701
+0.149102508150125,0.29597422578351024,35.38654614132557,11.168538588521699
+0.14920028547970546,0.30248712583082865,27.99970882664968,9.51503416840568
+0.1500121850413416,0.30601152086361355,20.641804469953325,7.243760988122401
+0.15057626152206843,0.29735070699882515,33.92986187827747,10.999087385002486
+0.15029434606220002,0.2995230643351861,29.018779531873673,9.577835817955815
+0.15026058839465115,0.29566600614662647,30.884592681279926,9.775147566357493
+0.14923054593951401,0.30500014363477146,34.6205765896816,11.9519026268492
+0.1503751182258582,0.30724397851783636,36.82974258808557,13.136329518255415
+0.14736539667172774,0.29295985830391935,32.31414686175476,9.766788134743045
+0.151436666735034,0.3029031852182668,33.734978571721605,11.66342262438646
+0.14999580781187805,0.30253235627113617,25.24618749626313,8.586963240176617
+0.1497855262381143,0.2974763045756337,22.80422479015791,7.332009937150737
+0.15000913605364022,0.3012970395266194,30.07177376426583,10.049747486979495
+0.1502697517442431,0.30372832571076847,35.01389516538243,11.983889359421985
+0.15009548489417443,0.296236732954601,30.713681791677583,9.780406638274213
+0.15050356834797207,0.29505399065504406,32.04455660781237,10.1918904804869
+0.15022570537396598,0.2955751127534145,32.59555437240464,10.364451579743173
+0.1541253544048846,0.3004515748836325,30.356597337777888,10.377847975842611
+0.14909308227950266,0.3108749915738339,32.65794601044207,11.955397616999566
+0.15075031662406957,0.29410718145052794,32.98148975378295,10.341071696570483
+0.15027640388126415,0.30271297222803584,35.8673575079377,12.258373509441494
+0.15012699323718334,0.30396773242785124,29.605231536088525,10.173169642879389
+0.14847893873819612,0.2978856755764521,29.03176852609575,9.298996727797807
+0.14932208868156813,0.29682994155084913,37.931109558774196,12.121541960357423
+0.1484760176088163,0.29323082779311155,30.58232519199428,9.344385668123754
+0.14955007006584428,0.30428150510949575,28.539893795676832,9.876179139846768
+0.14875930381496902,0.297063314758587,27.66309360547066,8.772014397997182
+0.14804469175991514,0.3063638129261576,34.930603032211316,12.084066090442631
+0.15049015806552257,0.30290816321999897,31.89697299390119,10.88324944178865
+0.1491134500042469,0.30204026296487946,27.349176736700393,9.180196510289905
+0.15011277287212096,0.29324960594050575,37.824564519376565,11.723865303409909
+0.15008027665698848,0.29899392841126576,28.69117537459435,9.379253045386427
+0.15007647871159227,0.30030529597488287,25.757918629692323,8.524865702555907
+0.15115936149630305,0.2957195802393353,35.9906338767519,11.5118336189257
+0.15064831024824618,0.3046260458722657,30.06259569307638,10.424443933595269
+0.15061854061738042,0.298651842685468,30.06563900185221,9.877213710634713
+0.1472410114633279,0.3046053679469337,29.365277940573637,9.961421188773118
+0.14885271575033618,0.2929230177866814,33.27832795625487,10.144988988669086
+0.14763158385478267,0.30016643013789956,33.95751607022685,11.1688710491121
+0.1481331227520816,0.3056443320514526,33.20105326079599,11.51808569209138
+0.15059581778922207,0.2987190835351159,27.739652984504797,9.098552323255127
+0.15096322172102536,0.29620597936477244,28.152337846860718,9.069890936191646
+0.14796236694144,0.29540086953130834,26.003689366961517,8.120686990122989
+0.14852248281736602,0.30301847232268253,31.120503951316074,10.55749495439212
+0.15199501900506654,0.29834275943558053,31.90023003122476,10.566760530851038
+0.15151692292434182,0.29808091482146903,28.790855202768014,9.462445543245378
+0.1498160108603793,0.2995151857952507,27.29833029162393,8.997101616007386
+0.14829429777762995,0.3010163145079291,31.424286638247416,10.427643958937841
+0.14769255667161754,0.3034204733095527,28.19757013946703,9.532978217694039
+0.14898896817657564,0.2990338791200653,25.809761326170367,8.41263004540696
+0.15074153807620777,0.29655949037315066,28.001490157797264,9.024752047221845
+0.1493168277589642,0.3027254519479955,23.284140620146275,7.914455012435694
+0.1503611186602556,0.2926156562218475,30.736034028612934,9.521811403857292
+0.15293179652456165,0.3010022951070993,28.782444286325596,9.800103166743373
+0.15087276622315324,0.29779155412550723,29.29994431511974,9.566762735038978
+0.15099772625666125,0.2990477316028815,32.094884719567936,10.586004424647749
+0.1510039740031792,0.3048556433323015,25.84446807859412,9.057696379014065
+0.14984147589714847,0.3020788842734044,33.49062803443666,11.402008529541865
+0.1491864374768795,0.296324292505538,31.158599294004592,9.90043845529374
+0.15018982046007234,0.29787068226744956,31.47530671378272,10.238081568873996
+0.14966174932865067,0.30403623490480475,32.28499886121257,11.088480395553287
+0.1478033462397156,0.305319467022185,29.966428201006128,10.280193519546396
+0.15063383620037016,0.2978734472046847,29.618379387831137,9.68047930873138
+0.15130208967867814,0.3004945108738517,28.30268091560731,9.561907316102051
+0.1506814775098273,0.30180755907834167,27.880083461224373,9.366857234422884
+0.1511572348280962,0.29979050077150404,31.038376166518272,10.360140877006076
+0.14866869753909778,0.2926709201661216,32.88745158662809,10.009305914272359
+0.15226691699987518,0.2937388887104163,34.95530929760862,11.0096746429252
+0.14934006534291994,0.29310247245463866,30.27405786892086,9.316492146428859
+0.14936805154714156,0.29359338176888433,23.918886405768276,7.387981622739293
+0.15005757084794466,0.3020044903894831,31.330718671532377,10.600543462985913
+0.14851388340801255,0.2953337556609643,34.87777080389785,10.950662194226238
+0.15009109692993175,0.29799788272338024,31.882547685634517,10.282570526416867
+0.151085086752437,0.29797857387418974,25.168008518328755,8.220848236698597
+0.1500094072603394,0.2968654789132185,32.58699250740536,10.488327722177884
+0.1516036468440127,0.29806408418627883,38.49098255722489,12.632209192201381
+0.15063048670489304,0.2880238754315832,33.22747928071147,9.73041491135319
+0.15219536853327797,0.295088082986279,31.14419732748949,10.007163006350808
+0.1518362714714353,0.30573901702423795,32.73018437466706,11.578871377212147
+0.14990365919096119,0.289869061110288,35.27973947432988,10.508634421777819
+0.14885078497388307,0.29913259202099884,38.280275028124976,12.510183824812295
+0.1500465318909749,0.30095792543855765,35.16279112465505,11.705435000874463
+0.15084583043640223,0.2932465747424362,33.85954000166095,10.549285365796267
+0.15063091187643252,0.3026180578043312,30.134962218085207,10.294715467750898
+0.15072915811492968,0.29506268733874186,32.73815725806781,10.388533999765423
+0.15086560649258787,0.30181879568734565,27.65584021249451,9.389382614327396
+0.14893432591318886,0.3007101712127336,28.048323892048117,9.300555531458098
+0.14934633656986754,0.30082631782538016,30.10128497124913,9.9827520039988
+0.15058346830024935,0.29682860520845117,31.884864277758993,10.281198846924365
+0.14994273821151236,0.2989563573587353,28.364413772967644,9.345919607953862
+0.15046381671226747,0.3009938504914261,30.024701639162753,10.064183109961856
+0.1481107263873777,0.3106386507421088,31.500454428379335,11.402214536797219
+0.1522505684958246,0.29913747085798403,28.003161494645294,9.277244563468384
+0.14969038052892794,0.29641869520628367,24.250115175925863,7.779955055511824
+0.15021846496702582,0.2950626207440858,34.49071448013288,10.872584559701343
+0.1496622898512506,0.2961421327800227,28.560521219905844,9.0327199960694
+0.15111307091653686,0.3063462819345197,32.09247145107929,11.403729931050297
+0.15147229652945604,0.29924370233646647,32.40231042428168,10.727319280927055
+0.14931289322021388,0.3014478817018315,27.542440212213013,9.220504517908674
+0.1506799074971242,0.30051954428720556,26.23776865396159,8.727972167286268
+0.15022615587462393,0.29312475834557883,37.4106389960629,11.54473073316374
+0.1504079496538665,0.30017375463371293,34.52954170915029,11.480378500856457
+0.1504346870265654,0.302949244717278,39.79024715832648,13.564020694553422
+0.1497704180402627,0.3014060622463955,35.68777566068148,11.982445409830543
+0.148830586548473,0.2981893944101862,30.139032442716097,9.700975719940493
+0.1498133356169675,0.2971894475072934,36.15541910062582,11.66058415988126
+0.14934627471315728,0.2986112300270741,32.9730824649199,10.726389611560371
+0.15013194998655394,0.2973389539899595,31.53572770683821,10.127925173972598
+0.1504956745283661,0.2995677114014686,30.97322649672768,10.276708450475148
+0.14935023906071948,0.3010877991019005,30.915131094911388,10.282805375579395
+0.14812241357389902,0.30475855087982257,29.95201686315676,10.24123720097579
+0.14989669811128958,0.298461373196468,33.09700324799643,10.744100919658022
+0.1492561659217553,0.30327440436437786,36.303340172485264,12.400366943248542
+0.14861332050276532,0.30663652575002853,31.697723233930066,11.082901234306297
+0.14802988450220764,0.29465175364442936,36.7316098408919,11.399667714265444
+0.14808982819166042,0.29819576526769315,35.38188412573766,11.44965389920476
+0.15110079294968418,0.29813795048313524,30.209822424408816,9.921130617775239
+0.14860174946799598,0.2996874790399959,28.975966700244093,9.433671311768398
+0.1519268003305498,0.30259144873814214,32.14781077467938,11.046969291115612
+0.14884350482969838,0.30617372380367774,32.204948185321996,11.26158747795014
+0.1504164928599217,0.30005962127732644,29.848425658530587,9.920749853573188
+0.15018789476123962,0.3004224858254894,33.00674236009305,11.018850819662257
+0.14989464923363205,0.30344596557262643,26.214870284490807,8.956724033868175
+0.14898227844873121,0.3132645358180188,28.108834132766663,10.551836441551044
+0.14974728228462691,0.3022633765423788,28.07888026698464,9.467948600832127
+0.1523054714012482,0.2971129000915304,36.29044532214442,11.823021112413187
+0.1495608733225599,0.2917387152760334,33.02095387898269,10.032267876599438
+0.15022830637641693,0.30025239867977005,31.66147781026031,10.560162304860485
+0.1511251602278049,0.29830688012048223,26.293626988146933,8.623960905439844
+0.14859821078475055,0.2948076983961369,29.623880310023214,9.172949198030988
+0.15060779333658947,0.2948601130379905,30.04808116876368,9.519607543522763
+0.15225786250725795,0.3031859355821476,32.94167394413386,11.411783496390042
+0.15084560136804875,0.3058825595741398,35.08423134472492,12.337344496166878
+0.14906769286433283,0.3037442358444106,34.22823983176138,11.712661282028284
+0.15019023858742317,0.30852169543721936,31.72471498798709,11.347519824454352
+0.15214655950602984,0.3045918874699029,27.39729923676181,9.660427536653797
+0.1494396910553607,0.2999942935879489,32.75525706242243,10.826369523752588
+0.14966725637120973,0.3057204094279874,26.218304354032995,9.125035875219087
+0.14846685105564017,0.291805880053344,25.813355422725905,7.791538141358105
+0.1489397926141716,0.2984140877050535,30.156884011046824,9.75630555258237
+0.149294217538122,0.3114123090671663,35.69749033730956,13.117261533941036
+0.14919096631247186,0.29820338218289383,36.127863871944726,11.695763584782329
+0.1497126466264272,0.30257572664234644,32.40779528517657,11.022718274035775
+0.15122992187880355,0.2944124652446419,27.764984326158224,8.758252768327848
+0.15101154289755866,0.3009151077640613,31.115682338068872,10.4537324881121
+0.15005176329466977,0.3019602629327272,31.52397285499096,10.613874924364499
+0.15120698377981412,0.30130586504744034,28.489327578015487,9.61334981044518
+0.15002669293883,0.3006834850556554,29.649186330177386,9.876739463228597
+0.1505652096586512,0.30134604653327723,25.09934580064816,8.47754809376351
+0.15029425731807475,0.3040257183343747,29.820254089447925,10.317144568404991
+0.14754226060636277,0.295373441009842,38.41431242985151,11.877181332337956
+0.1493858122890561,0.2958833198427828,33.82930616283398,10.68290199077261
+0.14986449688394698,0.29957046280098615,29.821992445587224,9.770760639111494
+0.1496367540079199,0.3002724208142547,30.69765363934773,10.16058117723614
+0.1489719573974355,0.30260524473037365,22.005483270771357,7.482772959608084
+0.15089198638756454,0.3022787685205133,25.58102899361957,8.756225333836186
+0.15190337414508878,0.30178780224239304,30.454234865060403,10.449089921509202
+0.15053105342290185,0.30644323179590416,26.418917028438685,9.422455120751719
+0.1492466377192569,0.30122371217719435,32.00922903523707,10.704367210336057
+0.15150227241498618,0.289205335809165,33.97706275463741,10.186864461243795
+0.1497251606159094,0.30082872857891746,26.630621379953197,8.881426185824573
+0.1521442762197517,0.3058244860946295,32.10218377687763,11.524860244093162
+0.1510610867889601,0.30474779291952486,30.252421794452076,10.571288238035349
+0.15113640307603035,0.29674573091382633,36.02377841698766,11.6470087552758
+0.14954285733444406,0.3068643682615875,27.19871334816883,9.600354192765712
+0.1489305318306452,0.30063984548988654,28.21553103825766,9.379663588253973
+0.15102257906447664,0.30038933694176717,24.731427101611565,8.26554090478089
+0.14977734341497934,0.29963063232018555,24.02740914838079,7.907705235749013
+0.15136062020006774,0.2985463466605579,27.468347540156387,9.065545047123626
+0.15160505418070755,0.2944455122834969,22.198497229012176,7.047818248732284
+0.15142169418789814,0.2998678515096012,30.389223322759502,10.133264743071111
+0.15124235621566215,0.3001343894934945,37.133010498358786,12.455808923133633
+0.15322419643205012,0.29625866497199543,28.286926014356634,9.245588466871451
+0.15182002799044503,0.31313553867361654,28.06361196107925,10.679060364378989
+0.14895866669005625,0.3015752702256339,29.059504664438307,9.702656208372137
+0.14965264472088438,0.3008599472111389,35.37087390405713,11.842693341287399
+0.14904772487506102,0.30543244202842695,28.492334688827185,9.881478787621433
+0.14926271553756862,0.301336232359347,26.341280732068192,8.849011147729058
+0.14823410521307318,0.30617905633684794,32.691322942859834,11.383213314099596
+0.14900561998996026,0.3036881231762268,24.33115911683444,8.292501816497323
+0.15143854744628196,0.2958779812321583,25.129058342172236,8.066105606583164
+0.14989297196548387,0.31007492595056785,25.66650949355442,9.392550856256872
+0.15085176574867082,0.30321210854245556,31.28464734775251,10.739376159245959
+0.14861823649256442,0.30294499716514567,33.129519747684796,11.111786944053247
+0.1510948574668594,0.2909132333519007,25.108503358711562,7.643009249650786
+0.14874447595416243,0.30001806900747424,27.517948605910433,9.018044971214799
+0.14990617425815922,0.2962007482390801,28.67453517084541,9.147810939910197
+0.14941922601634963,0.30219102378555474,35.579296143591925,11.95819258110935
+0.15092340675121352,0.29941264484115837,28.760134933461693,9.564020605591743
+0.15098478335341817,0.30112322661412466,33.15040852296728,11.162146744754397
+0.15169710791057792,0.30435413477724266,29.113324949625284,10.155092572894294
+0.15079847170199706,0.29293909677534474,37.09023087116677,11.564023918337094
+0.15127050907939035,0.30566304279433704,31.187007847405106,10.925097167927861
+0.14932354432414074,0.2951760086454565,26.20140117994901,8.243983301479993
+0.1495345774688778,0.3031471043674174,35.87318147045349,12.187311163105646
+0.15020680260867653,0.2987871224042107,23.64620522346327,7.765457237006853
+0.14933175612877905,0.2959127904806434,35.34437988362145,11.1875385728892
+0.14964744773590982,0.3012767617295626,26.978608141682614,9.021664508189168
+0.151145371777391,0.30051029398959794,27.11569227431594,9.106186671732084
+0.15111955167466576,0.29295694306018033,35.488265569215145,11.066496313314644
+0.14971940502963643,0.29818482164800797,36.225830863171026,11.751852630894621
+0.14844470660531048,0.2981811702953357,31.431417900754628,10.152141175623852
+0.14939225383637997,0.29563432727383315,27.208364011550376,8.568257630636538
+0.15017198536653975,0.2951166341953343,35.11423429089011,11.08040484706066
+0.15011315158496144,0.30271600345618455,32.43881885057949,11.036882359738408
+0.14992216664467153,0.2990871181528048,27.118617657836957,8.86366722133734
+0.15175406886338114,0.29670504087922767,32.474843472313694,10.47386135973643
+0.150127933206049,0.2936240137629463,28.007121095296352,8.701485835911893
+0.15036849881143918,0.3035837196838063,31.09839903842599,10.717982896647312
+0.14941907541743543,0.30109077129859835,27.8014635226147,9.23392852879676
+0.14906286469676874,0.3109754999834244,29.21009422167637,10.724307807887305
+0.1504970875809081,0.30291645025656566,33.21441327446024,11.340373445618006
+0.14896210366945206,0.30203667872603285,25.89583835748918,8.690948022677132
+0.15128921703570983,0.29846953166160833,24.617717808822785,8.131978501014634
+0.1488725249346793,0.30148616462831496,29.252164038388667,9.74820577783682
+0.15117242370617887,0.2995695301273475,28.962572808333153,9.62962219798294
+0.15022239163387566,0.30434209506533694,31.543667279743396,10.967257943284338
+0.14957530807736327,0.30093737586358743,32.348605481583235,10.794051141420857
+0.14912582179311112,0.3049678947152007,30.76968555228279,10.613918426805496
+0.1496386797517009,0.3072106658179281,25.85457676891932,9.198425578542896
+0.1515675993171849,0.2978501224463362,29.469686803241498,9.652752847318808
+0.1500297924694628,0.30138410209185634,29.724173335132342,9.957973209466008
+0.15041352228833896,0.2979384023138176,38.68980179184523,12.604852751008584
+0.14918815200313923,0.29183427495423425,33.458283947861496,10.140648608083001
+0.15071152894797057,0.29832892972832353,38.387858462146355,12.601504026459208
+0.14986652747449822,0.3066474503327988,25.651208947296563,9.059638940159171
+0.151561693967517,0.2927568654541119,33.295312503291754,10.341066129705744
+0.15086294999832375,0.29763717654564004,21.744149338192965,7.048884840944611
+0.15256479599414996,0.29415933695187657,27.962854041051393,8.902834396999987
+0.1512074376777576,0.29659193776537884,26.329704675953167,8.489946238385286
+0.15075946854027344,0.2963422943240921,39.60367759354076,12.697384159384901
+0.15091058474286814,0.29625006798650644,25.12926605902006,8.088442363062612
+0.1521340700130335,0.303414844263604,33.55805825268406,11.688944607548681
+0.15056411287505123,0.2980821551571164,34.85711830668656,11.403214969134735
+0.15055837156094368,0.29737321282557255,36.02893198369916,11.69868036242822
+0.14995617149883886,0.29787116232945976,31.08820042039598,10.055997490359635
+0.15023082391935225,0.2966363398033971,33.09250364731737,10.64315935280745
+0.1494726904573847,0.29964771064536977,27.174538708162476,8.965135396486836
+0.14920072834562562,0.3064964410402077,22.778640032474637,8.031898358089402
+0.15147178868725927,0.3047472274174656,40.93979616455492,14.271121717263156
+0.15132870536557433,0.2998870104596311,27.87978606331332,9.284929045384395
+0.14981101103111522,0.29761004567993304,31.076909101720428,10.089171783479022
+0.14927347022090487,0.30520977169901803,26.916700514251357,9.30385142084077
+0.1478053152370585,0.29381871293393946,33.77511051100764,10.405804969249724
+0.15203011339355585,0.2979734266429518,33.427208213918,10.957501805474324
+0.14952889971886757,0.29797681069983173,31.716868079212063,10.271564353479542
+0.1493101122266086,0.2937132681251049,35.7528257981979,11.093519480421532
+0.15081589742144147,0.29713834350148005,29.446001575331437,9.492752464592886
+0.15101117697387964,0.292397404298454,30.701605434161163,9.46361387862647
+0.1491520864309564,0.30547216654865955,26.166749444370666,9.1455255227331
+0.15059247080512933,0.29768760284348883,31.176957197773817,10.125909202310742
+0.15133852724258548,0.3014394760106775,32.582137157495815,11.01871966749891
+0.15094814853062322,0.3071505506165795,28.325168913752357,10.163478449827538
+0.1493840112107584,0.29489207138094714,30.46932622774596,9.525443529513161
+0.14880854376055452,0.2977761789325469,34.50303285411248,11.114008517527502
+0.15223426719742603,0.3054890888998048,32.38573643326654,11.480336320832942
+0.1501488958172099,0.30386209462866426,27.295798831660232,9.363534482697851
+0.1497384878839139,0.29263416121062436,28.60287090020875,8.788433165366559
+0.14866834602223822,0.3051387761227575,31.25323272516459,10.764370733721872
+0.14888610625422405,0.30183085480543775,30.266480886667647,10.135247680042836
+0.14974090982936505,0.3020660096594753,32.544570471828855,10.97218986969217
+0.1521298637222844,0.2993844078537772,27.324380455095028,9.137778967575036
+0.15043668583169326,0.2916470504709213,32.28562412235744,9.857861000927526
+0.1503224116176071,0.296749151256866,26.726582823233322,8.544967889621184
+0.15018367744359695,0.2994759326535422,33.74031154881786,11.133827018471907
+0.14931394600667658,0.3010354208235388,32.021040696786436,10.710487059446583
+0.14998424910574618,0.28754859802615323,33.68595141255073,9.791898334294954
+0.14961392165771523,0.3015330409384611,25.217375803164902,8.493563802153865
+0.15053486931035737,0.29888191085825133,35.20737012181189,11.486302712368355
+0.151142586219533,0.29778372305645195,27.03883686627093,8.823299133649241
+0.14894826676660325,0.2918400317845817,34.141419407230565,10.32387492883728
+0.15018379273216284,0.2960231801001271,33.75459338646803,10.811651928335586
+0.1506718259056363,0.2989787978138815,30.178258842110296,9.928258137909094
+0.15014415150861565,0.290915497153799,29.944102709680642,9.022925002584005
+0.1480310157137127,0.3028215192862707,31.89268952213591,10.694691272908768
+0.14996134204222694,0.2974932247769126,32.26728830357885,10.487942996793732
+0.15034071134023674,0.2979739878101016,30.008760392673665,9.860086600171636
+0.14909155066244903,0.30156871707891,30.782905181615323,10.304133052165374
+0.14852178867457222,0.3067924998968724,34.21845453470047,11.966155296267727
+0.1512506814955317,0.30213155838835193,28.82714246112647,9.830896485709994
+0.1495571476787501,0.3005010150069177,30.787242705571426,10.162159194800498
+0.14949883834791064,0.2980819377813016,19.6258908978537,6.397772198785832
+0.15084007937242583,0.2961632241753646,25.952239710678967,8.28730874771679
+0.1506545264657286,0.29656219397990546,35.7965638060532,11.536390672964867
+0.1516477684486405,0.30075570777629484,29.402510400154082,9.909401372167569
+0.1496047314538365,0.3016821358845868,32.6351573917845,10.92338220146636
+0.14888934930908235,0.2952514109433,30.047070401267252,9.388801729904365
+0.14861533212939357,0.3005917926606154,34.90578674998347,11.529410543901207
+0.14922286098631735,0.29866994812324027,32.57027551713953,10.61792734206064
+0.15065703720230675,0.298943170846755,29.377173456210226,9.71039984744528
+0.1502155017551837,0.3016186214100062,28.63154783804462,9.643395259747725
+0.1491486372197899,0.29944895380753417,26.706146263385428,8.778457814857441
+0.15086808975830185,0.3080825928796563,29.529543909566176,10.647273703153807
+0.14934790055401306,0.29962122900531424,30.983280585215127,10.245545568601331
+0.1515831586600561,0.3026301976868861,36.4562194944923,12.547735637778032
+0.14910593781848044,0.2948255540853559,31.24849391843507,9.827977117224076
+0.15103257492283975,0.2991321740705448,30.083590960673412,9.910015801452266
+0.15166254789709696,0.29455929920605767,27.830511240464887,8.873359474051721
+0.15074327180274424,0.3017558614717207,34.59588783921133,11.682467177715024
+0.1510608713235501,0.29896309740494736,28.820325772372662,9.498277388967354
+0.14777732884950742,0.30000172492927263,27.68298074483772,9.049637951007414
+0.14979211952961013,0.29339258200200713,32.95323455338379,10.259793187733061
+0.15095525933221648,0.29474443866357813,28.602314532354846,9.008429806042852
+0.15035433986595811,0.2988222829879352,32.01360599093954,10.542340322790563
+0.14750188812901335,0.30364006141156796,34.30074730639062,11.595623388092449
+0.1504791539812429,0.30204651126913884,32.77281454600361,11.148147845681782
+0.1492416485679526,0.29709710286880975,31.12619777780687,9.947950416856036
+0.15017366299012835,0.3041146862391496,28.27865264321392,9.824269248310651
+0.14839609954423916,0.29995316359199725,28.74228086073487,9.400082102196803
+0.1492446337581718,0.2962007342539894,31.144262743131087,9.898108080112248
+0.15140404301143381,0.30053941556347147,30.417202505995732,10.264103906179074
+0.150442949910232,0.29339147656246206,33.481859265304166,10.402088021535837
+0.14953665119713627,0.30009377341384075,31.310048372875727,10.37342296677762
+0.1488861425588887,0.29919176370096817,30.63692014990333,9.963704582919277
+0.14950247892925136,0.30370134831252193,25.188874401915577,8.62972413882716
+0.15220577924821688,0.30529913582169177,28.41838377578928,10.13501805247569
+0.14979055224481774,0.2975311008612549,23.058283298558667,7.471389513606323
+0.15070262307354995,0.3017957559481223,33.603330063451125,11.362312493987947
+0.15202844963798107,0.307598262964139,28.31409712817746,10.273603230781486
+0.1511315711701656,0.2942840776145417,30.500411218717208,9.634320831173573
+0.14908571755591962,0.293805979587032,26.792266049604052,8.251382679744808
+0.14990871542608614,0.2994830878797163,33.756139837226904,11.110804754760034
+0.14955308892528868,0.3049899705269227,25.16086034680267,8.761036080197803
+0.15055353447564473,0.2982317943488366,29.134731378819858,9.456379970033511
+0.15089446491319494,0.2995502491022185,27.999742866030946,9.268509450422663
+0.14961168227650315,0.29747741934696964,33.25837885141998,10.67293191854527
+0.15173476422385293,0.3058457713873027,32.546363179702524,11.488558520973434
+0.14899129336804925,0.3085183296164596,29.462853474235914,10.508219363752321
+0.14880087583163304,0.30078599143067003,31.312820759347503,10.344466244148961
+0.15185280753832014,0.301097799432167,34.08964958414464,11.571705746281204
+0.15149786666976914,0.29750639973516857,32.820818800950036,10.699817752184854
+0.14951829097215283,0.3022263242869996,36.65908855590047,12.331709429953394
+0.15150307452008413,0.3007483184923705,35.317748904629795,11.967028847366075
+0.15093507337281828,0.2923859682610989,28.227785735261786,8.652626441499697
+0.14871082347643194,0.29822038096405024,30.282944197321953,9.703823815943897
+0.14975117624955195,0.30078366796927136,29.44162765625469,9.776070308947899
+0.14953845579139444,0.2992642658157021,29.490424576603434,9.627338942129208
+0.14968005104502005,0.29652347913511706,36.848887909614376,11.75124491580683
+0.1503928045995043,0.3057638308924176,35.22296066512316,12.412338113581262
+0.1510290761450909,0.30176757038235696,33.44946674370856,11.386359809265437
+0.14967251523433858,0.2975295584201429,35.53523220957442,11.506425548838877
+0.15174707403638224,0.2965522213707628,28.851603917384136,9.394251107211947
+0.15104598098775351,0.29547170730558664,29.648837853554642,9.430004343976206
+0.15029232141111662,0.2953800550655445,26.366623541425675,8.428977806155663
+0.15051548994963002,0.30434660820759446,31.370205778147625,10.828580780602662
+0.149809091704635,0.30244855913974156,26.08814004309508,8.865835620982448
+0.14898567174917257,0.3035883558151573,30.201274317898058,10.322624598287563
+0.14887104084292638,0.29419070474778297,28.703957801023364,8.929079470385005
+0.15052001383088737,0.2971864947401284,29.127662769294613,9.402419299681794
+0.15151567902251742,0.295795539261503,29.740264041164995,9.547748548255436
+0.1505796857389685,0.29946214850449815,31.008913265929074,10.215326004523678
+0.15143304649420267,0.3040776968131699,39.92561655358517,13.862457004382225
+0.1497195448311107,0.2972571200862042,28.32587027990827,9.093486229302009
+0.15119790714136097,0.29681228191937464,26.04978670814032,8.404798095039222
+0.14987354402325684,0.2900341734434252,26.530923795304602,7.9185370812721665
+0.14952876177248123,0.29895970188307947,32.900135256727815,10.804866704973763
+0.15000533438179742,0.30108848785158343,26.20527835290352,8.778910160423719
+0.14897510910960718,0.2969570626750955,32.135284310739934,10.212086571470058
+0.15077275989119177,0.30692324397186743,31.647578858898683,11.308856584866088
+0.15041264595985135,0.2979900298950135,27.451462481800363,8.973301605247967
+0.1510344149399867,0.3005652675399589,31.50016163446022,10.567032474837383
+0.14852155070840928,0.3122976006149431,26.784356697344702,9.883214134179356
+0.14916463478027822,0.29819907021399306,28.273823761094597,9.150887552458656
+0.1513765609507791,0.29405142155869907,33.899093257815565,10.649806100646774
+0.15009394595042144,0.30737037958901614,26.607599435579694,9.499680749009011
+0.14943807510159646,0.2955714186034058,34.679680629203894,11.011560035676531
+0.15065666978335784,0.2961919776732675,32.361305175736675,10.44153231603996
+0.1503573423874384,0.30630699116151533,28.42476004751399,10.061499441009095
+0.1485305666734166,0.3076325030141995,27.00556497102724,9.585118379103307
+0.1498645987871358,0.31130995990397176,30.12235734934505,11.104001385389955
+0.149613547462557,0.30136674962510906,25.395497076052735,8.489969402228283
+0.1508462590124835,0.2995741362538597,26.4012322294235,8.76599343545489
+0.15184264642439255,0.29157404108685947,31.175073513407856,9.602563300719648
+0.14902708025334177,0.29920606144446443,30.10617091353026,9.820289591814513
+0.15067925143318403,0.30021348348902127,28.419533771472825,9.526138506174336
+0.1491333230639334,0.3036205244871966,27.97583055503591,9.566800422520473
+0.15011938192646496,0.2992628248156925,29.56845844602312,9.682032608720256
+0.15010133842038284,0.3086003223287547,28.309488888131042,10.199500932842986
+0.14823542770895357,0.2994313915598302,28.04282202719333,9.122037185348661
+0.1496992930364272,0.30541445290457114,26.611269414647463,9.29961820624645
+0.15104270107094583,0.29755254980832435,33.02016206502069,10.79678255209703
+0.15047958742121037,0.29825871539913207,28.72303669756765,9.321673550143162
+0.1505266803275588,0.29929573229495027,32.10690764117034,10.54981803794392
+0.1507756720093018,0.2979962710538632,33.43703938201512,10.872928476276089
+0.1502191945541916,0.3047626420083809,32.347995577292586,11.267130753810077
+0.15079658249355812,0.30406515022357794,33.71607050255752,11.693614598629372
+0.14800605909233314,0.3051980238187954,27.841508262129892,9.617138948591503
+0.14956072434879308,0.30106041627566793,28.234560637016806,9.428547387987035
+0.14974056096969024,0.3063803684999037,28.011662585021984,9.859588998656694
+0.149748465585612,0.29554550797923884,27.869790916554003,8.886555579997898
+0.14968690340760352,0.29500297270217196,24.679872733312475,7.7256666619817
+0.14946937122029516,0.2961629380540845,38.74878436190127,12.250217548053737
+0.1515344500512161,0.2944219919265016,34.73872011294477,10.981216205738567
+0.1497758646224404,0.3015951844868561,33.01143945917801,11.085392527731745
+0.14968482461378135,0.29482269263604205,33.40750485413376,10.50125961595117
+0.15017562679644741,0.3004621131945901,35.22726688321199,11.7467347403298
+0.1510504598635516,0.29840205477334897,34.17635408335288,11.257622298446048
+0.149343492370526,0.3064716726792262,29.904360240296075,10.584249256027228
+0.14933207032546078,0.3037492864274846,22.77859756334208,7.76264002862742
+0.14936464104755526,0.29785777313010764,31.96978923889302,10.331561288589917
+0.1518412771895563,0.2994739605102518,30.201337330420078,10.123159621927957
+0.15186406232421334,0.3063044089776712,33.452334349509364,11.918410430123709
+0.15063330584912726,0.29208438208066906,39.99279445217967,12.26058834675306
+0.15016536003182393,0.2984169796198786,27.615038222475047,9.01478188715027
+0.1501870338592334,0.2964432680071716,28.69189501184259,9.242616141283198
+0.15087485633157044,0.30223832971972997,27.307615420325725,9.371387621303093
+0.15001022248898382,0.290054268613154,41.82188749997335,12.597111291659678
+0.1509229912489039,0.29282053531408725,28.985317309374118,8.969141727805312
+0.15229196140962825,0.2993102554101151,26.4344045043552,8.805186100314476
+0.15111742383059157,0.3114372136531628,27.38210080286549,10.176549939157905
+0.1503161130804667,0.30172310527093477,27.428194281679417,9.271952657699885
+0.15088942587935258,0.30293962172235944,34.55649754746703,11.82732179983293
+0.14968347004817967,0.2963681507678417,31.6686442713841,10.071909610944154
+0.15121548300945423,0.29935537318548283,30.764580687190946,10.268309031748062
+0.1496712805259904,0.30268975871505416,36.14961770685619,12.295691464811078
+0.14988978664065455,0.30104385035006287,29.49680977930108,9.916412745526547
+0.1507718846600001,0.296087914366192,29.201373658513827,9.34899272291679
+0.14998810080052064,0.29906604484174776,28.172674329139873,9.229284528048545
+0.15036948988425683,0.29647951671551354,32.559920287163486,10.414828944459021
+0.14994258538276717,0.2945250821124289,28.046889308522328,8.808079298686172
+0.15065895017558212,0.2995442437423178,38.1196634358324,12.586851288226853
+0.14910340508092693,0.30597460652679903,29.378356860378403,10.279660903076387
+0.15021687872998443,0.30243021178272517,31.64099182658393,10.746730881013708
+0.15029389176663036,0.3073254360362671,31.49963100818114,11.209109847829364
+0.15098178955569894,0.3015026429644915,29.381772942858035,10.011548144629886
+0.14998407323899132,0.3033420623055259,34.73047774847678,11.89325845068741
+0.14911413997671102,0.29513167956418984,33.82609652006528,10.640128675183343
+0.15021296747843083,0.29362966531270995,35.95831394020289,11.167250573333277
+0.14987248062936742,0.3002577710729399,24.098789340422023,8.000105268791062
+0.15135232283735608,0.30157132984740626,29.315174399759858,9.977251418957046
+0.14885805625036697,0.29417866078243804,31.917689450149755,9.879495051140061
+0.15039569861527252,0.3037316621056822,23.825414358736644,8.26254613412473
+0.1503412335326959,0.2953960426019914,26.520821103336996,8.413805602380233
+0.15184348060687908,0.3035138456633141,33.12726576611029,11.506401747558224
+0.14930499604914743,0.3015342195214826,33.66274701094979,11.272261034140675
+0.1493676515996755,0.30551357611837265,23.666249913295722,8.275274925329487
+0.1494298072647658,0.3025664247428508,27.563567553961484,9.367600114146345
+0.15007814088649948,0.3000549342854823,34.09165457913022,11.332599341822851
+0.1494891405939133,0.304940521099979,25.5188981534343,8.841653147115647
+0.1520684367029533,0.30333074619473405,26.263149334026245,9.118743523335933
+0.14927726563185265,0.3017961691331789,29.287114938756815,9.785472991324657
+0.1480269603074748,0.2965944756056452,31.87575975821562,10.107630019042514
+0.1518193094698921,0.30294483925519994,27.958077471475075,9.642311244121093
+0.15097303675808948,0.307196442565776,22.12392205821388,7.93656320522342
+0.1519735606108645,0.30841532883341555,27.89363843770941,10.164819134198458
+0.14996791377911878,0.29582664441056306,28.081467166050544,8.884566517679108
+0.1531689991449198,0.29433693707958725,29.549678155116666,9.446568279792606
+0.15123880820516833,0.30377784793593926,27.549991752148834,9.529123599289019
+0.1500749316737607,0.3041549480576537,34.11535572262504,11.770923466036407
+0.1502942310389208,0.30185117304749415,30.081066402119315,10.183267013302787
+0.14932002409181153,0.30089938882158723,31.91108532321774,10.608848081143748
+0.14903441523397976,0.29467251606634565,29.031538714306475,9.10003613525027
+0.14919764360713542,0.3015096936019632,29.649247987895897,9.920648330026053
+0.1504178720967435,0.30167584867698904,25.204712060578686,8.472776777918977
+0.14937428632792824,0.2954677970000206,29.201837100627788,9.210474370105015
+0.14923659850703425,0.30384504232515536,30.632543996385866,10.458092930323943
+0.15168119400094357,0.3032390531296838,29.90878482000189,10.405293610530896
+0.15104520883768593,0.30909414245148314,23.27815042665581,8.479006516768493
+0.15096693220556273,0.30583673014123547,28.732627440425958,10.135677913412426
+0.15260862447714585,0.30248374768612657,34.18650288453313,11.838722770648536
+0.15179227721233832,0.3045880136891935,27.639786003554775,9.665437249008212
+0.15022802182759984,0.30523732169773543,29.3574639188076,10.243633006787688
+0.14969412482666858,0.3022224370478047,31.274326669159144,10.611566293486629
+0.1486690385772201,0.2985767400811006,25.270347501749338,8.158969082500693
+0.1506723929492869,0.29874290483693544,29.86431806301067,9.784359472470458
+0.1490988213219637,0.301807980469396,37.012204771860986,12.381478724596835
+0.15165348101340928,0.29542307905843057,31.796588923763906,10.14508242851292
+0.14924108140551937,0.30937697248255797,30.29057818174489,10.922984186189638
+0.15067285073314496,0.30008675738002444,23.94532772351791,7.965912387155629
+0.1525580814659607,0.29608549021037606,27.13980955828739,8.798245675546216
+0.1488520047043616,0.2938426557564193,36.26600887791395,11.161192830944437
+0.14854610757163458,0.29746645963126167,33.061016509568844,10.589611368351761
+0.1503403163716151,0.30304841201678334,24.652837787619198,8.455667527047247
+0.1491654630906485,0.298159298536353,31.992245699835102,10.333431470014016
+0.14874977844241816,0.3005474113701993,35.16661275448858,11.641876831380314
+0.14982798489329338,0.2975900516824233,30.92905084326061,9.953034698933799
+0.1502784968557064,0.3010514805195591,25.7901368657444,8.740547268320514
+0.14872629376831528,0.3047199337580296,25.765062555081542,8.86842327286035
+0.1499447015755763,0.3078349636338116,31.28391105076725,11.140847784853893
+0.1499804679737111,0.2908019844851951,30.167974328875005,9.107846992720729
+0.1500712367313619,0.29543334863141096,30.31430523862297,9.552872401198497
+0.15191481088892564,0.3025726775450782,29.90973595829352,10.292087817382015
+0.14966547007599815,0.2997420801022403,34.373567255400424,11.353208562141775
+0.1518013590364544,0.29540493294027537,31.72180445494497,10.182001083148872
+0.1487280216495855,0.2911403045553556,31.50306957958248,9.471416107454315
+0.14944237471776173,0.30892328801401375,34.88899396921994,12.540344894459622
+0.1511286811310313,0.3030573071722334,31.067358551571452,10.69783314868141
+0.15099472297777933,0.3061067800941891,27.527539529535467,9.705992018742105
+0.15077150788550756,0.2940615128990289,30.118299828754527,9.376212489706758
+0.14999115056648413,0.3061321324250115,29.916347750418005,10.476553940631478
+0.1487375524605342,0.30231389238414536,30.841355684601066,10.373484579760536
+0.15069986825794535,0.30048525301507906,36.26397486944406,12.090702059402926
+0.14870475167174868,0.29807045850494357,28.56265873841055,9.169442020910662
+0.1523782134317165,0.30576346710508756,32.1821512187119,11.431026081304616
+0.1504590293608006,0.29670122119319164,36.48025074863726,11.709446244654666
+0.15101358843513132,0.30960752722614965,26.87718189221372,9.873518327348648
+0.14925675864194418,0.30449861870596395,34.15268368801648,11.758455161207806
+0.15032526865802828,0.2994120051766088,31.634118034225843,10.388692619478775
+0.14897868392468921,0.30347987840336516,37.870246469894525,12.882938727156004
+0.15033547315302165,0.29424555820972587,35.36830686428407,11.056759620587576
+0.14961787032965754,0.30502439582941426,27.610174174348963,9.625944976827414
+0.15090436643043184,0.3018468564086428,29.881265904641808,10.107684413867466
+0.14990028378740047,0.2941607298435432,28.259158055442075,8.779197772945894
+0.1505822056785037,0.29770832089490573,27.99663516690238,9.135687449225397
+0.14968624223845758,0.28751959886636175,30.564632886228885,8.845362358018036
+0.14967474554887353,0.30188488937383756,34.49988748256376,11.588681363609691
+0.14954807707502596,0.30498880298153697,34.96952327862831,12.14518303032861
+0.14950125468570355,0.3007746170106346,27.455615810509208,9.146313683986227
+0.1514378921196374,0.30281247944731726,25.92234356830935,8.940960277737116
+0.15014300421380464,0.3058694756975804,29.014745948967583,10.19000508001916
+0.14884711706718887,0.2922822147255014,30.030813477359064,9.114208557338348
+0.15028306986615797,0.3041773500103569,31.697902555516077,11.006777935958013
+0.14967562457293263,0.29384700645155193,22.953836430368085,7.145231709855658
+0.14916196598130044,0.299986672144408,30.3838394732929,9.995705418271783
+0.15053444544225805,0.29778573770123695,32.559939942109025,10.545910701263361
+0.15031606768746014,0.3049145962833051,30.866558394995412,10.768989206723667
+0.1498781448851506,0.3014155997121122,28.09299886904244,9.43872349700542
+0.15045520316462554,0.313148763552408,26.503646353085053,10.028786455323218
+0.1504399148819768,0.29903316922606626,25.490417733822856,8.392393403052093
+0.14951578875272567,0.3083124021224467,28.381332384299416,10.14422925273544
+0.15139838673974115,0.3037531366058669,33.16189789898312,11.501398125230772
+0.1492815558818799,0.30687509895790427,35.405547826753896,12.530772699271555
+0.14973598468331248,0.3011453420856062,27.606940782416117,9.19685412157689
+0.14896151183545464,0.2960874454788772,36.32292505781397,11.542395925038445
+0.15056321735472536,0.29914837871775,36.41021646373123,12.044131753496337
+0.15296797459352632,0.2919507076384568,33.39068463728705,10.47569640503674
+0.15032417050023703,0.2964351288527715,37.44123425062528,12.076377250171044
+0.14904507900004393,0.2883954189827876,33.78670937856983,9.998770239140066
+0.15001202552660098,0.29779136354324315,36.003361330421754,11.714174979184413
+0.15121147892312442,0.30161169758941203,30.072420235168583,10.222361554779464
+0.1496038235068478,0.3046264063155847,37.82297004630484,13.059081646345078
+0.14914555536520616,0.30090670894524585,31.197693088438985,10.394491363436074
+0.14928554421418372,0.29035239167155596,33.84413781939642,10.152140447471535
+0.14968623820751964,0.30290973347162664,30.017677555152538,10.259614582990839
+0.1491260791798458,0.3009399504381811,22.837430232415365,7.615550958266082
+0.14914175041791794,0.30076892395672417,28.968396295594044,9.622023124198686
+0.1490601038627124,0.29513226861150027,31.651325718703674,9.933809202227467
+0.14995519582918143,0.29111166263195537,31.107272299735293,9.423152984380092
+0.1503410464134173,0.305144163295508,27.55138247398326,9.673437258886295
+0.15187647335887333,0.3038126713712855,24.651444305739997,8.53909479786559
+0.15040008845925257,0.3064480925294294,28.92500119499235,10.225069431056108
+0.14865675980464615,0.2961931208749516,25.267364417395093,7.979684766167419
+0.148566642762258,0.30453020189864455,27.702585285768023,9.5116311346866
+0.14907216388017433,0.29904046917584787,31.242391181107653,10.177893540648709
+0.15117921775206944,0.2975342948486884,27.69026504180015,9.010669753420958
+0.14793771412018225,0.2988544155021851,29.228167838592967,9.450703942620626
+0.15079386272291634,0.2934540573712781,31.16353439422895,9.656296131605744
+0.151443257605908,0.29306308548585636,30.564737843053436,9.601889358323264
+0.1507446436800092,0.29113005372052925,33.07769823178932,10.084995104896159
+0.15076942603169716,0.3031282452239175,29.733884584233934,10.171399398928182
+0.14912899257408707,0.2926021152993033,34.42249456964207,10.541868802850217
+0.15172983994009073,0.3000049525744535,30.720474040224023,10.244211913507186
+0.1500499029535393,0.2909995381754903,31.741298640037765,9.580042045838699
+0.15001186943085146,0.3021939752133033,29.82831868456542,10.154689053399647
+0.14901290698822747,0.2960383191453897,33.31296401382358,10.582114886109114
+0.15044446124998886,0.29516374327006506,32.036840751720206,10.125727438979784
+0.14841518785321603,0.29678104806595673,30.70317215609433,9.712041678070014
+0.15259206154516802,0.300713110947691,33.16345133207845,11.254919764886633
+0.14826082943366248,0.2990522655217091,26.97827797372749,8.740926605459839
+0.1506957158051959,0.30002230035774907,32.753506359667156,10.942788972259141
+0.15111929860086884,0.29406988123356326,29.834841289004398,9.401731512647478
+0.14923129005118269,0.3064189954738967,31.224410377978334,10.898516171571666
+0.14936746117538355,0.30107915492503967,31.980563490303304,10.683527290079416
+0.15007267744010963,0.3010756712630488,28.212293691129105,9.455335086870447
+0.15001599014911476,0.3007428862547265,33.1514906027294,11.011608616097684
+0.1490438554696667,0.2981857707661694,30.12944667092234,9.75157693896294
+0.14891986814402838,0.3111664211887233,29.56900990106741,10.816237694838591
+0.15019489307633668,0.30686416083205487,28.228689109657243,9.973974418319408
+0.15190817727262215,0.2953403955946364,26.67066728334512,8.558884096042
+0.1490750432663226,0.2967320122016201,31.697075894639053,10.100015720670571
+0.15254311422472636,0.3039746732007331,27.671599357048205,9.733741866144252
+0.15202838324927517,0.3025673771141059,33.006563723722465,11.385826110575797
+0.1479133515889009,0.30181748275262815,36.19878088452278,12.00378849701912
+0.15064950375908343,0.3022749747527126,32.23039997457845,10.981496753648385
+0.1482269444347546,0.30164399223972177,21.542968565409463,7.168069279305016
+0.1496966319949425,0.30008155357827265,27.70174779880516,9.184572322531057
+0.14851425441389077,0.30381236227683783,33.140264637078836,11.334335455768969
+0.1501793878783565,0.2945422894065405,23.620522305220625,7.39065118091739
+0.14687643843287412,0.300172497923128,34.6772242562673,11.346224253892323
+0.15193554191175593,0.3033933693083523,34.839639605013176,12.123589158060131
+0.15151647428032047,0.2887964747830914,27.355891845168905,8.196571576818044
+0.1487212339636145,0.2991792774613197,36.63529510329732,11.915546050010652
+0.14978708297678134,0.3031019438405156,28.79596373957083,9.803591889184975
+0.15083023531082104,0.2928457876986027,33.476388023897115,10.401803846471305
+0.14988336582394982,0.29636674749804903,37.997155909348535,12.125290644324119
+0.14849041002974703,0.3063039275841574,30.69531522743358,10.66311357818529
+0.15132972004336623,0.3001837677873126,27.14982375813077,9.042910251919869
+0.15009290220780028,0.2980083777527282,35.16384480378739,11.396998288590748
+0.1498063119729323,0.30518494012629854,26.810820220302045,9.284140289991559
+0.15067086870520985,0.3032117544269888,34.24061741796382,11.722440823129627
+0.14949328834325437,0.3024362874109427,32.983768312712805,11.19022715214461
+0.14803025969739506,0.3015453578534581,31.942518519907605,10.575419077784721
+0.15125996375758358,0.29666134307019476,26.894499688439637,8.680600586161708
+0.14943739735978567,0.2983644396538379,33.98664487114587,10.979041490721045
+0.14712420871666174,0.306824215698437,33.38818870811331,11.568067780213337
+0.15142388475908272,0.29626213584856176,30.662003811891033,9.86979978178947
+0.15191876619105962,0.29988783231489413,33.16059898435999,11.068151616648308
+0.14923520320873646,0.3062771403457535,36.26637449851822,12.677572622629109
+0.15081317473431097,0.3101126421478605,25.38020319416251,9.351881586650173
+0.14967498521505296,0.3038691236564812,25.760522773499808,8.810976780658896
+0.1514269415274487,0.29890785216937454,29.560122898590325,9.781688485555557
+0.1496177949552043,0.30820085946801606,29.170086365967812,10.457617478660818
+0.15217851313380848,0.3002341808673266,32.317151759651125,10.937958472048853
+0.14913527710966742,0.30032152357554226,30.95298200834668,10.283122500916537
+0.14781530241790922,0.29720990423556864,25.47809441623854,8.047605199659406
+0.14768392690432494,0.30219089153579826,23.349513471078474,7.795303995334805
+0.1516470881500991,0.3026994134043551,29.912032070698938,10.26878500372278
+0.15112759633838316,0.3073827646888915,25.367161313974247,9.07937675622594
+0.15019197898037318,0.29900557404328276,29.101399706769698,9.579177735000156
+0.1492989013436578,0.30421783867046376,26.11690395093281,9.018554278397536
+0.14923331602360343,0.2992482910862512,29.234392508161324,9.59815268841428
+0.1516379596968497,0.2952039234771228,29.48949623792357,9.429713632627797
+0.1497548725328338,0.30137005325513,25.16724516789366,8.426133038861806
+0.15152821936260927,0.3049139033313775,31.430778230300096,11.05530172985707
+0.1514639785493207,0.2989582947554092,29.611514911092154,9.757406543866452
+0.1513318427424335,0.30285533471077225,31.952693607554473,10.965975369976833
+0.15070551001769397,0.30398377802945076,29.103839415193104,10.014841192400509
+0.1496236397523721,0.30452791863284706,32.57719491731183,11.250851620814151
+0.15012779097509615,0.2974404626733659,27.143878581210437,8.785930710244072
+0.1493968878630916,0.29893346351244193,34.52630695117597,11.244469223830427
+0.15005470726414177,0.2978718315043907,30.715982419704215,9.93702590036286
+0.15028390201115416,0.30137955981887227,29.185094661795276,9.813616392444246
+0.14925333677705585,0.2984380390587616,24.963728523283265,8.110095305701833
+0.14939994266866383,0.30170874650032814,27.768718684076198,9.277728246719393
+0.1500131414429461,0.3077399397728205,37.904990351961416,13.560332181353605
+0.15216845108546445,0.2985042466722253,27.170359644732912,9.074245178861938
+0.15192874519610167,0.30271904093103225,30.12461555929723,10.447564556257861
+0.150046147977674,0.29715865324442453,31.17273033957152,10.055101719008173
+0.15102597438813092,0.29770404423573416,29.084898004521573,9.46731905600441
+0.15080555419358868,0.2966666747646737,23.972398631185307,7.727248718447187
+0.1490651219533254,0.297534485053295,29.20125265285949,9.371644686208448
+0.1497890119185867,0.3000925065668469,29.39856064384749,9.726778674909841
+0.15037912600948014,0.30293089054279365,28.63629343158419,9.801808780044402
+0.1507372384113627,0.30028250156083275,32.693933548156316,10.887193074868533
+0.1491882824828134,0.29659773622832664,34.198311587951196,10.889788769108629
+0.15060354978183577,0.301526538411565,36.11841615740967,12.16724095125079
+0.1503923149503815,0.30495113989355055,28.454856251643264,9.884123194908263
+0.15078187421309006,0.30472614068745857,32.15973779939213,11.249811336659917
+0.15098209140326854,0.30007842907636234,22.738708123998073,7.6170916658274095
+0.15249624438069645,0.3034411534645371,29.07861238548314,10.129934754392632
+0.15059998675778805,0.3038196546952482,36.38692437115568,12.618675125873223
+0.15055756334563944,0.30345815413883387,36.65189453732317,12.61078639080324
+0.14982906115850447,0.30388369245634944,30.48122816906691,10.455102150890458
+0.14996173352217984,0.30231690101123715,31.09844360203634,10.524918820727468
+0.14941673407246125,0.300194648073742,32.06471809867783,10.605987786620709
+0.1505001967057278,0.3035897769720734,38.17531173233613,13.167932049080964
+0.14998101408242645,0.3041665277993631,32.80892813557876,11.302663239245323
+0.15176569942084592,0.29431073279385533,35.442054504366325,11.232764257708174
+0.15217949051609225,0.29450305003675303,31.966266464203624,10.153633170082692
+0.1492130682627556,0.3020040688732654,38.37923798312481,12.855964653840998
+0.1492579107357715,0.2976413761312364,36.50938572214635,11.700824698968303
+0.1493850842767463,0.30157502239520345,31.162226525603316,10.430262637757362
+0.14956527966246802,0.30228128790993275,29.95192915579808,10.142499523184968
+0.15034379421598784,0.2970538378764963,38.80567465058844,12.55686573051348
+0.1485951343083641,0.3002167178882183,28.050994286370887,9.270612683685165
+0.15130457116778478,0.2950884775818384,28.085233659761702,8.980908285906622
+0.1514358012694854,0.3003983283318158,32.206568235994794,10.80131060163404
+0.15124997277180627,0.2994081006126801,25.670124442904587,8.563589360643979
+0.15139584078591997,0.2999163308969949,33.71422013411371,11.293140057772767
+0.14826156873230895,0.29600846699681227,25.413225682037435,7.999103223820981
+0.15046330326399301,0.305115053364588,29.479572833622196,10.297053594355999
+0.1521228418232238,0.2990336438102852,38.213593173129944,12.752124866583381
+0.14897180134702614,0.3089619859553204,28.108127601833807,10.05793232733896
+0.14968953206904412,0.3019798261312883,25.34214132988688,8.541194416440742
+0.1513895899853502,0.3032969211838139,28.796946966001112,9.979926467852028
+0.14940373739804896,0.3016987483835339,28.417672766175794,9.545918692832808
+0.1505002631713607,0.29744794487254056,37.04787498433575,11.997952238267803
+0.15167133602108435,0.3008264875259064,27.015646557148155,9.089407925797602
+0.15073915765555146,0.30264086639658383,33.514583645084166,11.477113047253614
+0.14913732717427605,0.303070989716599,33.16497207181506,11.284786315366716
+0.15201316363911738,0.29982907448348367,25.640680147947826,8.557867525470312
+0.14929412083175617,0.29840810998723954,26.944182266555764,8.726442456768709
+0.15002568689345946,0.29571755995269733,33.02223675031753,10.435500734458932
+0.14861770536660227,0.302392847808127,30.196368638703436,10.141204132806491
+0.14884003470622845,0.30458444936649115,26.57520145052348,9.173139119387987
+0.15035053869578321,0.3005143885297653,27.403112745979424,9.123548347038396
+0.15196124917288942,0.3010712429521651,35.20020112284193,11.885601877311707
+0.1495384508454159,0.2984376685849325,30.97202961561825,10.099607360317783
+0.15011905654379945,0.3026673929226585,33.32511929442392,11.432971230618032
+0.15013696417851205,0.302942043823826,29.712475807642335,10.136431289815329
+0.1503640640290826,0.30020911927699995,29.586651191426895,9.81717622755239
+0.1504183728934049,0.30225496292595494,33.059602407904,11.25648097406072
+0.15034959956524607,0.2949377704465128,32.736020146838676,10.361347645471636
+0.14947707350247275,0.30517266359743744,32.63599534077347,11.36195600308782
+0.14971888222859253,0.3099126865234497,24.050054450145716,8.801073848526782
+0.14947792672382457,0.3107106473956141,31.943060119010855,11.745544440165457
+0.15231113174713887,0.30104313965659796,31.890737406135493,10.825260544259079
+0.151391643587782,0.29614992700460163,31.671573301639413,10.175362844369854
+0.14860162055193404,0.3030121632821078,31.397717273289466,10.606545647426717
+0.14925529695210338,0.30764101546254985,32.311705810769574,11.485004605866376
+0.14791376667732695,0.2892918063831737,33.04321532788703,9.651499251093403
+0.15091819215659405,0.29947527612334024,30.38949671236414,10.083067058708856
+0.14887376855704412,0.30416558825375434,35.748298045724106,12.22126963338494
+0.1504961686456,0.29708085036984144,30.002391569725003,9.646781734799763
+0.1469263265903933,0.3070120118819256,33.12923595672171,11.517100103173632
+0.1482529951310335,0.2990589485217361,30.026301368011396,9.733599275482511
+0.14990895570920063,0.3074206973729467,31.084642287589748,11.061467965388768
+0.14888640119995158,0.2955471045490833,32.092158649653,10.102796006670047
+0.15161174655513768,0.3101609054399772,30.063459425779183,11.154523394549395
+0.15060689284132314,0.29402099596449977,31.178450316885176,9.710197587624995
+0.15095865050371923,0.2988620636023181,35.698341750189186,11.73377481921148
+0.1492890388818151,0.30215713023269963,32.417517223562626,10.829347441017475
+0.14985687122635838,0.30518305192588835,30.79281272811263,10.71486189639164
+0.14906143934155944,0.3018387446160004,29.546686373755065,9.868461228016198
+0.14921516149806432,0.29897856745156615,34.59116426634562,11.304922174192294
+0.14944412176107702,0.3048379050780518,22.717310627725894,7.859214628032586
+0.15037571129115443,0.2980963191400674,34.523555144107206,11.282425400309384
+0.14892986048644763,0.29704062169211043,30.50421632300667,9.721071305915471
+0.1498755542954255,0.29933927080655476,27.441465934521965,8.940740581087605
+0.1484415643764022,0.3028336983317804,35.60806955587981,12.054488514130618
+0.15133863968604896,0.2968513380409904,28.78027922173128,9.3346376231897
+0.15028039324301537,0.2946015458486449,34.282690862979514,10.78504880965671
+0.14977819193217629,0.2945966859423778,31.32042277011551,9.763787513369579
+0.15136016399864735,0.29825681660272957,21.72064015901489,7.1590874799728095
+0.149845733056684,0.2953664144027013,31.953823069572202,10.092023614180897
+0.1494612746360977,0.2928339567575342,34.8611271787322,10.634688046449225
+0.15002671464157444,0.30200174290598036,29.752881883070284,10.00653776386124
+0.14921303013360696,0.30144611304071106,28.262957720967943,9.46525368083433
+0.15192999045790093,0.29581110575133324,28.384545867622606,9.130645681620159
+0.14945754777246434,0.302393366826936,35.9771636837808,12.129650948372202
+0.14891488455297958,0.29538227201861983,32.135761515223244,10.084360741109455
+0.14843706247995214,0.29978349551768746,32.65018882690158,10.75380063969143
+0.14917970822336932,0.3067610132549685,25.754854989496458,9.062308917125474
+0.15086485749355869,0.29402436724568637,34.11593797467817,10.717472148593192
+0.1517776679112957,0.2975883744837424,34.044913814442204,11.155878409179282
+0.1497825355572467,0.2990585273096529,29.116470075175968,9.584954307085214
+0.15127482963959688,0.2950493367530104,32.3286066562779,10.247723225630262
+0.1505436460144164,0.29860119974717264,30.940260598811644,10.136200623506221
+0.15131992558222607,0.29635349669246513,34.32613602727081,11.10418299787992
+0.15160111433766657,0.3012913237307157,30.141159103522643,10.253807680158248
+0.15054303849002112,0.3010440833962114,25.73638843295387,8.633974933056189
+0.15164812471813746,0.29442981770628934,28.140761216148483,8.892958681814964
+0.15262061161858842,0.2960933218772424,32.78117879908843,10.667906004903564
+0.14935479429458515,0.3007600181532845,27.084466178814655,8.975580986852533
+0.15028790657349997,0.31060488961696175,26.467193036319394,9.724393258437562
+0.15116933726055998,0.3030480163782465,30.65983042860432,10.551596369823113
+0.1503201323615433,0.29827585542984814,30.53372632537816,9.888652417349284
+0.149562780413183,0.3052800164555544,35.06503863228523,12.179134302949285
+0.14916735459475433,0.30349770231181444,27.948736906504827,9.500849047896608
+0.15163915345022314,0.3041651165434515,31.54610653192802,11.046401316647664
+0.14930466591672995,0.3006487717538172,35.103701249726,11.701890460792615
+0.1500138676696879,0.2999785518309521,30.872927919686624,10.235184812982457
+0.15109582870085728,0.30656815184551095,32.13109346722105,11.428343459860208
+0.1499405190797085,0.30020191835578414,32.433392348936806,10.763840403789889
+0.15015209100568827,0.30453927335064845,30.964183008404337,10.736196119709573
+0.1503464017148804,0.29930525383395973,35.7240180659116,11.811457762444281
+0.1523155747769102,0.3016266391566455,24.08008893168883,8.257899936365678
+0.1500808669544526,0.2991370113877244,34.02882898632075,11.171579231256947
+0.15243773008043984,0.30086029239033163,22.5726705843173,7.656812511178764
+0.14640385469092712,0.29411099644128597,42.60651276283195,13.037652779165677
+0.14967112752200207,0.2973865126864653,26.392873000140042,8.529107027421674
+0.15091537961193402,0.29478454316226055,34.66874742085817,10.991111766264552
+0.15003720641810614,0.30117776071679964,29.855442611360616,9.976572630776142
+0.14976989541266042,0.30010661832795305,33.01569916415856,10.91062561797314
+0.14899637603241536,0.29935695043775584,25.493946030742986,8.304565831043181
+0.15148026560024344,0.294857185291016,31.36998686861471,9.968129360497972
+0.15135371540500644,0.30544498366050604,30.841022421617907,10.898277625058746
+0.15096231706105742,0.3010502557019304,20.51026826451455,6.888863637449898
+0.15051724310943038,0.3078078705198324,30.070243438485175,10.826875295737654
+0.15075211453704232,0.3047503740143827,30.36602345300454,10.585042574095601
+0.1506636646368206,0.2985187887133845,25.530021198102773,8.374384061036382
+0.14977728341337698,0.3012266873690849,33.098832012906,11.140078975977016
+0.1509487149897625,0.29163577321456824,30.13911652818915,9.186474049524076
+0.1501715414250172,0.30603087804974216,27.024448312204754,9.502502545113709
+0.1510408822895049,0.30084602708648006,27.598998452688356,9.282463964683611
+0.1497465006672607,0.29718543145827253,35.11920938058179,11.262386806389603
+0.1493090812645483,0.29635044468748056,26.77048007306443,8.495053579314526
+0.15060364604977572,0.30097341986201387,32.044116865180676,10.79425032694535
+0.15184487419969514,0.30089035952608867,29.310148352585422,9.904501384462309
+0.14717596185900003,0.3007356501732257,30.161140851714116,9.907321704268458
+0.1492467631336167,0.2969791747670931,32.34483478804846,10.377568451411218
+0.152053232822031,0.2983811990108403,25.31967784569931,8.38793577477569
+0.14904968784270392,0.29723987001777114,34.36313907162602,10.971545415890294
+0.15148603905170138,0.2997173443298445,27.088331644148575,9.01483938097891
+0.1506668468721423,0.30221297346982956,31.424154202447884,10.702368958197741
+0.14840841409958214,0.30798324757521706,28.26524544985586,10.038187438387139
+0.1507432554813399,0.2947889016030538,26.27780656397841,8.270072025558676
+0.14955094139774325,0.29997706516428846,32.35245522647768,10.71803306443025
+0.1501425887010411,0.30593997990755695,33.43873560271986,11.83751923594647
+0.1497314033603708,0.3028855048244029,22.165982694599677,7.570957243099782
+0.15094488945153453,0.29787537113381884,35.137616321271416,11.457149663357278
+0.15264469703359304,0.29969479437353924,24.805196361989175,8.344077842255949
+0.1492161709901235,0.296861116756426,28.7026364846107,9.15783034038603
+0.15056301873468894,0.3033520252378034,30.126990262174,10.376316368554317
+0.15146302743704865,0.3026024476679413,28.807865994052747,9.897306757631688
+0.15025128304983146,0.3010891129835965,30.477215055447992,10.204766297759269
+0.14977054794398087,0.2973887530282773,34.44564925839204,11.088388340969319
+0.15035501146911828,0.29326817610480677,33.96785605565053,10.458220524619293
+0.15212270932137134,0.29848755761785206,29.643898897707658,9.827782134641872
+0.14947036829529348,0.3065463195608687,33.50551252749616,11.813114213467209
+0.1501155361334738,0.3001766607647801,37.61476487834727,12.535294096349704
+0.14814562531251002,0.29336941500612834,32.44365116573127,9.943876593870678
+0.14917743166564368,0.3009025521910665,30.538678613272705,10.11015234247907
+0.14962298106315555,0.3060807462000656,31.16376410397238,10.915458911975
+0.15067751608773602,0.29792048835440466,29.299876671860506,9.546247811893974
+0.15010498299466873,0.30124563129596504,35.87372190846971,12.023797297232022
+0.15001957192714968,0.30205025058779594,26.008098714361886,8.80478661320749
+0.14933759318664291,0.3008790818767488,26.191736274776936,8.727212723867828
+0.15070886692700458,0.2992621507302316,32.427011861604754,10.772753391551262
+0.15012325433754412,0.2958153654089091,32.02284223478399,10.223101024014179
+0.15075394148584115,0.2936838929969213,32.916408143983446,10.287193528654251
+0.14835175297687955,0.2988658964236221,31.430099837837584,10.136652627719
+0.15119750669530663,0.3025585684740702,28.96615497527928,9.927715184201048
+0.1506077842833826,0.2901873366864283,28.1504332796466,8.47713388446175
+0.15235411388812584,0.29848914193881076,23.008609095842832,7.647887353634898
+0.14696431613479077,0.3033953674571166,29.486847492352545,9.858633864548334
+0.1530734013973854,0.29529384970079187,34.55351908400977,11.082459241901802
+0.1503333362688662,0.29953016244568714,30.601281040028248,10.142547223705439
+0.14956195182507637,0.3025964597546039,33.08021056856159,11.195032656387303
+0.15241789859856839,0.2953455736605998,36.18646373706774,11.612171559536556
+0.14844049909993584,0.30258804430565306,30.97306861845997,10.45337731478702
+0.15006284545367687,0.2990285039629638,29.400332683108502,9.636277341383055
+0.15129994488283904,0.29998980344880277,34.237309081560056,11.46359669364862
+0.15005264435754795,0.30062863371559045,31.61466327619749,10.559082117870673
+0.15024754972477425,0.30030026054633113,32.054646690677544,10.655393177813204
+0.15021336810774263,0.3059942470506242,29.848313072677122,10.498861432951504
+0.150977788992247,0.3031512154606973,28.890888415105067,9.904537632021311
+0.15183313255154154,0.29760092713630426,30.716496430606597,10.10166671939118
+0.1504110456161813,0.2924581016692708,29.821792386951802,9.185716410898426
+0.14858563010802447,0.30796294872662205,23.49419781132876,8.368653603801045
+0.15005840654190203,0.3015090160072002,31.222287161734936,10.477120861652606
+0.14918978379704492,0.30273918976841335,28.828253659792892,9.799401910126678
+0.14976149319308787,0.3042193628572581,26.43371261111924,9.08460512344191
+0.14710670439099674,0.30250540222439565,30.97926814092399,10.38162431311321
+0.1516372291580266,0.30484401069199685,28.264801864300328,9.882052774173982
+0.15024443218753772,0.30514390856316714,32.00029563447177,11.164388620085603
+0.14842279777590653,0.29903168956166476,30.65434022339509,9.934407879512179
+0.14992842764792497,0.30015429946528854,32.937217596478625,10.980411186822003
+0.14931957208250202,0.30503012793166023,33.38464391262266,11.578901509022394
+0.14810711805608992,0.30409928874919084,28.63256498242467,9.779010328625377
+0.1501040369661922,0.3087308018329468,29.50880900080927,10.699831713647466
+0.15187583287734058,0.301436079952307,36.06549836433489,12.27252118924845
+0.1472950004741637,0.29765935520042774,36.68763045813521,11.682994082634181
+0.15054572994455756,0.3041182509597554,28.42389463372921,9.831678742643463
+0.15037367338738172,0.29442919068479906,27.25108319359063,8.530974604721157
+0.15088347389913434,0.3040002482656745,28.85633748593484,10.045572806511872
+0.15031725840817742,0.29850062957490725,30.335113745144767,9.85790705315956
+0.1500895655985786,0.30499386406794765,28.674507380613743,9.973386481855508
+0.14898864128800937,0.29174418309267347,26.553143210754428,8.060604389305993
+0.15024520803189936,0.3060389078992302,25.802497694737628,9.081244787834347
+0.15114815372683482,0.29178808656237354,34.46514186386355,10.627957080207684
+0.15055425927648716,0.29351751503904877,34.66079097159373,10.815481486469102
+0.1475919599292886,0.3096583092425613,30.771850105804724,11.012299268394788
+0.15112607541470477,0.30229513480081227,33.545646821558925,11.468737570031251
+0.1489602683076575,0.2992348894874152,36.48016659058428,11.819829516152165
+0.1500783569864268,0.3005407377756637,31.400847368125,10.449708904810512
+0.14887161196511686,0.3054017542434593,33.07833881399068,11.476175229037233
+0.1500824071931335,0.3032980639410305,28.38362669683266,9.662329994401198
+0.1507747151799427,0.2995097756829107,30.318056866097816,10.006105616158987
+0.15013186046990099,0.30340043410991824,22.044989788310637,7.5516106174054904
+0.14736443033320748,0.30276727349594806,30.059463379812644,10.068394447238738
+0.15034648595443936,0.29592758412430403,25.732618999645283,8.200143205588606
+0.15143625735135105,0.30352773041293846,32.45925729704859,11.241606249247146
+0.14763112208486298,0.30262161765777934,32.80534995440052,11.026054688978697
+0.14697993022284828,0.2991442743730576,27.32065675082318,8.81130769976259
+0.15038412726328262,0.2979575880968836,30.81998852204656,10.02606288574631
+0.14917748387343258,0.30114780536225055,31.00924136667265,10.3279736419106
+0.14833020214733048,0.29788065201054575,28.976343588554922,9.291433599085668
+0.14744686115806477,0.3018605693883467,26.409855615042645,8.740532600169475
+0.15163432486121547,0.3018665167643657,31.489897954344134,10.716904073607125
+0.15056794978923452,0.29811089566870835,34.8922774660059,11.324902860873596
+0.14952558077306027,0.30290005986087826,29.32094118969261,9.934533216659197
+0.14967166825675776,0.3042286436261707,30.304435669131312,10.43049967468529
+0.14922910213866605,0.30072301245577227,36.550645046061916,12.149594814252403
+0.14883622485537695,0.29995594657131336,32.464940336170066,10.675790055347568
+0.15086535081063543,0.2943740920726484,31.737821218816592,9.981316873675087
+0.14944684415213688,0.301472219976935,23.725642142941595,7.9648064721225005
+0.1486924403021516,0.3032135686511745,27.989046400611233,9.529383186158102
+0.14934101333818864,0.3046984418127398,30.968612030474453,10.73797796316355
+0.1526615967072547,0.2961613465393479,38.583915617323804,12.501097194468944
+0.1496030334691639,0.3068391860388616,29.21663013109385,10.302812971259222
+0.14829822720071317,0.2965188148916003,30.273086486896133,9.642994520148386
+0.15145484611521406,0.29946417209492554,29.199617782408012,9.69092905768839
+0.15038426902483948,0.2976762790246592,34.57390088715837,11.218834018832593
+0.15061570827463214,0.2946970359547593,28.74873981968714,9.123872360015703
+0.14842029844985835,0.2981188356810185,35.39437561439172,11.400321555131368
+0.14948447304444823,0.2903791626055825,23.935228132926355,7.178595645038508
+0.15053621252782468,0.2985547383606632,30.142439524779167,9.938090553190921
+0.1484192751608765,0.294205286973151,29.701488510246097,9.166979853228057
+0.1488423842870384,0.3040728978485254,31.657061251967896,10.775994501198669
+0.14876666631748436,0.29341498641976416,24.21117534255397,7.396539436923691
+0.15059890754231617,0.30225284925027457,26.592527447572003,9.055552159271585
+0.1497023661111011,0.30095002886190597,30.898791241251832,10.315881820593214
+0.15139632445252843,0.3018957360350153,30.571618037024788,10.40699668039149
+0.1497741026850853,0.296192647495289,31.998372882448802,10.165588371784068
+0.15121027817856092,0.30276573631553266,24.719615945934816,8.494617130936504
+0.1504612482049946,0.3024047985646427,24.04616950760311,8.199566612170614
+0.14901422967782407,0.3029981547440798,29.018734014554468,9.867685470804004
+0.14929382405399885,0.3027527204287797,34.63124782895191,11.735324006920541
+0.14859959511382925,0.29987954699092784,31.965532281299524,10.450328047777441
+0.1507123407760944,0.2965442692539055,27.25351713435549,8.765655337978
+0.15061787870144314,0.30001242254006555,24.625261632617804,8.212106336674728
+0.14869042318142658,0.30313178854800965,27.34424358689166,9.313848403751008
+0.14995701064364939,0.3016435670506769,26.228468252807875,8.818234669685223
+0.15057715660546558,0.30166233007565907,29.616562960629075,10.086897944495645
+0.14898381283738243,0.3001513234119247,31.122657867243166,10.193004231173829
+0.14751921301544546,0.30085848510752655,29.45937407326413,9.747153259425923
+0.14805740693901312,0.3042844621084076,32.35806622079182,11.05693688268902
+0.1492978966368991,0.30621744721234156,28.106837318799332,9.833287434778535
+0.15026990857995193,0.29824490045710433,27.536957445790623,9.00677628426733
+0.15130556940790504,0.2898321977226333,34.230504637292974,10.31071970424607
+0.15056077533458948,0.3000385857944367,31.50910838340417,10.496010023957385
+0.14689632558588017,0.3021748398051718,28.119434228736978,9.346828786956694
+0.1495239046763199,0.3002144803378804,31.103944690015897,10.335316125464564
+0.14866174109032046,0.30072316893474293,33.16052246291774,10.953567143154654
+0.1509676545561624,0.2989264991271055,29.592923105568595,9.792705189456873
+0.15091608827097097,0.30210964476539676,29.546603651723906,10.1029386951781
+0.14948773123929954,0.30008503385533086,32.54221333336309,10.79743627504119
+0.14978320313201457,0.29063855708461717,32.40535703761503,9.724696042642625
+0.14850565344692662,0.3059250937837985,29.38480566374315,10.161202271496405
+0.1510610636263801,0.29878855701839774,31.36931434954963,10.331802059715496
+0.15108880471839312,0.30074905169248645,33.67882090604154,11.3544659592462
+0.14971464856440642,0.30033359742344934,25.78540605689962,8.543811940657509
+0.15000734184206635,0.30520289451598925,35.02846846492514,12.191050179813658
+0.14917133192260076,0.29857785815109666,28.255349243410237,9.111967750914951
+0.1497633312230556,0.29825509371409065,31.423318804953166,10.177610149277102
+0.1474781306542059,0.30859091191346744,27.151656863403446,9.619581664077087
+0.15007923736673015,0.30092108136955714,31.32023464708737,10.490634898918474
+0.15210174626980896,0.30121892598394223,27.467053684389565,9.336478452711644
+0.14950162748928805,0.29948022118959433,28.95217812708163,9.525253108493066
+0.14860190480106442,0.30574942233828184,27.3635493330965,9.465123130986855
+0.1484033834850222,0.2974273607560903,27.8465556810614,8.876416956474003
+0.15030743286959977,0.29776062131677455,35.41894228133557,11.449320469790454
+0.1493857031939053,0.30529275652659005,33.85061980169296,11.799809688247446
+0.15056522534420938,0.29423885173469555,20.4061866706715,6.442529089979428
+0.1496502244747218,0.30063171980512265,30.27893979271538,10.06178628483616
+0.14974754507551713,0.29932904007932354,29.92070963197893,9.823498675150564
+0.150176642328073,0.30471235030117544,28.784610769653064,10.066782161874022
+0.14838842748828587,0.305528603814064,25.346153938250858,8.778104524625592
+0.1511385422527532,0.30575699045323673,28.18790613137957,10.004946119029565
+0.15156883548579528,0.30434990175830245,24.307817641966672,8.471457510520171
+0.15063904487837296,0.3028891818693188,30.010062424868178,10.28979966241607
+0.1498296466945018,0.3047690529871518,36.02148989120478,12.4915754339683
+0.1485024283807383,0.30384259052430884,26.44060766605961,8.980669396800101
+0.14769319511339865,0.2967547222446457,28.505135830986713,8.995520239163834
+0.14937106034385644,0.2981341352496086,31.300896578489787,10.195981978409277
+0.1510799574976736,0.2979039325741071,32.32026100030609,10.565480815261978
+0.1505444737510929,0.29865751482945824,31.815307127132577,10.435142956670347
+0.1477035230691269,0.30350857887771143,32.09157982676877,10.830877686416041
+0.15094490302926694,0.29572304358739526,27.570727876509054,8.791837836955315
+0.1497127244974088,0.29982778192206366,34.87604252866591,11.520465006087234
+0.14872853052427518,0.3081125296020819,28.135071763552787,10.079511617316031
+0.15095702922989288,0.29813652532973517,41.90662928283387,13.659813351678073
+0.14914064173173897,0.30823902882862614,34.87664842325537,12.443083929427672
+0.14941410137260297,0.30520188406157045,33.817120262075846,11.732695805087461
+0.15010314584386433,0.3044555922757267,26.74318677240506,9.220189043920044
+0.15193379266306706,0.2989389583614642,32.497930603126875,10.789845297574233
+0.14889298542148374,0.30186966626774686,31.90019852871584,10.640252199697843
+0.15113798640491885,0.29597545557071014,31.179835088288694,9.986181751656352
+0.14956105368336237,0.29184883366412295,23.39414209781873,7.145592191049254
+0.14869873401367248,0.2991027497078632,27.93189685163424,9.092363103578244
+0.14995692750090733,0.2967164751845955,30.519284275282867,9.73387103401675
+0.14931912679002265,0.3021304171274075,30.49075621720164,10.290515515519534
+0.1498527364480125,0.3054207674106911,20.542870238903213,7.16125034506927
+0.15021630026492885,0.2934898502763073,27.860068534238664,8.627087272008225
+0.15077400818363815,0.2951906391772996,25.132388635655204,7.942860511349548
+0.1510555955684775,0.2975904528606819,38.849984744662706,12.595153374876448
+0.15025135325640127,0.29632694273817844,32.67323340894848,10.439536349377098
+0.15042801613987383,0.30183293960592694,25.90950667582245,8.766041025138097
+0.14793055451319442,0.3040863727600646,31.825812614968683,10.780476316731464
+0.15154189206577365,0.29911811927434107,29.11174487254573,9.689740404294053
+0.14999861955820196,0.30311274579266806,34.318716465685256,11.71882934150541
+0.15033892986813954,0.3028504714430225,23.452304483414544,7.9882943090238285
+0.14902371258910163,0.2945654670423399,25.136389932243745,7.791813888345468
+0.15147894706200019,0.28791829452899526,30.37461000719967,8.95957478724769
+0.1492867741248367,0.28843169727682527,29.682713173662464,8.757405206676955
+0.15106549522389137,0.2978617170731287,31.854053753897396,10.337171415966418
+0.148531720345562,0.3067434880617907,41.20963341131617,14.44349349652321
+0.1489788094669434,0.30465203247593825,30.857383638498042,10.665529181550694
+0.15038515221413853,0.3018322691184811,28.803490727395797,9.711943420544303
+0.1504974617745137,0.30624145628996025,28.041534386670836,9.91116666428447
+0.1507577178485505,0.3006375362694962,32.010918819541715,10.718292965118264
+0.1501177437185653,0.30684556454540296,32.13912452893557,11.319470420634433
+0.15017047876431402,0.3079641106639827,31.37021892240959,11.195432350470156
+0.14834398742747132,0.2989634082338377,33.52603565884525,10.854872091072748
+0.15023745156542534,0.2944064468845404,31.69058348352274,9.962756539533675
+0.1491157701192888,0.30275602539772056,28.14244107841479,9.554416311161827
+0.1503758468792976,0.306209915519742,31.21676149762719,11.004203732148522
+0.1486436355063401,0.2989723058239245,31.92597105819175,10.408284139350538
+0.15086621078367796,0.29628911425525906,27.75931010463462,8.935466442817654
+0.15147614965477685,0.2955895261322013,26.93092783989931,8.584455959076601
+0.14911645292352924,0.2932898686853384,33.39508362988866,10.303340704258723
+0.1496364404516829,0.29059502103527374,29.641098571670216,8.952760091309923
+0.147027880469636,0.30426296136518277,29.801032148954743,10.049430990299074
+0.14891394772524785,0.2993645993549251,32.90339619825229,10.714566765728428
+0.15093476827313276,0.30105413098270045,29.599066125930907,9.933562782586959
+0.14987255683066023,0.29915994953656205,32.266097215902526,10.608919263769295
+0.14958996541149946,0.2937147750508535,30.89607940326249,9.565032040499025
+0.14908015764903865,0.3123194112796737,26.241019155018165,9.742891505599353
+0.15061641045358817,0.3018475100855154,33.593009803779495,11.446832946311023
+0.14955235387118204,0.2979489338832176,33.753228185209785,10.88724653210664
+0.15069185865854257,0.2972239429026966,27.038760519893163,8.669531267710287
+0.15201113616355771,0.3020737955276874,32.47770706277574,11.152282823725312
+0.14984943080534283,0.3024527317174001,29.04332043492169,9.809413488297954
+0.15074713395667957,0.3047980584891643,33.1377280170321,11.600436522166875
+0.1495353546912578,0.29639332010638203,36.29265597820508,11.593974081361084
+0.15003240893680975,0.29528280025050624,37.542827427435505,11.812480728264276
+0.14972956807196575,0.30196324690690896,35.10289201996529,11.833278042288827
+0.14828873957124014,0.29609750304904686,32.39848631402207,10.257902456148958
+0.14865330300456137,0.2967246627381232,33.16465779687901,10.497824471048437
+0.14966155024437983,0.29509791935006924,31.78234682567392,10.03031742578582
+0.14986962017335587,0.306445224168253,33.23556732277841,11.696795324115964
+0.15248603682877335,0.2958177335131541,29.6471976145796,9.65473484414891
+0.1509516927299662,0.2999398802331043,28.134374769302642,9.352455972118888
+0.150601172316588,0.2982589373643165,29.379068581697133,9.58293309791269
+0.1486354299821071,0.29619895559445897,28.488409925071366,9.035590230178444
+0.1498139001266759,0.30534561297644186,30.25924493191094,10.521001492012033
+0.15133382519341687,0.2949798505339,34.30215787554859,10.876184008478875
+0.15066446991281843,0.29747496894532827,30.49016302762538,9.866065044035206
+0.1499595285592916,0.2989798272322519,33.867723782272066,11.133908715551929
+0.15200939424137963,0.3007485357947868,32.73792765751691,11.016623339398691
+0.14889693230485843,0.30140840817214776,24.471058131876163,8.169232797372462
+0.1508982764902275,0.30475751712732163,29.89548201011301,10.418827109022752
+0.14783928150981948,0.2921040297645299,24.87025387254415,7.483716791744612
+0.14907567334800537,0.302350358511202,34.38013228970431,11.623025731288394
+0.15133844571039054,0.3008619062794803,29.89305346142908,10.10617276011796
+0.14929314296257,0.2968827993422997,35.35026807115244,11.282653458928486
+0.14813596120952782,0.2979922806167811,35.20472358467265,11.279985719170408
+0.15005390479111397,0.2965385417849527,24.62148847964554,7.918866765943692
+0.15068343689947436,0.3044086232805141,34.744846500123,12.124180680847747
+0.1498513410007534,0.29322079190506695,28.09204780253396,8.662976425568651
+0.14745575673690478,0.31268775255476083,32.92224265913776,12.166210664401307
+0.1513479919656076,0.30043985217740765,27.662236763321044,9.264113064409889
+0.15143383298654425,0.3009504299764782,30.79719270409832,10.41018096105287
+0.14876699646244088,0.30676889974576954,33.754950604783296,11.83287839513116
+0.1516315811165425,0.3016680131830352,31.39564100369263,10.710912863562335
+0.1490057003780634,0.3092700239095858,35.10942011194418,12.66482129049237
+0.15060835957084753,0.2979620432300075,33.6640250542346,10.974764350232665
+0.14892611356338223,0.300768253764401,31.313351850261267,10.385692240101458
+0.1517325902101329,0.3015768966548038,31.252762608041966,10.644124808841818
+0.14884705060460707,0.2978934468933973,37.756639950645706,12.168881111564541
+0.15002329828815494,0.30105364031056925,27.64832525576019,9.259015863430092
+0.14756071409743723,0.29774179180400445,38.86831832991771,12.417341302544871
+0.14866113293925226,0.30424783785102477,21.628239665556592,7.414595009507637
+0.149400426143059,0.3040905756639259,33.91351360878527,11.654908629576997
+0.1484964148667106,0.2943864542273601,31.08431468823938,9.667774154836364
+0.1496063480702611,0.306803415290516,30.442656829151456,10.778234442035632
+0.14914052386412308,0.2923920067119457,32.403306224552395,9.890620346908236
+0.14850321473480638,0.30347532399569677,30.486372016562964,10.332742012049552
+0.14867682243197294,0.30595780866447514,29.54352445003212,10.290888512884337
+0.15024416171172378,0.2959528883389809,31.081633335298164,9.857284245961031
+0.14892024001791684,0.3010605646336227,33.31348781538232,11.065809169638026
+0.1526789236522256,0.3003791188758125,30.547419987587833,10.349329541461284
+0.14966565515219457,0.30702092254817775,26.112026351908668,9.262508978424657
+0.15036091753305236,0.3011573498364422,29.26060023961026,9.923449418619397
+0.1475328752047374,0.2912418866814865,38.61806249080919,11.527317142768783
+0.1500385690491146,0.2930459082665301,28.96228481600575,8.899493768954494
+0.14938656387008437,0.29898999766249434,33.710406901571304,11.008120739629298
+0.14855194857906362,0.29626334714779945,33.435679613472644,10.554715355849323
+0.1486377711383267,0.29905412515417934,29.921955582476514,9.747913889923602
+0.15131163553991003,0.301785710532218,27.521733771244286,9.380494334003952
+0.15104825117308043,0.2945770096690725,33.24877956806304,10.558381377976941
+0.15021611329003545,0.2969820390474484,30.830758987707362,9.9038570870767
+0.14859218863394177,0.30111412817146593,34.85228672650996,11.503795709903258
+0.15104633031587195,0.30207148317130444,35.42090060762947,12.055750280215952
+0.14968425294319265,0.30736591900426624,30.825869046453438,10.972581651714485
+0.1500201333471858,0.29593611067626774,26.486957482682417,8.467113545647635
+0.15102157410792352,0.30046635290433393,31.284865856274017,10.440594791642908
+0.14919875005967556,0.28825147171016213,35.513428430710846,10.391810464731298
+0.15225057274401743,0.3033207532145998,32.16361078535137,11.122859298684405
+0.147694711318148,0.3048778391845451,30.991128315444556,10.646324423625675
+0.15100001033873028,0.2906515323694613,32.61487495095011,9.948636886988593
+0.15034935509772523,0.3003623073179973,30.919449246039886,10.296953095023298
+0.15114712549994277,0.3108131566849106,29.691626122926913,11.066118974691303
+0.15066687761599692,0.297585400726578,30.163695700101986,9.744450602571586
+0.1499451895341623,0.30753857395005635,27.985679103816473,10.00538037576907
+0.15142994375269495,0.305965022216757,26.99268991865117,9.532812546087971
+0.1505154309125753,0.29720735831532324,34.120974249215294,11.024984573327362
+0.14925362239430248,0.30320294760359084,28.403725103024968,9.63765860370307
+0.14790559757825153,0.2986773223720424,37.88549593673652,12.222720380731182
+0.14950177127760841,0.30476630482615624,32.459896616309855,11.288507331747471
+0.15050035787656818,0.2954690220626269,26.81885631832578,8.570378798618712
+0.1518875245524575,0.2938740074520695,28.296241974347275,8.937943368511764
+0.15095157301693407,0.2986984145480129,29.458488936940096,9.711815386825974
+0.14967651191384718,0.30571073308834873,25.763663168961983,9.008668238682874
+0.1517356853088471,0.3022296333376397,21.067432776428063,7.207643039187311
+0.14933303617411167,0.3019478557598254,35.23142692469331,11.865048754461524
+0.15128662753621003,0.30352331284716405,30.94328482466505,10.745606940453609
+0.14899521264575968,0.30250098992452273,25.540784681838275,8.654278811324899
+0.15216498888677782,0.298400071527448,33.80849295120059,11.27515587275705
+0.15116088482321902,0.29587134115652686,32.11892223928817,10.299166096963441
+0.1512954111236403,0.29721931148611314,35.7571963374887,11.544162927649978
+0.14900347427345392,0.29942051996758723,30.204537451615803,9.822656820012886
+0.14990983092292853,0.3028075573691384,24.241504190223566,8.250518445528655
+0.15135986482486394,0.3029332745164925,39.52872108187138,13.585858492617241
+0.15042756489865045,0.29820321118647114,27.2973369873048,8.93536700512366
+0.15032523596308323,0.30215505233666357,32.484388649827885,10.946395806503599
+0.1495341285889984,0.2953633100367463,30.8122123132379,9.7388391537973
+0.1497027275997581,0.2929339924658949,27.261116389756086,8.399479046770693
+0.15111975644882808,0.2960802837473879,31.435329371780703,10.134146308350891
+0.15108088053241245,0.29720549745917113,29.915650816074397,9.707651472927314
+0.15137742630147097,0.3045550849613984,29.645213725760748,10.405598410809006
+0.15058669315261605,0.3074079823435643,30.96856506454106,11.065409866090807
+0.15139277705663012,0.30079136307653137,28.449521720971802,9.595149172049206
+0.14904416344803467,0.30540633760012414,28.17955097641573,9.776509834884653
+0.1483234746211784,0.2981721712404344,26.605183165732406,8.626057431608004
+0.1495791400421314,0.2949781256311675,34.0320749388703,10.739013575765988
+0.15105785228065638,0.30103745743693344,28.216571945601196,9.528867846298487
+0.1496451198515781,0.30340364424066174,30.470266969080043,10.471269098037697
+0.1496350830757834,0.2946919415936463,31.629717111183766,9.912779976532434
+0.1500973201246035,0.3017557188937894,28.73559312351281,9.632477537550406
+0.1517140166821574,0.29969840293501954,25.39010651932489,8.508112420148114
+0.15092186593265286,0.2976860264898121,34.229824384156295,11.155078727350393
+0.15171104818027298,0.2968287315398702,32.359279520751045,10.491698855686199
+0.14903762177538651,0.28660731929739425,37.18749445206692,10.669049928401865
+0.14919425112590068,0.3043827485531474,27.707641216395075,9.521010834025883
+0.15052137709030916,0.3007353088062307,27.92845310714174,9.308095275222351
+0.15037027493139934,0.2938112793792112,29.528911072783824,9.191160241967621
+0.14900938890978385,0.3004379586191235,32.952653533516184,10.954918309211678
+0.15020304095740417,0.3013010222127743,30.3624649378055,10.151260849023762
+0.15029413181847814,0.29988995468765495,21.803540007513732,7.2058040251558255
+0.15091212341638396,0.2994838823148906,34.07255576382622,11.35710864774199
+0.1501450573043919,0.3044616738085073,32.424173154330695,11.285571359008625
+0.15006098542641516,0.2921775603115543,32.90784379969928,10.03170270791135
+0.1497290832193732,0.3042614942098094,24.546688321137022,8.459227859421897
+0.15107676706778977,0.3026185889495377,24.439431878606946,8.39133778278312
+0.1491179984985929,0.29846770175029314,34.80978944056957,11.31980128958988
+0.14911935325714581,0.30400009714258147,29.232441840616925,10.033255734840553
+0.14930287865230873,0.30064612913957645,26.226601357775834,8.726463412734041
+0.14983121372356484,0.29993231413202415,35.83656744817248,11.890337723297675
+0.14919053899627654,0.3108527121655232,29.210498659517356,10.703553044896431
+0.14949658909761324,0.29886887015979446,32.48377604081301,10.600511276983271
+0.14964669362977298,0.2997944045028376,39.08623179639169,12.87156447787363
+0.1488975043092358,0.3097350701335145,29.155874963247825,10.549315096189261
+0.1518260962969777,0.2975291761171754,38.28841339225859,12.479870700378484
+0.14973976105491346,0.2967518858021264,34.853679951718135,11.16001692336541
+0.14894303540829373,0.2939096002875871,30.43732315761615,9.414787369906993
+0.15043085126732866,0.2993480677666867,33.09315292283303,10.868402347096172
+0.1490973552938733,0.296728194571988,33.33457801059657,10.655172916451008
+0.1482047104902539,0.2988691892828034,35.14865120309461,11.324036464556894
+0.15093305574206697,0.29611981156706024,31.80011663530029,10.196824360833546
+0.1494306594973502,0.30480871418843924,30.55491421732481,10.624806804794925
+0.15033980613735276,0.3004418646637459,30.659014803608464,10.253958123906225
+0.15028341270753642,0.29996525601060076,34.86924997194588,11.538124080150258
+0.14925406114078615,0.3037124384124956,30.842014763806592,10.521383822293503
+0.14949878834220506,0.30032888783955036,34.722897587304715,11.490030107761388
+0.15006296906898087,0.30369156432953837,34.055462551461616,11.746988854654496
+0.1493608172470925,0.30025502739069365,35.44142254007624,11.648826917870487
+0.15205979477833187,0.29920190624048193,30.757116463803733,10.252210707651328
+0.15018555097229083,0.29715920544078506,36.96435324791557,12.008713656825348
+0.1496059326932456,0.30444200993603093,34.634726731639724,11.893727414798349
+0.15393987515099855,0.3027254191334045,29.276313568249297,10.188045564264758
+0.148823920852141,0.29637841369448026,29.23145458925325,9.289976026693521
+0.14987823609870252,0.3066220414549402,32.89972477879181,11.711580930733373
+0.14852604047365553,0.30239796323047036,27.67210910680731,9.33336864902933
+0.14940425259588058,0.30211920476421994,28.18005348022371,9.515713459787298
+0.14818353446176097,0.3004353639800979,28.816055734004788,9.473595926016463
+0.14847470997562703,0.30029028114402173,31.67007438881051,10.411527170137521
+0.15136327549844208,0.30009219390743325,27.01961588776916,9.038442478054105
+0.15248355570626684,0.301499272419576,33.04707749096501,11.282406825106197
+0.15199760361348585,0.3031456318462413,26.450605549384488,9.155150524741584
+0.15042077808481877,0.2972116997254887,31.516993094298478,10.158602969644054
+0.14985182549516174,0.29494313934881294,32.42361332165663,10.15460830711343
+0.15003006376276273,0.3040652634127746,30.917704075643734,10.674338213355442
+0.15100806705578995,0.3027883976724576,32.198293087340105,11.062040747767856
+0.1513154159244092,0.2967723912671493,29.208721763298392,9.47561539727457
+0.1510724884759975,0.30057996958891714,28.39935595697831,9.49461536818756
+0.15039471659303968,0.3021519660273604,32.94402864842117,11.201092394962956
+0.1507043428134657,0.30027443575282325,30.504657345476957,10.185005887703207
+0.15007504274168298,0.3015630006797986,25.028393256071475,8.404317683280748
+0.14972210630372232,0.30881027925171284,28.873533938254095,10.439178224961367
+0.14995656465616677,0.2969364521972715,30.14588666279061,9.653211846836694
+0.15133380159445756,0.30172572896062283,28.155038801533713,9.518673917430363
+0.14970735764074597,0.30182122963061697,31.27022315578836,10.480761333843954
+0.14987669028579548,0.29876595213634655,33.77156902249107,11.066239933620832
+0.15066621227237553,0.2965026523069077,33.82277279630746,10.86494660042369
+0.15064444273377195,0.29846446956809086,34.68813725035511,11.424405845451437
+0.1509240754414,0.2926298380774245,31.10762981448265,9.633555128567396
+0.15015543254805233,0.3102951868016629,26.198627183730682,9.547648448295675
+0.151187887036382,0.30392602769001636,35.54158900012908,12.357404683857702
+0.15096124138461778,0.30116808667878175,27.528886872450713,9.27762581252288
+0.15074469633372353,0.30357631347616165,31.434568640306654,10.888885137740026
+0.15231728083015414,0.2950433901735654,30.49784223852318,9.772775452148615
+0.15261278857034563,0.2976769971244754,31.521346610488735,10.361597220273207
+0.1491201771452977,0.3033897092134494,25.352366174146475,8.60507361117999
+0.15117968918016764,0.297063922532459,29.650298595542957,9.639535258536151
+0.14984471178615577,0.3039418984840158,25.198007417434606,8.671031915885104
+0.15127434032431572,0.2967269953441405,30.26242415102831,9.80020777430459
+0.15057252779787725,0.2921318364077078,30.074049208303528,9.21428596990824
+0.14918391934935213,0.29247787217776766,27.72054315309689,8.436040570672082
+0.14907462628923807,0.30153932148941814,32.27860760807237,10.804137399952669
+0.15054167314435105,0.2945817195406632,27.233589007951593,8.574582546912406
+0.15205903487835912,0.2954107984478039,33.5815530184291,10.796468826096957
+0.14907184604396997,0.3028846647897951,28.153514119167276,9.570593357401277
+0.14855915814164752,0.2976866623413082,27.643788487118528,8.885300843148757
+0.14962334888610582,0.2962308774534972,28.238008908866753,8.963907909006995
+0.15034081806608715,0.2988082471690899,34.36624249805943,11.26218078745
+0.15131397181464104,0.29965878561969256,25.551394559305198,8.518828835550021
+0.14957568335056004,0.29819074549633967,32.4460635261558,10.50901252598136
+0.14941386420823394,0.3036087425515535,29.41560914135012,10.078804414703177
+0.14930908210663293,0.29904205540046913,31.46034002469062,10.319727805694665
+0.15014416150018647,0.2983216662498582,33.91817074643053,11.045831606177728
+0.14843420529325052,0.29584218639320503,26.427630420759638,8.288935143872928
+0.14935162685215703,0.30258003530406663,31.709785881067106,10.779365553312896
+0.1484003934954019,0.2957778172077712,31.239248423721946,9.808467492517146
+0.15126517499981362,0.3065223598905063,31.82135409922331,11.406286117479507
+0.1501159027936589,0.30676538788915125,31.096004531909788,11.009485622588134
+0.1502300340358268,0.30650648795697294,27.82515685495974,9.846980163415775
+0.150733083678099,0.29478925458307453,35.13115861226888,11.120631251079207
+0.15012103078327424,0.30259408318590536,31.82108630012362,10.864029911724364
+0.1495535482827588,0.3056839141080761,27.782103177203627,9.728978818072942
+0.14892485040545458,0.29468936012551117,34.597633606295666,10.790975334092131
+0.14996277874799566,0.29717205170731187,28.55278660495845,9.131355142452048
+0.1491170945405512,0.2954801486526267,30.86321737947841,9.72906827289226
+0.1504737544383924,0.29657549717619036,27.580781440857557,8.84869312686575
+0.1506268826706176,0.29945553671630337,29.948330283472895,9.9243027706091
+0.14948382025700868,0.29888876378448676,29.938674371650208,9.824021907382772
+0.1515632676058128,0.3024108173244632,32.04212660735104,11.044982849409127
+0.15030804420445695,0.30975795362533026,30.701691801681175,11.214475464366036
+0.15011097131749862,0.301567456135062,34.99205210234097,11.804452530965325
+0.1495995475207416,0.2995346286759122,29.49127606326851,9.737538504466146
+0.1489380037404065,0.3075371180379913,29.128929968151244,10.390478132436426
+0.1461371616546646,0.30017893361050646,33.12539687839055,10.708828494439661
+0.1498404465152227,0.30811031323360766,23.221254678849252,8.370715138489697
+0.1485247689715927,0.302528065397603,34.401385208341516,11.589669362671525
+0.14845342850709162,0.29634331842577005,38.41954657661079,12.115240906248179
+0.15091825458156335,0.29952979519137674,25.875348900280727,8.60908646947146
+0.14955109782407647,0.2956367489421641,29.43251611526833,9.221358620406383
+0.1501771065615232,0.293456880759401,37.90896859119581,11.821650457168007
+0.1503635018578888,0.30484194752221594,33.273665410957776,11.513016857175039
+0.149810512529218,0.30368550031556435,28.177412289786616,9.684504367002942
+0.148527868907781,0.3002801812581374,30.015811521555527,9.865075261940797
+0.14815347224927553,0.29427902862812755,29.582489361367315,9.15202012191882
+0.1485415441601237,0.3072222336327934,23.597641006242057,8.3656519933588
+0.14927068930355938,0.2951046054581521,24.06353820771672,7.531267301583464
+0.15103769218436275,0.3015965899359185,30.645307458800655,10.351115501051677
+0.14887768434369197,0.3065870789992836,29.095640008050868,10.202334159542612
+0.15073766923747908,0.301433766933661,24.515113382499344,8.292801341056801
+0.15340947646511838,0.30227038125255407,29.8181751745794,10.337843080820736
+0.1506495839907466,0.300783370070874,28.140787823005173,9.46817577300456
+0.1512376417989485,0.29983775563939147,33.57245732829386,11.201090790895941
+0.15053981882125825,0.29751989615459584,29.25003643000913,9.449101664590913
+0.15221728196702,0.3087235816482445,30.24560456569879,11.104355253736912
+0.14933414036706344,0.2984513942174392,33.998821903656996,11.05731246680475
+0.14925196503487678,0.3039332036290466,32.36084230920982,11.05954101031912
+0.1508171431271309,0.2960509621595055,35.18004165632749,11.263583596334051
+0.1514012625695033,0.3025305525863239,20.835507479840576,7.163041881983164
+0.15040320915965236,0.2938396973575154,31.610475275489456,9.850663181898154
+0.14903549572723307,0.2920007721639386,25.747566419348058,7.810978030142471
+0.14956443374274261,0.2913411127971414,32.86782977506564,9.906599480362251
+0.1505874978435055,0.29978848402518365,28.010683407739158,9.316856019325835
+0.15010684600470395,0.2906780064911754,32.635711786596495,9.839350799436527
+0.14865150166713487,0.310147401093875,29.650146103310405,10.690635175163155
+0.15068683388723486,0.2966218117647218,32.72433430090361,10.486190016159235
+0.14939332647676357,0.29670510164521424,28.834027409304156,9.2174046236861
+0.15147545989811723,0.2956011731907298,28.01110245698955,8.98287545028052
+0.15007989923997067,0.30707357370461635,30.999336454628207,10.978922669434603
+0.14968885836801518,0.2983704404171525,29.774092460635142,9.698236943256742
+0.15105738333145605,0.3027371807164543,32.88381563979346,11.27352169644442
+0.1504482853811945,0.3076565354312947,28.565851171996716,10.19422806858283
+0.14940886740933051,0.3045242555096369,34.810683242030144,12.017463932904382
+0.14951476317830154,0.29722996628883486,35.77505804186834,11.503950325058447
+0.14974142129556475,0.31236033841830235,25.127267981652512,9.292416444331025
+0.1514741554422508,0.30193224924474,28.06663221585369,9.60363480807595
+0.14884541716622232,0.3002726634428214,31.003341562012054,10.222929233023898
+0.15008731819245644,0.3046886525892817,27.540694959026613,9.55466465059206
+0.15035192037690884,0.2973916158113025,30.292086876375066,9.821702126469011
+0.15007624961232682,0.295181472678694,31.67276697671139,9.954465393918783
+0.14943236130265353,0.302520465909543,28.964405728326426,9.859260910331562
+0.15096069803315135,0.3122985581187566,22.997293452177516,8.64166803339203
+0.149905934199855,0.29796058964846933,29.83516937671395,9.69934831511868
+0.15206562676466753,0.29987396453434845,30.756572071565948,10.352713098352725
+0.15181482660968426,0.2954205969277141,33.674906128238696,10.819049050552058
+0.15066022642385013,0.29809668059152167,32.23285459912112,10.523908461745721
+0.14872420820316457,0.295677014828812,35.28447902022936,11.058509779922593
+0.14919267630002434,0.3079929253310883,27.301499075719914,9.72982278319373
+0.151195740484313,0.29828017460936185,31.90239306021451,10.508921132838367
+0.14847051818328738,0.2959028040123085,32.54816143769567,10.19319127713054
+0.14891540096107067,0.30301189131472295,28.39883225788003,9.676500568756666
+0.14856067853097182,0.29866720792816903,34.483110597998305,11.19132741859297
+0.15099640109158308,0.3013257346369828,32.43162926033125,10.947577794737045
+0.14992386548862122,0.2973825213488473,26.039516772577166,8.337966411987656
+0.14979567699585092,0.3007711814565209,22.178515588978303,7.377255834725323
+0.1488834595412765,0.2967296213854131,32.237864863043065,10.251718975290927
+0.15105080210916697,0.3078235919147671,29.010719602377964,10.497214447027353
+0.14962052607059487,0.29887597461329063,35.532733029664605,11.51818092712987
+0.15051176468864985,0.3008317780945194,34.087530306342984,11.45422501795107
+0.1496638410538255,0.29739106329268156,30.497409646600982,9.893251282421687
+0.1475283190098092,0.30001262416344165,25.889311270080093,8.414107776792289
+0.15141939138396118,0.30346333934903325,28.568445480728503,9.89671852602635
+0.14953579991479152,0.3054416156843027,19.62948447266443,6.836154309855296
+0.15160925473286974,0.3023545137651828,31.677690790499565,10.899448428621973
+0.15170259489562538,0.3056002152221959,32.20742536978436,11.43153218458201
+0.15029126855475228,0.3018769883595856,34.008303724772475,11.512195015153056
+0.14875397098944085,0.297915996598035,28.521959588948153,9.211149379174298
+0.15022581388341094,0.2972302384595297,31.89538545145334,10.301146079781304
+0.1518343877468685,0.2995550930844325,34.45993343964761,11.534108191580327
+0.1504985210036231,0.30852764177166064,30.67564751794201,11.120825946639169
+0.14718803997714522,0.3013294637723279,33.31960179586998,11.02063408504256
+0.15136290375834152,0.30340779914978555,32.71855708531034,11.312251548344655
+0.15041896033364155,0.30370343616700973,27.497926852813684,9.474610345812014
+0.1501266869264382,0.29923367166592735,29.981285892846213,9.876816944419174
+0.150504650882017,0.302961379053167,30.31010623939813,10.377305125459655
+0.14904380219696375,0.29962239684420006,29.401414231678654,9.634073011175083
+0.14984238689970963,0.29548506585853157,35.42920295184827,11.200533253125592
+0.1495299289710056,0.3042044842718961,35.473885641967925,12.20125939568891
+0.1509853238099516,0.2992233647088931,33.63135876908111,11.098272715970781
+0.149699528339886,0.30033334362869946,27.800949494704888,9.18081840186161
+0.15195169486875026,0.29759968872265463,27.29560128531306,8.960661191413271
+0.14846568665068594,0.2971448638182939,25.05884725507444,7.999762288754454
+0.14969925191152958,0.29560660830042723,31.831185898923472,10.172847405611444
+0.15092000924039667,0.3058486589859063,32.41285369264857,11.473198295499948
+0.15117333748727002,0.299903491643092,26.880660460927004,8.933877083316148
+0.1500115098337956,0.2954244669706926,28.405340777371308,8.990188906338961
+0.1507038370900229,0.2999608310203366,25.956220028865225,8.619141542627144
+0.15000729172305646,0.2985834165615822,31.76886949724714,10.394573558387023
+0.15008371182533833,0.304759449519094,32.404221506053375,11.286860365641454
+0.14954647040832605,0.29193265475580726,32.180279621011366,9.800569548909865
+0.15026352713039168,0.30667054864627613,32.563500703799775,11.567457976025736
+0.1512197796864721,0.2978932626815887,32.28903622368725,10.577577702107725
+0.15238247548005923,0.299727798873198,30.020973312479917,10.085291318219184
+0.14963471274357273,0.30833490631991184,31.763680628541575,11.399222356347066
+0.15069096267976723,0.29555559725305225,21.945145281526106,6.999783217315004
+0.14906332119602608,0.30078907541737004,31.82857201780256,10.53608151630675
+0.15096897077479235,0.3061998790380042,33.725308133346694,11.883238164180336
+0.15303905981895968,0.29652596958464833,26.763467153734265,8.765633790462555
+0.1478600663223602,0.2983808573383068,33.48915353562495,10.775677750584816
+0.14935287474535486,0.30778356482222485,29.78557936862807,10.604893054996161
+0.15030597013935515,0.297368154159861,29.634432661699464,9.559298425641812
+0.15014882924433626,0.29793900652451377,32.10173908971657,10.455855136243636
+0.15029126155730482,0.29499503179725545,32.36240420224954,10.21511932852995
+0.1493695735451285,0.29456297925207664,25.26744910964684,7.853210368946722
+0.1506264799985951,0.3004012712167485,30.984337748161245,10.380640499437291
+0.1504959960745103,0.2985506096318322,30.701727969817608,9.99587664425099
+0.14730420545928904,0.3054293425249275,21.498694617507013,7.3931630438348765
+0.15011991927676532,0.2917606772406839,31.871302363247022,9.698514560408283
+0.15049152874605512,0.2998635834152635,28.939804453484097,9.60875685738399
+0.14861715853069818,0.29377150168966115,33.88056885263483,10.484055433097371
+0.14954170603195424,0.29958826700348123,34.26125126580131,11.266765295293034
+0.15028540137036217,0.29957248149268023,36.31808622681673,11.98250341076789
+0.14980149075370627,0.2982014204622819,29.943244965357902,9.67781938523417
+0.14974101220961694,0.3007720743652712,31.87129192687078,10.630076291671175
+0.15043448161946263,0.29911860754168434,31.682542497939846,10.367434946230235
+0.14965365927148866,0.3064274278270651,26.481989849436903,9.356588330705788
+0.14916242581306716,0.30284602153686674,31.814429648367987,10.836784700722232
+0.14840511580669916,0.2966374439664789,27.72986329394353,8.799276236294478
+0.15066665111234054,0.3035633042806067,32.87731108273644,11.331720676715786
+0.1499988547439509,0.29375838860089315,37.73029297237324,11.705213345516691
+0.1503946768808426,0.303027305948094,29.556884163357076,10.101801134219794
+0.15033336328330446,0.28712042826616097,29.716418208527145,8.64581471342467
+0.1499164639143507,0.3076644812970313,32.80319812415531,11.709399981196864
+0.1494875838175278,0.2982945145400079,22.9859717335433,7.475518835242214
+0.14834483880313576,0.3041760036664769,33.42119127948036,11.399047511107959
+0.1495707537962058,0.2976638855266377,28.08836454516386,9.050376525600512
+0.15105016406805605,0.2935114807535733,35.43199709641456,11.086920087173864
+0.14964186997612972,0.29677675073120896,34.00123824114151,10.877933731766037
+0.15004654409814153,0.290443587333257,29.793474865237595,8.979665820895963
+0.14987645049698783,0.3035345959006752,29.808577046027487,10.17054853869589
+0.15042934365167723,0.30142370738832797,39.976397530094786,13.42119402116996
+0.15165518319027266,0.29876929702375304,31.975515652581407,10.592778032707871
+0.1484127397037552,0.29804497549077325,28.792305511977894,9.220972500236284
+0.1513425003292779,0.2952631576344503,28.8979471336642,9.271742967769683
+0.1523495143231631,0.29269848264865816,37.98575401231982,11.85860090783325
+0.14823832975520698,0.2945966802602164,29.01959759382838,9.039989711102104
+0.15008833608400537,0.3065103556252731,25.464078710841417,8.93603369783883
+0.14934975588118252,0.3023978391848593,39.753869781398514,13.428670244510142
+0.14954780991863534,0.3038794416198502,26.457671084031077,9.108902820086826
+0.15021074147750382,0.2961490991789463,31.797238023379204,10.16003922418946
+0.15150800144780566,0.30510130821426296,23.320998384663305,8.189843909502367
+0.14972060151039338,0.305334552387785,31.08238777574914,10.825131286613994
+0.15071350718856238,0.2956339529582213,27.91910441878462,8.915701397303552
+0.14776207428935823,0.30376010941986387,38.50080070979914,13.01534503532434
+0.15021858676240835,0.2995165761693487,29.994361106315086,9.922274880468667
+0.1499842563313311,0.30457434082795765,29.960509895617236,10.353678260894942
+0.15158037569352312,0.3025840503227385,23.132742678746716,7.97613992075369
+0.1486824228909639,0.3068064689316353,23.736287842289165,8.287659076765763
+0.15089448642168105,0.29843970677396375,31.65316319904052,10.370024134291691
+0.15059994197774715,0.29948226295030317,27.41278032311454,9.070320486661851
+0.1495451723666315,0.293580115948483,31.522491875118227,9.77092998648504
+0.14905393495525013,0.30064066694401764,28.403398476387025,9.408616695095459
+0.14956962527673787,0.29372033511292045,31.47469096913138,9.749553360024645
+0.15152768132541225,0.29113162239141893,31.78687483032784,9.719632719084078
+0.14992172772480417,0.30500415591407054,26.73841147498423,9.324908945459596
+0.15007908096987654,0.3083259257435715,31.23474537152478,11.343425018475052
+0.1484305587004544,0.29813185858543145,27.059824391240227,8.719741770749515
+0.15013260666003247,0.30164777037467105,31.781739027043514,10.69477834862357
+0.1501221982910582,0.30290767363185667,30.570537473007754,10.451262925132175
+0.14955971240174162,0.30553827273064804,23.85797314083792,8.349455279996283
+0.14742182802714707,0.3100328616077529,27.790669203603244,10.044960508486021
+0.14951348265486752,0.3033070403297169,36.05189617904461,12.312945166099151
+0.1505636977409086,0.3042202724158908,29.240706772621632,10.118053347532847
+0.15050767174632826,0.30330023060599,31.09619405423005,10.650680934389129
+0.1505112975587273,0.29183596971304504,29.64542956132206,9.053422002746295
+0.14983940968367063,0.29894693571588526,26.031936503313894,8.534260677387074
+0.15018905952930703,0.29503432917093486,28.740719573980122,9.032415838068875
+0.1503119575775075,0.30209702561396656,30.365409852605808,10.27668837460015
+0.14866657432968375,0.2927697726054152,32.71434272170407,10.025319848439704
+0.15001747373076518,0.29838438322272837,33.85380739533931,11.055148091131448
+0.1504638281689992,0.29614539750735314,34.186010612699484,10.984530623517518
+0.15279144421815125,0.3073850187591904,25.50058817011695,9.254127866120534
+0.1497246281155596,0.3000550888447516,32.90106588818892,10.926628781542133
+0.149532221988721,0.30577487257077623,29.869371113794045,10.40676638581266
+0.1503799554939536,0.3077174270811872,31.27022627602555,11.23318370517471
+0.14839452045728455,0.3052216820170324,25.80853981986696,8.847452087759237
+0.1484434196857105,0.3018665564593739,30.646244619704138,10.225902255311492
+0.15035689143378028,0.30011845925638003,30.3848829220658,10.108905853593402
+0.15122960273799693,0.30268262933442686,40.49249158382302,13.880386308108509
+0.15064270393178764,0.30263491515115437,30.54757882174107,10.454551939237284
+0.15062402479608974,0.29995483114727906,30.728901520323927,10.228294240364802
+0.15034643523032404,0.30033205536040075,32.824714826771604,10.975320193004437
+0.15039922107687734,0.3064911790888299,24.894688772644646,8.846928525618587
+0.1478402767022365,0.29981478069867007,36.22687384124418,11.823883598756138
+0.15096228609533102,0.30821683883793266,29.30332431612397,10.560829159960232
+0.14896398145417414,0.3004601101378839,32.60066976580299,10.766665895824332
+0.149090849738353,0.3035190654809991,32.076224730559595,11.011745702239166
+0.1502191750915234,0.2962532824496803,28.891242664861668,9.237864058261346
+0.14819990219259774,0.30125358118360623,30.275358761646324,10.054876375065364
+0.15059831075819485,0.30353670278921374,30.107687869021095,10.368896517807734
+0.15007460001560333,0.301496773945415,29.439087156744865,9.849206317571326
+0.14978654122823423,0.29618968164510245,26.363362767234698,8.403383801839116
+0.14942175328983148,0.29974530428604645,34.963496403498,11.479617185169529
+0.1495800200467064,0.2989566584881638,30.16552138725714,9.8333982804796
+0.14824832904209867,0.2926886824299055,34.57094013841479,10.425896459076101
+0.15040418941157982,0.30542904401624577,29.7286005960694,10.443534634179846
+0.14960445935515512,0.2989117121470337,28.17913401077612,9.259022161948035
+0.15049645787541147,0.30010925330796495,35.526072435488615,11.746207886775757
+0.1502920127812123,0.3007627596036902,28.473182835553807,9.51538333509737
+0.15003616108911877,0.2969102160840476,35.75321225542645,11.461235151570149
+0.14900859288325075,0.29576760203975627,32.55653477844018,10.218122203601302
+0.15148816840431745,0.29786024753366647,24.659049637283324,8.075870221609039
+0.14899160509870846,0.2954923111437254,31.24562402174696,9.811439749492953
+0.15031236931034347,0.30405442071201094,28.089355465920075,9.752970570284168
+0.15099063631508525,0.30337788271759314,30.46422373850013,10.535862105604362
+0.1498711814749599,0.3000310492113073,32.11500345041348,10.589514986439589
+0.1510578354971278,0.300767868355497,26.72592038578928,9.050197784202208
+0.15026126362638156,0.3087833938604004,30.37093206481986,10.998813748036719
+0.14925594063539818,0.3064601308690526,31.27988008386527,10.972079926892425
+0.14999340817149734,0.30215454800392216,30.12425778047354,10.196886168619903
+0.15124014370398545,0.3112408869390791,35.54231657976504,13.231842108889946
+0.14939070796989323,0.2983126075137707,31.76266676052733,10.355483494323897
+0.15105315595733473,0.30110076762567856,27.733921080069788,9.363282553373928
+0.1522675063738427,0.30243731685207836,35.998029256830854,12.336205787525653
+0.15137718826335542,0.3030631839194479,26.71540075844504,9.257688655494318
+0.1505129796217725,0.30442757403259013,31.95205628553071,11.069838506409985
+0.15083321732790148,0.3075938363319539,29.3075055138151,10.482356095495415
+0.15076199380864716,0.30501111161853534,28.301471306319755,9.83157229505239
+0.15164840825144268,0.2979900337404267,29.702201602242653,9.770348266742376
+0.1506159382088891,0.3047478746692576,25.667898813944042,8.936966424058694
+0.14781427069899347,0.3002791178092623,30.561090821483425,10.017085521134605
+0.14991150817041568,0.30167764433770966,27.51190087550193,9.19326484296544
+0.14860335106142353,0.2969871025806413,30.633142224439514,9.794576140360453
+0.15047529242251503,0.3071077680038786,28.351841342603908,10.13869981976002
+0.15048738101856848,0.2979406085048884,31.579346059972963,10.308691751907041
+0.15081732624385974,0.3017368960001518,30.739268419839615,10.395962207409895
+0.15047582078668134,0.3009112486806818,25.165386383635436,8.456140137549104
+0.14698154008586975,0.3019701359347489,30.37259097833686,10.055104719710538
+0.15055912155285428,0.3042619346488645,37.99439001126802,13.128286332968244
+0.15245386743130163,0.3031803182659711,26.725139008648917,9.299197705046604
+0.14933421759586793,0.30390566855274315,24.75051873483075,8.49797773720767
+0.15098035540313015,0.2975437725131452,28.26419207614187,9.236316334401748
+0.14974296280644311,0.2970443131178998,30.350469208350393,9.744256832612125
+0.14959654933529112,0.30045108314702534,30.635669640334832,10.122762011736121
+0.15300285703403874,0.30814188209171656,35.58379491486449,13.103471627329599
+0.15174809129180103,0.2995560920240514,25.338925781979036,8.469018894113725
+0.15134705289674905,0.3026412134811962,36.93951648627321,12.685565269309706
+0.14972044974670232,0.3010014365734588,30.721217070806638,10.28142533975891
+0.15076663399113646,0.29906105489095497,30.187364942475934,9.951993674601098
+0.14946082362281138,0.3017221657863229,25.901307831328705,8.703314322305722
+0.14814378987189988,0.29989537016431295,31.597855838156626,10.274303415528205
+0.15071527787518674,0.30307148420688046,31.865722787252437,10.962048633789829
+0.14887233348452286,0.3063798821311468,28.901091711505533,10.084527175717751
+0.15006651012737268,0.2999572089739547,22.439234529744688,7.406452049007694
+0.15143126530568893,0.29978260793972933,32.43894508645403,10.7851596840271
+0.14929619676265496,0.2949699790324807,28.681329534044835,8.959908550534198
+0.14921911080818756,0.30772368829437746,28.897637104650155,10.236593359726196
+0.1514704486937403,0.30534657080917466,31.080560067525877,11.042920363139318
+0.1492268347760353,0.3015024345446527,28.454293992855412,9.52362538799083
+0.14889163951984524,0.30456309213111904,32.12152952681251,11.027074311002497
+0.14994437825104304,0.2973577290319032,35.80449280436012,11.599314819558693
+0.15029620712668457,0.2995920134642264,30.21350965393811,9.997212926593829
+0.15075921607986922,0.3054426849363509,32.521528883256615,11.377384042037555
+0.15277998645686627,0.3015691401763589,33.04996296131755,11.304308003870812
+0.1495530241254761,0.29775488710425874,30.77479637504087,9.952836314683168
+0.1496246783293217,0.3035442807640575,30.977065386234912,10.549032626692393
+0.1477338961065218,0.3045376877099549,23.29782432211352,7.947893151678534
+0.14987008971825747,0.299361973595382,34.04464745498466,11.219273039029504
+0.15034416790606064,0.3017173506852343,29.983845702056662,10.188387707307122
+0.15183477297391265,0.3011125936500516,35.75884652094452,12.03530685853131
+0.1494646340263628,0.30133067547886755,27.72414127393786,9.286971608347129
+0.15014855786359685,0.2987012080549104,27.54947087388112,9.013052564479484
+0.15011097596219167,0.30321879832728243,28.892222680326256,9.846611016479129
+0.14891517326006778,0.306973628951811,33.77368696149364,11.987799864929343
+0.15158964099473385,0.2932741429834015,37.439121550044995,11.72438926298804
+0.15043739752561508,0.3013977044368349,25.251892991924773,8.48374367460529
+0.15177473551447093,0.29377130655543576,33.098028762263276,10.431363174568787
+0.14971500833053702,0.3006475980205889,26.261018577315586,8.723228674784597
+0.15037619221653864,0.3056806014568973,33.438140829680854,11.720684015115708
+0.15050063343719752,0.30132439999456323,31.361889141667476,10.617293179792238
+0.15195044855286752,0.2964530142533747,31.697719622603724,10.267709605438295
+0.1509997213897438,0.30083947594422683,34.09507487977175,11.401923442310917
+0.1493936764103301,0.30430481260768383,25.774607536991198,8.904072801620746
+0.150285399861357,0.2964984653829919,33.333150582465386,10.666566954439423
+0.15170574955173022,0.2970335429289505,32.177326573572145,10.45407799972523
+0.14885982144042306,0.2959821573859365,35.68042547999434,11.214783694733185
+0.14963654069873492,0.2960877995114982,28.334346227304643,9.009632266933693
+0.14942410194698472,0.2969217052895385,29.92328867245512,9.541373205304504
+0.15201042833132936,0.29504970596595764,34.53445348444968,10.993666085874604
+0.14920552591838968,0.30350980567207086,26.479334224920702,9.013117692876488
+0.15095095269613323,0.29544407770972037,26.88632572350824,8.5584802110092
+0.14974533012061716,0.3008155268082256,30.07740895007837,9.974391308613784
+0.150452457299708,0.3006608856929653,30.098359297776593,10.054876658776728
+0.1499609393462675,0.29455573706014,33.1733116952727,10.459643208154443
+0.15003011356997148,0.3053249254863244,29.42136433484925,10.260414308245997
+0.15152231299088925,0.30654515879498717,24.19232463470094,8.630481869250877
+0.15007709548049963,0.299248943478987,36.132354776899014,11.870758700641085
+0.14972172906559045,0.3024270914068886,34.303454829047894,11.69199328622275
+0.14744932482940104,0.2983158890015547,36.06856264978344,11.554236227541642
+0.14930939184521574,0.29879160926849035,33.14200523290236,10.791490227885047
+0.14827792815752758,0.3001635411907756,26.009004826963697,8.527776435172644
+0.15030824774095938,0.2922818159280644,34.201404745980135,10.50500327007261
+0.1497687721925196,0.29393469784213433,34.96823323688797,10.86253957046205
+0.1504772255297223,0.3004851501880599,32.83204543843338,11.016377517399015
+0.1502123969560286,0.2975156392132613,31.119483775158223,10.031620281646772
+0.14881370878314598,0.29783617794752804,36.074226143035,11.580741003247546
+0.14811228883959004,0.2950584001931784,30.64119640983703,9.555861576747883
+0.1502709833778278,0.3074470083930091,30.856364290109493,10.999227860793168
+0.14971501197611034,0.29894233419685406,31.693648376861088,10.351507042053706
+0.15188943229338664,0.29262729869688475,32.33857929478733,10.118144931254232
+0.1505881762532277,0.29449515151212036,28.248264632413925,8.868049781529843
+0.14962957772965027,0.2948321224579357,33.68736455003864,10.509070086709325
+0.15022714289313405,0.3022334853240312,29.989349146264622,10.181014058481725
+0.1492676522531901,0.30288338330402054,23.79621560742798,8.040845989477088
+0.15016352417594228,0.2970415834968029,32.9576105072256,10.613939569728256
+0.15087663369708124,0.29489192630298183,29.25899261762829,9.228823984818831
+0.15066494068946434,0.30182956154672885,34.06356524567266,11.463028189783495
+0.15052450373897486,0.30024126704606485,35.32144724147946,11.764968400074517
+0.15097920524485783,0.29396442709290305,37.089111340193085,11.649364587669771
+0.14999559420243685,0.30769915219071736,35.335171770534394,12.63161130950466
+0.15129324950342174,0.2937844570746633,36.70103830424468,11.597319945160516
+0.148624439964103,0.2988571735172921,24.856336096672255,8.037254678883912
+0.14874680760987471,0.2956017910400362,31.274621031742267,9.830912721012163
+0.15031138112595765,0.2954051999378654,31.95477246420269,10.143882284023913
+0.1486725534277802,0.3087354948558257,25.338350710035044,9.088399881132492
+0.1508691106951796,0.3028155838955236,28.531232510868513,9.816610026276138
+0.14991884952395507,0.29986560250204414,31.456794501035947,10.354143443443194
+0.15101650314377255,0.30191944872083354,20.40968351284777,6.982569134070589
+0.1489028003432585,0.29997051830655425,34.100386314718314,11.19029447207648
+0.14947179840744554,0.29625233713796184,32.860406695548804,10.460020527478997
+0.1513007882547658,0.2989673078819293,32.124337207384016,10.61666910497183
+0.14962303075309719,0.30927241968968566,30.535196841300163,11.050710375498394
+0.150203749062056,0.3049514772792416,30.06495799788686,10.440823888173659
+0.1496738183366613,0.2951282732393422,29.55485122655795,9.292735249675323
+0.1504656092519898,0.3006836244173087,37.447899265188596,12.422564096345393
+0.1518391511286107,0.2964608972811456,25.64094296610233,8.299438132919102
+0.14894480784825112,0.3030274015230403,25.769206702664324,8.699532759918915
+0.14994401647591324,0.2997704649080038,34.09713282642293,11.295414429330572
+0.15091996732170812,0.29557947527129574,37.60097742129681,12.00239116066689
+0.15103487382031225,0.3073007208211147,29.69758553534111,10.595283549231368
+0.14921500535935,0.29734873693425,34.48501218774419,11.013155843024803
+0.15004647816833308,0.2946441868146561,27.349080486092458,8.626672425272654
+0.14910192844557915,0.29476182654477634,32.13774967170808,10.030829060707859
+0.15009325272174182,0.3050202227194285,25.007573130584486,8.715864486565915
+0.14843846459316606,0.29865306151804866,25.771060691150485,8.364694120741532
+0.1484996434749374,0.2992491357834512,28.065852423673288,9.101224747816511
+0.1491896776163524,0.2996091248299141,33.31395174252376,10.887811024138056
+0.15074385633224033,0.29708282304709194,25.431023931637572,8.204435182378214
+0.14878130361092867,0.30264604389771826,28.389835573750435,9.564040350750982
+0.14888400896336834,0.2989951046517956,27.090582107793278,8.798165246892236
+0.1493752734527502,0.29828436317592455,27.961389338307384,9.026890574536429
+0.15053799719618718,0.30375644286700915,28.313153164677956,9.750139592724032
+0.15249660566769366,0.3002438790638846,31.688193436766415,10.730175910986688
+0.14969918970051768,0.2987399323172421,30.384309404212097,9.92899122147034
+0.1513120822823098,0.29659918266115154,25.184492714373697,8.14250776455921
+0.15154488196851798,0.2985429025933996,31.358667050327256,10.337324153650313
+0.15131848544270254,0.2959657930493102,28.664921673514364,9.219661339532506
+0.14859534537554872,0.2936794054400765,34.32001612654417,10.588318488388532
+0.1522497694023173,0.30037128625233805,32.43932501916078,10.985415618753228
+0.14980485133133742,0.29790326912660825,27.062161960583545,8.750691917664522
+0.14957444922451812,0.2993558016529249,34.280166893025395,11.260952528563772
+0.15027385175027963,0.3035097829498189,30.956424252729455,10.592577698939682
+0.1514279621110235,0.30660352122469786,26.099703976103896,9.322835797400263
+0.14959602165188984,0.3044426164971176,39.77227981854566,13.734431086846826
+0.14861179930026663,0.2998820979558367,28.87051054580255,9.468094262018537
+0.14964599253960809,0.3004610212867709,32.305175447111424,10.755759998955668
+0.15133651739280576,0.29713909904633373,30.20642569048708,9.805925977855937
+0.1492581928668257,0.29209745008257665,31.446993517617766,9.547307518470944
+0.15062405788799085,0.29905272637925995,28.058865741919167,9.237860141711348
+0.1512562871754747,0.302389185983912,33.990716318977896,11.62005921535147
+0.15072381839786142,0.3034413328169774,39.34995285574176,13.591755739853848
+0.14974983617989948,0.2971032982544519,27.11347089204517,8.717130239887624
+0.1504737484616696,0.2939773577737072,31.13119378296351,9.739478772326397
+0.1496896355338431,0.3031460470104097,39.345161482398126,13.469768379443533
+0.1510377242085587,0.30224289772970575,32.79810438361782,11.227797358814206
+0.14901467148599062,0.29931957167310436,35.23773011246068,11.578175976031568
+0.14926121483946952,0.2906023540514064,29.119571892836518,8.700806879754595
+0.1495532551560739,0.2963871541816736,31.60866283541361,10.099248959494352
+0.15038384487200787,0.29902463980447497,29.04668693086314,9.522465278158487
+0.15085109265056304,0.30301544127535474,24.43433268935008,8.399926493783124
+0.1480664595781356,0.30543285605636705,32.60082666849543,11.275406571382439
+0.15257487130087916,0.30698747159079737,28.201896126169157,10.179603900481647
+0.15224863381155257,0.30256819231350973,30.430132672961225,10.49948051472565
+0.15045785555504043,0.30984028234629385,29.441347729028482,10.752984580326572
+0.1522877936963579,0.2908553666671632,28.409603492895528,8.686411118460873
+0.15186537244884848,0.29915944457918997,33.92499026237375,11.29244757400555
+0.14919784547863216,0.3013066141916268,29.432221275585977,9.802422207263307
+0.14921066691129106,0.29277757068958643,34.25178827731303,10.459856718439683
+0.15124509827722338,0.30183565327126216,30.793706877728013,10.503426439953618
+0.14903661685904163,0.2991914343551967,30.590796914631078,9.9834496325653
+0.14943060234616568,0.29779374040997203,30.762084850999777,9.951735699653582
+0.14964014364821807,0.2999442320728595,28.659571886198783,9.50032127633544
+0.14949332945039434,0.29460291068000016,31.730665495422503,9.93142751278643
+0.14854455283695037,0.29218923402697283,29.710739865969142,9.051012908502521
+0.14967608524476597,0.30632864315673075,27.976653442243553,9.8494887637866
+0.14972582632731116,0.2984468030073468,33.56047995953689,10.916803751009283
+0.149751460907365,0.3021773297632562,35.26275222635192,11.998781159840615
+0.15050409321221306,0.3038144933442783,23.027530153505833,7.93404139983004
+0.1501191437584678,0.30406095969897096,28.18141589205536,9.690260927054194
+0.15089790497606143,0.2989960356931945,33.99914763437158,11.306191675367797
+0.14960146688877243,0.29775216677859206,30.62478070876906,9.886604940453712
+0.15163203244888238,0.3054986711957548,30.209428793936617,10.705526300695931
+0.14934680492695457,0.29649645625954457,27.114338550981365,8.63116263936718
+0.15089652035708273,0.2966231247965731,25.818925420968647,8.367892389359435
+0.14837996327825118,0.2984946479712351,33.72275523380344,10.917236727552558
+0.15152946976073273,0.29838689259869755,38.864371605531325,12.828100633395344
+0.1511116291593096,0.29971131427462855,34.2713176726586,11.419489383955074
+0.14868831084143888,0.3068465825304793,26.453326720667544,9.269484257594735
+0.14875579465956834,0.30351986751218535,34.795189805153534,11.86223885654985
+0.15147483108100215,0.29214762444785625,33.99225877571399,10.515682171482293
+0.14963429638610848,0.2969359500965749,29.09017897984522,9.357430017376188
+0.15056708076387043,0.3006227331485528,35.10333901659912,11.71273419992228
+0.14962517059327002,0.30116558432034074,27.474476199176703,9.201314957613148
+0.1515117925177827,0.30451597442400974,26.999702780557392,9.425967795580993
+0.1500345949445627,0.3017236514057741,30.889584790849135,10.417839043095919
+0.14889852755646008,0.3058318091270072,25.101943500285554,8.811297393169474
+0.14971766350864477,0.30439287544683835,30.54882256666543,10.517984737129993
+0.15122084278678719,0.30204995549403396,29.944888013580634,10.16937153687168
+0.14909322799124655,0.300941119131474,28.324501216630008,9.39504185153295
+0.1500725448558092,0.3096008486823499,25.391980985957222,9.321465191122105
+0.14971028784801857,0.30356569981722054,30.99365467372147,10.634823331313976
+0.15023174062551567,0.30454114114792497,28.128764574412855,9.741460456470882
+0.1502068080676623,0.3036793432364135,27.237656834001864,9.358788041323383
+0.15141021391591103,0.2943595567637614,35.27662833369138,11.168360010761585
+0.1526981810448354,0.2947877665544794,30.2348810951829,9.647044158201139
+0.1511407747033369,0.29871737485312405,27.150666795757402,8.911503008741384
+0.15011753896402796,0.3028871384522722,33.32597728648213,11.385042381439787
+0.14911829989374217,0.3072879622849187,27.075606986936002,9.603672362390835
+0.15255675883892658,0.29805192026486005,23.83736991701679,7.878819703093543
+0.15024860486393266,0.30504214282182956,29.12901997218977,10.153791204030993
+0.15111279030780286,0.3027341702584137,27.182425929361983,9.382552995399879
+0.1512480470367665,0.30264364547957856,26.522525379378422,9.112812713702818
+0.1517961422721186,0.2957009025390981,30.42304470500082,9.79726231754013
+0.14940113082552847,0.29767671391993544,28.79527819370619,9.248355401321312
+0.1501012916943746,0.2986534021382506,30.981523033901016,10.120321230856375
+0.1508669667945632,0.2999391267464977,29.71653616457537,9.91916152523609
+0.1493572435382864,0.3031229860175865,30.802334439611702,10.500890212175937
+0.14936382467269696,0.29533109378215294,35.97257223871332,11.367100386495729
+0.14868204856148268,0.3026410738262118,27.388579022796847,9.344308031798583
+0.1507757559647749,0.30896992147857316,35.20127201948401,12.79459964521298
+0.14867606017861779,0.30074110836926754,33.80690123265691,11.148275970033982
+0.15035599841723,0.3067037755588122,35.49157290416888,12.584072680336586
+0.14936590777902642,0.29856866773362256,32.23459040899341,10.445437206914516
+0.15160155864749766,0.3069906561219389,30.588771982146703,11.022571519591997
+0.15077573840768896,0.30096158146498636,30.153183532608733,10.184847497895715
+0.14952257273686848,0.3049881563575047,27.685655866833862,9.575673393509062
+0.15066244435702095,0.2980896929035425,32.597183134861055,10.6500381402429
+0.15018181984119144,0.29132043090444776,31.864313731137578,9.710426126815037
+0.15131924512021863,0.3013108160856183,30.28846216867025,10.165747061499001
+0.14948675443128087,0.2995042902902087,30.44995724802021,9.960873586451429
+0.15007195674472956,0.29865176682203753,34.44974101410525,11.265736922646948
+0.1516668150220137,0.30300155127775896,31.645318701701317,10.945690909291267
+0.1504938818973473,0.3011284014824035,33.10085830675867,11.086551250829578
+0.14904939577798532,0.2944106833000758,25.015848812035827,7.8101687444922305
+0.1512109515355217,0.30538926367640656,28.88719945851428,10.18147076110747
+0.15128811395753677,0.30774522490505796,33.44875493081932,12.007657378060625
+0.15086873098346731,0.29470157550590775,29.442979531694768,9.261595734855659
+0.14755773027331617,0.3004357717345492,31.931021303460554,10.496689126994152
+0.15077839658777725,0.3022925308101452,30.57250358763958,10.355346705434448
+0.14866263592410509,0.30643249806851647,32.06308989754519,11.215140441372798
+0.14853518646960184,0.3023805334484592,31.96834181640001,10.757903757427387
+0.15106050539512483,0.3022691007087235,32.720564467999864,11.1728216048679
+0.1488518366283142,0.30259313765116763,35.06563095616793,11.854954235533114
+0.14986852133437634,0.3040957305799187,23.621177453582643,8.208047149499038
+0.15032972852704402,0.29948039384010755,31.723641597608943,10.495622541031254
+0.15002980084767795,0.29798333108680475,25.32922730793718,8.219170070840118
+0.15098373502963386,0.3026884378271235,32.35475210222846,11.102326892626891
+0.15060975015751246,0.2974388511062278,25.109243469825657,8.086523323021016
+0.15179463063999346,0.2897613675037335,31.324064558434202,9.465224000111336
+0.1475961803121066,0.2979036582746021,33.61905158431908,10.776275932597883
+0.15037363591454309,0.29948384732395555,33.17916340428305,10.985304317931758
+0.15189461732029347,0.30013331174790503,30.492071372787567,10.271155752239066
+0.14875209056050612,0.2996225199226073,33.93836723736836,11.156497603670742
+0.14971162433921525,0.2972451855470223,28.06482987458691,9.005660829732
+0.14881177752559402,0.3023604016866651,31.794493610876486,10.68216281623272
+0.1511639107557923,0.29538741317105105,33.155228117856836,10.572002817024417
+0.15042382906838347,0.30994214674868875,31.81543148881401,11.666658845816443
+0.14875610336571182,0.3053870851238211,27.80800458155309,9.662523378155399
+0.15077300574940825,0.30744404274476694,33.05553788429799,11.781191410737039
+0.15222711908605477,0.3043380120005267,30.244464622267262,10.591456273563175
+0.14941757140610196,0.29789414693009436,28.47259907076954,9.20462515657633
+0.14911951422666206,0.29855402847033097,24.97967885690278,8.12947097331001
+0.14853592833785773,0.30333476023739997,27.879967411598162,9.466990522565773
+0.15010225072791747,0.3058703265116351,33.103852360849835,11.678342255840498
+0.15060315995420367,0.2969139745991651,28.80613717409047,9.275515289369668
+0.15095259074221296,0.2963460142765915,32.14728745160446,10.322976200574312
+0.1500986667640763,0.2994607327949401,31.482321335234694,10.353982153972376
+0.14927050053953125,0.2961516123828877,31.624694001895783,10.048398841758873
+0.15019962808412976,0.301342131715061,30.73723535140479,10.37324094277632
+0.1521049460892921,0.2976848250851517,28.600743490185835,9.371785884287366
+0.15160986941429458,0.30325015991713183,26.86751314394502,9.313633169347288
+0.14879176759986468,0.3065982624437267,35.72521043997491,12.504480051295715
+0.1503633686542998,0.30233459785123007,28.239554609108975,9.644307206547206
+0.1502467034394644,0.3015126049021954,30.10906453564904,10.146217773713333
+0.14795497671269872,0.30274671874061715,36.20083737102175,12.107179806003458
+0.14942085652317363,0.30244964056303575,28.17884100955623,9.489458032616566
+0.1499321863750081,0.3092977163752517,30.863355167854706,11.185835895916568
+0.14894813955756647,0.3039556781224703,28.739259641663757,9.891173469247008
+0.15037338034232833,0.29832669997186584,29.438871425663972,9.640407649789305
+0.14928196949946518,0.30299775065062057,31.51584555859477,10.707583041052825
+0.15015944216572516,0.29604416142045864,34.433464823289476,10.942976715660155
+0.14994983881146187,0.29698796511307485,33.46268926798564,10.779506708640216
+0.1489998073965514,0.30316367943920636,27.71086197829281,9.416602437600098
+0.1493740236367495,0.28834310710702155,36.78603145767693,10.78628661401749
+0.15027278247539458,0.29793283512375757,32.453093109958935,10.506287687700915
+0.14716155962591726,0.30420267199040785,23.17396406926514,7.837974576127341
+0.15006601948464496,0.3057051239120304,26.096207561390724,9.140850325352282
+0.15050295787144727,0.30203551740486084,39.42446965638594,13.363759800688827
+0.14891127912237007,0.3050661313054745,29.44774999446891,10.142948253944429
+0.14954175460645588,0.29195368015525447,29.023608739554287,8.830830415377447
+0.15040552897069795,0.3030355803400293,35.12180017393751,12.038902470576502
+0.14986088564187877,0.30084396843032774,34.18479290320459,11.415068666883869
+0.1493816450440643,0.3069230753311129,27.066005776719944,9.51972754332856
+0.14862886581284707,0.3026675631078573,26.9571194179287,9.098948748548148
+0.15024883005594214,0.30087829271742444,27.24221441950601,9.127873152308092
+0.14879640702553681,0.30448197791299897,25.958264320489327,8.904661957869646
+0.1506688614307936,0.3069330865389922,35.65216178965902,12.668533728557058
+0.14865695618488445,0.2996825316624834,36.44149859273257,11.89451639715007
+0.14998352330112344,0.30458266619333835,28.108489501800484,9.738853379036234
+0.15124269261856874,0.2949966522515439,34.98781571628529,11.100619945090358
+0.14963698034529632,0.296810846424187,34.210619218857445,10.910248214699676
+0.149570405494151,0.3069378075770276,34.26203241830685,12.070764405798634
+0.15192144245897035,0.2978243305379515,29.469752015329718,9.700543293353013
+0.14980309769487335,0.2998840229117691,35.90737865557827,11.907968642777318
+0.1476947374071023,0.3040380876528218,25.203326943600263,8.558160391651223
+0.15019913317363365,0.2983290109917805,28.580128931098113,9.376421305997205
+0.15065088947818234,0.2952808301257198,34.760887469507175,10.976317410574794
+0.14991429073071938,0.30256065444713215,27.92763707097879,9.468257628465777
+0.14908551911487652,0.2999616472702972,30.756786847825662,10.148590479613263
+0.14952241390306947,0.2992318114559588,28.42637909867104,9.344981761844082
+0.1508230019306415,0.3081910829639969,37.930212515719674,13.582645450411306
+0.14833361174082507,0.2963278893443571,33.322479383314295,10.524350691429188
+0.15030895652556073,0.3047439259632357,31.118367911359208,10.8613392403731
+0.14992554181734735,0.2997130574969072,29.31257040474037,9.626406830907014
+0.1475790227581228,0.296858802352097,31.00260307652868,9.805904070235139
+0.15015557446484623,0.2988966979500642,30.20761981401578,9.925559860387866
+0.15017746682914498,0.3034171434553139,29.547355206261948,10.133644105275591
+0.1520075429559238,0.30724282650354395,30.637865380048034,11.056137697391799
+0.1507671662045852,0.30571992304155593,30.359204416834903,10.686748638318134
+0.15203027963795226,0.29263124384101086,34.81325836507224,10.85628241038444
+0.14887416256991456,0.2989394662654653,30.207323346277658,9.83620912031533
+0.14913628480801333,0.29710095477366694,27.633380470011986,8.852086805357546
+0.1517182434722385,0.3009707802920664,30.25979907271415,10.206055928012152
+0.15053141765612635,0.29821763397976314,27.319932392308797,8.958056354281076
+0.14841832335630978,0.29846429196926744,29.180327807361493,9.420305148340038
+0.15165536360236312,0.30128397085023867,31.09351871481871,10.578104300707668
+0.15098910219823153,0.2999933188965368,26.815786768504037,8.994467283502395
+0.15009583872222962,0.30663467053815696,25.409299742618686,8.993825175922384
+0.14913435235167535,0.29333160315946005,29.362735725805628,9.00663938681733
+0.14982865493246916,0.30183931607687514,31.82999515734605,10.764210714555109
+0.14973506725302016,0.30094804600245834,28.984229334787745,9.644660099926218
+0.1513514103866163,0.30574818982095475,28.147078223079355,9.979373764038153
+0.15014341561122121,0.29690666886536804,29.534696678137216,9.531603579425342
+0.15126380331953496,0.30236918063079293,30.879494275215205,10.542940783942615
+0.14937439524391094,0.30259299763469916,26.494984198007685,8.953792474880377
+0.1490593873716119,0.30352637194954746,24.290386783876393,8.293776557288819
+0.1513601679763086,0.29718639628159516,29.60473879377047,9.639171029238986
+0.15097485196231697,0.3001823380278837,32.451936625168834,10.796142869243326
+0.15046776917145274,0.29781403511915966,31.3315614031916,10.225781990952306
+0.14883666300274906,0.2952449881387239,29.576944825155103,9.32194290360819
+0.15066354684624875,0.29572349597227554,24.901188207274753,7.935699203450763
+0.1515789921874879,0.3010661757038723,17.077719061584705,5.729529855616555
+0.1492356866205183,0.30423780835066155,30.034261918641796,10.216993199536482
+0.1509844111898398,0.300234234163882,29.452527938398383,9.78157922194245
+0.15088873226643115,0.3057499100030522,32.164334388320576,11.381270941134245
+0.1508248307879321,0.2996504979967204,23.146414020011974,7.686255908408043
+0.15073614624480536,0.3037231889609596,30.71867380464822,10.633158666299103
+0.14881574777206436,0.2935747103263872,29.264144515479163,9.00956906242753
+0.14901109871549897,0.30463717822811326,31.495026967031365,10.90977148337577
+0.15038193467003627,0.2949751727458213,28.643610811516563,9.006677471251905
+0.15004558832304157,0.3079579720404774,28.055408221550096,10.09934653950414
+0.1493789148154548,0.30277837099241667,28.41656359683177,9.630569981835235
+0.1497860516979651,0.30327597165614356,32.53562972697548,11.136002510219312
+0.15110200443717184,0.2900209425872197,39.80316979543555,12.014392732161491
+0.1495642240631646,0.3024917837443141,25.69225036944193,8.734039532154105
+0.148405836622192,0.2922860641235475,27.050731545811075,8.253613470226615
+0.1514004024446554,0.2972899433843857,40.45103533664401,13.248977092631131
+0.15055276138784465,0.2933509408502407,25.754475926253473,8.04702498162911
+0.1510100978189771,0.29801790461719546,29.89343336847201,9.814839562452919
+0.15024813960404648,0.30581318417990083,33.264488663157344,11.715992948633215
+0.15077672716966917,0.3055674983288447,29.113230742435473,10.186807394331254
+0.15101760741836642,0.3045132639514066,26.34739164283007,9.194576199538865
+0.14967965253321014,0.3020931230860692,36.7484705191902,12.382010183692497
+0.14965794604023056,0.295045331281845,28.406306720822506,8.918873207022653
+0.1504114195995648,0.3042960647800742,29.497803145364706,10.238474238995106
+0.14927921351220244,0.2917411293265404,30.80639663146129,9.335155589739738
+0.15073978039012884,0.30189381688961836,30.27134639851194,10.29361873800645
+0.15128900351495328,0.30605723115483247,32.78995996114908,11.637412129967414
+0.14972005930993432,0.2892525082132915,36.94027328642144,10.997972760999673
+0.1504626287701357,0.29883000929604103,26.676230956741822,8.728364631241067
+0.14967815188267694,0.3075763371455385,21.368063514150197,7.621294239914396
+0.15077631111800863,0.3021181354041155,22.105491737454777,7.543142323396401
+0.14866287112208848,0.2961182128219566,28.401607654404444,8.953967628499244
+0.15193527916093685,0.3000042938533572,32.80646936440046,10.987508827543984
+0.15035551635925323,0.30468341611581945,31.535633551273467,10.96386002320138
+0.14827470859022593,0.299799959542347,34.99962382245651,11.385351171365514
+0.14777750142767757,0.30292673562423317,38.119265910439495,12.820325314397216
+0.15256472528364867,0.29101983625859146,31.17275704424588,9.615035135788188
+0.1487029719304728,0.3039734660915847,33.389711086849545,11.399779294773367
+0.15249023089846864,0.30393524056871896,29.32214676597838,10.251415185540514
+0.1489973971373786,0.29951943487887567,23.59628233637533,7.714320291066112
+0.15117098571098167,0.2947276929023416,29.724126899453296,9.391297507327778
+0.1511137722835984,0.2905139119319532,32.5801944258856,9.87121633975025
+0.1492740274422806,0.29473325505255127,33.387826136394565,10.439174935050133
+0.14892855761812382,0.3015406848925036,29.586250231172823,9.919088373937782
+0.15113793121441482,0.3057777232202852,26.13057414848542,9.226036750272996
+0.15174223906316872,0.3039353187824259,32.42537584853134,11.356532535591851
+0.14934234476290992,0.2949468793665314,29.549272426012294,9.27393685745701
+0.1490402277512992,0.2987238267373555,29.53181646536327,9.582268534183985
+0.14826882362825816,0.2975812051557993,33.81175296456962,10.79286922185885
+0.1493435503171579,0.29330883912175737,40.482933491346984,12.438105651757319
+0.1504008149472993,0.30492821567488654,33.502042682893205,11.637790690402568
+0.15036960109991435,0.2994998107716525,29.244172693717218,9.635854259745244
+0.14950713748751568,0.30339810790871724,34.53868613842913,11.759251426290856
+0.14997597785427608,0.29789857553084537,29.772285080732278,9.668963887258249
+0.14992968319716451,0.2900621699470339,25.100786840808166,7.507257230111522
+0.14980570422228298,0.30215075075416126,31.663753087921275,10.664714739239262
+0.15018339292841276,0.29610064012688897,32.8740038024459,10.465373787975686
+0.15125849698164043,0.2986652750197369,37.598022285909714,12.380331649976458
+0.14923136735863332,0.30098058274842565,26.78618233676297,8.934081854792115
+0.14951226229122133,0.3011719689163863,29.926419783690857,9.990576843155981
+0.15036417749696465,0.30574639229446116,35.30241838748062,12.42704241422639
+0.14949892092330513,0.3016650925230108,31.03109936835361,10.403943747808786
+0.1481451506648985,0.29554496162330907,20.60403224450084,6.471993744518181
+0.14913306698858445,0.29755963443017347,29.267674291203296,9.414774412208873
+0.15052278672540734,0.3128443852116192,30.43756706504981,11.465555296608722
+0.1494418573448038,0.29888737140909455,24.90339111278916,8.114624167320823
+0.15048991656259456,0.30165236028217673,35.71927823405465,12.071572404427727
+0.15065372244140615,0.30312900389009306,31.91200972152223,10.937538027492506
+0.14956377265167994,0.29586671558155664,28.39759828351739,8.962725100186917
+0.15104313747804582,0.3081095189770851,26.40663142711467,9.582075108431361
+0.1500841177576905,0.29861517490490813,27.995250503595148,9.151584088356588
+0.14977792437246584,0.30651978433027205,31.376375708782653,11.087878305787639
+0.1481742410430165,0.2948878839842837,25.86223004562825,8.061502129812864
+0.15171343433961257,0.30374886634851295,23.40476194373009,8.181340291175696
+0.152316287807448,0.3053740447725618,36.34825318802376,12.945707788574076
+0.1508471475379125,0.29839823851193265,29.30651605503477,9.609692803343718
+0.1519945641559389,0.29675668378925335,28.768069642233424,9.321966266688987
+0.15064688565650722,0.30433464782224917,32.47007909077459,11.27985566439424
+0.1503111245075296,0.2890249960943951,34.30271576230506,10.158646334479373
+0.15079574146765137,0.29722769144658484,29.58517044412024,9.55551301030745
+0.15026785736780493,0.29268389873754425,25.07831762712695,7.73689469628687
+0.14975465727268486,0.29492804102266773,29.497382677529657,9.197214737269766
+0.14932869959308986,0.3042472594989322,34.466656700604865,11.83368224772098
+0.1485804522453124,0.3060047943819215,34.30907279995165,12.011934310338338
+0.15152494582558068,0.29397748210495045,29.954332099137957,9.448352559242176
+0.1498005628197167,0.30154443187253793,28.719225421554807,9.675287162414955
+0.15070141719931232,0.2972414653208322,31.529222474433134,10.23426361350408
+0.1489608235421418,0.2946971039504677,35.648598673779006,11.103765925905943
+0.1493874160719063,0.3037950168691799,26.586786335903454,9.094962041600828
+0.1508410635531712,0.29484738517817355,39.60353184166207,12.561584458023875
+0.14881284035934886,0.3079822432673712,28.704397430348692,10.167250506422404
+0.1528387613234047,0.3063751092678785,29.09402581518462,10.471787509200173
+0.14952969846445832,0.294502470802227,27.898547897179533,8.678143879581258
+0.149056219355559,0.3022218142215038,35.70599521075651,11.987365261432995
+0.15191427451211212,0.3009767473429413,35.5769006135537,12.056062822066362
+0.1513963580213853,0.29903956671175413,24.897857018214125,8.252207071833368
+0.14813547087625997,0.3002181839148556,28.976694011533038,9.489243695656176
+0.15146127426488862,0.3018138430468053,25.705269725292347,8.738901661848878
+0.15134501823795732,0.3008753327937054,27.676378232895665,9.35873628268931
+0.15097089037466074,0.3025228831331733,27.16911740238612,9.272959756667545
+0.14985889758599388,0.2954662584846817,27.457028602416127,8.715813174003278
+0.15183669663296862,0.295712975642533,30.25401769576005,9.687116997731646
+0.14930935536329765,0.2948829038519649,34.74999969647181,10.889625600499508
+0.1504244573544395,0.2971309773308677,30.57368004346955,9.89573112164375
+0.1485169014716955,0.3036672037493647,21.74230782875913,7.391586008643754
+0.15033605229412086,0.3038163739094664,32.856173746241865,11.312007681491497
+0.15261950093438661,0.2872252632380152,36.27874290540974,10.730080975176921
+0.14860912787948738,0.30269192378626847,32.681088950627185,11.021514563069651
+0.15025124504295637,0.3074169225799592,28.314607374696603,10.054749508600077
+0.15001029042633415,0.3073216384669239,34.01335828205734,12.104175552962841
+0.15066684372984945,0.30375017635911844,30.22921830077118,10.44821304693802
+0.1497703398512665,0.30451628445433787,35.95635247491908,12.466390598077057
+0.14991987670607854,0.28939918973213075,30.323061076651012,9.006000060372507
+0.14919217579848312,0.30616083703453717,32.3544071933298,11.238447211704964
+0.14907276943481274,0.2935437327872171,32.30531955288704,9.987832450049028
+0.1498086676408268,0.3023829007521592,34.13886707964923,11.552560059666908
+0.15126894432004367,0.300879605225048,28.297738293002432,9.474913920387873
+0.14894363244180778,0.30217063453178344,23.633910143855015,7.999237844698484
+0.1487327457187228,0.29854683261629134,28.663098239411184,9.280473294713168
+0.1506283627669213,0.29448934251807407,33.54798804909986,10.539772807384237
+0.1490892564270037,0.30420741814880975,26.480542986896374,9.109584516151852
+0.14877206178422148,0.2907517246801888,37.2971723503208,11.129624458168127
+0.15101402126085436,0.30645105835004827,22.061476803777282,7.8425793187469965
+0.15204509400000107,0.30281466157980635,38.07831238068781,13.120697857520362
+0.1484978265967712,0.30658970153177945,32.41219250400278,11.36192057944851
+0.1496176100625182,0.2995609200711106,25.556455744389133,8.419556700325225
+0.14881016790900303,0.2962940510562634,34.75399616780125,10.987315339568639
+0.147868608381278,0.3037849651990767,27.237112825496755,9.205234220460005
+0.15142193927417727,0.29463710925892744,35.50968416419404,11.224402453220597
+0.1505235312133665,0.2941319719876135,25.58516122571984,8.016371214258852
+0.14975031481029155,0.3019165607789426,31.204717605836795,10.510988454351587
+0.14998930285840187,0.3055161968283803,29.885444705502547,10.462110407521566
+0.14999910443279338,0.2995004223782685,30.65117813445528,10.115448046445643
+0.1507369572789277,0.30485289722653086,29.080611566150978,10.172214379402504
+0.14902592891480126,0.30018971272243894,33.71235683952253,11.118601573874297
+0.15129168135643017,0.29391648240204726,28.015019163570688,8.80799964932115
+0.15027372896681773,0.2961566617957027,34.143804799472264,10.945524899440793
+0.149484634852183,0.30136740699489656,29.714207233516376,9.898727420742283
+0.1487457211756787,0.30151931069925036,26.207686976724908,8.785458769758652
+0.15143265275767312,0.2964376059483856,25.276854994768357,8.188542756588697
+0.15139086751668163,0.2905510634820422,27.049741580810668,8.226908752301313
+0.1497281341484409,0.3010681608177375,30.739059929485013,10.265480097968426
+0.148352965304989,0.29957797847043555,29.880649175918133,9.802509589516466
+0.14997124129794312,0.29729443473426626,23.21583032839016,7.496022126619774
+0.1511582831988996,0.29622011316383673,27.596499706340694,8.89809041337201
+0.14934784490295788,0.30388910542971476,28.527906462637898,9.829411053166867
+0.14890186355726986,0.29870330928195504,28.375378599332237,9.204660460438028
+0.1519486862786064,0.2964492703427155,29.40040297348795,9.470413145100792
+0.15096984781695383,0.3066981002729265,27.794548747130033,9.873484674115735
+0.14815836226332718,0.3020412709598494,36.44843381296452,12.141803337984978
+0.14901335266864252,0.2999422615775993,21.525930812500363,7.123437089067459
+0.14964911712336768,0.301500781903965,27.172112230189168,9.077134439339417
+0.15061051202783746,0.3048268168580336,27.382302345159804,9.544537776855663
+0.15176942442792843,0.30510592179048796,26.635070380175822,9.418732892004543
+0.15227249128672962,0.30396980515928684,28.38857123194456,9.919870064890972
+0.15011881303242472,0.29990114607598917,27.8027601396428,9.219411415688066
+0.1512252696397605,0.2952274540763439,33.94983036643821,10.811975300237595
+0.15103648165824599,0.30789477670773896,27.710084872849862,9.984248412520055
+0.15042667502564433,0.29567445090479927,33.23914355159552,10.553429498355431
+0.15017856107546237,0.291681520612389,28.520210710035713,8.664674771915104
+0.15054314336123717,0.30594481918340294,28.403206854575814,9.973989709510807
+0.14944327224935602,0.29614289759884416,35.82809891323813,11.472036938984436
+0.1484591602306376,0.29771080454721294,26.655212638244556,8.516895464293466
+0.14994721692123086,0.29552754287333044,30.21560314753735,9.612310726574407
+0.1493668523878611,0.3036418836140332,24.97707102583834,8.51880188936206
+0.149210353301041,0.30800640417231917,29.83783963368145,10.627566890035528
+0.14996728809387924,0.2975571564732516,29.17612223261116,9.373676969563046
+0.14877899796430535,0.299929082966661,29.07788717532433,9.498049116667882
+0.14799387370611425,0.2935819792846831,33.75733247549169,10.301231267757412
+0.1498505214745692,0.29092385930173936,29.496233651550853,8.94693905740981
+0.14974634325964614,0.2940875136680478,22.750094165821398,7.093363357913476
+0.15081598425579698,0.2992396821728906,29.502769388839102,9.689364141884381
+0.15100464436947988,0.30185457508717567,24.599831633547975,8.32797414829455
+0.14985305560398912,0.2985181317684791,31.77206444982856,10.322136980726848
+0.14829067244054475,0.294248246771512,27.88263283764035,8.618357118568104
+0.14887914294047042,0.2943785417943244,38.3994861386073,11.943192027472662
+0.14904484552842884,0.3050595157863739,32.71662846050488,11.293570677158414
+0.1505876956753349,0.2935675195778064,27.638203870176067,8.644179325625398
+0.1504201840757617,0.29959377696586564,27.86863985435561,9.206248534853477
+0.14813191091782518,0.30565840805654765,26.863375132452585,9.269975645242349
+0.15056439033036756,0.2961674128096989,26.97119020262887,8.683458289714183
+0.1496443451504504,0.30409368745167437,23.400304950165896,8.04435172738503
+0.1503990171345256,0.2949885165212474,26.497437749947363,8.34104036707168
+0.15082656430484606,0.3076853564676946,25.88454898531704,9.270214323597884
+0.1515173951281202,0.30138361162197425,33.93984646226362,11.523601100231332
+0.15025726538451953,0.2944559436102272,29.422116095816637,9.181820685644512
+0.14974081932425565,0.3013555587129272,26.250902213175365,8.79701644147418
+0.15079086472072467,0.30208223106466264,29.27490552890737,9.90352437094126
+0.15004845752920462,0.30215029752649675,26.432519374485707,8.961462916516817
+0.14955973555394345,0.29848978813772276,32.530393632817486,10.546819077718354
+0.14913117609236892,0.30070228596270304,31.088930291763507,10.311215796749677
+0.15031698678454228,0.30047981554946773,29.827697000181743,9.95458553337318
+0.15131829798752122,0.3030736497725929,33.00012859866436,11.323141587279578
+0.15025644739461036,0.3014924649963853,27.557602736831036,9.329963855544898
+0.1486481918587114,0.29861095163811713,32.23132642070543,10.458346625443648
+0.1507831692948567,0.3042430380574915,30.043686803875264,10.441349151779857
+0.1495066646468747,0.2975090988134588,31.795866662867713,10.25810165447931
+0.1500964455626395,0.30409174689365087,28.23955087659364,9.769229843088242
+0.15121456012232437,0.30238945340379036,30.356684176052063,10.354822900198457
+0.14962327630413702,0.2960723790194963,24.74679062067522,7.869590294250776
+0.15087686798051697,0.30479072340252233,32.55227708882578,11.375660209630892
+0.14955358954344525,0.3051704927149343,34.489160507100934,12.041367205337245
+0.15069197240010881,0.3040389115565127,25.940464025484243,9.023619616085128
+0.15189528840059877,0.30385297127993105,29.621159291356275,10.371863549695489
+0.1493159607288507,0.29656974918272205,28.966629116763215,9.229274520089744
+0.1515002682194467,0.2987030942477214,28.61273909978265,9.422943105620979
+0.15030388496780656,0.3081635991918897,24.833209659769878,8.860082659629592
+0.15280140194394928,0.3005201535401504,26.575046095105932,9.014920811259044
+0.14791115286961112,0.2968613009031673,31.85408167477797,10.09451622572442
+0.15190509135379723,0.3010676244364285,30.17214883452839,10.211436388228146
+0.14885502464178196,0.3043998810664289,24.509625456371616,8.426868362826555
+0.1498596267174399,0.30336434871415147,28.73819969183472,9.84023172384028
+0.14932707486481142,0.2926652388359681,31.242696204741513,9.543317229519069
+0.1493393858153243,0.2987869148684968,28.651787287600474,9.315085350799475
+0.15099745036163667,0.29977071719631043,37.4050401877667,12.45120883001505
+0.1488418381147123,0.3026596855413209,42.59882215266009,14.386584795757706
+0.15063650249999375,0.29419481288069693,28.516172927012345,8.90915561425285
+0.15069119417305382,0.2982169053772128,30.96976041813503,10.232778456778851
+0.152056374749353,0.29752231417496616,28.916657520783,9.487978660452132
+0.14824250837712677,0.30176054813705266,27.745890849911284,9.294188181249169
+0.14873451016092865,0.3047790496063774,27.885351242125708,9.604953688054325
+0.15081679369703693,0.29758854103461974,30.581122246376886,9.968364395289598
+0.15150756190414705,0.2943604212380749,32.54538953716241,10.319436951483336
+0.14903660266400687,0.3028423278861127,21.276470081412093,7.187508178420005
+0.1496626775881661,0.29870817155686535,30.511630229898426,9.96627475328159
+0.1506732184952405,0.2947038571920508,28.758969676121758,9.086331464560272
+0.15062948162625067,0.29690645717199626,30.70014268953594,9.925012085549103
+0.15151573416965533,0.3036745219291603,30.92756816248668,10.740750745325714
+0.15072701504528252,0.30808276169644905,31.447010135883513,11.337112294145143
+0.15043333332142783,0.30302826347005024,35.29427478860694,12.035500234064267
+0.14796175849488954,0.3020567570820356,28.815101208258547,9.631760880593152
+0.1513400430043863,0.3076281735992787,29.77291347747532,10.73418877143884
+0.1494993065490059,0.297668120838553,30.07005786251861,9.711174925165354
+0.14856096107400027,0.29153614762712277,34.915980974326985,10.539045118434398
+0.15037946377243347,0.2955069659821628,30.657723867577307,9.744096319839903
+0.14854160111256157,0.2963864691016436,32.89592679235993,10.412864309559142
+0.15042599338683654,0.3029734823023102,24.987765480242363,8.586218121065816
+0.15021562533111377,0.3032159931292589,33.66703858225691,11.48900597622827
+0.14881058478687018,0.30895293791906847,30.55108481654164,10.93832670224577
+0.14887862160876264,0.29293248293516827,33.066172325341824,10.11942977013656
+0.1505194414684429,0.2990052335143073,29.48253111801957,9.732912575853602
+0.15035718916160726,0.3022417341367291,28.567237588230533,9.689909659345533
+0.14970782120008713,0.2981900043044635,32.30276495609103,10.494453290381088
+0.15065067079719835,0.30305076801313735,28.05348172577606,9.659162602177085
+0.15010640224938784,0.29954321366637976,33.07278116121323,10.911123313564257
+0.1513780759433102,0.2933529765014724,24.863163734229083,7.79542530007503
+0.1485025802354504,0.2889561975765875,33.12404286647056,9.641095407828344
+0.148617980812029,0.30220871572676977,28.044282595340192,9.395006328245783
+0.15026218240862932,0.29359956155811845,33.992159730091295,10.60338924099093
+0.15000746619165947,0.29951452169333237,34.78046716834855,11.446516080988198
+0.14735464504874934,0.3020071001085679,29.974756878342962,9.94887352474156
+0.1489462015123405,0.3014231302177988,28.942130891156815,9.671886272716655
+0.15109221766934,0.30116865003203064,26.492630291160495,8.984764389562315
+0.14990607372801418,0.30903928738158565,26.939505903552536,9.729430120606647
+0.14905837851256684,0.3051426384726208,25.673552397923636,8.833788877606993
+0.1513891621680919,0.30290477934116955,24.391017342327338,8.35369064943788
+0.14789909058675638,0.2970894460353389,26.381353770069122,8.411129401766395
+0.15254560358486308,0.29645230584511,31.353383868520964,10.202200961537606
+0.1488904267263674,0.29530382624705465,37.83556017160271,11.912258827540295
+0.15140879043548014,0.3054891849757798,29.911101487108457,10.518217676343962
+0.14862298999967535,0.29331065458643363,28.887379413464174,8.830967619589696
+0.14962246089278627,0.2956538836422225,32.67797429568475,10.308838456314307
+0.1521307751457236,0.30188350583000534,22.719545844540868,7.7678538025006
+0.15049891535654303,0.2967385385518372,28.45081790951352,9.10818910606717
+0.14897410954073512,0.3002299685864089,31.815986693981817,10.421228707294583
+0.1494912115138194,0.29124243201836814,27.794214948095238,8.365145410311552
+0.14943883006566677,0.2975645983526866,26.586472000897174,8.587964441361477
+0.14899893945695014,0.29667462887188845,32.92250023885788,10.474033715922342
+0.14947747249227583,0.29635377044254657,28.60013094033234,9.123292076925118
+0.14997226444901463,0.2947625854186301,31.037801096619727,9.770253207878708
+0.15246488673462943,0.3021736807755437,30.648198405846475,10.481947403181147
+0.14824531672427677,0.2994292432301637,34.37180956283645,11.250197449138518
+0.14865770507028667,0.30132572409142006,37.51046135359798,12.439531915756536
+0.15035181486755173,0.28941820576670013,32.21432934807907,9.603175567663637
+0.14929396627779182,0.30020717231648014,36.106663579366696,11.97131460901144
+0.15103542194235361,0.3069167523843013,27.131839745223253,9.659835555411176
+0.15136773830648148,0.2986100535172269,25.57658382661763,8.425075152288189
+0.14943806011517735,0.29202707629072766,30.913831975060624,9.405096187122044
+0.14907297100519426,0.2922491326678277,35.16351529113215,10.686186674390004
+0.14969864237559743,0.2927590191045011,34.72509779386152,10.655325684311508
+0.1497313383171787,0.3047354160287112,31.819867534114376,10.990007966958355
+0.15186542869060218,0.29600383766372257,29.368372533172288,9.434149370911298
+0.15112123392353846,0.30437258285404006,27.068927374219776,9.379897056589204
+0.1508516700890937,0.30109521603089207,33.400996711349876,11.198274029555446
+0.15068949343267324,0.2942418088646415,29.372602234871,9.266902327087687
+0.15102577176475696,0.2997107061696577,28.1719087195424,9.387062530444409
+0.1504485627500814,0.2976272135729436,34.737108477785235,11.237030287306142
+0.14830089682360362,0.2961224325448165,29.134770092504777,9.142657898438621
+0.15132367115796574,0.3043506884586855,30.56693362728469,10.672935086885879
+0.1502265142393036,0.2926597354277678,31.310233389420013,9.607198020201164
+0.15084480360592287,0.30021170237433986,27.79690125603611,9.31925817206537
+0.15095041560138905,0.3006780835414468,23.91329428189747,8.023045911503072
+0.15020810245431784,0.3048874532769495,37.340642666530016,13.016013995018469
+0.14848684961360598,0.29978391724523995,31.123688697752538,10.206180900471018
+0.15067508446354327,0.30352155659933355,32.956394834204104,11.389353290280566
+0.14954027762946218,0.30039358358375917,35.04366538131222,11.634510135282273
+0.15037838505393444,0.3055381475600791,32.737411256220774,11.447152342519269
+0.14866323480476623,0.3012210584816714,29.637635939304193,9.837704880727571
+0.14827188914199638,0.29367161192487085,26.2698744648677,8.084857638614839
+0.15177835111378607,0.30039706778481,26.824855880194566,9.017337011565477
+0.14833435066201958,0.30257181607538025,34.42705286173292,11.535401459287252
+0.15060316221460077,0.30212586278922193,31.624855689878796,10.7320473475806
+0.14908307533219473,0.2935353604253471,37.10457517818951,11.408904478375941
+0.14870631449029914,0.29932021953678384,34.43784612758388,11.267240761816762
+0.1485201473554818,0.30102184552838845,31.732314832055422,10.539435884702897
+0.14948946561955073,0.29636052121567247,30.002111204000876,9.512414772360371
+0.14921252502903107,0.2971400729624772,31.499371376912332,10.07272907696372
+0.15180221421211734,0.30434460820791004,33.280813542989186,11.579149689204927
+0.15010939461781456,0.30134029575213417,32.204936717504715,10.851668656357907
+0.14953906772613068,0.2978298873443882,26.542767272941774,8.542149330144447
+0.1507394642148946,0.30400926577767534,29.71079738022095,10.200095120393822
+0.14799749176002927,0.312869983790329,26.463430966566104,9.809436127348643
+0.14854114843857952,0.2990479426931967,32.827999727906544,10.716030161348108
+0.14978052646974108,0.2995558776012969,28.155833915044095,9.293798455456168
+0.15014942047149393,0.30421334224983326,30.98380707350468,10.67406981485291
+0.14825063430551946,0.30020784748827994,29.60448936924272,9.687722607921188
+0.15016135649974457,0.30108827851317294,28.43309157795463,9.512905823693828
+0.15206481736168875,0.29496344762338333,32.89688383443344,10.442621078391005
+0.14961393820487712,0.299569089233074,26.738589171594395,8.746953395867845
+0.15023527367418746,0.3047444215850807,29.38703666715634,10.269709058670607
+0.15053004669463044,0.3003759320126394,38.21593850787973,12.749458522494162
+0.14702435955123497,0.30374565359790173,25.724637559617882,8.67554918211246
+0.14838398534065744,0.3045591245561123,24.887606359574992,8.494434819382256
+0.15146818323500197,0.3056103983124078,27.820375691849772,9.850403925176295
+0.1495000523007236,0.2992260784871481,36.38009177383761,11.851935998884331
+0.15140971938397185,0.3032298015513754,32.739484606635706,11.335907507328574
+0.1488271716271208,0.3031409961730739,29.09002263453478,9.87134649614667
+0.15197682556210312,0.29570213225627057,34.22638111512736,11.001198088677128
+0.15036034426592493,0.2924390502431486,38.516196081749584,11.846381633759574
+0.15013245279650164,0.3015751239066393,25.20266327902171,8.49507437103592
+0.15043160940227787,0.3056629474381446,33.55719133883869,11.837530521083183
+0.15057948928659837,0.30075618383939,37.15248144321009,12.441116134088613
+0.14961259473477834,0.298566103398207,32.71511346269855,10.645462335809999
+0.1480617648334331,0.29373608103479454,28.551739055781596,8.768378336339058
+0.14984702711159298,0.3016832686885607,32.11442414947639,10.827205269950252
+0.15095118818533287,0.3020289032555212,29.37781873948084,9.977214865971488
+0.15226940511809825,0.3023391256598035,30.681752334544527,10.573787268929967
+0.15014751802294166,0.30530170403736884,28.55255993636637,9.986581477813894
+0.15045999650742806,0.29680956456131574,26.002749700286806,8.377904820595237
+0.1498166807826996,0.30044329233124956,27.897594008021464,9.306996252313214
+0.15137608027843172,0.2997704842351296,36.11904285095457,12.09955623535999
+0.14932630106671235,0.3031496527451896,31.480360819561433,10.686550129299967
+0.14777251897529387,0.3015865666843013,34.703860125744,11.585688721671593
+0.14864780320086327,0.3027697463286341,31.20361532833983,10.547997276089935
+0.14904518444718204,0.3088662234470121,20.621495666721188,7.394529786091176
+0.15168767069747616,0.30183692214731606,31.699337250620093,10.809657567887475
+0.1502154232903429,0.30082998511963027,26.729417207940628,8.95131064440568
+0.1502816517624262,0.29562353113247597,33.40996762657556,10.661524720689957
+0.14990150047736905,0.2952763133063949,28.684299798747684,9.075167708758684
+0.15109878672360738,0.3017908635442332,28.15947624040362,9.576848033514212
+0.14966113743997192,0.2978890924405407,29.89054894957842,9.68440891342258
+0.1523440791901335,0.2991610313548832,28.606736122590952,9.548593589665304
+0.15188182758920707,0.2896411648152917,34.560299859328566,10.415967684428193
+0.1500739797467171,0.3005551278450767,31.108258079846312,10.324178166194624
+0.14966290501315066,0.3050704851299481,30.54229099469924,10.59810448706134
+0.150117220412984,0.2987633719435091,32.109617051356615,10.49735182722204
+0.14999700224795112,0.300894024162922,32.34488398845356,10.85836038909554
+0.14852273278117456,0.30681293971398166,32.03293610355612,11.305356497539709
+0.14981061853669592,0.2975322410076269,36.895664952401816,11.915639730428335
+0.14836067525898564,0.2999712023404381,26.418067837304594,8.677048213106008
+0.15051615024583717,0.3007433232544039,32.69987523779992,10.925551142969109
+0.14908703362225473,0.30434776230674154,34.28802799493467,11.842314450581972
+0.1505287553182353,0.2950362682177472,33.581819114094166,10.573156775847217
+0.15048564191763408,0.29810089696847875,34.55986452781451,11.281720117724017
+0.1510401797183199,0.30373805718889013,25.545443281943733,8.80616355512323
+0.14911938925416693,0.3076847786096034,27.691425144674056,9.797648571839932
+0.1496509161656514,0.3003708299469825,32.19100573844747,10.698035382879109
+0.1494529074978864,0.29763998269006314,29.008166282029237,9.359190689540705
+0.15015535414002032,0.3028874834519318,31.738964238627034,10.84226870362939
+0.14980862417787866,0.3025504932725788,34.12748458215554,11.560088950221997
+0.14869895041216769,0.29786796090327583,31.344704906797304,10.060117345258254
+0.1500464412623499,0.30496487743726286,31.968772371261693,11.045334582401685
+0.1514897736187552,0.2994585644275404,35.0906534138814,11.77342813384168
+0.15027535846222037,0.30524534024379807,32.29585354737274,11.277178658638825
+0.1491280776532678,0.29385254058544924,27.577891541263465,8.479062792925316
+0.1494859117446408,0.30944891861670565,29.152826628066464,10.569902298405088
+0.1493015397422585,0.29747934053674613,33.61905901260987,10.854406800692015
+0.1499255365093614,0.3011383710100658,25.57933503402411,8.570368096445911
+0.15085552402738706,0.2951822905839919,33.10771304998813,10.465696099103116
+0.1498655560839994,0.3048579479788069,32.472556088798754,11.25680857071457
+0.14901241180556443,0.29193982782152406,28.833055954384356,8.730405400776146
+0.14805696856048636,0.29966431409083555,24.756456811611404,8.10782091232095
+0.1492961095354459,0.29303034081792395,32.90013412462343,10.04844058828422
+0.15102939503865526,0.30242649314956377,26.553129109203383,9.079238632518909
+0.14910317009658672,0.3010415199833536,31.269410134030696,10.351955880218027
+0.15033687017352396,0.30132087384907574,27.793891873699913,9.413476267951497
+0.1497411515929939,0.3024566332015011,29.938452215415257,10.16056077193686
+0.15011493518789243,0.29706436042421946,28.22507065292436,9.092947774677222
+0.1522352846223091,0.303171415944236,22.25513583563076,7.692358719951711
+0.15006260996974202,0.3034246280696961,29.781559131903816,10.14044053303566
+0.14860670748870447,0.30399389430941903,26.283195265410903,8.943981352584952
+0.14912327176131135,0.2972173955354641,25.891187856194513,8.356968537234174
+0.14989889774676396,0.2986839955122055,32.30942722171709,10.59126063918395
+0.1494283775266292,0.2972453168812659,27.902408501779583,8.967974602019655
+0.1499333314537789,0.308567785743977,28.170102082844583,10.166602364228671
+0.15104536867750967,0.302148443772199,32.380816992806054,11.085347160219317
+0.14927187306947262,0.2960677099389736,34.06056957879332,10.78939647688732
+0.15147049321730152,0.3023394499746647,28.821047415273707,9.909594480546575
+0.14947198972239484,0.3011104833864904,30.40200671261128,10.16495920550631
+0.1485928599924232,0.30065274351695087,36.857322404574106,12.181878147397649
+0.14788677659117797,0.3014934108711243,33.684847394998926,11.182213696892944
+0.1534450955405402,0.29164945737725545,27.547020850463838,8.631200052724218
+0.14970223468303828,0.2962741450194531,23.57887987194736,7.553885482754489
+0.15005571803635154,0.30207705467014256,32.04384375789667,10.864960341752953
+0.15129064893057087,0.3024499208051496,35.528603954076836,12.214324044287103
+0.1465487423566503,0.298522157161681,24.833782143618812,7.90340734245203
+0.14905969372158398,0.30290695354624636,31.398765608724442,10.687594326555972
+0.15069448310580943,0.29651549968841096,30.340475347170333,9.773573483221156
+0.1503850449170778,0.29738938021208405,37.05371860164672,11.942025646425002
+0.15109464468925787,0.3058060848246122,28.376192479321986,10.030465224674131
+0.15092026978481918,0.30165547582873664,33.62551618104959,11.42170161383231
+0.15219612317402734,0.30941308524379824,28.255545906388182,10.405068037444318
+0.1502526850953579,0.30715345172804187,27.579466395650538,9.812116235797857
+0.14926894006855657,0.30044447103806055,24.724248903221955,8.17340271437005
+0.14827295038916702,0.3015139718887347,32.98376882644049,10.954790235308602
+0.14948834938608707,0.2984763002764802,26.703873590945438,8.697522258475837
+0.14920052994182254,0.3007602881528303,29.395944075338203,9.782117970214184
+0.14889528503040264,0.2909872996198546,37.49724028539502,11.254635462682575
+0.1526339208382566,0.2965342885069346,29.53001339247526,9.630592954595246
+0.15073555713512418,0.304831718129562,36.35748343338501,12.64444505272867
+0.1518608169778252,0.3047871391714829,23.513047664432236,8.236457378676949
+0.14996173832801762,0.307889181065468,29.64620660857909,10.593001040303488
+0.14876993672651284,0.30137569059980474,29.222946470931976,9.808569636247842
+0.14831698231468565,0.3090350217247938,32.94886262081787,11.84908585367105
+0.14922916240985257,0.30367907930970056,33.423168480748124,11.384824680410453
+0.14986845679461588,0.2989213409134879,27.06223561508166,8.827600986802167
+0.15024404872277405,0.301918515370348,31.77707339629321,10.682278853661293
+0.14938430977263206,0.3011509217102101,28.414422031043664,9.469284994657531
+0.1509499781033675,0.3022101309851175,32.88142400863307,11.110441908383848
+0.1507888503621036,0.296918931384189,25.582584363916112,8.253921281203368
+0.14894686001643886,0.30336337122284296,35.05678398313572,11.776661359979537
+0.15075415908753562,0.29403609481463133,28.15956218009198,8.847847959124518
+0.1487923772514489,0.3071790801833122,26.200664895081065,9.271040237627192
+0.15107002534773875,0.2950562071288171,34.96498761834912,11.046759183020216
+0.14988044029556732,0.31067720624280387,28.268991469140595,10.333312151510395
+0.15086750357367804,0.2934697612698689,26.751213005907324,8.364472794881905
+0.14885455717661109,0.30167510303048406,34.73100822539255,11.561228342351926
+0.1502541500449367,0.3031764977364861,29.816153569693878,10.209462668964548
+0.1503528360755281,0.30646308775558595,33.248669916170016,11.817149153369378
+0.15091774123042762,0.2901652349815411,35.17873521447297,10.547555735497365
+0.1495877173943139,0.2940223532781928,36.53360025977236,11.402314911228187
+0.15002257435210956,0.2947256698208151,30.90490726031993,9.699326698231832
+0.1519549058520446,0.29992409412345383,25.733870311051447,8.608871746396925
+0.15000211106029943,0.29471578772441265,31.6301514270727,9.845369551716582
+0.1489180567170011,0.2947507553251591,31.925144971068626,10.000493310630022
+0.14971059480000662,0.28988442502402495,33.795701993172,10.148910497686016
+0.15109356095862123,0.2969819921447525,31.306806646278783,10.120043224294855
+0.15198264220534038,0.304148894905014,27.483058629707383,9.61050647769376
+0.14897506862611645,0.29848599815535387,26.55579794295399,8.611612934212031
+0.15094964225346486,0.29550456245959383,30.337149502676944,9.634014184994209
+0.1494934582733417,0.294688995336541,31.436887522177226,9.84827084717634
+0.1513460882606624,0.3039522565981036,36.81068221816568,12.761237796387192
+0.14961159228275622,0.3075540757328494,27.729881230162828,9.859738438340095
+0.14904821060179504,0.3022214134123605,26.231863666208277,8.783562953794359
+0.15092536717519364,0.29048061037102024,26.570770026138426,8.08118916542722
+0.14997307458668188,0.3003204709074739,33.937665336028836,11.293134548622719
+0.1507379341674516,0.29771805021479814,27.24705703761347,8.836606922975344
+0.15069751389170552,0.304910509168307,25.651003207644138,8.952736151857765
+0.15192588820169364,0.30357719884366297,37.291391651642286,13.041536493999775
+0.14926661140244188,0.29914640686968624,38.6896026998953,12.667427663210246
+0.14867923868783592,0.3024091754438188,29.608991606465246,9.922620132013492
+0.15023055023452545,0.29522525162099744,33.10039732488627,10.48120791342317
+0.15005674450729864,0.2973327972026254,29.12398153162336,9.378592793622097
+0.14860231337978883,0.30526405618629127,34.15811440584288,11.79832423603548
+0.15063917442891148,0.2961681081232702,27.03122331875921,8.65065291660294
+0.1507794980345681,0.3044005089842395,28.920214700039754,9.997297650100334
+0.14969647245056217,0.2949170860834301,25.442222140669255,7.979398735359632
+0.1499364585256781,0.303731504858062,30.45917463345155,10.436651341363108
+0.14933179242065167,0.3017697152854228,31.421884684545105,10.582523966678865
+0.14890239606114092,0.3014754324546571,33.075336726605045,11.096719370441585
+0.14903699398636183,0.2966914690434083,25.46332963525938,8.127613506530858
+0.15019932349464388,0.3012439829248921,34.89887994161067,11.716463236742038
+0.1513546877921181,0.29528728516440056,36.2146324243392,11.498234482846144
+0.15001868941609428,0.30503672752671357,32.134543910383066,11.242015650973794
+0.151249720336153,0.2974595376618949,31.476501757241376,10.226516806565694
+0.14964099274873477,0.30902497554482167,31.287773027969088,11.312391907096606
+0.15126217046083892,0.29916032632769624,28.984274049023853,9.635435687264673
+0.1497821079999026,0.296815107908888,34.93741855972432,11.147102367427705
+0.15099872782302493,0.29622232316795405,24.72793662723326,7.969926097638872
+0.14813448603770774,0.29817423942352095,29.358431700961614,9.42017318438075
+0.15014534296993506,0.298666684137654,23.759845313360163,7.806113911938393
+0.15145504676205232,0.302830588500263,28.367106168001598,9.678751950038567
+0.14846861017124688,0.3055880429449785,32.4523568284763,11.281842842727114
+0.15105586892568001,0.3007656935422262,24.195492485674503,8.096330557185862
+0.148319430215602,0.30184185686371523,30.35619167529384,10.038249489220105
+0.14790869157292738,0.3013889225119847,33.29212571309671,10.980495133512086
+0.14992797029618493,0.2985458221960667,28.465090127518515,9.258350737998345
+0.15139042434189637,0.3080865611920626,27.123095627916314,9.821726008597887
+0.14853037414207285,0.3018217384497203,29.37304809625043,9.846609036455389
+0.15105307195557519,0.298047350982027,34.48556932002956,11.316443023021991
+0.14959842917846974,0.3019691734891241,27.591577968767115,9.269141395772568
+0.1493937208482183,0.30140470089916505,30.431032784853503,10.168539386477361
+0.1495122995268323,0.2985099040635329,31.730210905183917,10.285892283056292
+0.15034963921120673,0.30464752548532453,33.26205234186775,11.56507447635402
+0.14988711156120407,0.29971813325130897,26.299294227021893,8.71993811984543
+0.15170918938180084,0.3021648960917383,28.001030365228118,9.549338663473081
+0.14873455839735883,0.2953097338186062,30.976014616628948,9.727657006065758
+0.1482526294873665,0.2939687581601697,31.01641054391824,9.54685361604032
+0.14978834552647866,0.3035929370923891,22.85158145823892,7.854512110889571
+0.15064534357747447,0.29789532851811695,30.176549723443927,9.847280064415953
+0.1499353294298719,0.30214993796382983,27.801573658579606,9.430783415303049
+0.1508015667616332,0.295945246549652,30.817836313350774,9.807732270404276
+0.15119573930207986,0.3029512307649275,28.873206503399185,9.957238618867455
+0.1513343675066051,0.30323865051553595,25.86418591858291,8.934865588297727
+0.15102395343458125,0.2985337015093916,31.389621037245742,10.348530899458288
+0.14909935657614576,0.30150730327119424,27.744378344633184,9.321525363953352
+0.14799883654732868,0.29767847218769755,29.893882008354968,9.569892633358771
+0.15011830875101023,0.30491850217079497,35.78934919167952,12.490383370264542
+0.15036872420816705,0.3011543293618798,21.094531303016034,7.114836782941664
+0.14919508757361002,0.2974975525422714,29.01344616729451,9.348211204227884
+0.15045985120209265,0.30655280040476574,24.735846894397316,8.736340322571591
+0.15041882113366625,0.30374813801100814,28.616751866594097,9.843928472718217
+0.15038618106089033,0.30373284430420855,27.944221781204686,9.629999296666975
+0.15024740511423207,0.29996932997606574,29.593343089564843,9.84068807077319
+0.15058812941131425,0.30273651725799045,25.23530118615858,8.61100377122666
+0.1491852140120376,0.30020353774738756,32.29292094353527,10.634007524510153
+0.15055205305303637,0.296051018661512,31.93800930584642,10.160357681160134
+0.15218479630266712,0.2982949607819614,29.971809077698108,9.907797520622855
+0.1511738422813631,0.30285061158479437,29.000360073039403,9.890843427806097
+0.14898502676481884,0.3003609857685698,30.76287184959528,10.134151616260668
+0.1492396885005696,0.3129014897025312,23.355609958695464,8.703475850297787
+0.15068954056924036,0.29995452377227644,27.121918716032788,9.024102312186214
+0.1507193145356798,0.30278014745891574,35.59357881226246,12.152839289383953
+0.150177677631047,0.30511608999874107,31.566935426586223,11.022630571887593
+0.15011029301926526,0.2963720663850639,30.311736631464964,9.67237331042449
+0.14956646868907353,0.3004292489549872,27.66734872442327,9.14843010753461
+0.1501764198816447,0.2971921821852169,28.411789008120525,9.13535444925497
+0.1492675846839113,0.30384110553014265,33.728642160264414,11.521214151125157
+0.1503890913442549,0.2989649137423486,28.242903769900597,9.295181418102398
+0.14960555952363722,0.293553399403261,37.67793676897928,11.665375312183281
+0.14923607342729084,0.2915876610197609,31.834189496829204,9.640339761258684
+0.15099895342196842,0.29735154818652115,34.68469994281711,11.225876704501749
+0.1492827961276359,0.30124835697004815,34.484560252242304,11.469182395128254
+0.1492082967198867,0.3066600147515532,21.763527165537987,7.660706528670348
+0.14958476575920931,0.29942199481592974,26.921301094569905,8.881571950254422
+0.1506170764470775,0.29850584179353995,31.50486206284666,10.326942358209852
+0.15066294330778884,0.29475166303611866,30.735251397302076,9.711031403177827
+0.15039960373806469,0.29954917423541405,31.871453513816324,10.506725096610086
+0.15038360651891883,0.30411495802183575,33.26839520643552,11.577601241918899
+0.1492926676191027,0.3051310236502594,25.153593482107887,8.81757472533746
+0.15014933242000017,0.2989386644363175,34.85654342933141,11.408159297309084
+0.14956983781023406,0.2984828686931834,38.59989520644059,12.557841048532621
+0.15029669082979438,0.29331654060769496,40.72087411938509,12.646674697306084
+0.15023816923574768,0.29884688804984266,36.29063056354882,11.832952337682643
+0.14895810851794447,0.2996367895458192,25.62607699798423,8.417207112018616
+0.1488229926662229,0.2931306845847303,31.55811453592786,9.683485319239631
+0.1502748830994016,0.301770028414485,30.941466540406875,10.454513736091233
+0.1508183994939936,0.29918292101924415,34.01787246782353,11.286134659568411
+0.1514334614877137,0.29988294228244283,34.64206461325075,11.561536513701439
+0.15033309990750587,0.29396369704077635,26.300653658882407,8.201538236375109
+0.15094790279978304,0.3060515324844584,26.730576716823098,9.43164559618192
+0.1503674619335804,0.3025815567833557,27.262460287968377,9.31417153784119
+0.14684094116674157,0.30192363271123435,27.70143106974904,9.157390012175188
+0.14975083901151065,0.29790376733011875,27.803517043271256,8.976639705138691
+0.15044620884782595,0.29930461804864894,27.156790697383784,8.997593963729885
+0.1497411878489146,0.29777805027618176,31.604816642515875,10.223777170729724
+0.15083253984836467,0.29808375848817104,32.3134871578629,10.586429678713277
+0.15152855995812176,0.3090632737764064,28.47696369625653,10.393508968594054
+0.15101457761939477,0.3032977344742639,27.945593617016996,9.625998452445055
+0.15084310819275346,0.29349565382900866,33.27676958626664,10.345389243771228
+0.15085491554265365,0.3021933198630372,27.261326767905178,9.265981532123753
+0.1515868072944303,0.3018349219664475,29.64395409537417,10.07895309002416
+0.14838051888977336,0.29645714146121155,34.66521388793286,10.99298187546579
+0.14872113936317696,0.2941752177513343,27.781412503624622,8.620205033640095
+0.1502716106006808,0.30378168186319754,25.87233968068197,8.905886652306144
+0.1494606526771229,0.3020408078275209,27.30000410744591,9.186713583169913
+0.14805998331115525,0.2975410512595198,36.70432634026305,11.796432676541592
+0.14939314291672123,0.29986858004746597,27.077631190859677,8.993470264235327
+0.15075588720167263,0.300851483012567,36.19917270759613,12.13263943846799
+0.1509326389534458,0.2949754078922568,34.714724827496674,11.054291212413816
+0.15138858382758066,0.3026131209002586,30.872036145440124,10.57373967140795
+0.14914178436387637,0.299862319809515,26.01755515227816,8.580735530277664
+0.15056881562648386,0.29989240234088904,31.724061970127636,10.560745395334024
+0.14932912910274593,0.3119926784972076,29.57576466418941,10.990776728060661
+0.14849213766759733,0.3021364196609171,26.74580161668225,8.946538982356994
+0.1489334197655789,0.29629806538814013,35.86520034650329,11.350002670987365
+0.15021677976924774,0.30884280321231333,32.09587365314105,11.648530821805952
+0.15059299335220533,0.30375425050143195,28.968119275752816,9.968512642098972
+0.14998996156300157,0.296154015826597,29.276427907885285,9.344756810961114
+0.15172035565235537,0.3007442121371496,37.867350920028564,12.83717119189501
+0.14922456403041703,0.30081981687462594,32.65276024835169,10.826367218164261
+0.14946741916897519,0.3003101914027999,33.34297461980381,11.053973528829186
+0.15025543263372534,0.3021579851506451,30.439583502185545,10.29373220196607
+0.15003875660122135,0.30137417587092735,32.03929910258014,10.776538113346524
+0.15018023203048453,0.3071920023937107,27.78105138876704,9.93264274322018
+0.15001859654708857,0.3065685034975503,25.7854819832491,9.16053134037225
+0.15128749381711218,0.30167273334308414,31.59540513858968,10.664974133439017
+0.14991605630840996,0.30490508912724984,30.770290161367342,10.726798199225577
+0.14966519845196866,0.29733707229006023,32.699495539775356,10.45925635131811
+0.1496623004039936,0.29854373731845285,32.000981333811616,10.47013988798992
+0.15099125429728752,0.3014235424295824,32.10478019388745,10.84083825400878
+0.15064815314581614,0.3013209615661064,27.466591156527,9.229790125419798
+0.14945301106507863,0.300933377550713,25.149835842268544,8.334603512835368
+0.1499615756808566,0.2976613455549162,27.470437040736073,8.896065969535172
+0.15193734316447108,0.30055628284606034,25.486926591736097,8.558631151434192
+0.1501480262652061,0.3033407324860105,32.29919319780624,10.981026935595676
+0.15027217644863589,0.30125412783275807,31.93838404739987,10.63735841178267
+0.14962706740198267,0.30330944144611965,36.501956901450455,12.48136982678313
+0.15051835166125535,0.30061714886699126,36.15859907808126,12.08208306644241
+0.15105173234262076,0.29651328318625236,30.532276263999833,9.84484153064835
+0.14927044761532215,0.30301188555432196,23.41575012114615,7.885288830626537
+0.14970159891164067,0.2989857399528463,27.527391313482664,9.000159347592957
+0.15076835996938107,0.3035918943696703,31.51159632084542,10.881764143778913
+0.14742774186063176,0.2964464146682,30.618276499884217,9.594209276427293
+0.14951862628074358,0.30433446958978405,33.87006542192904,11.762052428429033
+0.15157279267562157,0.3017088544534536,22.635261502301322,7.6924489815960975
+0.15029126933672765,0.30097597348049193,35.09474330854233,11.720130278117585
+0.15013517563372422,0.30206146571327014,30.873859477451543,10.429549112415577
+0.15150136733667993,0.29278887499200396,28.486946950352777,8.908175577480772
+0.15108611992470827,0.2929763473045553,33.23617001638077,10.362973147352905
+0.14889635849214522,0.30532178221377543,24.005144179498075,8.309769374931872
+0.150937685638516,0.29593633189772023,31.881305074622567,10.188644452330943
+0.14998654077364318,0.2931192437911638,25.91754274596232,8.007533983466832
+0.15001372525248866,0.30246740777850173,28.583944117863012,9.721550051528311
+0.1508059402373685,0.3033347795517856,30.388657534307782,10.444991035255544
+0.14918613954106863,0.2998074160659683,27.33758190080939,8.962927060864109
+0.1510236003438804,0.289987662392049,31.6555682613191,9.472140840876072
+0.14950143644270464,0.2997811181288079,23.073341875991286,7.56832995873447
+0.14995499538363685,0.2945212898066783,33.76754668725887,10.592191115076549
+0.15107291062233838,0.30028824095241424,31.604892867334573,10.539783860010711
+0.14897744160366866,0.3085046054170418,26.45831618482862,9.420444506685868
+0.15141283023521593,0.3015041341878187,30.136922764413423,10.185229746053519
+0.14762666649594935,0.2993637662029128,27.291392295213935,8.873284770562869
+0.15006423875398403,0.29989562891229926,32.41392338278956,10.75243625106582
+0.1489512208018944,0.29637795881969037,34.88342010337186,11.067613438171369
+0.14852318123230684,0.30419513252641256,35.9896688877274,12.331662807356187
+0.15041761172546658,0.30094156366002434,33.29561415398657,11.20710952724135
+0.14936673570650297,0.29934612429443463,35.63410509301917,11.596052507269599
+0.14999615201392985,0.29716737188817866,27.245571049802972,8.742134763668354
+0.14901868450845251,0.29432479924205845,27.04880734044346,8.369919414820473
+0.15071597819450855,0.29992889311433496,34.181118301890436,11.300229727379396
+0.15018866456604216,0.3008217376428249,33.44091945765427,11.220056409410645
+0.14794387604954953,0.299945474345407,29.198011113527915,9.514176261026051
+0.15088968154762258,0.3022619673657594,28.771051319827812,9.76649300418183
+0.14914889985130467,0.2978580941484519,35.70690459936236,11.522204684134268
+0.15025996788273904,0.2978002544553836,30.214609929955195,9.816563407186466
+0.15026618887022195,0.29870525029477446,31.80347751078522,10.43956326575468
+0.1500137539124828,0.29708434099728376,33.063176596445494,10.686008637865871
+0.14953949754577628,0.2916234793561537,36.32707234013692,11.004653642711645
+0.1503129480106543,0.2988898825982795,35.19959801916428,11.56929031067122
+0.15170443049506974,0.2996211150114338,34.447648197249144,11.432129182682546
+0.1501752195272987,0.2927535344724037,31.804551205309274,9.825265260870875
+0.14838358741597696,0.3004080293425511,31.093975537133975,10.183096364258576
+0.1496067981768419,0.30211837611273085,27.63191929961708,9.32010694088763
+0.1476939995857755,0.294806881413546,33.96506422008545,10.46960718282136
+0.1510533905869901,0.29829219621223013,33.406410205237215,10.957776374901826
+0.1512242049490659,0.3032870134995776,33.80445147157506,11.670589657708819
+0.14916744963982242,0.3061261883443064,29.407473356573654,10.303071677091312
+0.1501204022371424,0.30217714612460683,32.71552216260066,11.097094010430462
+0.15080888615692886,0.294735017358906,31.456994421047533,9.933285342533209
+0.14978579080645862,0.3026652664402885,30.19299026386127,10.253523750369805
+0.14823173193558636,0.30018954236847534,26.97234864159212,8.862328648479297
+0.1508816361315773,0.2957853667688422,37.42465495206485,11.96280147088533
+0.15033343762128457,0.300561720799264,31.721720170211864,10.59817170291047
+0.14939919409839245,0.302508523376945,30.305380707156544,10.233033207692523
+0.15006763693664407,0.2981711107285202,35.855512776273734,11.619723193631305
+0.15002520749919218,0.3026130516136215,34.593621498129615,11.770056402184327
+0.15062667677313957,0.2969836196710375,36.20042937635599,11.695876578225128
+0.14956622090726757,0.2982735185074939,30.680841265240353,9.94572882688327
+0.1501291804880908,0.3004859160830332,25.736741820372078,8.580036312323314
+0.14957997111358565,0.29607779323199995,25.897047668044394,8.240589033330718
+0.14990880397586995,0.29745501312143396,29.39660497745309,9.507115420622418
+0.14810116189704758,0.295115683198499,29.54458089848283,9.18348460222281
+0.14913530822175125,0.30270925072468485,30.485640208739824,10.309818619860062
+0.1510290807570725,0.3020427974475401,31.853770023353228,10.867387555148479
+0.14869509840329742,0.29926660885657236,26.51632463548105,8.672069524224176
+0.15072078078182774,0.3017304271744159,33.361510264567436,11.242310713831738
+0.1509367605754511,0.2963234152522311,27.68947073760433,8.896595134724901
+0.1506830469350529,0.29694822946232674,26.434389760897645,8.579453983659022
+0.1504977494317284,0.29889582470758785,31.24640089011988,10.254247797759087
+0.14906374205329614,0.2989539374740569,31.910509296208765,10.386106879165496
+0.15043294783217107,0.3022923578103525,30.479594507469496,10.385825502885126
+0.15103033376788386,0.306558769330646,29.114676009900517,10.375406011182175
+0.14813800100510763,0.2985758406645905,25.983801171498932,8.375189142157899
+0.1498239478978008,0.30395755867524604,32.049911180077785,11.021361371939852
+0.14830487926303187,0.3034081430133935,32.5471203996736,11.06495093536526
+0.15053478252873861,0.30453961152271075,35.59144116307631,12.352695862727236
+0.1515203393270186,0.3079747960900987,37.123394827212344,13.498755986199946
+0.15100960549879305,0.3007039491224379,29.256633260245682,9.837151677984464
+0.1476158617298777,0.30236277449305604,27.234355514259505,9.070490729137697
+0.15072330919523244,0.30253145915006197,27.59895360141533,9.46514951290072
+0.15144397693259856,0.3025853020045724,24.047993818909195,8.25354725186766
+0.14976916870570445,0.2999385961403044,30.719932933637097,10.065942738556982
+0.14945411194360014,0.2945401631480439,34.96909307431436,10.920156468596382
+0.14856798008792343,0.2927448735811818,25.072014310215835,7.636178913210427
+0.15020901157943053,0.29956654801610744,34.99302487141387,11.583192757805296
+0.14863197041458337,0.29797735622241217,34.783059379367934,11.161632465566225
+0.15110530025835425,0.29921596374742093,28.251532981484026,9.31401755151908
+0.15048452882289368,0.30011501010920477,27.967516910313158,9.352098923992132
+0.15243895483406758,0.2975008420199631,21.650865789222493,7.107085211072656
+0.15067138335718613,0.2970915417518866,29.99061812260256,9.721014478828373
+0.1515247804056468,0.30317031349612356,33.059729283195736,11.361672418892676
+0.14953099259110703,0.2921683087911748,28.431904907272767,8.670840393366774
+0.14957457977824412,0.2914517733387389,25.781854344021617,7.801649019914036
+0.1498902377627716,0.29626303964398026,25.097552230910587,7.981953616048438
+0.1498006955516171,0.3095514188456642,32.96534165555802,11.937590414783557
+0.14992211996844215,0.2956438729616089,27.499617964178434,8.690186643323932
+0.15056435963681028,0.3047674293501293,30.56532167665073,10.669978065969064
+0.1495138894325046,0.2880664905932088,21.883329271507712,6.417950263282249
+0.15020964920694496,0.2988724279659941,29.283225588971106,9.6107859898356
+0.15082697546186735,0.30065932155023306,32.85995724210435,10.991574391161471
+0.1504118438320323,0.2993437012961043,27.91229244476032,9.215587839641776
+0.15237753531682657,0.29977232642238977,36.54926100909067,12.257913980499692
+0.14916746084735927,0.30571841346496953,31.318280451474283,10.906867446401455
+0.14980871251157968,0.29196342457094177,31.089335366468816,9.432312685067243
+0.15052803513510668,0.29683738691145545,31.968677448488375,10.281480808269658
+0.1479024251901781,0.295846705780382,30.941350264546113,9.691274285405807
+0.14897218005543578,0.30015655339358105,32.85721050937354,10.823515432651437
+0.15114125169489967,0.30204159106289247,34.08228645353533,11.584930382793006
+0.15052720153998558,0.30171089751491736,27.75606936023637,9.3793462284118
+0.1490189532116427,0.31339213590916637,29.282629468392027,11.020600640177715
+0.14931858255736838,0.3045059111676515,25.364211422566452,8.737833109831781
+0.15020911549698143,0.2996736504595719,30.93095963370729,10.246001443613583
+0.1512471836611624,0.2977910292707081,30.089065165671336,9.803992129689632
+0.15189530899743495,0.2986461604770501,28.20517986604195,9.351932241057213
+0.1508691292370478,0.3051062150010043,30.058256235097634,10.495639055747139
+0.1499322836335957,0.3043476505734612,37.46630126977707,12.920569432220635
+0.150527559254552,0.2964948641735151,26.746121279229676,8.594892458484802
+0.15054727252357028,0.29966143130475625,28.27589033133696,9.364626273409906
+0.1495166882833843,0.3025465284559638,31.6187293525856,10.743421113529362
+0.1496149122080071,0.2988446072305597,32.14063234538184,10.527418153830086
+0.14822810549607887,0.29855471406750284,40.50216035830114,13.045942907881523
+0.14958110380085657,0.29622429559008806,30.042987888871412,9.613133930636812
+0.15009866425000715,0.3048230748560001,28.841776676405694,9.989615941981587
+0.14918783620076195,0.29829332209061327,26.090096135423217,8.430721543889055
+0.15089008483345806,0.29462508197623516,34.78567159799842,10.971799138270168
+0.15031324270911942,0.29584364657253964,27.360308007465825,8.700360249968233
+0.1490067256156974,0.30586547270079606,33.96027395289742,11.86044751949246
+0.14994735727886896,0.29999057568664284,30.24169409691199,10.021821587565075
+0.14986122000819457,0.29660596655518484,32.17193130267108,10.326364992280173
+0.1514659648717259,0.3008358517144191,30.51487565645458,10.247957704262044
+0.14934166676786056,0.2988898854693365,37.05438062622995,12.101372536950185
+0.1514357648599,0.29436326811462066,33.527773857055976,10.607357023246358
+0.14935547119016884,0.2962995151275229,29.8841395530142,9.446401141681639
+0.15039603376297547,0.3058240216010291,28.068024960179443,9.848597907580814
+0.14996729653090501,0.29975602550900576,32.67036288114924,10.756640194378935
+0.1488991565664524,0.30566500198673685,28.105002025050656,9.848045414433072
+0.14864280712223094,0.29771316528132863,33.78668686487765,10.843820787728273
+0.14887351854828854,0.2951575289930031,29.093557734549307,9.082114271091546
+0.14938027195051046,0.3042836205209738,29.29201755246359,10.110029547405741
+0.14891354401303153,0.29509796621764844,36.33896817961727,11.39053179135551
+0.15113669043137987,0.3023279715822817,28.639375334428042,9.81310299978404
+0.15052272848766524,0.2999170936947808,34.913787003027835,11.543948571053724
+0.1500252556185344,0.30435383123377585,31.414343797073936,10.828464232926
+0.15068956020418137,0.29643931527458756,32.2446765564611,10.393210941184396
+0.14858706217324727,0.29791320239282176,34.30211782006229,11.060143320312433
+0.1502274209983394,0.30129035948968425,27.916171561600315,9.363678586290343
+0.1502265069004289,0.2970912447943692,33.76873550401297,10.858090756806757
+0.14988050973352157,0.2965877609370473,27.545067302340406,8.839018737190695
+0.14848026919664828,0.2995691535953948,29.607332868993275,9.625359862745617
+0.1505813509878999,0.30088642359710344,29.55176898364864,9.925190573280528
+0.1509229185814729,0.2997843622412984,29.9712161995814,10.00939843856159
+0.15107011097115747,0.300000621920198,30.81194368297223,10.258691685885609
+0.1492170096696856,0.30070771529744617,37.506390657732695,12.475251818368552
+0.15000423669964397,0.307713162439284,32.38927368627511,11.597845364038426
+0.1498798536213614,0.3064370633147597,29.704236775236442,10.525736870788263
+0.1504176478965641,0.30117906931284427,32.637321267897384,10.970785593132737
+0.15194528249256337,0.3049053065387763,30.245800043204603,10.649854805371916
+0.15085633435763687,0.29695610675817086,28.52881167630997,9.228645262844987
+0.1512214384406079,0.289955649363796,33.39641694979857,10.082530387363066
+0.14876669386805672,0.3084198096622454,35.38609048143071,12.61738068526331
+0.1492980527876731,0.2916488087442748,29.07169849936675,8.847135360170599
+0.1508140668907221,0.29391335449230316,39.503654374452886,12.366217229207333
+0.14965989468233906,0.300212058617775,35.551514648235305,11.777463542519078
+0.15230251647049375,0.30499636388842855,24.892018318160332,8.789224160734591
+0.14948378829391232,0.2896675413672151,32.910640350527125,9.812529234935022
+0.14891461207732828,0.3048768140604178,29.44658371926898,10.130587051305382
+0.15037065525049279,0.300307910281548,31.359361773172278,10.455096844860542
+0.15198094096467527,0.3028770800716521,37.35490171463296,12.88725329435983
+0.15007239552825205,0.3022284718225873,29.784375187623425,10.142038499756614
+0.15050842902699438,0.29564889145887113,38.11425141742676,12.139267826207918
+0.1496908433526373,0.3001025493340731,29.172366850873175,9.647477218564111
+0.14896322030323522,0.30203656932377193,29.37823289361273,9.792395477861124
+0.14993481677988327,0.30169299876207045,31.548994585398223,10.627899187689952
+0.14724446318997697,0.29961403920452073,30.746484693573542,9.980440979504785
+0.14840156152653608,0.29850862010238655,34.58554484358456,11.151374621223978
+0.14970014472678264,0.2978662446870938,34.93739547047796,11.324639201111518
+0.15008693225266287,0.31120615852848216,22.785055005035783,8.445986831804309
+0.1510068729769792,0.2975969834002878,33.364789040028946,10.842024137827318
+0.14986308082535857,0.30394543157449244,30.36708525477716,10.46064206170533
+0.14999417816297356,0.298699524938535,23.35615347859842,7.624812148029841
+0.14917786476179606,0.2896892900632804,33.60566948833966,9.962832075369574
+0.1496564852955943,0.3023315201934147,29.910749115122886,10.13532608098323
+0.14989096029553303,0.3015594005074382,29.962681107061627,10.07448710361358
+0.15099152743702818,0.2980664045686478,25.864971662339094,8.455933057439545
+0.15000195991331366,0.29022719203342534,37.15389419105281,11.124104230330971
+0.14732159894226532,0.2944248097371885,28.9442618085757,8.902662571367227
+0.15060641865651012,0.3029626505486804,28.832894045907757,9.88253862130696
+0.15175533707065642,0.3024543550754417,25.967765633133283,8.926422475105827
+0.14922166228034395,0.2996031594590853,24.072895206766074,7.874507522159357
+0.1495974524561277,0.30149968194178745,30.08102670913384,10.15752359771379
+0.15030369232994675,0.2977802392533552,28.929508941792353,9.385589435460103
+0.15047145784126828,0.3091227961115721,33.453919277423395,12.23423492550545
+0.14979968222080933,0.30869684968815564,29.1240331719265,10.515182765634954
+0.15175202020452652,0.29978662983013693,24.6182210519918,8.230811076383706
+0.15111664367414696,0.2929350094907366,33.8070186665512,10.493042771003543
+0.14773141658685507,0.30607896668907947,38.98967597357519,13.544809983048282
+0.15048592577426922,0.29878713049232064,26.437012745649692,8.678134751206814
+0.14860420096978091,0.30230835995059174,27.72777258834572,9.300707687431101
+0.15033857813973972,0.29898312387821013,30.242799146657802,9.968959689094193
+0.1501744352338197,0.2972616334358997,34.0690912287057,10.994471489005111
+0.15077366270278045,0.3070321211120317,31.577679594850753,11.245284211837168
+0.1493241753644689,0.28674473066892975,29.456352127605292,8.51200181832041
+0.1478064272661276,0.30505432656709514,33.835177705221355,11.590950243971786
+0.1505774285902777,0.294560162915343,34.22712842613574,10.72403014862635
+0.14926900797162154,0.29895090526510254,28.007679866037286,9.170429441547109
+0.15100579517590748,0.29166961934724706,37.613694721406496,11.483456086165248
+0.14778256094339723,0.3044204794036007,28.276269757243725,9.64385619069253
+0.15048855839513084,0.2902302281460755,33.02458259298037,9.955742388369185
+0.14916755359347547,0.30574124040546263,30.335564879439982,10.518654547919645
+0.14856133614992226,0.2981573998111574,31.13901131765107,9.974524641155586
+0.14886770353586712,0.3026241367369392,39.0054792454266,13.206429102868348
+0.15123834622570734,0.3024339978455535,30.37779539160693,10.34128559347785
+0.14896924427864364,0.2985398389688477,27.69811415336275,8.975303452126942
+0.14989465091262683,0.3028398121113737,26.691848022855588,9.067952102646695
+0.14900125815311938,0.29427807199618483,34.69372234963657,10.763265927519457
+0.15012800941965512,0.29896757939988955,32.52707625302109,10.72483526325635
+0.14896763672399874,0.2956297048716726,29.105496923372485,9.139690009810595
+0.1510095734377822,0.30157313627069643,28.041499549481767,9.492583904282302
+0.15002612834017148,0.2991004427329808,32.66359320975826,10.684455039595068
+0.14935291167696893,0.29188246346721447,35.82420320821113,10.865994594070365
+0.148930753573382,0.29170717525589995,30.651700834110077,9.216494694636975
+0.1491201210648723,0.30743677326365626,28.9237296966962,10.242124792689873
+0.1488128520083098,0.30422749241349867,27.570868774851107,9.38837645971629
+0.14936186508401317,0.29609047874087924,36.737616308451706,11.704560750742143
+0.1503536399264487,0.2988513317709341,32.07128281234893,10.467220668550107
+0.14968514564629695,0.3033158747234857,31.195580302653866,10.63128252851007
+0.14940747341388372,0.3063282989236877,33.10768514992995,11.538294337126352
+0.14935097113494486,0.2982184420631594,37.799352996109505,12.237690897707221
+0.14948755911539913,0.299896697619842,31.080531093369164,10.227364067411656
+0.15108574145137174,0.29556980989193826,32.52853372346906,10.3807612010461
+0.14923022771449942,0.30398469955910423,32.23819002851473,11.03872272932681
+0.15077514643881865,0.30066407404864104,30.904446062744473,10.369327423043895
+0.15164312556257578,0.2990816996631193,28.57204817108694,9.463817672084044
+0.15034817272081039,0.29429165616988623,31.96820599336816,9.996467156689155
+0.15008002057169414,0.3085144442166189,33.50378237681346,12.068551749304376
+0.15168152183315847,0.2984382555973805,33.171127352305824,10.960291375605097
+0.14763798205510104,0.302755150993925,33.3675500554672,11.188347029656578
+0.14967276125566992,0.2964768111929752,31.179787092686556,9.987883627481677
+0.14995052511842089,0.30270949910514416,35.879603289500636,12.171853657803279
+0.1476496015440522,0.30731891581191495,26.608187235868897,9.253813084500436
+0.14979747703184182,0.29914297820385344,31.6992151657291,10.436932794737087
+0.15036996130707483,0.2996290087383762,29.36445062956181,9.700214374704615
+0.14951088846188748,0.2991240739592116,37.302322599505175,12.173233430849326
+0.14990952257728607,0.30498428997612653,27.575936816078787,9.645056387359476
+0.1506024417954991,0.2982149870435256,33.84410044419234,11.039655582056586
+0.14941565610824922,0.30269401376813276,27.673236226362214,9.38072767472633
+0.14935653419745867,0.2972316726355529,26.459513695576813,8.519889907212963
+0.15034619453873455,0.29826118688405157,30.018066383633442,9.803343078629663
+0.14824270056919864,0.29953624994742994,32.29152288145788,10.46195414009125
+0.14829486237895032,0.2952601939462196,32.041579676760584,10.045994770127374
+0.1495483176865841,0.3028689123938377,31.905102481804825,10.86627170737425
+0.15060847348222262,0.2946587973050093,32.331126670766274,10.165927890397915
+0.14877148654725128,0.2973654914017494,27.589606473519304,8.87423677170513
+0.15093853085285633,0.30356885576257364,24.29356600897471,8.433810667069713
+0.1484150564116612,0.2996020609305658,29.013486390589364,9.471226968349903
+0.14974728380113397,0.2991960724669115,38.479467441650534,12.672399043975279
+0.15041623134378926,0.2958220142843137,34.250376901748446,10.912395141046838
+0.15039723001587324,0.2958192900763976,27.438832154094058,8.758253472855051
+0.1496213497245857,0.3031862780052477,27.145335742023097,9.240787777012562
+0.1507335733456856,0.29489015007701436,21.996937643645015,6.911074855230369
+0.14994837458031549,0.30480959012181186,28.880256929370557,9.994587168667703
+0.14892955227798266,0.2998049260297808,29.50286362880089,9.698570973924685
+0.15079364029295547,0.2973367608647315,29.25986697952863,9.472131824358128
+0.1489897882812155,0.2940538659978483,32.207631663257025,9.988222890392136
+0.15132294426315115,0.29209846362898856,27.445562364428323,8.452489802895817
+0.14968012303706404,0.2986486427303969,31.736089274152295,10.38522811136267
+0.14982222204296783,0.2979044931141044,37.59949579750225,12.188160566568948
+0.15049154835354348,0.29850158128242715,25.212214052189623,8.283537090356171
+0.150369326272289,0.3030893953700662,36.88173728819048,12.650215702585939
+0.15043402036582945,0.29643084963385224,30.24736283844757,9.623714537608368
+0.15053893678008143,0.2997600127654389,31.9112660326813,10.609302279229807
+0.15070298055060644,0.29885549411288603,27.720022152370458,9.111265911311907
+0.15020619370799074,0.3083728671632446,31.28111048427418,11.271043379770273
+0.14850278419933452,0.30109403328217715,29.955173643419986,9.935081287319292
+0.1495685853286746,0.2912853366038912,35.68645900127483,10.788105521393948
+0.14941037729604192,0.29560090126079264,31.209077027714027,9.873645671689829
+0.15237487638363023,0.3012558753540944,36.1396464222715,12.36605948618309
+0.1509183350045229,0.29949213597654406,33.67983039587432,11.214600355945327
+0.1512639339746326,0.3020244101506172,27.176593211766242,9.210257975869581
+0.1513060218981293,0.3011194432541889,28.378362883644794,9.597806323294545
+0.14916548853416908,0.3053376445264287,36.54292541370676,12.72790195657198
+0.15019903172890167,0.29653904927699953,29.763313915514285,9.588910323945578
+0.14803633986788978,0.2987713764794884,33.704847985443536,10.885475350338126
+0.14992693798238738,0.3001308785761139,32.10155798303616,10.59817180458969
+0.14945607801578312,0.3066097991369827,20.677754947807667,7.31458741730987
+0.14936149526160059,0.2946531826269788,29.353966883727157,9.136693437230443
+0.14842637049092258,0.30231390710500855,30.726673694174274,10.333354488079568
+0.15036454875251018,0.3009337262583554,27.94601562241559,9.392342121726884
+0.1507433864127477,0.3039369530372789,33.210124784592225,11.54931938463243
+0.14882338343393606,0.2999167307326857,31.300513203363273,10.28573097907366
+0.14936511958533982,0.2978899374360118,27.13762066452605,8.745230845042599
+0.15004509760551735,0.3121747037511047,27.223813910959553,10.183258932000975
+0.14962144162065646,0.29513392715019315,27.811170986424617,8.734631310124895
+0.1493703297245617,0.2955040696642449,40.72075313303382,12.899352917078122
+0.14912284142533444,0.2968354987710728,30.80534377662007,9.793629925502563
+0.1486433832010338,0.3034305311241754,30.501747914534892,10.41818975063858
+0.15156955389972887,0.3010023840286287,28.18771443914046,9.539312332094283
+0.15070284893189362,0.296821484652287,31.75290882594675,10.233887091153015
+0.14820328187416673,0.2939635857091676,36.15611783209857,11.123441184379374
+0.14961524202391252,0.30540549333451034,25.773909295932828,8.967461665919046
+0.14852123994275365,0.303345854564181,29.44445425976391,9.995818427934164
+0.1500279996522272,0.29451913232840315,27.675272128031548,8.67069598594607
+0.15016583888284507,0.29478329329794967,31.667412427686205,9.969842445194951
+0.15074326491673992,0.3049079976968613,30.188924100931313,10.523473364286552
+0.15116874788587056,0.2942452573600888,36.97549864905807,11.6144951136105
+0.14887704950754382,0.3027640987203028,32.056288989286486,10.799629232097987
+0.14827447429757984,0.29930106936574313,28.921863541258748,9.394477697303614
+0.15025084700925903,0.30261570109488956,31.349164529526462,10.653555033654058
+0.1470584218607265,0.2980859657694158,36.15444618178909,11.490333563813492
+0.14712976211860232,0.3038254235157501,23.554965312381228,8.01005674988358
+0.14929371441248226,0.3030347010851166,28.752313936268823,9.812561075021252
+0.14942245946941152,0.3105450516623863,28.147393911978742,10.289569727346931
+0.14994124751057558,0.30434247841766576,36.41564690658018,12.615297581157886
+0.15041600295970586,0.30047935067582504,33.92848887642686,11.345858051340354
+0.1492297463926909,0.3012417812051819,29.879038420923518,9.935954092260474
+0.15028486685580042,0.30419080195448983,33.435666862621325,11.564221402161284
+0.14975741766409373,0.29703805385374604,29.48314915825477,9.409584395117703
+0.14984177362601503,0.30297871902610113,32.37642612150913,11.076635876617612
+0.15074703016309415,0.2990666471043573,33.80923313328867,11.203894278995381
+0.15077836293640656,0.30243859962630965,31.27161841445128,10.68402937925728
+0.1494111276449715,0.30247723090918416,33.48409641232628,11.371689680811881
+0.15037795862091485,0.2962450680675679,32.94272495124692,10.50452289039227
+0.15046923736910248,0.30007952297787427,33.145595494331346,11.02405563501966
+0.1498322992142315,0.29616666278973197,26.749294423184747,8.527147905492836
+0.1516247019771861,0.29793915939891547,32.96158384035529,10.802201849679731
+0.14800760080521488,0.3047344725920896,28.550689194643244,9.747183359410737
+0.14882830919817405,0.2991130949982938,36.46571990497994,11.888958028540173
+0.1523989870137238,0.30729643713866445,29.706522990827544,10.685276944601641
+0.15029716627657774,0.29186405607044985,32.197226290434244,9.83325582396172
+0.14794680396580245,0.3078230610617153,29.697071949608137,10.434151719027476
+0.15092498034035182,0.3012773320414277,32.94348755068926,11.054685585687508
+0.1496979857414595,0.29757610711075627,28.37094100768026,9.141916905449506
+0.15168385126874626,0.29742510710855197,32.40317375033911,10.632726633963207
+0.15163851489104488,0.297780393297562,29.42314170999978,9.624565942021144
+0.14878670244962217,0.30363815463550076,24.90808548247289,8.427820472035355
+0.15120976349572732,0.3023990500813756,34.587735784909,11.829221768025379
+0.15240187593429178,0.3010293301943819,29.88097596783993,10.179007781059518
+0.15008276957758526,0.30279579787618577,31.19844246639446,10.612251681382192
+0.14790564940273407,0.28899923723894383,27.570864044735767,8.107963837249777
+0.14825065131910714,0.30114020134000974,26.549245923165934,8.800865789642893
+0.15128351939828763,0.30302175609109744,25.74601759927487,8.8649513110186
+0.15130931660459537,0.2936985971781909,34.40277947700914,10.779466319929336
+0.15079520564085203,0.29308300510306007,34.267179148397936,10.535502056871117
+0.1492951504653158,0.3033000858483651,25.544685889766985,8.702974658355021
+0.15090966749230297,0.3096888418980245,29.769388536754242,10.850189572400199
+0.1518557909996164,0.3026499074940581,29.135972765306267,10.04110706017011
+0.14952884549219642,0.2986342740238656,33.08918355717275,10.772624710301033
+0.15124842402942196,0.2955763158282231,24.026945916890895,7.69070709195597
+0.14999945715726432,0.2984295126585671,31.939564223482673,10.40604290756835
+0.14889464205216732,0.3035987065561859,29.188950042678833,9.919934951005317
+0.15026522100028816,0.3020283085466606,24.54099314348005,8.288251140018547
+0.14954314385688236,0.2939754309900081,33.173059040732205,10.312777422785024
+0.14970272507408455,0.29768306363394675,34.897162561709905,11.314770639942527
+0.15271868726180066,0.2912164128602422,31.16995964701568,9.657639548182411
+0.14977714505328044,0.29986746268268055,30.085977468286522,9.932647808008072
+0.1520524037885954,0.30352647144754735,33.14252911750455,11.584009463634427
+0.14828174056077514,0.2957845862002923,33.12813917444116,10.366751102333607
+0.14795614979041186,0.3032703107459883,34.24879225027465,11.575281231606544
+0.14866576498716522,0.295413276153987,35.440284037607725,11.061192585400065
+0.14945219747636365,0.3012790017269356,31.763652459883694,10.584150615116968
+0.14961294100393924,0.2996612121180742,32.298921448438506,10.628765140384235
+0.15059856685343245,0.2993103550307022,34.97592145975992,11.549777934718719
+0.15016441525784224,0.30040589898810693,34.38882429370533,11.532882830762391
+0.1502092166934864,0.2928309886976596,21.74295443448976,6.716755416958289
+0.15149816829228197,0.2961328605831056,32.31212403224867,10.40604234261362
+0.14897342687786946,0.3043279717656695,31.05911280927118,10.652602868343063
+0.15004558120298933,0.2953834037819675,28.802156360268015,9.16165794096953
+0.15024836794486515,0.30196202845059894,27.733877787833464,9.361259958269066
+0.1491221471391855,0.3031948696231033,27.63056204199924,9.362207861509567
+0.15008306821062553,0.29821859474455054,35.0967350304914,11.403112669910563
+0.15086129091799794,0.3066732719027212,32.15202566300617,11.35965219840607
+0.14997149625870432,0.30222762143505594,35.57154229735635,12.060745787776181
+0.1498781177721117,0.30300363403917147,27.668469244843724,9.421557147855316
+0.14965442989082026,0.3046840678501446,31.771531704697583,10.984653319392388
+0.14818107329777067,0.2971358134378948,26.604002829897734,8.431666456547042
+0.15046157458971735,0.2949292742527998,31.13496143828097,9.849437832752928
+0.1491152647866057,0.30114746285366645,24.268049838363435,8.12308585219697
+0.1510252942825907,0.3014785347273398,28.572798873678842,9.652889640930008
+0.15154254827038044,0.29489463674504185,34.891319536744795,11.111084380152667
+0.14989411751424553,0.29908908551194613,41.102404554948535,13.526415950112074
+0.14915756425025528,0.2998371798520187,31.64358574399457,10.426353436039792
+0.1486523670723883,0.29515085815352726,27.082596490558004,8.47676414591574
+0.15187153168580672,0.30521730846071643,28.038370134126875,9.989687081454052
+0.14717237928272345,0.296081068507249,26.504348524287046,8.298868371718122
+0.1522029007652614,0.3026590389912453,30.830524112005154,10.661550683308748
+0.15055689370541295,0.29699106967254185,25.313458753359015,8.149554847064563
+0.14722658640453307,0.2865305586520426,30.228897639850373,8.570984548807846
+0.15185234142220128,0.2968654363240554,24.011376566580388,7.77230523539533
+0.15117814254505815,0.3017747945622344,31.839586948785765,10.809910471309694
+0.15022314796230954,0.2957943151470525,32.67168628523149,10.348763742779333
+0.1504513867080999,0.3007201992713968,35.98269219271867,11.93211911862384
+0.15250416911581083,0.30065490478182916,29.537868572143097,10.068624228648677
+0.15285204484693823,0.30381370375040645,31.795101355636437,11.174161646612594
+0.150799659342597,0.2973340933396511,24.2700873528348,7.8488609347304825
+0.14947730948203178,0.29930807618546384,24.775072540357144,8.14446558216435
+0.1507747972002694,0.2992691913201169,27.463779813309372,9.074210418940561
+0.15043193672748797,0.30115158547515747,28.87964246496451,9.695187360630133
+0.1486439458121444,0.2961820023461523,29.933515026673515,9.40036158238847
+0.15051204576183067,0.3034771342403714,34.352491474717,11.843500345816077
+0.1488150459774939,0.2972042546522167,31.341047120734263,10.063117184251048
+0.1497015670823031,0.2992103632636857,28.980071552568404,9.499415355543498
+0.1485285781479657,0.29716281023163005,29.802452665339892,9.438410624672446
+0.14983694909204961,0.29749695877494603,25.15737825775932,8.138752526428837
+0.1500378881401528,0.29375534103806206,34.326776056191,10.615535834328954
+0.1490298874020154,0.30343188912389535,30.5767041995004,10.436821575606762
+0.1506656300754701,0.2991386211099758,30.670444671275778,10.194419709138508
+0.1495463689533794,0.2998957979418523,32.81753221578038,10.791768508348191
+0.1497766094076069,0.30534304733170453,30.981210891778304,10.796664980840802
+0.14900863874111983,0.29938121331999,29.413743224901673,9.579141065797973
+0.15224021884529318,0.30142331884620693,29.04782875821011,9.912115835803585
+0.15129947198437194,0.3078269985228101,26.89827119637988,9.691824153143124
+0.14826080806521522,0.3014072254295658,23.619337335316466,7.862061418807246
+0.15184917985875127,0.2996028351286746,25.51432283204836,8.566124637325471
+0.14999905628228674,0.3006656020227518,34.301096559621755,11.41883231719507
+0.15019228229692283,0.3022706219239683,32.210089792779726,10.907458415246467
+0.14908439848117278,0.30916393163699346,30.825092027015735,11.129838528304402
+0.150836557366633,0.30176658939568995,24.421409487907493,8.231826223901782
+0.1486063538906154,0.30296737338167384,27.486751369095856,9.346583102649928
+0.14797986077799483,0.3002458728058413,37.327920115602396,12.227058429483957
+0.15072768124054528,0.3029592165826463,34.1285443385658,11.749986581343354
+0.14890687018064147,0.2989810285276185,29.977829491747944,9.775222191907552
+0.15068743512738056,0.29539047258074735,31.30285771817441,9.962720928128768
+0.14944384205949157,0.29773551203563325,35.441240817056475,11.426474015138549
+0.15108929523505413,0.3088737311630149,24.506237777585085,8.933677377863795
+0.15143827657017672,0.297599614053814,30.19531725443829,9.930029302703419
+0.14915975647706403,0.2950783672704274,38.94819927042723,12.223090538014613
+0.1501014860727677,0.29942015544059103,24.023528480249688,7.9557441223497385
+0.15028540174785118,0.3046045758931146,31.083999713157993,10.808873810697703
+0.1491665774245523,0.3011479272639561,27.751822782893395,9.247282471607782
+0.14955779181019413,0.29401690593270385,31.382984532731253,9.792928519189395
+0.15012901157724032,0.2964096651107698,33.18119282511111,10.609855777469527
+0.15141739284643638,0.30320256224289543,26.059715401801334,9.043881611164247
+0.15048432881933616,0.3001110660893503,26.35947396604435,8.787272250911114
+0.14978751036976373,0.30436048668597276,33.57905974614406,11.536622001144199
+0.14940893312683448,0.3042421553707964,29.123298221357057,10.025330974660562
+0.15066549458284567,0.2934892792480278,25.240453226007936,7.883124385720567
+0.148639054723853,0.2998163426711326,27.860241871551516,9.150468323489577
+0.14908231998852303,0.2962545678312695,24.528586547251972,7.7427674249576555
+0.14909810441637353,0.3044294970781771,26.94944282281854,9.281956981151525
+0.14941428927852252,0.29946221424307257,22.17795299237561,7.279230262860078
+0.14937363277595173,0.3057574857198953,34.44401703718449,12.061714717333512
+0.15113695684658485,0.30351633535405875,28.789693096659523,9.940269430082827
+0.1490267271079294,0.2951467852501461,32.73336641163018,10.284394603520202
+0.15152923334965354,0.3016052783177185,31.337062751974685,10.709436690941715
+0.1512570901742366,0.29757265945692263,38.27162608370882,12.462552549579769
+0.15063884409396996,0.29861159914769797,30.551863480748775,10.03753123578051
+0.1499119278743356,0.3011174553987141,30.182168833483743,10.097177886349368
+0.15191302014569985,0.30112609185195294,32.88449028631618,11.105558071934354
+0.14994828349347578,0.295920614076779,36.019905549940695,11.380818651676677
+0.14928409092327896,0.29720822529776936,31.2002536942577,10.019422340583901
+0.14935111884498675,0.2931186562885259,33.37515068536127,10.26429514642783
+0.15024273104523303,0.30867223252817794,34.70996285888496,12.569416778065255
+0.14706236099162628,0.29984196033581867,28.888690549253727,9.35105296261869
+0.1480976320768652,0.30228186632718895,32.21477833038945,10.754052491574704
+0.14991639344151628,0.2989965511877896,29.82375974290315,9.78919035154897
+0.14856708938901259,0.29292598939613906,30.405693258467434,9.342820593778514
+0.15249026782718075,0.2955275627749801,29.460663497514094,9.503476488100269
+0.1512441561408844,0.3042575544229997,35.662384445431776,12.40665663380423
+0.1513044196544343,0.3022562439684038,28.81138659122557,9.81878959630101
+0.14894457493897215,0.2920560745713303,29.217651394351247,8.868408419165155
+0.14916094658326678,0.30499010263398674,30.724076624310026,10.678098424396806
+0.14940818254721758,0.3013228893439938,26.470960891930904,8.899949132600215
+0.15179643574898577,0.299930107843136,25.848228475271245,8.68823162876136
+0.15049941315067564,0.3000341787519676,32.895711603207964,10.910223375862326
+0.1481658161669803,0.296532977867018,27.81886386752761,8.763025554774172
+0.15181865579795076,0.2958862387672113,26.53539202665052,8.628085602302269
+0.15073750526295426,0.30597375909987107,28.127415811682205,9.95871771933104
+0.1490652861346166,0.29669884314119105,33.960869006703554,10.850851088884006
+0.14998629213826295,0.295302570534676,34.64806249198976,10.923482048135305
+0.15029533161994796,0.30158482729332814,26.40454511864855,8.870686147519876
+0.14974857263327326,0.2986613933379147,28.333234772233336,9.186212315515668
+0.14968965627299946,0.30174521311530944,27.18910806472239,9.144861850834735
+0.14795155214737638,0.2946653371682274,29.924012958099283,9.291098032670853
+0.14922507486158787,0.3016890099365056,33.095286243717545,11.118300457492415
+0.148021144398743,0.301292854429391,31.816663124369033,10.49324879585377
+0.1486534533003364,0.3008990938111918,31.286938421174334,10.33984791293095
+0.1469475706671714,0.3023484324029646,35.53152264321541,11.795115020853292
+0.15178920781473065,0.30155361339710735,31.31536265363243,10.655280332410461
+0.15072056491624622,0.29647317568425424,30.995155393347158,9.930448585779278
+0.14854232123378763,0.2968054929060531,35.91784802391071,11.399836922916275
+0.14924202036554815,0.29849096481671555,33.84539006179409,10.943744878949214
+0.15034298481234673,0.3009670441178653,29.51152589529176,9.898916159846058
+0.1501163203311695,0.2960598700815152,32.27558126253294,10.274146331553037
+0.1518829198484428,0.3013864355466777,31.88395481889839,10.85885664399941
+0.15022208150097036,0.3045651172055795,22.254778943468875,7.768409882108543
+0.15023278840743035,0.2980026151803848,34.70690383554117,11.290021742032184
+0.15193624298929623,0.29512925423050035,32.21662814889485,10.307678732338392
+0.14981018178662486,0.30549390620299594,29.54059380070454,10.365877107297848
+0.1489599556817976,0.2954561071394947,22.574428423261743,7.050521312636185
+0.15234615812927063,0.2947490079267672,27.314098304336305,8.707496511222491
+0.14966759933183155,0.29577391524638624,22.864444464511937,7.212366915492233
+0.15054659734581263,0.3011330657391337,32.97534424613733,11.018320612837865
+0.15010361517323487,0.30430363474135197,35.37313844987407,12.235227373343129
+0.15039519619592187,0.2958432431164147,34.01618926144468,10.7999635413438
+0.15036698928169265,0.29798828864119625,36.015130571978546,11.750677137321418
+0.14953134313970884,0.29801375226420673,35.52135111652815,11.490332831988605
+0.14992300057951277,0.302298323935611,27.367598860266604,9.312536726490121
+0.15099039589687105,0.30419580351678016,29.73544158009539,10.3094474956076
+0.14734207717363776,0.30292791840054106,28.053752547889793,9.351756619982751
+0.14934610868208578,0.3018718846252582,28.367442197550186,9.529800918828192
+0.14988102301916797,0.2997815328428469,28.745100284872333,9.47965631209071
+0.15101812536903775,0.2942536957575838,26.538621991728085,8.329156053576513
+0.1542977259546782,0.30239397990189903,32.04439545882984,11.18785660939395
+0.14899797092505307,0.30009541928536826,27.265256850502183,9.006247951708957
+0.1504699937050365,0.302040853636646,31.6915824562699,10.756361685404014
+0.15099149579377966,0.30553837767713815,35.31843737521924,12.471835613549066
+0.14953258413343912,0.2969398152898945,29.978798021746,9.578510672266418
+0.1516085837626562,0.3020864695487571,28.60564932711777,9.783511282627003
+0.15007872607951725,0.2944438049480725,34.6947669576105,10.883355771748391
+0.147454451575264,0.3041283870524879,33.45459331508136,11.347096306781685
+0.1512207292406704,0.2942293227501555,29.92183288923934,9.417193974103512
+0.14912434377340802,0.29745127506763575,32.408188728551515,10.38315218561443
+0.1487316364311185,0.31003631877768284,33.24179060643001,12.010757714364058
+0.14869274517078818,0.29327451077643096,33.777906791916976,10.410663766616949
+0.15026164735836353,0.30010639816225776,24.901807163844758,8.295580133428208
+0.14997610381021376,0.2957364800583772,34.74129818571201,11.007588295986638
+0.15051326951347796,0.29781385503924607,29.038599548732492,9.442441131383713
+0.14991581717988492,0.3036823955557383,33.7735103665097,11.587219742204974
+0.15019854258277696,0.2979464315024034,31.998208448078127,10.388489415490174
+0.15045950340344708,0.30259697445595,38.37439023140611,13.095655658294346
+0.149697633689417,0.30351588029257676,29.85932851337762,10.296195914164743
+0.15048208024374526,0.3059570923726008,30.637052307364268,10.764706405159654
+0.14997033223789602,0.3020435603699073,30.98678426699514,10.460911117614831
+0.1495357877851856,0.29830313548285303,33.67303180637947,10.913470416684358
+0.1507145822167922,0.2870859868841147,34.758248235128775,10.13564586214739
+0.14969576049285008,0.3008135926302299,29.96489061269328,9.972156669511824
+0.15033993254092562,0.3045769029277473,27.588412198533284,9.603257473593528
+0.15035769319879244,0.3005213909692996,38.00094210390058,12.670909998915139
+0.1505929622883625,0.303096124082179,28.234468041783703,9.697300486987391
+0.1498703148716866,0.3049082367213551,28.0118704483275,9.811894697339866
+0.15056529447156763,0.2975616793114516,34.39092248319009,11.194912267844815
+0.14901148653588198,0.29937223488775355,31.240930482031512,10.275277131946025
+0.14920116188489602,0.3044075166494896,31.569364887660818,10.849692127627772
+0.15097921181309348,0.30447832822016907,27.767857088338573,9.6608829177008
+0.14961974458668678,0.29251825691831174,30.03747735927649,9.227513746769016
+0.1512230144896541,0.29693313648681424,30.915526916916914,10.039894526260523
+0.15056220277070828,0.3016910946995463,31.550438480881596,10.677322373554853
+0.14974701660646178,0.3021308147905168,32.248123830037166,10.881934370295447
+0.14758352038436331,0.2941550975666623,27.46967344882966,8.490806564137657
+0.1505745421600971,0.2957514120816745,31.73499438084291,10.069401437645014
+0.15013342809196428,0.30264896588421675,33.035609220670814,11.201482246987222
+0.14952491657495828,0.2890725856443675,27.837978379864055,8.254198110493313
+0.1493953765105691,0.30004301470033135,30.144582679942793,9.946384299168574
+0.15181686549391563,0.29659503646392377,25.072149735968747,8.079509612982806
+0.1521507201940413,0.3055210984972169,30.478992597719373,10.853374191476826
+0.15005297658692504,0.29410642811380916,32.264588868914814,10.063297970922322
+0.14990234989800952,0.3048190855278523,32.96191810870839,11.427818615453548
+0.14951692288604412,0.30014646600666345,28.47863030253805,9.428243892218742
+0.14947667566623477,0.3040518037880625,27.565821563768132,9.469295442153994
+0.14935817641263474,0.29440700350877375,29.332051160584566,9.139153324358887
+0.14985933753391265,0.3027952077277238,29.811284379769134,10.095885761295856
+0.14965838812182639,0.2999554120881189,31.20842670900739,10.335682715501923
+0.1494690857460436,0.3019092379234986,34.70172492857435,11.641479389142313
+0.1494537401637109,0.2958470574634553,28.48591941559183,9.003404500402578
+0.15101086951404322,0.2981655497494426,36.75022422208407,12.01254565859684
+0.14903458240996964,0.29910278190338063,32.613651408623966,10.602575091536899
+0.14853404816596275,0.3012244621133848,28.45043417599989,9.45127053290686
+0.1509804697152294,0.29726452947526705,28.12115855461133,9.134980837245008
+0.15210881704125884,0.30246518199100114,23.666492516841245,8.163752398018547
+0.15009154551109663,0.3015837485929191,34.45475891564947,11.613579616440829
+0.15039182857081396,0.3004071757065047,33.39230737404556,11.128527889823776
+0.15060438825197517,0.3003817995847454,31.14089739103776,10.43712049224753
+0.1507742810738182,0.2982325711722114,29.15696833267372,9.521703186391573
+0.14850989014761115,0.3017628974969934,34.00785897494529,11.217602874181853
+0.15098833654739977,0.29646224638174146,28.534139649826244,9.146597251602495
+0.15160504453155607,0.30679893437893324,32.27025152923241,11.521359443745007
+0.14997592259440032,0.29668646200541393,26.992048773623388,8.678785815832995
+0.15093133594479025,0.3034505865376927,31.062000029319584,10.688246109289402
+0.15070643993270236,0.3028116612751269,30.741867441193854,10.56864513144559
+0.1485208506221559,0.29719832302133803,29.491064629466266,9.38890425710288
+0.14954223360954574,0.3017810726837369,31.824315570944275,10.681407939125206
+0.14977684642493458,0.310841238083303,31.000665172626157,11.427550916794594
+0.1483751055452602,0.3033775358381169,21.6742283553193,7.345477363335229
+0.15085547817486294,0.30488127291024686,27.961904940560263,9.736854523903865
+0.14998855193250907,0.2949151772734072,29.820022872164582,9.387260750975237
+0.1501935660552114,0.29737435440373056,33.19559549505197,10.683541572678283
+0.1509082558937118,0.29874883150453296,36.73976956089476,12.1260629648676
+0.14896041189384288,0.29519964974947566,32.048863984231204,10.02292416289313
+0.1496311611852509,0.3011614430213373,28.85929653789033,9.663344262127241
+0.1498982971341209,0.3024146023487233,22.077920935322155,7.4431134224339175
+0.15023983841205155,0.3047797182819962,32.377612193920264,11.273604626116443
+0.15120407829922186,0.3017220207324411,32.139042247704566,10.914869836008997
+0.14896836443029812,0.30416174496339,31.17485608417208,10.701200667996927
+0.1513106181041353,0.3002265720797879,27.525735231227696,9.189753051391067
+0.15017062641485016,0.29542325835442845,27.695231770798962,8.751120777142164
+0.14897483580186202,0.3096440766339139,32.535308755992524,11.74519728060254
+0.14907165805920639,0.2967042396459767,30.681445971499095,9.739789654658656
+0.14919817052370132,0.2980471299647953,37.05813051067359,11.959069111569795
+0.14894808185056307,0.3030666789816048,36.50489397327337,12.403597933967253
+0.14911619702837497,0.3019857881647587,24.423911870068665,8.202485593872485
+0.1486320719366379,0.3005405687549569,25.06160342515638,8.29630344220285
+0.14877646515201273,0.2968052978892778,34.06918640451484,10.84200774236898
+0.15034583386644804,0.2922195560469238,29.083785302403378,8.927270361303675
+0.15004356192167267,0.2990523291365325,33.13152588574674,10.891318911757944
+0.14939983640451954,0.29769782386820426,33.72425034082211,10.856549674355591
+0.14876205637510803,0.2940081200640076,21.08158006977957,6.4910922003086
+0.15106525367289794,0.30008102529153646,29.82410323302063,9.977423864021274
+0.15049029641303371,0.3019006336828716,28.240400061194155,9.558339969431563
+0.14893844009279678,0.3033799866971777,33.505959960726805,11.311633882741457
+0.1492574384719436,0.30468782691380497,32.59902106149704,11.235333069301568
+0.1492872985035771,0.2958571504805146,27.167139860054462,8.566686954926933
+0.15104575143224824,0.29446104188877115,31.46827193350436,9.921845745689087
+0.14905875435534435,0.29864081277185134,30.7872952789074,10.025578350811642
+0.14904671847527154,0.29341401096286157,19.256800157532425,5.935231637388169
+0.14991184778426642,0.29132180383371487,31.37302389558821,9.488554836644735
+0.15059482550360526,0.2931936472170608,31.48587754441544,9.71383353552105
+0.1512382316914387,0.2921169649534023,35.33224545333346,10.935561925455934
+0.1495448013995574,0.30069435068749234,30.052603060305838,9.956257102464027
+0.15018376313101886,0.29121345673840116,35.72432370903973,10.844025582853197
+0.15097508128435816,0.3024892664456214,24.142206530000145,8.270500649595485
+0.14868480996165098,0.29889663230754965,29.498090942060028,9.567991115290484
+0.15006072840348558,0.29590850417207626,31.407208754429732,9.981251331130823
+0.1485336526877529,0.29275561413480533,25.971375057914493,7.923397584679459
+0.15083081901508658,0.30170624357807024,32.74478822279597,11.115095128583638
+0.14999465770130932,0.29171082508038776,29.79692025200401,9.03533047923699
+0.14818403703298402,0.2959481674760528,29.296263149774944,9.237281098622946
+0.15045375750830617,0.29907385712185347,31.383844388058286,10.3790390684005
+0.14987834798816482,0.30114509064591055,31.969426061675872,10.696504519272944
+0.15107384542968083,0.3066554432347324,29.531126419455255,10.524678552452551
+0.14808350684908447,0.29771562050019135,32.0880389308299,10.289592601951972
+0.14998303431734303,0.2943447882209162,28.095036012869215,8.776501797398971
+0.14781261539528318,0.30942179419900456,33.46596967020843,12.073426397880356
+0.15105116661165982,0.298286393186438,34.5266230462814,11.305300238574393
+0.14908695445554504,0.29536077868254557,34.273378231696924,10.765632948393165
+0.15098283332609405,0.30024988690015125,28.082197821502668,9.371059944232735
+0.14842557334024312,0.29905830127550703,32.438701832004725,10.58693904563232
+0.1488187585807128,0.29400097088334326,29.377996523288388,9.051308357848125
+0.1492773452023682,0.3002679660159002,29.307054501866702,9.680075485115486
+0.14922482959319153,0.302452662322166,34.622487771019756,11.736944650981005
+0.14912944923162857,0.2904014323948326,32.24684589153352,9.694467445767499
+0.15222575452965917,0.29178060051938104,38.082721336193956,11.728157720391417
+0.1505687616121568,0.2977595143371976,30.305785088394,9.908643692745638
+0.15128744513908593,0.2943498331443096,33.468349711210465,10.548132416476752
+0.15092825991578426,0.3033520753420487,34.20068063114669,11.68593282432623
+0.15192949893807386,0.304138410325739,29.45725344285228,10.273581795006743
+0.14894659827188872,0.29985927063863205,29.27085390642178,9.621254652552093
+0.1495131604992782,0.30481544367279717,36.748692285987545,12.718504032436346
+0.15134199550084199,0.3023347365224781,23.90600894658675,8.176311593168997
+0.14933139478178714,0.3004929358911997,31.40582642313447,10.416526817477157
+0.14895863393224915,0.30325023409227614,31.27127649935541,10.66720934519102
+0.15044838329852264,0.2956799385508049,31.735077594166803,10.087713057340759
+0.15002863698867852,0.2969633843276273,31.180162084674055,10.0204524487767
+0.14941592248994662,0.3026226154262668,32.532862428639355,11.052136441992266
+0.14923057824901106,0.3002930789587638,24.02021835933481,7.88080163139588
+0.14993637167902857,0.2973247572619883,32.797970170439065,10.558325147253994
+0.150427507675164,0.3065739526712268,27.992738879817882,9.95015806508557
+0.1500351138583956,0.29580086839268316,33.930036994120044,10.79337623863258
+0.15058650313869099,0.30006340096509504,26.730185947657986,8.930932317597076
+0.14944393028634065,0.2989752809022004,31.152664987920453,10.137325615329818
+0.14994686849274413,0.3019951696172883,34.9585369906738,11.738951421965123
+0.14842662348046234,0.3003056751577144,32.64267271676609,10.735823750630887
+0.14859670352124357,0.30018052211066787,28.880610259198136,9.478615569791447
+0.14836200578061046,0.30215479523925143,30.319802675015175,10.16515832866473
+0.15057973567723992,0.3001588346190782,20.64792691053741,6.8732791470349985
+0.15139220528609856,0.29708803149821067,31.999703237326106,10.460410689395717
+0.15018201701181763,0.2892807320969717,33.530096039335945,9.93051892868961
+0.1509762801809613,0.3034151270127956,23.064729940984222,7.9435940026176795
+0.14870535067251722,0.298356146302538,33.69644066416409,10.911616720863204
+0.15081697081238907,0.2987881988002808,25.8677900481857,8.515817674012736
+0.14993408317691514,0.30006292979166604,29.396460440704647,9.721456834475095
+0.1484461797240552,0.29862654517241577,35.85058875090493,11.496333007805577
+0.1507236841962306,0.30083625432274813,24.110448563353238,8.100756937411633
+0.14959052703433418,0.30451175574105016,32.539844582686406,11.258578016756552
+0.14990297970672206,0.29607676632618246,30.63598051414949,9.724823539957638
+0.1496571473157076,0.3019161978295728,25.472404803943697,8.561906448726068
+0.14889695107657216,0.303264215636668,32.12242849175659,10.830346862064069
+0.14969424592246455,0.3027376804635408,29.610209069869022,10.045663328572646
+0.15015708367841898,0.2996409348284474,30.183355424777098,10.006410268042096
+0.1508873292731702,0.29614895531208163,32.19556571565813,10.32665076729002
+0.15007770754918012,0.29764104849933876,31.185105048009532,10.136560443494748
+0.14968205639863114,0.29559165665367826,31.350934881343225,9.956540385153398
+0.1500066735229222,0.30286699876248624,30.901633811698556,10.561927628982309
+0.15000136513565637,0.2973350592277371,35.65172635787433,11.540676785179759
+0.14869394829003105,0.29408983023486773,29.48304494818623,9.164698452201064
+0.1513098916069711,0.30959952196119295,25.60637510356099,9.402925156700062
+0.15075716960396413,0.29721922670536066,26.012056235220495,8.386261345483152
+0.15058816925547444,0.3012366162598834,29.38906810156734,9.854878874309932
+0.1494347481079723,0.3043831626365798,26.31989062453836,9.057744427175502
+0.1499562149541483,0.30432974187267775,30.31937288956581,10.468993342611126
+0.1498814601432157,0.3073587783815908,28.86685780066414,10.349627544170376
+0.149764128767413,0.30174994998581645,34.25226686755304,11.510412623932597
+0.15051644875441925,0.3006445096255513,31.90629895406775,10.688806450553447
+0.14960371041951662,0.3014467041035283,27.433020891314012,9.20631523339963
+0.14913469408316016,0.3058987784498792,31.079915069288525,10.810946155886736
+0.14952743489817327,0.29874865128571176,29.019369467639425,9.449088610740558
+0.15112731143765903,0.2938923632296102,30.743109661922862,9.642157161920588
+0.15075886695102883,0.29875682975655565,33.15445598377537,10.95525409398866
+0.14945676851547454,0.29823387344076074,31.37293637532068,10.121525420492498
+0.14916020799471555,0.3070007077695401,29.056266427618596,10.307045663074513
+0.15156158090664945,0.29687337740908776,27.676250844578302,8.9820462358796
+0.15034760504050634,0.3016948637125913,35.06497682052266,11.784224075504046
+0.15077776848695496,0.30341420632808186,32.5283345228566,11.178311565738685
+0.14896328831428673,0.3048678538205391,28.638098498967583,9.873992779893683
+0.14950971848446604,0.30226444389085466,32.53790101882153,10.998825357057648
+0.1498128827459202,0.30210024594747636,26.928617181662446,9.069281592248139
+0.14928420346523227,0.2965651450762306,34.65976509824766,10.978472281002066
+0.1515454193587206,0.30884789873424673,25.51434065815729,9.332723949000655
+0.14980889447748827,0.30086693200560183,31.815938296251108,10.609261446956577
+0.1476180874269917,0.29516460074875994,29.378472479316596,9.163421755656742
+0.14892691811033595,0.2949007289892754,30.02683323279956,9.357533803852414
+0.14983842382776902,0.30085606168864404,32.60935103653713,10.957039547661378
+0.15089331332102357,0.3018297277287705,28.878571183439107,9.857099804009248
+0.14896467655458664,0.30332962814958103,28.340503590866412,9.669412209737484
+0.14994031425655818,0.29600900913239775,28.35098184388226,9.018442706699759
+0.14978366961816394,0.3036558165903757,25.754038616205847,8.803349232440063
+0.1500240332727593,0.29995119761768835,31.667332925634653,10.499923764595108
+0.1495470000269736,0.30647637826404794,25.948072903246697,9.107181973153569
+0.15217003848477512,0.3033367081987749,26.64746565393097,9.297330818850952
+0.15133506900401808,0.29408316694025377,22.790003418140007,7.186426600049563
+0.14991840257972186,0.3037222345289988,32.99959597533918,11.275840258630119
+0.1525053389480852,0.3062868404038934,27.147186723845838,9.662480812672447
+0.14985921710689934,0.30719981905042565,30.346981962627908,10.779143936169993
+0.14954956679256712,0.3038425514899261,31.811931137396574,10.935959841022498
+0.15029342291062622,0.28837470641391955,27.349552392877534,8.045819509875129
+0.14803546401969883,0.2971658308920223,32.943380397351795,10.51829273078949
+0.1494853687386452,0.296919961620455,28.028685151987247,8.9532214524174
+0.14945903115883294,0.3026598752244181,24.328650368874115,8.233744480429197
+0.14910646943503414,0.30810287268678793,26.734840977480207,9.54854231073999
+0.15047728834474075,0.301807104277891,31.335866995585885,10.577220072036571
+0.14990123386769413,0.2990455418856575,33.04566595734408,10.843374962396808
+0.15115255033271224,0.2980369700248842,23.36192552452994,7.640801014648934
+0.1499087253968656,0.302014551717269,36.106718141389905,12.164931037905474
+0.15221084930217602,0.29586431528223744,23.30302906316268,7.490257800982626
+0.1507290298951174,0.30044418629024944,27.98181713584829,9.37794595896077
+0.1529366940834884,0.3042285255319826,31.056314081427224,10.96595311068201
+0.14959351101132579,0.299525774605121,29.903207082766034,9.844541777990818
+0.14853225586884122,0.30744015592629936,26.577057985074404,9.352948891789707
+0.15263227058241904,0.3030669470065711,29.563479228631955,10.259584433961408
+0.15160411605171106,0.30080700685394424,28.445406198748405,9.617942227060484
+0.14983080036319463,0.3064227438408191,25.492639782741012,8.977814077482803
+0.14983093987517393,0.30576112662894966,28.664790660084304,9.960068571335254
+0.1486088436218202,0.2969351215888953,35.597152139470424,11.27680155229831
+0.14731062090026809,0.29818924977237715,33.019285131032284,10.52740386461114
+0.1480165092364799,0.2970227799199571,31.111010714422665,9.866977171042208
+0.14995044774963148,0.2982612690468014,32.66210034464846,10.627328178027799
+0.1504881468291324,0.2975372114335078,32.033011249531434,10.398728307342584
+0.15043342740739804,0.3002561117549777,23.400131541296687,7.810964000438065
+0.15159127832408267,0.3076753035951774,39.24564327033253,14.187831823685514
+0.1486501633999267,0.2965847286512209,25.316716163973293,8.048053499796566
+0.1504333726074961,0.29316604984262074,29.6887167263886,9.227208006276097
+0.14960717972685791,0.30523818378584955,28.546520595190763,9.926983665062336
+0.1497397517939679,0.30055325935499677,30.782475642600176,10.245109463495751
+0.14978636526893563,0.2963782170592973,33.16147415933163,10.570379978023094
+0.1475778777047773,0.3044201693418481,26.92446717930526,9.111618481564674
+0.15001659487482374,0.3082945238325685,31.100668244875756,11.217294553275435
+0.14959308176248182,0.29138010837934225,30.993530929504075,9.389705658442345
+0.15148666698076896,0.2972275182262461,29.549545769101744,9.63385017232459
+0.14983627447640446,0.2962607947049991,32.49173172484234,10.352961334780813
+0.15099590874527144,0.2978532144512811,27.150968894786654,8.865498285252901
+0.1499554244735638,0.2941840076340816,30.628089616784354,9.594905642980319
+0.15146775170455967,0.3005815431568562,30.35828809474738,10.217042263086814
+0.14836414602696432,0.29895861543000385,27.590033133054465,8.856905229669154
+0.1497183438565241,0.3054774825466784,34.179880234789955,12.038609498204025
+0.15202630766027184,0.299159978175001,23.346030337939325,7.75252874381246
+0.14967289055939853,0.29790028600357293,35.08248682042099,11.339435640838392
+0.1513869478309922,0.2995887705966414,32.67250342697791,10.90693833395386
+0.15063878081282941,0.3035930374371902,29.93444825506481,10.349385777612877
+0.15014676767589707,0.2961482182129236,25.565863251087215,8.147892838166467
+0.1506136172276517,0.29652042671332957,32.89231911077783,10.559405661526892
+0.1493411874214138,0.30424845836592534,32.10998638200302,11.073164601704741
+0.15026149835616007,0.2998615313684902,29.686096897542075,9.84723842968751
+0.14788530664316513,0.30329188570395643,30.785745136434066,10.371418256794982
+0.14982672191071314,0.29909410155548916,29.694309674915605,9.68259685752224
+0.14979205206904186,0.2952219349273094,27.89102079483739,8.816931094899674
+0.14988122289467964,0.30193178219970607,34.1414267467148,11.554714061394577
+0.15041428100174042,0.29785600964035097,29.85062026015003,9.749359283270115
+0.14951348092557393,0.30008823944488944,30.699472963389297,10.067845400238902
+0.148798951381552,0.30829100960620626,26.40367682644755,9.423260664359834
+0.15125759334784966,0.29943515908229473,33.5903250626845,11.167466707794555
+0.1512701222038634,0.30708329588977074,30.24256463807737,10.829412610324901
+0.1495307000044656,0.30397829719708774,29.489822950807962,10.1045725514041
+0.15066841025289532,0.29695713240728955,27.40569668016376,8.839676264628746
+0.14863650312369817,0.2971206018804786,37.60003178831362,12.009894913964096
+0.14994912168395083,0.2949035665484288,29.566092505345758,9.269605322077018
+0.1501239299282718,0.2973234181183464,30.437567632513332,9.843147990869134
+0.15174470159948047,0.30082063832613004,31.964140647808744,10.773579088815302
+0.15045369271665135,0.3121252863585684,32.71543494281805,12.193122725087953
+0.15039752639717224,0.30477065736191555,32.587520455245084,11.25269423201941
+0.1505843239502679,0.2962183666822753,26.54342757879293,8.502422183562903
+0.15148533011024073,0.3021135293795748,30.447642990500597,10.383878911122503
+0.15253453012826276,0.30140872777384825,30.263621641050246,10.355998225912737
+0.1511157342623842,0.29171294788151525,38.03999207764575,11.699190589592796
+0.15012497492637364,0.3015099490986685,34.14280736764534,11.507649958731188
+0.14895166798694456,0.30069771042640514,19.670146508061404,6.542967693619584
+0.15109225511910132,0.298129717508938,29.42318876661203,9.672578295908897
+0.14981569639464673,0.30035484529441336,28.459706277340196,9.450561482658166
+0.15046774156969203,0.2943845194397833,28.48458865501022,8.917651622765494
+0.14954892475350443,0.3054637054476831,26.093191368489368,9.096744705267318
+0.1507257794533966,0.30473727715204835,23.708956455117175,8.297601185788071
+0.14879578850901265,0.29586835116048654,29.004619721437365,9.13972880083094
+0.14956158414060658,0.29974854590169664,30.443303245115942,10.059193607243436
+0.14889799768585293,0.29645603372090906,32.4082385338077,10.320484632001913
+0.15110915613971898,0.3017299989441016,36.841400981492775,12.503867584439961
+0.14897358658420723,0.3002674501979019,31.95223395224903,10.541595814498384
+0.15048300023696504,0.2951591525615801,25.280578429466328,7.953956671685814
+0.14959975868456374,0.30013632345162544,34.972134039136336,11.558679552657745
+0.14890689309752544,0.304275314906415,36.064652722831916,12.33771704507854
+0.15257730337223702,0.3037993715883448,28.599341681391977,10.01018709800475
+0.15035767818156637,0.29662228611376323,36.95503552318381,11.828437343399939
+0.14826597638129074,0.3043430993971256,30.77420741210853,10.49470952567831
+0.149346502985431,0.2985283139499167,38.340665256292425,12.506746482074602
+0.150329022266965,0.28937452030780125,27.995959817436653,8.31859502633476
+0.15101444616760587,0.2892626612299043,30.28846112345243,9.091224748077453
+0.14913216195995638,0.2960866423372752,32.04618417626457,10.157515574456802
+0.15048944444077927,0.29268559100563585,25.675409207633713,7.925934427077915
+0.15017614407986668,0.2994734698167665,32.595423144432544,10.740626596641494
+0.14906802232532793,0.30249895296772555,25.627628356908936,8.663706172203243
+0.15003355207018987,0.30674113068815423,28.43869010222964,10.045585100387674
+0.14797265726093028,0.29667877436773726,31.48479175630847,9.938625383615797
+0.15044538673888136,0.29199654057999436,32.087624755244995,9.80303647242612
+0.15212284004800222,0.3011764910650829,28.60913524755909,9.76870118003036
+0.1506814416115766,0.2963780784386757,30.347677031961908,9.757595760266643
+0.14938588199652283,0.3004047564785126,33.431574198190184,11.070835679580188
+0.14790026085225924,0.29499166158223133,38.40316012965475,11.963383108722663
+0.15006553502793377,0.2949281911832335,36.11641154210594,11.321394058243344
+0.14931135374072152,0.295561465651261,42.36109300300054,13.32542693690433
+0.15129066592164142,0.29332980505176914,35.633352744486025,11.061776932156722
+0.14962919544712,0.29977986927540184,28.283971246862905,9.368260185264056
+0.15061961592272952,0.29091506276528273,34.89335369323134,10.550863371553826
+0.15145733272248194,0.3088124541446748,29.124428400866762,10.591662211999099
+0.15094449701963963,0.30103740128359463,32.81770947408988,11.129224211064512
+0.14992343187763466,0.30026072497587225,28.3614391113596,9.426048439287362
+0.1497870598406392,0.30651787249097834,36.79094643422057,13.024187746911117
+0.14805308063350386,0.2994992373242809,31.124075630318153,10.115122552843811
+0.14978308404395188,0.300395081831642,27.389701890396946,9.082213380813663
+0.14906815147161132,0.3070071817911079,30.04709274854667,10.620307362206882
+0.14883710408836526,0.301401290038396,29.899812624146985,9.972667394123079
+0.14915846868046254,0.2958630564905186,31.675917877246274,10.045075458323986
+0.15049040979075487,0.30698419256000714,33.61480174376229,11.913981172340346
+0.14892694770010514,0.30071616057673817,36.68939253723057,12.171753146094197
+0.1496353742180097,0.29803614512388776,34.781456818632584,11.306073972176133
+0.14914143789843404,0.30338587419840385,29.86134955498283,10.181335900138032
+0.15024641099436495,0.30670945650854414,27.283192717329783,9.69792447312552
+0.15133850577187158,0.2967295531413715,37.01410040592599,11.954560162880131
+0.15042857188425382,0.3043091288202729,29.78534729059886,10.28663321076271
+0.1488967774939424,0.29723769605209954,35.636896389241954,11.419506338939467
+0.15220479544906398,0.2937289405563386,31.367913470590295,9.885377988612836
+0.15127480497356902,0.29374147091170905,31.009155774909335,9.737756344955013
+0.1479974772530674,0.30929992280650825,28.600717072383997,10.293364661140561
+0.1523327486382037,0.30417379843931835,25.115747688058093,8.820320207944677
+0.14917597518136785,0.29846114543519325,30.257037513823978,9.778029120913152
+0.14783356932179464,0.30440959011465346,29.612993440725553,10.092942224343217
+0.14913382173391065,0.3022123557313745,33.9112010883691,11.469390261595231
+0.14881853316381302,0.3018136986798845,25.615835154467394,8.669264063869425
+0.15089169726058063,0.2957692040439849,30.038739590497862,9.594081713142737
+0.1514234889976493,0.2974530051373558,35.69324448731246,11.555527054364925
+0.1495459717719115,0.3030769256535009,37.02203108965668,12.619178048848001
+0.15058925893551914,0.30140935469338503,26.882144698426828,9.033792907337759
+0.15137468533266682,0.299803893360839,27.02076786310501,9.014341097544637
+0.15091713521823027,0.2998890310841218,27.793548416568687,9.227401826512631
+0.15087107764422555,0.3043910586030842,33.60653564696173,11.678819124935186
+0.15243131542025085,0.3042141245692451,28.900616679546093,10.118414254155766
+0.15084466556159776,0.3000940746543921,28.325470841013477,9.454135135329054
+0.1501407348541056,0.3020966785872883,36.32303435913135,12.27506603020689
+0.1505501720196525,0.2899148972881428,27.337257932122995,8.220290205677124
+0.14898209392216605,0.30201381199882876,32.25285007556397,10.830024542993996
+0.15270024647873315,0.29251035191076663,31.073666467727726,9.739052979835487
+0.14998672589406434,0.3101108998052885,30.01811558110647,11.041396784563018
+0.14950399985675855,0.30336400725902807,28.648787474754556,9.723013790545325
+0.149689729204885,0.29724950665597805,27.27453235364825,8.734876778752753
+0.1506629258281453,0.3026971274887935,27.283720976523224,9.282629325379165
+0.14912474889250615,0.3019784073806436,24.88072888547948,8.32979784805743
+0.14875156157401642,0.3058748319369839,25.791544284241688,8.972652172681656
+0.14962660151727522,0.3022863757625716,28.334722332817314,9.588677591072738
+0.15070669928882033,0.30122821801749716,30.14087873659318,10.14933042616492
+0.1502877496787177,0.29525073082630854,35.41897984941226,11.194779705876861
+0.14978468371311554,0.2950184088065213,31.36860357469211,9.885729930557304
+0.15162987345044118,0.2986162687679427,31.971436534943983,10.680013262035855
+0.15301633822798022,0.29714408927408636,30.263841932364272,9.945377650409728
+0.15034198317719685,0.30405282055654165,25.398337463543665,8.760132395696143
+0.15177161293600305,0.30290483738074725,29.656422453427172,10.181433951436823
+0.15089106613819966,0.29827005815560304,37.81966700177672,12.353339613987043
+0.14841135226308794,0.3031765393326314,34.96363789953589,11.832091608258624
+0.14887252264948544,0.297082831955259,29.55852917598055,9.47241069960547
+0.15034379689103194,0.3065740469804901,29.070123109073922,10.257369106062384
+0.15079027730776898,0.3021335853000164,27.381653420623376,9.322873773999271
+0.14940564771276005,0.2996730529775207,33.066519741387225,10.887290896225128
+0.15066983746576393,0.29558223512292864,29.019288808972853,9.264055554319972
+0.1499600567750619,0.30973477749179196,29.506323373072544,10.70887932460226
+0.1503202601276637,0.3030461720211249,35.63577936508666,12.194713933024705
+0.14862323220073143,0.2982667492937712,32.910393100202135,10.588843217585975
+0.14909196816101208,0.30196400409871743,31.01330165577094,10.404844125878546
+0.14900679967217573,0.30257344042923706,20.294813072419373,6.796197267001893
+0.1485380440875694,0.29426387161855,30.53123938024618,9.498981414199896
+0.15196675690973668,0.3101078086368599,28.408160354489297,10.517037683246434
+0.15155627523058182,0.3000489164144444,30.170870602979303,10.077290536980582
+0.14726885125660974,0.3058908696280905,36.183303951274866,12.519174424899905
+0.14933408194611683,0.2973125211355466,37.433870178815226,12.008406435743547
+0.14979775274752377,0.30090427961632077,30.77006433821478,10.238135865386178
+0.15012611730942602,0.2972228914720939,27.91591540875384,8.981228047441931
+0.15018285628062392,0.30406069337392644,25.90796175885795,8.968930621681409
+0.14973500771258122,0.30013641551743747,28.608409740433515,9.511448738170238
+0.14988219442179687,0.29813986804671216,30.80834002494342,10.012162533228679
+0.1490370840057152,0.3047052393835798,34.294345571090716,11.748937308215856
+0.14963712070781332,0.297016696839099,35.54266844904742,11.432182475872784
+0.15186431856882104,0.29028256338333847,30.309764620394628,9.206888729232135
+0.14982463129826584,0.30398987152804596,33.44090003597259,11.484377788573449
+0.14845266954592928,0.2958627340983931,27.637615847832812,8.650706611607154
+0.14993502324180633,0.30126651460050785,29.547666402162008,9.918545430495259
+0.14807962864546692,0.3042693043277761,24.77673490124716,8.421636838237653
+0.15027282879953618,0.29737808693217427,33.05248051464212,10.731937748268276
+0.14901807957585542,0.2925757702713154,30.75682828216575,9.39943541369618
+0.15087243723429675,0.2959424107024868,29.831273819406086,9.524129930568147
+0.15014046033668924,0.302432948207494,26.640185732164998,9.016012521254641
+0.14885864812206728,0.30312633448330234,29.73857562489604,10.035869822395506
+0.15059681177566422,0.30960401895410966,32.279361223755664,11.834440619547658
+0.14813291578259397,0.30426812521798313,27.209216986440907,9.220789342754266
+0.1485568153128137,0.2979032144356516,29.324059554392967,9.429175753916327
+0.15067446957796823,0.295856229170445,27.732695088037957,8.849384616679716
+0.15160702414839639,0.3015187996336067,21.593342129943856,7.300711729998763
+0.15058994713204388,0.2927756797552162,32.162077132612644,9.987735589093925
+0.14873705439467735,0.3026539839372458,35.31172745747046,11.929606670124983
+0.14902953079925987,0.29700294944629474,28.757445170338386,9.197191241613993
+0.15091968877220485,0.3053735432026582,29.15978584937136,10.218361528867472
+0.14970712196069655,0.30843915943519323,36.95240493456866,13.265922971327255
+0.15072733957922313,0.2999837479330044,33.74298262859775,11.237601039199639
+0.1491600190498714,0.298610299400593,26.99459233220837,8.748424345220954
+0.1506939863061937,0.3025518011416921,29.877666659767332,10.268239794325792
+0.14849125819620554,0.3026995323863267,26.13533873412915,8.797572545285648
+0.14952292197464515,0.3095596075909492,32.388370570898324,11.798416337468208
+0.14954583375856284,0.2983585540907181,27.0237797631759,8.79572714114451
+0.15030187362034728,0.30433838978893635,28.867885614025116,9.96232489625766
+0.14949825968665093,0.30231164699320223,33.26975512421812,11.28824978451811
+0.1502642177641268,0.3027893526508239,28.146794232160538,9.658656306862342
+0.14895923166618935,0.3049784907031482,30.526969888176193,10.490183256941712
+0.14932546283925127,0.2963419893725216,27.730759571512923,8.824622257900744
+0.14998465918616777,0.29791264315243166,38.10535180496843,12.337748344753736
+0.14875489231808534,0.30392801765489774,30.211649865691545,10.307524358196096
+0.150348153467411,0.30261229974128057,32.88622959890314,11.254985865938599
+0.14981595708492382,0.30172758622129936,28.41511142243779,9.512712231182556
+0.15044335986645277,0.2982564723586002,30.73053449230192,10.0283012358876
+0.15024336881588038,0.2973603434543813,30.30529195517483,9.823257611290982
+0.14992455323590728,0.29462071817856067,29.96745522658081,9.376694605613913
+0.14812418864676666,0.29601761731950565,32.098360643844984,10.073204444416678
+0.15036161232272272,0.30024369145781854,32.21882992277146,10.699882386558311
+0.14857103537032249,0.2942214424021992,27.449202968454806,8.522029309984624
+0.14884585096446337,0.30392063629151983,29.895716311745673,10.208216451960286
+0.14912394433430476,0.30164783252642624,31.146039031349854,10.474976676462283
+0.14932365104773776,0.29750616911244193,30.853822839145224,9.94811251137191
+0.15139988085649375,0.295073162304386,30.704190124030863,9.785144311155488
+0.15039008248506613,0.30127211089320866,25.300566612158345,8.524695777664553
+0.14966534011142557,0.2976921071106637,30.290255954708744,9.763517702393354
+0.15059577504215022,0.29884870896694427,34.34090574715547,11.224824741695421
+0.15025285464189597,0.29942830131697407,27.226108002711157,9.023468884985558
+0.14994708850547617,0.30455171623901117,33.150019304155705,11.464675257414799
+0.15330055767886494,0.30611201322151366,35.129580515653146,12.56430698465474
+0.14880739576623295,0.29476278324158994,30.922158433150457,9.606316687703096
+0.14895306589162713,0.29939663534078736,33.28112922235441,10.91215737867772
+0.15028537673187473,0.3078337342596627,35.47897813231867,12.780271042940335
+0.1509447348982303,0.29731044549330937,27.426891752985632,8.943121913800187
+0.14896887461921282,0.2903639641821149,34.657429529421506,10.347649280423324
+0.14910276306601247,0.30543158193845504,32.91496325367645,11.403037244665983
+0.15060319525843122,0.29952310315353126,28.592246970975108,9.452275538595543
+0.14960114559175736,0.2892881034305204,31.55285925499768,9.327744075766233
+0.15159911660125133,0.2950070275675495,35.698306443044686,11.404397661673258
+0.15242447984123036,0.3006029250367233,30.446736347530045,10.340538305235658
+0.1513084301469129,0.2939775572263108,33.38986000664089,10.451222647934177
+0.1492286331363385,0.30509165939805377,30.469659320002208,10.609410962352806
+0.14852153380958502,0.3050214553897647,31.62801695412589,10.84388859284403
+0.14961737870139738,0.2965157163127063,36.724246047974844,11.718981562802156
+0.14999110046324415,0.30728493292829323,32.435519125355796,11.537346315158524
+0.1469232929693161,0.29399451637699725,32.182460062826934,9.865611479139625
+0.15108343855845818,0.3086931307207892,31.57418923449266,11.528955966520448
+0.14745359769559274,0.29871645912394584,31.601261430331817,10.13948048161434
+0.14970476878786962,0.297329110651904,27.58232296160176,8.876185691253317
+0.1492642711522131,0.2926302904247786,33.85491615639427,10.313070366274749
+0.1481489078366517,0.29368126141700585,38.90883058894111,12.018144829836395
+0.14934342745600654,0.3030445759355111,28.861789179119462,9.85443271151325
+0.15096419878728715,0.2990910030426432,28.549644247528274,9.408940736329425
+0.14871137714627083,0.3055505117803512,28.93178579496648,9.997506313311153
+0.15055148396613305,0.2902800808065348,23.34177416263119,7.015141226801424
+0.15000893362069853,0.2934824069201333,29.031872843056913,8.961002760545547
+0.15013040772187697,0.2948758735689979,29.77865225288852,9.349297937058711
+0.1524160352073255,0.2986973643623877,25.411496063857356,8.433251546711542
+0.15029067041614602,0.3007237501737402,27.80413946434738,9.285279928677221
+0.15160777331586242,0.30220360575663807,37.1674882063486,12.718798235795665
+0.152038447288642,0.3061827356272248,25.671258491490004,9.200144551002353
+0.14953823584870787,0.30607963413378164,34.4393999348103,12.014652550049453
+0.15034527315020205,0.3069076201601502,30.750227894932635,10.902737420872954
+0.1504323631961632,0.29696062674966817,31.124520526623996,10.018933424396902
+0.1493195443388536,0.30084925945174995,29.06995817505204,9.698803702342078
+0.1507462016762587,0.30319183439382263,34.505403134299456,11.870065655436722
+0.1490080152400608,0.30745412639002795,26.3890868719593,9.32154494823567
+0.1495930779134718,0.302062597397883,28.92073078233601,9.723328452061082
+0.14941133567726372,0.2939023213677018,30.604931881401594,9.488872332567002
+0.15102151266921807,0.300836335403934,30.865387784401953,10.459236799647849
+0.1487095495495878,0.2962513271433802,27.94392385655112,8.808188750760094
+0.15023971137371867,0.301163308319806,31.757558800755664,10.712986545844743
+0.15048635240777133,0.3091139883897978,36.94566250587359,13.443753633325288
+0.1503046142553627,0.2934773838938724,33.64845978722138,10.440033438144964
+0.1512951202233895,0.2987181154982495,35.011466607983316,11.561351513198527
+0.15100649558463833,0.30370272247345015,30.3044819410838,10.484357142372676
+0.1505790031776242,0.2977288169794257,32.48497090798989,10.587070515995716
+0.1511995826287247,0.29660193145074815,26.34262373231169,8.513807548247184
+0.15057093031595906,0.2969920015961771,36.62267984408259,11.785942265429927
+0.14968158255729935,0.2987610910688213,30.21409605935066,9.87743861070166
+0.1507582654334865,0.3027903677876011,29.35298059861528,10.030972813450225
+0.15022685844945027,0.3008796443526829,36.00150132031319,12.037497286543624
+0.15062802667419714,0.31089551469947113,24.713236624311087,9.148040505417445
+0.14915131680787616,0.29422801550490524,19.408480699302324,5.993968332279883
+0.15117107415359618,0.2995500763167286,28.225624364149905,9.37402784293218
+0.15154416983979377,0.30728288680973365,34.57509051440547,12.496657060864353
+0.14866226809838162,0.30086775918766157,35.26580574387141,11.70235511886849
+0.15151657904897364,0.30775151621743285,33.279428111892784,12.000753645224346
+0.1498128827417418,0.3011562646597917,24.990045981895925,8.379208843208337
+0.15034509626771062,0.3021302155302349,26.751801976867654,9.095482246385776
+0.14874601373770033,0.300528504168351,26.902131119136204,8.873465044124405
+0.14814879999931446,0.29458936451879797,33.03189535820808,10.26528110748503
+0.14903229147880506,0.30446836811935,26.35097149976043,9.069695703512181
+0.15149259237704565,0.29231044777260984,35.05965975369023,10.846072737567685
+0.15149310243302821,0.30193402450360457,31.43474148545587,10.727561003312559
+0.14790794834103327,0.29422730342373843,29.793708479415788,9.136541233214635
+0.1471510527780385,0.3026114176970686,30.588164609235005,10.275061268783974
+0.15076252268580473,0.2934613245921129,30.256816897290648,9.456358512408219
+0.14890941766519045,0.2947633991788063,30.180937106877998,9.434297691180287
+0.1493459971247042,0.3022908055527914,26.120339822331765,8.78154598261759
+0.15021086795303792,0.29687267571778,28.214777098615173,9.102268591786169
+0.15057817007333987,0.3069888195108598,30.132820205448635,10.768021314980604
+0.15097230917064985,0.2919172131577889,32.80014727701795,10.143262373847682
+0.1510606526077132,0.3044791908004799,28.24578103165277,9.87006755985953
+0.1518832609600934,0.3085446387794113,27.744338608138992,10.11339753628359
+0.14987221480297153,0.30148195303224884,36.03079506961075,12.072921311250052
+0.15132169728605316,0.3025769760856489,28.48878720513068,9.764239648108243
+0.15043460822903207,0.2962315478372809,32.01215207841719,10.194678845073382
+0.15121890413756106,0.2957711340091951,27.73626828771082,8.867996430313138
+0.1495610507621615,0.3010700403202734,29.230307444660692,9.765653961140352
+0.1506859961139968,0.29228985090453735,33.71425011489931,10.394119968716463
+0.1476688031822984,0.300185348629255,30.632505233474877,10.005269327168074
+0.15179730683341242,0.2997641320567405,31.442999698576955,10.53843118945548
+0.14989521770670144,0.2963688187174632,32.92310390812726,10.523198563250023
+0.14999509465965177,0.29287343066557275,34.338768947623954,10.712257019059956
+0.15103744040105455,0.2928559452246967,31.64622324311485,9.78560986176677
+0.15184867032793947,0.29636692609705095,34.58076507587146,11.142639462669226
+0.14992433155587293,0.29730671161399885,31.603342708692868,10.205036051537007
+0.14933033412651492,0.3020121420519806,30.972995535955352,10.451764713300546
+0.1502991273556835,0.29991525562219445,26.803375739250075,8.882596026842238
+0.15059780679529378,0.2943915075617714,29.41196634973738,9.27039415320671
+0.15004697010001242,0.30482192788745854,33.4214678489096,11.63875343973865
+0.1510431269123195,0.3004793461188385,34.70771847579585,11.656824794516526
+0.14772461052238522,0.3023568072861861,33.3103272234157,11.123439000791167
+0.15043008108249503,0.3001295202598569,34.03912496374996,11.234817701816562
+0.14985959336157248,0.2962931671856666,28.154755686664384,8.950468074589018
+0.1507742601229193,0.30845392455592824,25.835804576564307,9.336681200473839
+0.14938313517539226,0.29575539720999566,33.05414518037676,10.489563610332752
+0.14947015525848073,0.29845079245173367,26.330301438933127,8.533428700185981
+0.150774806898448,0.29019833587605326,27.443901903085067,8.27354223247691
+0.1494669749644858,0.3029944896216185,28.430325825833865,9.668443390928937
+0.15118076921442858,0.2987656972855362,27.329464778021244,8.966596705953567
+0.14816867561362324,0.29823129475185384,28.94173004822847,9.322726607983055
+0.15070944583997414,0.30027256256443285,33.941978316136215,11.36853286714588
+0.1484134321573814,0.29232311463446836,30.50202846146171,9.274639341579933
+0.1515086211812547,0.308248374587825,29.775253852747127,10.698355376065066
+0.14971496295241773,0.3026732726909654,37.457763647637904,12.672436691571253
+0.1471304997197766,0.29896410888104147,31.716784322696583,10.101004963425526
+0.14977170923700583,0.2965580583527487,32.695891231616784,10.461885876620938
+0.14992922621184415,0.29864043957917885,30.75367318813268,10.149722727131676
+0.1510957775434675,0.3029882287535858,34.83765705970965,11.978883179374785
+0.15044803665897313,0.29611475172949303,28.291481472269794,8.982107661702308
+0.15067351682279603,0.3066201561519702,26.24525377321423,9.343680343891819
+0.14931070169633295,0.2999911029107765,25.315530572857025,8.327186572942342
+0.15059988950140266,0.2960924993396853,36.00550186517108,11.59136418689494
+0.14788637305403607,0.29564551285727136,34.378470356035066,10.74696323672083
+0.1498810075932557,0.3018473184633435,30.789453751795364,10.427651637042832
+0.1501154019045179,0.29977754810307744,24.938045196976105,8.211883065426845
+0.15068880462259532,0.2992580110375749,28.668489134145617,9.499049334530719
+0.151220005324676,0.2983966424086536,31.07440513697433,10.237310359130918
+0.14927715273671294,0.29086555780458323,29.873202109632647,8.974239740296051
+0.15009968108229363,0.3014850004917324,31.132930379354395,10.433359763661288
+0.15236208927424358,0.29349281842811364,27.54446476247883,8.65215263159151
+0.15049607626813713,0.2934455806171751,31.400564826551953,9.717559003334333
+0.14901844191821087,0.2907298570758176,27.941982095762178,8.39152707653335
+0.1492003437242695,0.30371493911770786,31.263435945358722,10.69239139052768
+0.15094926899408365,0.300980036507261,28.332863353038434,9.555820720839751
+0.15194627306986813,0.3000830175470388,29.59353119612059,10.023241702596954
+0.15089000041168668,0.3045939547671543,31.34401394448892,10.916105412678291
+0.15068162323786294,0.3020121453664716,26.275435971732783,8.948663920870983
+0.1500711029013748,0.29888015910811444,30.69281283995926,10.15271152537821
+0.14948754930045327,0.2938563061474292,29.325267226266764,9.026333686119075
+0.15054754876346574,0.29953768821541915,32.41712957483046,10.77082335700364
+0.14881953089447714,0.3008640465547994,31.53767786571031,10.473319993468483
+0.14999149768807246,0.3018055328613127,24.226290790323986,8.212888943403158
+0.1519213682818353,0.2957139933369865,29.674938028852104,9.48321722263086
+0.14819904468267045,0.30103407688267597,28.175320713172912,9.330949298704128
+0.14932424326465504,0.31240380774565585,19.613020707406456,7.3022173414286655
+0.15057313555797566,0.29126837005250705,32.971681387271985,10.028646554044508
+0.15103374958032303,0.2927180664468213,28.677380459247473,8.851312830356253
+0.14976544763567418,0.30379067520573644,32.19911807871424,10.970022366899382
+0.15108440236489834,0.29814359722246536,29.67576196224293,9.653463618006931
+0.15137181643451889,0.29965713584620485,35.81270265070755,11.910630034991147
+0.15019279577820796,0.2987734815228041,31.567437287195744,10.36565623150825
+0.15045964610925727,0.29460080339939854,29.316874894091594,9.21150970568529
+0.14924145461496635,0.2981768509320001,31.88105576862833,10.342949016028339
+0.15041407556195457,0.2904569958685075,26.268544063632447,7.887997275079579
+0.1492020088427761,0.30226647862670486,30.69778356108123,10.326627318715483
+0.15002326884940428,0.2986838608789926,30.763844859144136,10.033108128473808
+0.15151918391890365,0.30010107480420906,30.955906982671898,10.415449738174305
+0.15035301088470232,0.2965467071410002,35.646003145994555,11.396635648245196
+0.15065487139220515,0.295506106004831,33.051450754638495,10.538313490778059
+0.1502669285542142,0.29888736458630016,31.818577966717747,10.433809351236025
+0.14976653035508358,0.2968343215505765,29.833310953527413,9.556100135913958
+0.1511991229082891,0.30395582144024,33.52930692603067,11.713886132768485
+0.1510369791760681,0.29685055435152147,28.4981228139477,9.178791649541965
+0.14910296596590117,0.2996417013002109,31.578908334443998,10.328219516503372
+0.149528155854134,0.29909337679672554,33.78649739925598,11.102375894597317
+0.14878991791885998,0.29940949485763535,33.797924396901465,10.998126904283982
+0.14926764714811191,0.29983045438090256,32.43006695134997,10.699485746638668
+0.15088681737170662,0.2945029197329137,32.78573928813811,10.315829837334435
+0.14998418830527643,0.302355294791954,28.713218117383413,9.804992915095479
+0.15041074739287738,0.29914360894122627,35.47461208391715,11.607229654750878
+0.149888408771864,0.302836978069785,32.06760975882903,10.887587376684353
+0.14777977560744437,0.2940614551567987,33.92299258054551,10.42685167902315
+0.15055446945947182,0.30768670156344313,23.490979967770624,8.472447015845093
+0.148263509366539,0.29779323493162446,39.035926800091424,12.500774796539984
+0.15086074638623673,0.29621976094924074,28.648313712092243,9.154688188735916
+0.1492925575657649,0.29093658701161246,34.34329099826759,10.323630980736443
+0.14887218395584953,0.30726702229429986,30.58472318644466,10.821063887743318
+0.1510446501368456,0.29224341972526424,33.10438980987141,10.181711438547364
+0.1507400168091013,0.29317815755345716,37.240253616840384,11.523783137010437
+0.15121593800070457,0.30263478468534516,33.63169092637875,11.584530842944561
+0.15117766065255528,0.2976016974457809,31.907158883094947,10.389993180195345
+0.15089574769031902,0.30320318299689847,28.080754215930416,9.65655400737332
+0.15050589037748854,0.3010436753737675,27.99207784014738,9.401914974327115
+0.1520065549257504,0.2988261388884181,34.98933285226727,11.626504975910443
+0.14914959610075376,0.3075858053886476,27.06004976656196,9.614366676097507
+0.1504780599276882,0.29409591887933456,30.821441368246404,9.580612312652418
+0.14980065178164695,0.2965829234196055,33.304331535933144,10.659862424334516
+0.15026182888229653,0.2969626703271358,24.36593755615013,7.861151151410196
+0.14740622536256273,0.30482724143420115,30.8320652222042,10.485218519736595
+0.15004107553082352,0.3037232118263087,31.170806612494992,10.751511218277209
+0.14830044816336907,0.30895526598090534,30.2705608784917,10.860898357156753
+0.15270958549914032,0.2975787699172909,27.455770949429485,9.034566536232912
+0.15106391815551964,0.30341811349685305,31.6331790302197,11.024792988011173
+0.15167386187382995,0.3018258188667581,27.534662536379514,9.448623066105016
+0.1496977540300201,0.30028777197343387,33.74322952656242,11.136740462617162
+0.148701041833549,0.2932289880059655,28.78973272752735,8.854022058610695
+0.14912428104951425,0.3122610152444428,35.39079321192779,13.127925284304178
+0.15033960842865823,0.3029784684336279,28.478844429894536,9.699320876638332
+0.1502161383326461,0.3038731963508528,31.71721101355701,10.89028989067416
+0.14968673120767084,0.2982943734778103,28.44655006217986,9.221234957623127
+0.1530863015986719,0.29903575931841825,35.19079765665449,11.80766352423933
+0.15067607426364735,0.2985207959393135,36.751093305390455,12.072579881625707
+0.14956758124860062,0.3035390712094153,31.819180584663457,10.878812522467957
+0.14947137930874885,0.3024709591986557,26.934387911937634,9.129269128070385
+0.15024181998807667,0.300408770363316,28.81232073821449,9.59159629507517
+0.14918652519283482,0.30074110267546805,33.742301219295534,11.178718430858224
+0.15018888583554643,0.29880777561645266,26.33521557937092,8.637022518048255
+0.14918119003122648,0.2949886745954398,30.349600067280985,9.484178868991917
+0.1500609424969694,0.29945640496878273,32.586820472698605,10.769049424132366
+0.1507930456705503,0.2977578023900573,37.97660672598229,12.408063745495358
+0.1499483875710816,0.3015060352583475,34.70208597655041,11.65744568329264
+0.15002510311239348,0.30598378984462055,26.575215710798958,9.294056691560405
+0.15058553243646697,0.29674539347061435,31.19757417957157,10.019551262858315
+0.14860707857955005,0.3074614676208342,30.35356963236896,10.741797504629394
+0.15063485854581035,0.2958916958603231,31.16232944031297,9.943465958093533
+0.15023543687792787,0.2977655817475944,30.2976514566363,9.810146855391272
+0.14733343495181112,0.3007964467767419,30.42955020754591,9.985837229051368
+0.14862878363405777,0.2974833489865996,33.13930559382762,10.634163067096425
+0.15254406574655036,0.2911122291381535,33.55764185385508,10.368089386492462
+0.14788914002739084,0.2968503290340743,26.916352958850005,8.484270381797899
+0.14893006043991475,0.30296924288550475,26.876907629745954,9.095578164788611
+0.14954490295484538,0.28938656920399924,33.357076720602294,9.865071894993102
+0.14927245458388458,0.30887779257831766,31.24155308539835,11.23364547146142
+0.15031638908735806,0.3019413241719382,37.395881000548094,12.657532820776128
+0.1505363462699479,0.2997831065109857,31.98692920684378,10.613077583981081
+0.14757181606651643,0.290578507966435,27.960739075481015,8.244341919000489
+0.14907816749669353,0.2975942128445508,33.27186659506231,10.662485086242034
+0.1503166101807711,0.2932889649159534,30.312760941182482,9.409491659704175
+0.14991646260878996,0.30199124815161443,24.64443744467545,8.32963856404686
+0.15042780594455243,0.303355031939687,36.49088220965446,12.64427782225258
+0.15035458569994473,0.2979835566289129,28.379381134625913,9.212661785966164
+0.15029183964603152,0.30278520157295025,34.24909377638521,11.657630489943035
+0.1488816458110228,0.29899077477230523,31.30461239076017,10.169906491465271
+0.14947736822905427,0.29890919497037377,30.819045278213853,10.093633072002945
+0.1495774472714237,0.2932235282394989,34.985618140693866,10.8663189491922
+0.1502093669834713,0.29745861278691543,29.534961774571208,9.589313249245327
+0.150288884708207,0.29947931535727773,28.91600978582943,9.552694433632679
+0.15001109404790114,0.29832858786679806,32.34203887139163,10.54768853588139
+0.1499275881703455,0.30369984731247784,33.355445254633224,11.44559014574646
+0.1513014283331823,0.2999003881029739,28.75475568127949,9.604974847741019
+0.15060958081846865,0.302111568381731,26.86255351249752,9.120166063391329
+0.14913580783721297,0.2966410934007188,31.356425182097237,10.000698578913134
+0.15123594992738035,0.3029999655506147,34.07614779142296,11.690871048085878
+0.14980419441133716,0.29861985740736313,21.65418110160892,7.064653320354372
+0.14755325684455525,0.29577129135351,31.45560802140075,9.827939088298221
+0.15111200084379992,0.300375275430702,27.05759584451394,9.034597729719238
+0.1503672167472082,0.2993168419837496,27.347544059747865,8.946689591520146
+0.1508797987486247,0.2979985140837423,32.06983708343784,10.478289775242146
+0.14995192817629743,0.3013063131257225,37.73383129226039,12.62558671033307
+0.15051167272389304,0.3060378456987253,26.850201674371398,9.417138479994184
+0.14916640621633792,0.29443221355127186,25.432660645925623,7.974422911438147
+0.14839627634881533,0.2993851880613422,31.06103690755286,10.09232340700511
+0.1505187950544749,0.29928413615784355,29.329808338819102,9.667827121752978
+0.1500336105632486,0.30091377533319713,27.526275162872775,9.19412672915242
+0.14998065575639447,0.303902857790533,25.864135841626535,8.931738313954337
+0.15080109470597072,0.2936403269697337,28.629353068901278,8.926897165344975
+0.1489656387429419,0.3037636393567041,28.771783541266856,9.83967347268145
+0.15232530060664726,0.29903331404514233,28.405855264011635,9.519114586680374
+0.14747276128914413,0.3013777354963375,28.956363811635274,9.580493355681625
+0.1493956953299319,0.30106346805155215,37.40349273714969,12.478300315646056
+0.15174041100787,0.2965009731225903,28.712680987431202,9.265596090069748
+0.14937580314256566,0.3000786633078995,27.8185524525386,9.183714396705252
+0.14902703275600226,0.2999401035064703,34.583929263271564,11.388814495241258
+0.151190233430722,0.3030337509472216,33.61057203177463,11.57407203703368
+0.15159802254517157,0.29762008463623274,32.12843088682959,10.512306451877096
+0.14948650520637904,0.3015657010973747,22.75852252412735,7.682099955334691
+0.1496642365530021,0.3062310731433325,31.117341917312427,10.955113383448342
+0.14893460894165575,0.3040635550213462,28.326104799733514,9.680153389838946
+0.14981368956256017,0.29634706966985264,24.515147232835627,7.786792643612841
+0.14837738591834368,0.3025612668295916,28.2041636522841,9.478565880134783
+0.15058507328943255,0.307767172018818,24.026217257158677,8.634950671301269
+0.15071512161665104,0.2974263079378452,24.120250712282466,7.838928033439598
+0.14986745802251702,0.3017673577509257,30.98884997428999,10.403769980576635
+0.15061419178847887,0.3024523962816918,26.010232885198878,8.887554610748081
+0.15076773708787708,0.30177464425281686,31.42341309373993,10.64327820582826
+0.15077198551307922,0.29535256317577085,29.1405112687025,9.316532115621941
+0.1509171891624966,0.3015552153980775,26.637589469515056,9.069028802168285
+0.15025449929797186,0.3027407799030195,40.90901754176369,14.007678158247998
+0.15133899708750123,0.29731909805997886,22.917810875216013,7.47403302710069
+0.15096592039757228,0.2977481951673454,32.12315843276999,10.451092681124747
+0.1501180132460969,0.3042766688516099,31.75417422762076,11.037991497898384
+0.14951245686781525,0.2947501304710391,38.55733969260438,12.185092683137514
+0.15120327633638617,0.30676173139415336,30.02003359626483,10.743516196501087
+0.14842085694901078,0.3023849564197311,34.184970207572704,11.425962110772922
+0.15156945357188584,0.3018084210773706,35.91328806842829,12.291936187626469
+0.14834020547374457,0.2901269982497304,28.802247484511142,8.55069405087363
+0.14979524218870371,0.29786927065667135,28.656686992844932,9.367135983224506
+0.15045868672132423,0.3049435641177502,33.05307129489781,11.480228336407132
+0.1483942329696348,0.29962957421272235,27.26291740266668,8.933976901590235
+0.1491995057834843,0.30710004597732055,27.83361017691259,9.84249380735658
+0.1484485181204472,0.30454111321959804,21.516988974191953,7.325137234735966
+0.14976585224782815,0.2983773673446415,33.78232967925452,11.003285398330037
+0.15109298644400412,0.2978244126301829,28.12407870160748,9.128148339936741
+0.14925901981686115,0.29954782840251426,30.865478522725645,10.127005451739775
+0.15001861381841472,0.3036047515518665,30.2535749106866,10.350989183524003
+0.1509664425290446,0.29965141764442393,27.038615442670476,8.96087818049083
+0.14883004450813458,0.30052277040826314,29.33661606299958,9.685695245902734
+0.14856572494398707,0.29976026924651344,35.37448013951501,11.531540048230147
+0.14876709526083517,0.2985619195066997,34.403528065249866,11.160824306219265
+0.1519374995494205,0.3018883468886618,33.2753532354352,11.343168375683367
+0.1506559243433495,0.2977189104939703,37.183921138987365,12.102308015548106
+0.1495068789546399,0.30139826185093505,26.493090639649804,8.81646838131137
+0.14799889156802182,0.298398125735086,34.373375761707294,11.094654528647894
+0.1488554167531753,0.29565195627176066,34.50759284980067,10.861420592122949
+0.15104901291048523,0.30356906946381806,32.86819628867165,11.370904189985886
+0.15030188127232255,0.2977156218739811,36.97153014847191,11.956853369813441
+0.15067934514853276,0.3052041412930608,29.97295514367326,10.51916310380066
+0.15089506253561888,0.299085612373873,30.222565735219636,9.903578595845705
+0.15015417916661541,0.3060428252301413,30.648040413980187,10.789680114805424
+0.14930833628841975,0.2972488491427643,39.31956537560325,12.60460982014103
+0.1500939954835521,0.30206108904455536,29.846907404132438,10.053253326378725
+0.15064559389868318,0.29444978264230093,32.012410829257455,10.12335512275027
+0.14903369309058892,0.2886664472374679,41.86523974514648,12.281069557358745
+0.14940455414047613,0.29425767885210363,29.076064703523944,9.03887866809193
+0.1478846709131926,0.30134157394046684,28.205762233193845,9.369917606315253
+0.15078310154914792,0.30419282285707216,26.974500802757333,9.48534854077749
+0.15012739922854448,0.2996634272667118,29.043598931937762,9.61506608427027
+0.1506704927168307,0.3040273447535611,28.03333102471922,9.720804495472434
+0.14840646908447533,0.2984653977788898,30.19440904560796,9.743713135484583
+0.15076792476451653,0.295841427108785,30.02747214294451,9.63423754014812
+0.14996191496353556,0.30302343913316443,24.42479866778968,8.367892156172406
+0.15059303334359786,0.29708669256218473,24.36637794798471,7.837883664130253
+0.14932176288251797,0.3025862569044024,36.120460693202155,12.21717668732971
+0.15114377690224862,0.3012623097260764,27.568088705529593,9.350293008089363
+0.15139868708209775,0.2994404511999676,30.89046308499769,10.286731279281053
+0.1494914905381328,0.3043462488197178,29.528923992427814,10.17291709717721
+0.1513631835619302,0.3019751716445081,24.913257849395073,8.520317197516897
+0.15086352814518159,0.29735696824386887,32.89385798250291,10.703261951038595
+0.15294431894325225,0.29600077419338156,33.390329698404095,10.819937433259417
+0.14961938826186996,0.2969337656316086,41.60391331355774,13.315599426170293
+0.14958780325107568,0.29800700049364104,30.980564829307696,10.02136954992727
+0.14868556251864165,0.3004343505308605,31.65574551417104,10.449871879558987
+0.15045138409166842,0.30652681260511305,35.768878124634426,12.654930207986212
+0.14924784639126135,0.29400071279425644,32.096217002234866,9.959733116217834
+0.14993371021225804,0.2965532742826185,26.087130161882097,8.316644750798135
+0.15029780316677474,0.3046031214138099,27.3274974525436,9.486191133972929
+0.1516064765431956,0.30179270681234455,31.35472126219318,10.651689604359023
+0.1493558758743699,0.29519051417565834,29.779535788589367,9.343204622779442
+0.1525703625926854,0.29464016300082174,28.656690363781134,9.097111280629534
+0.1507865219169648,0.2927518727426689,34.30725392565914,10.643567221950576
+0.14990576108632325,0.3071638497860718,26.041991870711463,9.231525643353597
+0.1509701340730554,0.2938017014450783,35.41327471286722,11.097048199129084
+0.15206275718509027,0.29930325960030907,35.86589770793475,11.967911233976473
+0.14964386284521097,0.2976650411628569,34.36410563481566,11.117661464227005
+0.14925922414411005,0.2930284250877264,26.751762769801708,8.234830670249135
+0.14883913559172476,0.3009645329309352,32.37105692462787,10.702426208202489
+0.15043752215647896,0.30231484850584117,26.66005812989897,9.116584825704194
+0.1514478640689323,0.2980819265059424,36.07398971181157,11.877759085742284
+0.1512851063130228,0.30178835926275227,29.647354059508793,10.097067526523238
+0.15079868309713954,0.29740237673305037,33.40995542454431,10.805866502171604
+0.149662560010074,0.303604675733528,31.472608944103026,10.807342948217384
+0.1506762125088467,0.3084932692702251,27.918431751073662,10.071743543247528
+0.14782419543131053,0.3023506050850495,29.416612881734483,9.83877681503561
+0.15046478619120485,0.3093496541516581,29.329825945799783,10.635884604419395
+0.15179271441217693,0.2944958468580398,27.934052544840014,8.8858209178518
+0.1512002232089866,0.29653521642643194,21.743940783814363,7.027605920072059
+0.15060844664235318,0.29678401277819083,31.766620468926046,10.272843202269941
+0.15002726569425265,0.29745531038049206,36.47376895388054,11.805868828564899
+0.15075242929204055,0.3009343270203643,27.287057800111853,9.183440144516883
+0.1484453650861081,0.29952744388358765,33.187870844583664,10.865601683529729
+0.14837304071291316,0.30100993971986384,35.844345203333894,11.83045083568649
+0.15050618145951317,0.3028850322225646,29.673298259012007,10.118391419431811
+0.15029785875999183,0.2919472473495795,34.65804212105855,10.604291367652767
+0.14859128207774175,0.30028356250509647,33.43570092258685,11.053662464597139
+0.14926490565642783,0.2974614497826881,25.290674934968514,8.182411078925668
+0.1496825134901875,0.2948095576809765,32.81299060401424,10.31009479789265
+0.15044226228066837,0.2948654006972061,37.668118785536265,11.845821014235648
+0.15268540998779342,0.29937374411697865,25.994114804085385,8.712242335019372
+0.14858861216720107,0.2974894023640524,34.10702758813251,10.887277339937047
+0.1518635466679473,0.2985271903941027,22.196781680856997,7.344883204310118
+0.1497536947134575,0.2977046877583109,29.64126564582211,9.613096844422211
+0.14943785354981234,0.29922856753485255,37.90341403591808,12.433923761296008
+0.1503166713622611,0.3043172520426554,32.3661963461317,11.22711146933555
+0.15078710919310742,0.29803933531631943,32.89411509820583,10.75817903701078
+0.1498462257059411,0.29394545414788037,30.038123804429713,9.344910297943104
+0.15178025321190733,0.308059464988682,32.43842613683945,11.83780291767408
+0.15055498074624993,0.3053690614243249,29.332671122638228,10.332356053415863
+0.15203580092835575,0.30181203010056945,27.684861842136456,9.45385105101417
+0.1500111399875533,0.3030077959156818,30.69067834317036,10.524794548047643
+0.14833781205159577,0.2982966216177999,30.118904273312506,9.68933762676507
+0.1486827549305727,0.2932752637565865,31.31827242655602,9.559841210339005
+0.15048801567206602,0.29367949397890286,34.3714149449578,10.726497578548218
+0.15046997850298868,0.30627115418879364,27.522331244808488,9.716677422029955
+0.14893705952775874,0.30038848810185376,35.41807228497105,11.687757313918095
+0.1499727911597267,0.2996889919954292,35.124151199939675,11.558593794917503
+0.14786225504452571,0.2982375441204221,33.0052503134442,10.589025058666365
+0.15131376222526624,0.30782145879767614,32.540813110276446,11.77523395213765
+0.1516430037873756,0.30207987821487986,34.355402329339775,11.801933386505732
+0.15098007242011552,0.2950849413479891,37.10516579401164,11.737719622488587
+0.1520703797749854,0.3068270463276858,28.573921898456106,10.267344854871046
+0.1490084767659443,0.30737616761521047,34.973224952217485,12.477947950400424
+0.15109793939918886,0.30346697154674557,32.814825817867614,11.334765195332846
+0.14916932882595496,0.2997578491015143,28.529918067730033,9.373951982067886
+0.14925465247216566,0.3035437011678686,36.69045648801905,12.568504926337088
+0.1504007251539926,0.2989149812474215,25.712485991295193,8.46577011459349
+0.15067367911590415,0.29543544976639347,28.221997741590023,8.970829407892522
+0.15006186380694703,0.30103741318622407,26.4439171865534,8.884665515140524
+0.150458602512474,0.29992379409443903,33.0149161054601,10.928122526682312
+0.15009318332513552,0.29334759620661766,29.40316717877247,9.074141647034734
+0.14998094998334777,0.2955356905084732,30.22436574789431,9.54524479612075
+0.1499024226887319,0.2977483730160399,34.28606258304423,11.199252723038182
+0.1493339392474207,0.3017042399087699,29.319380880418514,9.856125544718987
+0.15011265282128067,0.307712054359878,24.472678539547932,8.793160469341734
+0.14962079392127406,0.30312604831730633,28.760271493442033,9.74783063503945
+0.15160264526390219,0.3012357717896196,27.978854793827313,9.510738147642947
+0.1517835729905002,0.298901463237264,26.73451378914395,8.869973544846678
+0.14977907206909624,0.3053728171437475,38.44583677625377,13.414837709503171
+0.15172958607107817,0.30462397517290885,26.182559924621252,9.183515735388715
+0.1503056474595276,0.29308744377324986,36.150191051617696,11.193363634599772
+0.15165046027251256,0.300568271870888,25.734348685190028,8.673804420637332
+0.15058360625962472,0.29752395064539633,33.74599534665227,10.954061194688098
+0.1502136465338399,0.30841594778004905,33.72834938912091,12.203067222864608
+0.1494447310905674,0.3056617103739779,31.625896638837926,10.970614976179696
+0.14901669566095727,0.304278539486677,32.805176798947464,11.356159813747162
+0.14974510920245884,0.3100525679538434,28.12351864954404,10.257872138623558
+0.14989477410624058,0.30222117173486174,28.902852589409303,9.771566899608903
+0.1519380124932902,0.3035371492351673,28.511645846344607,9.869875560889344
+0.15049135121630877,0.30576780341006576,31.573171032310363,11.092190708611657
+0.15000121538841918,0.29248220379363565,26.283968993226676,8.073477080514785
+0.15113143245379496,0.3035866006018007,35.758922943198996,12.385039268493864
+0.14920379009815882,0.2905500488537573,29.186761964271646,8.785607625015592
+0.1505182316508701,0.30561366309689536,25.11715409477581,8.824960381218203
+0.1504111246086181,0.28971564963212043,27.679152679067904,8.264833318180205
+0.1517653126627752,0.2990648616856187,30.563759062048867,10.134209820184717
+0.14711830500830458,0.3039216677131862,29.981307104015904,10.192592991135728
+0.15244821527059224,0.29720624366247356,32.393755277079755,10.654645420316823
+0.15091815716259357,0.29830882485821547,30.568265096482754,9.986659616437745
+0.15135654444640625,0.3022739113468509,29.200623919011,9.977744266470019
+0.14936179389544246,0.30043635162215615,32.427402959303734,10.737224011721548
+0.1501135977559615,0.29614124177416307,33.69551125834044,10.779407787037705
+0.15057437908678659,0.2999563796725782,32.20108130724556,10.720940691730906
+0.15195396274157577,0.3051676508483932,30.892294460746903,10.856726738714121
+0.15316698469541248,0.3031570121557386,32.08647816226913,11.179681328403003
+0.14840413681230077,0.2956900063397883,30.7564095160484,9.617808642340874
+0.14853336583848084,0.3052431719288173,30.51018098137511,10.554134686279033
+0.14978978969625084,0.29950798528816946,25.73759698252809,8.504128867005564
+0.14989138689466233,0.3027347162337493,28.46159515168385,9.6936173045858
+0.14962773750211597,0.294796012753617,25.570170623840113,7.990075517146106
+0.1490959310679919,0.30089989286114743,25.078544952577296,8.308677378198935
+0.15061688127928843,0.3023311170584441,34.63977259626869,11.797043221415642
+0.1506412473412563,0.29999769371254753,35.45640751649038,11.763116077335656
+0.14984560888327514,0.30427414212978976,33.51611710598689,11.513729534654649
+0.15147885917332754,0.30397189796552815,29.34167875338313,10.15776889327649
+0.14952841605327724,0.2968051561276766,31.974405378603798,10.246467333401519
+0.14897975528899043,0.30578039816342417,32.614761068198796,11.342460854128117
+0.1516189178307404,0.3009002899142972,27.387357219553113,9.282891850732574
+0.14991349958260705,0.30642640211005423,31.5038713133312,11.083777150565602
+0.14968809381274562,0.2992576409896357,31.233932754255008,10.28397362046969
+0.14784261107828545,0.30021726221830675,27.28281039231393,8.975500453473808
+0.1498179143072107,0.2966764701044324,31.610927524030114,10.151748757277831
+0.15041559694197038,0.29916741041488054,35.648235754394065,11.76219640264478
+0.15114842004101242,0.30175178675148095,34.61477001145648,11.71393474579716
+0.14992963441145607,0.29819348781943456,28.058300601571993,9.132709725246523
+0.14970269873044656,0.302012804456584,31.376996189138346,10.627310990173388
+0.15103445365916993,0.3011267857925183,28.557473458909094,9.615854342746147
+0.14983286659984904,0.30147985245893505,24.254769547203054,8.166707099317279
+0.15105151504097133,0.2962741915788476,29.024659474320103,9.337742948891357
+0.15174644657474176,0.2982332536215918,32.169106398154184,10.576570702629374
+0.14758083770801989,0.2963723147685643,32.48533962386824,10.193326606874107
+0.15124963628039348,0.3034722324881955,32.67851288298868,11.31839403176165
+0.15059599455666153,0.30187845357756543,32.61667355037423,11.082360697911204
+0.15068931058393414,0.30636598448309904,29.883576778470292,10.5489199236166
+0.15034562597514187,0.30454874421088474,27.064811468697886,9.34741607295157
+0.15013435694275057,0.2977993546068196,33.17177305553215,10.71729113585237
+0.15231048765051944,0.30632905742261296,32.15670847463518,11.48366107794676
+0.15013561033314135,0.2953382592876757,34.88124663083172,11.032722809752773
+0.14954007543665873,0.2987652378741349,24.00627042876532,7.799959333470975
+0.1491219530689186,0.2962949125552235,29.297952156464824,9.314092067683916
+0.14938251031483513,0.30120122632563157,26.107009995782256,8.722244745913583
+0.1495295716595131,0.2990552595936066,28.911798711898488,9.442975991645431
+0.15084112580545736,0.2986681601618449,35.545953544669985,11.753604523942538
+0.15251595841701968,0.3052407358803844,27.278573451843773,9.673833139157749
+0.149258620959451,0.2975906340906592,36.51840344715672,11.762365549776417
+0.15072158376348704,0.3011072141923236,31.080905568967722,10.477529867939111
+0.14966491138160476,0.3033288096755311,22.87802387103197,7.819043528537824
+0.14955245835078781,0.2987905709795551,33.73499384214836,11.023106231668152
+0.14786897400232282,0.3000781133651611,22.92650773745782,7.519749886552095
+0.15057948027630677,0.30803837943829565,29.043048867379408,10.485087231740868
+0.15086523042852037,0.2926523689319778,32.20186634868834,10.032616894970294
+0.15099745740073592,0.3056137345617117,32.34825754516426,11.466172644604573
+0.15002548999890755,0.29797201753311814,29.84987594837209,9.67257754144264
+0.1498995407954346,0.3081939909701393,26.442551898606954,9.492682467877826
+0.14918714578329784,0.2998108385743562,37.09315909413145,12.265553327747655
+0.14975588351327826,0.3039525526331161,29.310812464385826,10.135825425630223
+0.1490657005296821,0.29414362922187326,32.03094092785737,9.94541569389565
+0.15023042569571937,0.30387449924746973,33.3742555004203,11.439189492275565
+0.1495943388088155,0.2947419019308138,33.82153258378142,10.584963155492646
+0.1490807275341675,0.29660932303501464,33.68689130913752,10.688403096270378
+0.1477470430339939,0.29314722802700044,28.827097280086587,8.764213099371382
+0.1504130822123104,0.29994732367885496,36.510029240594065,12.118068141369603
+0.15052669742688332,0.3067723426558577,35.07565167992693,12.414967279986215
+0.15089941984932592,0.30071577212644535,35.110212811776854,11.7184538687149
+0.15061005798919339,0.3023926764435178,28.84140182531002,9.83534219739323
+0.14940956736778638,0.30574335945493997,26.490032852842322,9.267008088411059
+0.15305457869656253,0.30543488340556807,23.780304427831624,8.491670954493214
+0.14998693807024996,0.2988567673227526,32.727043669982855,10.722515241454591
+0.14900611277349946,0.31140915520781925,28.122281723961933,10.361782091553442
+0.14830231140898287,0.3024337623969262,29.00748558998098,9.7306341100213
+0.1509743586931614,0.3031434588054985,30.012083825849274,10.26935429417903
+0.14754947250299014,0.3039426890423583,31.17306250102355,10.546845169452272
+0.14905553122380977,0.29853867348906155,29.562281976840552,9.59859880331741
+0.15226789875201893,0.30510106470968784,30.05668817841987,10.682286375729477
+0.15043913988422614,0.2975169977271814,37.16012280920702,12.042169444367296
+0.15210190438374066,0.29735276786859505,31.782311777782265,10.43422561072627
+0.14945104843600143,0.30052868636457475,33.20622713581717,11.05218520053436
+0.14843056757411224,0.29635574874613363,36.21697138908513,11.535312524339854
+0.15228936479768446,0.29762026567665545,31.514266564677893,10.404642694959948
+0.1490486339479674,0.29537651179645424,35.04635822501938,11.012229323098925
+0.14891396774968568,0.2979667193486029,27.810476315827668,8.93655263359963
+0.14995241474544962,0.29056922452948275,30.07825326155587,9.029857178054897
+0.14961210847164694,0.29551559381699316,32.701847765933096,10.333342134113154
+0.1494078496561292,0.3034747107222194,29.521094197012797,10.080924548093238
+0.1513561996536015,0.304487450402533,27.23849028229049,9.51214173740032
+0.15030256602132055,0.29160478811027457,32.12973866307207,9.78809063765503
+0.1519451866855394,0.3025884024411119,24.753422376902037,8.534614711835841
+0.14984265593643567,0.2989964182460706,35.158661478401356,11.521506826632164
+0.14871622503097046,0.3010293237406419,24.97010013693717,8.307663321972719
+0.14987765194375208,0.3013977537463907,25.917529274620087,8.702603774682617
+0.14930997294470263,0.3100266650186661,30.974907085746427,11.213006263540422
+0.15193451096617464,0.2972551190725762,30.805847402842232,10.078103698950489
+0.14995383698964435,0.2977347862416087,27.295020347744554,8.845510856834007
+0.15115454307489748,0.3059078355377124,35.34122831120001,12.410137345021255
+0.14897212700025705,0.29917425285254395,31.20605508722129,10.21244988552118
+0.1505905944832905,0.30321193138253116,26.088206368038435,9.007940066265393
+0.15089134821943764,0.2995488236399267,31.70561433315827,10.519349789135736
+0.15024343199249532,0.2963381457137584,33.3425478542958,10.618379556387588
+0.15082491025335795,0.2997803381553344,33.53938382104793,11.102324162725868
+0.1502447814794903,0.29544657452389633,33.426058722942805,10.603599032267855
+0.15101602308826914,0.3006422059371935,30.265343936345197,10.169090248052852
+0.15083676344899152,0.2979844083093604,22.8038691623805,7.429778636201351
+0.14938027506107074,0.30749558610018224,34.263783101755976,12.233317627149912
+0.1501226453030666,0.2988524964950044,39.16820591318921,12.792168433106848
+0.1481255803919269,0.296817633017544,23.466404253924694,7.431987096698485
+0.14952660596477851,0.30287918111546064,28.512354293644684,9.733570577178368
+0.14951195086926022,0.3009515154556572,26.00158434823065,8.68371213925973
+0.14911658052828103,0.29885415100845014,32.62153665828278,10.643167264142406
+0.1524121528611297,0.29812224263979437,36.307984716040416,12.064975498203285
+0.1490226130797118,0.30053282724023306,24.195760062833237,7.965568330510173
+0.14998994459969056,0.29493641665694126,29.25616035486067,9.213952849185521
+0.15081610602905168,0.29853924749116695,28.10247848217867,9.202412706131799
+0.15210339271192266,0.30574175045272844,29.454865174630257,10.441639388133552
+0.15090286867020183,0.29947437272485483,32.457623503790764,10.794158832709602
+0.1512236528389253,0.3006095676750337,31.234683201982673,10.504287476498773
+0.14987316219003224,0.2994848902947294,28.830359197392017,9.485381132329348
+0.1494375886475715,0.29164037344391397,31.769971936508668,9.595961030051873
+0.15006652015649422,0.3022988211320481,32.237238930721105,10.91002601805552
+0.15019961866380072,0.3042564408909161,32.68928116098304,11.312482208803827
+0.14716259830276776,0.2982304260744898,33.50653062020291,10.701389055216678
+0.1489370737937158,0.29430041205836976,31.742641050978904,9.878417901800866
+0.1510591852055156,0.30053563549955614,32.314009817925935,10.815930560172609
+0.1500683996864978,0.29319048078649584,25.747266111945915,7.955372701493358
+0.1527351091031644,0.3011973730775738,25.599758837292306,8.701822751705699
+0.14847541765062802,0.2977367874232298,28.392836081200187,9.042832674475374
+0.15103121812304204,0.30125709714974247,27.674250699279497,9.359124456855472
+0.15020930345774838,0.29536177654193313,31.493506610090346,9.985869477952585
+0.14878010848653755,0.3020758740794454,30.469929937362124,10.27736919971336
+0.15015387740268826,0.2990193500874404,31.716325851296496,10.43924965236406
+0.1517159429551546,0.29800062017413753,29.270218851364454,9.584808663739084
+0.1492346238589625,0.3016926611834917,33.46886705843642,11.271266256764422
+0.14838644787747177,0.29839857780008394,36.90683034835058,11.883387600713034
+0.14693957152142495,0.2972634795177829,31.85528718981324,10.106821184323744
+0.14933658254798657,0.29801684951741825,32.79728936807681,10.561361707779355
+0.1492980088942162,0.2947797023444563,30.382262409702765,9.506621347202737
+0.1518251009931771,0.29856166720568506,33.54815058142583,11.078488495290063
+0.15040270525503105,0.2963788839947866,27.614640908625493,8.88218884939443
+0.14961445042414867,0.29464386660592556,29.938352374244822,9.38364209148678
+0.14778180649538492,0.30426672549711586,36.84025826069673,12.584813559446197
+0.14980708082466976,0.3007079069978591,26.252597252246296,8.696058367554393
+0.15274009527219806,0.29999704885990014,33.96727977191954,11.467948083594058
+0.14783977157912478,0.29830624203298106,27.636716968120528,8.870691007422955
+0.1489908891394261,0.3000118769843524,37.84579296793654,12.385013070531814
+0.1518887726862126,0.30501399595746015,32.36591354593466,11.351776981518608
+0.15083728138559363,0.29635252022640823,28.74158917654963,9.197663615606723
+0.14995335072451974,0.29637324071318355,31.68519841956116,10.130306854602999
+0.14993709507753533,0.3037310139209619,37.49994697570696,12.848582257181244
+0.1496377096318426,0.29602110694728667,30.42776691501946,9.710816946620291
+0.1499653198160402,0.2935947245941898,27.351594626547936,8.478986883760882
+0.15032523743454446,0.2981972409625269,35.104035725524916,11.441815417290368
+0.1493399411215471,0.30047033080057445,30.880549926522377,10.227859310193463
+0.14904533706235404,0.3053246237107596,38.817137466357366,13.403397896317326
+0.14869221475507743,0.2987795225241276,30.11741034496078,9.771682317190635
+0.15164199201300382,0.29370244890514924,32.05757070250891,10.055400771438196
+0.14986838720373896,0.3055103733476672,31.491852333594146,10.997081006484967
+0.14966268042376135,0.30154870020743796,32.73708023177034,10.99178327152146
+0.150839487116341,0.29426569444436373,33.44941663331996,10.474217827431886
+0.14810958341244596,0.29845045129940084,31.649616444697596,10.133592060622028
+0.15026941732361762,0.3003411317221501,30.19572926848951,10.021011000695832
+0.15128912127141886,0.29512482110944976,32.3364019911512,10.327089511597165
+0.14923094988843985,0.2993964432909584,26.139239247869998,8.553340611866796
+0.15108863520372692,0.30380747318905627,34.15411764873236,11.889175659331901
+0.15046900596186674,0.3002769642122158,26.198219159765195,8.707152253984102
+0.14847904392165065,0.29470341491446755,31.16174561453548,9.663021863281708
+0.14933903033014262,0.29331610605785424,29.912519291486976,9.194048523394503
+0.15014635738296211,0.2986267144105876,33.009806899845785,10.749820773810367
+0.14926219576422167,0.2991287988370639,27.929898696449698,9.105389174960711
+0.15096232595354986,0.29840640013220276,27.782995112474808,9.148721243105586
+0.15089407912224595,0.29643947435892637,33.958793029606475,10.951831320787717
+0.15139743383288354,0.29676849774214664,32.87733729590383,10.600394325841869
+0.15039077530192352,0.3022892770052792,31.75503987368839,10.779433638871273
+0.14833167063277777,0.29799967019331997,30.631219284891884,9.79974429232994
+0.14886988799974363,0.29968794473882676,35.529083250796646,11.653881356555667
+0.15035230292395393,0.3005821008350977,25.807946187569538,8.689659371445895
+0.15103130484957158,0.2972166618776366,32.0424363608141,10.462623554480091
+0.1484086589860006,0.29844322472835266,33.12803176772427,10.714730325404517
+0.14992245489410874,0.3054023845737445,28.41836447799476,9.895467055983302
+0.14921457724707535,0.2981549205933556,36.76981125047101,11.947194938973292
+0.1487459644599827,0.3030774994877274,26.507618907835738,9.01073109209503
+0.15184982184315324,0.29951190342510253,30.989753800222807,10.366041550774131
+0.1491219136369299,0.291150129295906,38.201999009881966,11.44459886626592
+0.1489544269308193,0.29770653855804136,31.614882415551243,10.125848202879423
+0.15060473123291554,0.2955567662703229,27.81338650034433,8.834854128392067
+0.14936622070804226,0.30565199493672607,30.370794019464746,10.58451785453938
+0.14950628919376313,0.30257710159273543,31.243471278006112,10.611550863184362
+0.14902621766942925,0.29814445313841725,31.09250653049076,10.0634718130787
+0.15146902838990248,0.307951564376593,27.50025977459792,9.931061762408214
+0.15110142272108204,0.30700486794300114,32.06683596307355,11.5741838280249
+0.1515002520709796,0.3032457344287544,36.47759185482699,12.60762154814187
+0.14990644566615946,0.29505767765984187,36.31849042634872,11.45548021190611
+0.15126437388424174,0.3006426006255089,30.95830401748985,10.361369140602264
+0.14856448509382764,0.3023734458839488,24.08396550094241,8.104159511238723
+0.14963467037663988,0.3031807102868111,28.225801476612354,9.670323526919002
+0.15060049721480442,0.30093070793819493,31.492500215498875,10.60098227694071
+0.1512573581542411,0.3041905410073968,29.533604643262905,10.198890557708493
+0.14895422253849394,0.3005169534465003,26.39145255138857,8.681659908628605
+0.14868303557816728,0.3044207469398809,21.848444485717636,7.482759210652104
+0.15089161126319037,0.29586469552301553,32.72457907514438,10.461582193388043
+0.14886507893298825,0.3065206271755803,30.79396386783072,10.774713125245556
+0.15141815657822552,0.2972479456435866,35.639278034834916,11.586746533026202
+0.14927464752957295,0.31163986579615754,25.604549714788323,9.462206945936085
+0.14992581275306963,0.301735924218969,29.335315132442123,9.878306035613424
+0.14939381212662842,0.3000809316233396,36.56674448168843,12.056639512166953
+0.14965191596873734,0.306598500231194,29.625736046083055,10.4630865485185
+0.15013855252018993,0.29374708021665413,34.34137996784177,10.672567598415654
+0.1495905686683194,0.2985619476393674,30.174658880378633,9.829925211106545
+0.14912681335220787,0.29623939308566305,30.284526184817942,9.588267975791927
+0.1502215779341742,0.29150075779298934,37.95121920946127,11.54219236415367
+0.14877067014602763,0.29397198118439627,38.4984019568799,11.949104276397877
+0.15069946841390192,0.30377028003851303,29.602983332278356,10.26588731374153
+0.15002775746741706,0.3060098225389147,32.19458696765707,11.299655729550311
+0.1498389212075861,0.30005143805133544,36.54225154588567,12.081632911313623
+0.1484778092124284,0.3052412132486323,31.51168683605781,10.8973028468805
+0.15061642915702497,0.2937732891367114,36.010277314450086,11.205584057188343
+0.15011628595152215,0.30000993973604134,32.721538327348604,10.822664685939005
+0.15089612167471125,0.30148958753311533,33.780540052020754,11.36103239692745
+0.1497913438746319,0.3020479774812572,37.365943309407044,12.57495678966826
+0.14763957798961055,0.3037769157238261,31.022819642257968,10.502445512938955
+0.14858497983219726,0.29504706442459816,33.65458454776302,10.466324293657898
+0.15068090017356048,0.3002314756160755,35.639545385998126,11.897474091856733
+0.14950458667762778,0.30159308410360397,29.81615605575868,10.028295097258457
+0.15062268938817033,0.29978859148400344,32.01317139886879,10.621052442642569
+0.14849882374732837,0.3031603120177008,29.176934501070992,9.894852809154793
+0.14882818364846326,0.29613832806253826,33.44694234128975,10.616104821289754
+0.1502231044193082,0.294041608680571,39.047636608674765,12.176846653549289
+0.14988806726302834,0.29898821800746217,33.432973110694896,10.954949023725364
+0.15123725164636534,0.30325317546144176,35.43255406710468,12.269003391027587
+0.15137645316363108,0.29576612395478674,30.057553920143526,9.591851729689292
+0.14866128109377624,0.29218335626311315,35.337503665731454,10.74562509102911
+0.1507114449932803,0.29796117097869496,26.42457098351239,8.591653272747486
+0.1474751062146439,0.29683322434024006,32.21729166515678,10.229360651866937
+0.14997323284514189,0.29400548519494085,31.028625387628402,9.700390726942683
+0.1496900175302749,0.3059097007702383,25.21440896633716,8.862649067593082
+0.15017558018779706,0.29672910386518175,32.49455659297476,10.448426544499789
+0.15010804254471166,0.3035593522606751,32.036439888198494,11.045251876298195
+0.15100636584165858,0.29482553698695163,32.118853941286936,10.126401354981654
+0.14807374672102622,0.2924985405397616,30.185351133406126,9.15536108464795
+0.15155937152560933,0.3055164957380218,34.49286277661478,12.190846196722582
+0.14949480600293408,0.295669898909957,30.234182398405217,9.565293384184526
+0.14970491101308225,0.30953116803028285,29.90160110287066,10.852929024672601
+0.1495553403826854,0.3081594853830914,23.939082842244474,8.537768869033577
+0.15114208210183006,0.2992021767245965,33.32716343155302,11.027983060576592
+0.15021687902110062,0.29914359396486145,35.206971175349565,11.526536443542952
+0.15117053191602267,0.3012979610811482,31.367845135534385,10.536431975917193
+0.14988736546992903,0.29926186450782244,31.34656310779805,10.25782416838898
+0.14649013485454598,0.3013520839329527,32.252266088385184,10.581122894291868
+0.1505025665002184,0.3036716701663051,27.796798384631874,9.578633070356108
+0.14852356873650588,0.29683324015738977,25.4189173721337,8.103860066353349
+0.14987759599057784,0.29320326318849127,29.293377047461902,9.05406081776733
+0.15156213376389835,0.3007078379397594,31.18197955028341,10.548439045177062
+0.14812026260256936,0.2972989773059099,33.32751342322278,10.629660553386117
+0.14957647395751075,0.3078099645478263,30.53110293600416,10.926504896738393
+0.1491706990790362,0.30131938423650034,29.074257130672173,9.7328546074034
+0.15056427884327897,0.2969813627242164,25.69424451876189,8.282885423700213
+0.15103247254229404,0.30311041883575657,21.52341976644704,7.431996904371315
+0.14927094757420395,0.29946277169431956,28.555406857833354,9.381069537972484
+0.14978823689411042,0.2982154115695771,36.672749889455574,11.950371968594675
+0.14882592083702945,0.2890596463264531,28.49853231643561,8.386617002939099
+0.1469139289569334,0.30228321835315514,35.371956160619945,11.707798672037525
+0.15014680145066303,0.30181286844138033,27.81434385899134,9.30380644506705
+0.15126085250718646,0.30791897108575067,25.07524547959044,9.065262679269331
+0.14962382841485092,0.2924279977495159,35.03461019738396,10.70976407959776
+0.14828431111980422,0.3002062755141525,28.713589005365495,9.42451393368351
+0.15154922464304812,0.29355448917322297,28.90779943327512,9.07426243887716
+0.1491352785279899,0.30537508642016997,32.8076154896629,11.383593178716817
+0.1487577784668054,0.3002962270250212,29.590969142651733,9.762971240751618
+0.14855671379267388,0.30156423999261867,27.237000034239536,9.127677675447506
+0.15093144785180032,0.2974273809606362,37.219462991783516,11.991494404483154
+0.14885365520571447,0.29885742185938263,29.785140220443882,9.635829567754453
+0.15162965916562124,0.29819363444319597,35.13605439097562,11.55869255437926
+0.14959633481128848,0.29879115705651127,25.873800023799177,8.496709424425736
+0.150020769255686,0.3043194544985938,27.770478594257206,9.610388269535086
+0.14988460676762314,0.2955340599732605,28.84515848258835,9.15175178967659
+0.15000606723801962,0.29469639947946585,24.49700624565225,7.70524253458591
+0.14860461440326472,0.29969782181655985,31.034573252956804,10.131024433302773
+0.15244963838098305,0.30104934808696066,24.914063455184852,8.49840954027161
+0.15027882146888796,0.2937660751602545,26.819496364758518,8.335939011279795
+0.1505674899764466,0.29656207185701045,31.426817636998646,10.083588621581784
+0.15009570710893236,0.3022823633068904,30.92747933841131,10.500239182011153
+0.1503885711639228,0.30772156410027257,28.822604416482218,10.355608214824244
+0.14974219536266675,0.3008762457514425,27.304992269733024,9.084429876112695
+0.14966899392227298,0.2948042227391801,28.341662354602718,8.883020569044762
+0.148605592982625,0.3034936095122714,29.416909398230867,9.980348202350386
+0.15021097777014877,0.30200072136860806,24.616772124749247,8.354562823138645
+0.14842656025365275,0.29445189621797996,27.543132947150276,8.546997006004013
+0.14911755670143723,0.306095437314028,30.303504635363012,10.6675484166124
+0.14791265811654392,0.3023076646444922,25.878255384075434,8.639450750076977
+0.14843212950915002,0.30375563866357086,30.716405215350697,10.455832808594332
+0.15200961928341977,0.299753157006115,31.614102237277113,10.572900659191344
+0.14909050479336555,0.30564899632021036,30.19679529761848,10.572990130119898
+0.148868496129533,0.29835826267750243,24.4515186845967,7.924400539911656
+0.15030580026594378,0.29534900463460656,29.610269965703953,9.427924206573984
+0.14921836472101915,0.3009452047293238,26.349960950912504,8.810483734495609
+0.14968926734555765,0.296241047815268,30.007982663559044,9.556363654695378
+0.1507675672646331,0.305739838324496,26.087109861740526,9.23240860842218
+0.14879517708972972,0.30215990188289066,33.89536819761618,11.338513123383844
+0.1478123407284101,0.2986666247494249,31.157151975644734,9.996265534920148
+0.14902906441344843,0.30230729837306397,24.93539816040477,8.400421843680864
+0.14867776414829853,0.305537011681018,35.11607927788973,12.229601663604871
+0.1494305258332063,0.3038172513523241,30.686047954754752,10.46959547300332
+0.1500489521181132,0.29309649847663083,36.02437948722979,11.096177340253437
+0.15069499728781496,0.2975194168080365,34.06136306494189,11.088937843998927
+0.15260229966347652,0.2932659732715001,32.06200167721216,10.115223038065627
+0.1494073366504768,0.30010300073828977,31.92246502589612,10.488934967213895
+0.15046802303305096,0.2957556079607044,27.49009460457592,8.730630336992428
+0.15291166070287115,0.3018946002929562,31.025346248016735,10.684114737087299
+0.1487076269774488,0.30197105801465624,28.41661696865332,9.532123119876324
+0.15251140053023307,0.29896383036992064,36.53441081824461,12.211228961754339
+0.1505109802268618,0.3014625728942782,32.16237895032973,10.888616588372015
+0.15103285834230312,0.3085536322060762,30.10173690564958,10.931819168505093
+0.149872408085312,0.30592679312053184,30.73041855354044,10.786819045874195
+0.1486821656801985,0.2986732180789458,30.989747686818134,10.073815924299225
+0.14786341740220535,0.3057606593504986,25.297296004136385,8.752806122965623
+0.15010489847325237,0.30242935563788886,32.276113177663234,10.999279466724218
+0.15101937104139346,0.30998376300743374,30.762215837296022,11.308582839646334
+0.1514161551848098,0.2984641278064703,28.818678438862893,9.470514568809133
+0.1490441905931958,0.29399622172168965,30.02618967268817,9.363011767234834
+0.14992942209828453,0.3005407941295903,27.650130122110852,9.198475270565162
+0.14982641688975623,0.29926684017169075,28.53317574233274,9.38569993666657
+0.14938570996097728,0.30335754294917483,33.1658968873097,11.325253222121354
+0.1496986001106675,0.29876540120595557,31.946254741325387,10.405253979064065
+0.1510276693606119,0.30320067088147923,28.35142953491283,9.787071471758606
+0.14919412508629618,0.3064032409435371,25.57273352570982,8.9696252943287
+0.1514789325020476,0.3048511662372515,25.909448997960006,9.105933974383907
+0.14948320292410688,0.30405204432844607,31.444143108423614,10.806822513968285
+0.14917813842391844,0.3066944636520636,35.44527349372798,12.568174839744394
+0.15065447271772733,0.30095319680736204,35.61615156234291,11.949281050445403
+0.1509673692587444,0.3049763224754768,32.999572831790516,11.571716625466292
+0.15008105665036223,0.30767540421063566,30.532122628791257,10.86679405709687
+0.14950938635409844,0.3013159557709386,24.03010542228435,8.033029617135888
+0.1504280170475523,0.3054477867349794,32.791526180370354,11.543137661972022
+0.14846126574152557,0.30068176593343465,28.459584686747796,9.437499830042292
+0.14796115172561078,0.3060840434692183,33.22074033220536,11.540629524830095
+0.14927911160036905,0.30433498869533826,26.85910965664198,9.286526933584817
+0.14893758757364656,0.3007390208786864,28.88869795792514,9.566180099200295
+0.1498978140577355,0.29314893918999024,29.61133148985972,9.127002101645992
+0.1494991657653962,0.2998303341650729,37.070026824191366,12.162348961792834
+0.1497298030300417,0.29811390807737426,27.713647863995853,8.967268042247913
+0.15114875998113123,0.2951321865081292,34.552410663435005,10.97135547546592
+0.15011639886326394,0.29931793188114253,24.674893975387693,8.1162810059456
+0.14874739517590924,0.2948674686452789,28.564048156218657,8.9634082365805
+0.14892853518896398,0.30300184038134126,35.13920256997946,11.95816264791777
+0.14995186508107547,0.2990244752499473,27.830330174561624,9.099283939777116
+0.15055823824223144,0.29969659415613065,33.77558379220329,11.19402052982699
+0.15002547432505042,0.299179712092461,33.204984778386084,10.85470617974718
+0.14832491355571084,0.3017527099461995,32.285458726157394,10.717559094643153
+0.14888729273097226,0.2941482233899941,31.668249000893802,9.75661622298298
+0.15046155190714058,0.2969145138623272,34.278932047079195,11.065813329989794
+0.14984338438844044,0.3030931962534722,32.52048570586843,11.057153563413248
+0.15194084337824185,0.2936991883652056,33.73633464063362,10.624582759149352
+0.15030523384615338,0.3073522583315362,29.58745860079518,10.60983888785151
+0.14826844346969115,0.2965634923448856,23.895162157121856,7.539000408928343
+0.15044771428359907,0.2994932699996416,31.138022924827947,10.265472109781472
+0.14950073878519377,0.3037071343394339,29.775158248223182,10.226149932946829
+0.1498650540106989,0.3017214697642521,33.92631414440393,11.408168536660014
+0.15060510396706925,0.30286649490633294,29.697552224609584,10.14875535539261
+0.14974310972177488,0.2973391312475893,29.237291905865217,9.390918464265924
+0.15122710057409924,0.3013683183886862,28.58132087145672,9.708695459343533
+0.14998038752543294,0.3035197230196378,32.24938997319818,11.075161954623502
+0.14971608015807278,0.30786780218757165,27.84515991949288,9.95060866505608
+0.15055483112434073,0.2952670041451316,31.736832503507127,10.086214909825037
+0.14769071170798742,0.3013162858511099,26.360012075567358,8.697920656874363
+0.14967265886417971,0.2958008051133539,27.48757647487058,8.649877369662464
+0.15148116098535558,0.29715005413424694,33.0205612247871,10.763216301265501
+0.14993637692746628,0.2944501856022593,28.577597267214173,8.95317492650386
+0.1511591822634846,0.3021444058375381,19.609850881116017,6.7212373384969055
+0.14794990366114247,0.3068826406935906,26.57370089822467,9.208509265466269
+0.1498875463838598,0.2956339845170752,29.353800816263114,9.268648469953742
+0.15122947388717894,0.29544324089669083,30.260363626659654,9.718999382323489
+0.15007859674063448,0.29730291071566906,30.976807516305186,9.975143215207684
+0.1508372170410046,0.2979035237474478,31.63107983094313,10.326686683884137
+0.14904740744149753,0.3001619614392624,32.57757914938888,10.716182806874896
+0.1506968695964704,0.28854515889279375,38.522575537015655,11.416516356525829
+0.14932437615884464,0.2996993110612438,27.330179051935307,9.006158857078347
+0.14927923718545064,0.2968329209620745,30.926440389741217,9.87135831780085
+0.1491396266977126,0.29353194988779197,29.72106199162324,9.178845335096277
+0.14934728796948946,0.309092548201297,26.80931298653697,9.717745065070183
+0.14969938107063713,0.3028992053230298,30.41170592392228,10.323579803430782
+0.1498826432031402,0.2985682804511687,29.587491079447,9.644701620347591
+0.151256129955294,0.3007136015387298,36.55179100017127,12.265833913689864
+0.15001181907100905,0.30459417815705575,28.912490131791476,10.02323230289265
+0.15109474699836734,0.30153197141701155,31.584732333269304,10.648805715524588
+0.15002024388613014,0.3060945110114892,25.550090936111527,8.959324901047399
+0.15038421787366277,0.29709146268545134,25.778867013029085,8.312071016390878
+0.15045920784005531,0.2941411551371066,36.427805865021355,11.442820136205759
+0.1504351085506781,0.29409858889697266,33.570220666851256,10.495867587133915
+0.14902706325450654,0.2980172301977332,22.404495018472524,7.246662419349878
+0.1482527766003429,0.30146189528456896,29.898305700059208,9.93431134739947
+0.149999797531062,0.30307436003164573,22.798970535690508,7.726056121080916
+0.15124368910527586,0.30123161594910747,32.69657604438874,11.06045288896375
+0.1502745824536864,0.2979965487107304,26.26211345448015,8.53669948166061
+0.1505955163417204,0.2982619356796979,34.39253880018118,11.202222560451322
+0.15059516148042215,0.3038771232965374,32.28236446810889,11.1908469549184
+0.1498899795384696,0.30822770541865674,34.27793721375125,12.236335921961881
+0.14896247563429846,0.3002682096134269,33.6427313884217,11.127101209586062
+0.15057349782362117,0.2922365923993413,31.858723252552018,9.799332288432197
+0.1521089256759632,0.3069751040483736,26.02604629770635,9.35376542139134
+0.14942300973009875,0.297234025769301,23.415427883202966,7.522962176458976
+0.14946274757057035,0.3017132692781655,29.68535584084162,9.942103570670639
+0.15056916894651493,0.29302228250183204,35.32113814565237,10.898960416331898
+0.14899579085771153,0.29726477112674016,35.45882200404859,11.363986468486127
+0.14986150334751416,0.29180390594953287,31.52343109272824,9.5705680395365
+0.14998292721091064,0.2985628475334373,28.51509364942571,9.351971178910725
+0.14876815600871804,0.30506312056612966,29.466665333994563,10.185953484560681
+0.14964944807373565,0.3022722755294284,33.16263659215154,11.226011352997277
+0.1512921159373944,0.29535846788993214,30.06815055747296,9.602795884714594
+0.15187630307645697,0.3015169389957715,31.94542920178098,10.870037405547558
+0.1509599433121367,0.3011392665231418,30.227826321337766,10.201964446539751
+0.15052120581687453,0.29940413235900315,34.01705651531714,11.264588917245652
+0.1491275748581561,0.2970646868662652,34.53329131647802,11.03305497698238
+0.149652155885294,0.2984228180821763,32.24609969709865,10.533444488250435
+0.14949172491288537,0.30836578794425906,28.235043072115317,10.159140684505122
+0.14690290791864186,0.29136639672083164,29.609733739907085,8.81396746911685
+0.14840514958231685,0.3004488920467771,33.71761010167078,11.11770427388945
+0.14967548612963147,0.2973380126093687,32.27470807579881,10.371030659863461
+0.14987255052138454,0.3015071507167964,27.365056492858542,9.243647503061803
+0.15011960678607203,0.28881497945177254,27.72722165477243,8.191092806841556
+0.1505898572207173,0.3035992634212374,32.65592974637135,11.280744803662618
+0.15199182463909536,0.29465506219971543,37.01846630073175,11.806011112123304
+0.1483525434846565,0.3006264238034318,28.411390722906408,9.327075833968134
+0.14798962999791496,0.2961073973690325,36.1075661430053,11.316368417556644
+0.14851294074294602,0.2984148203204947,25.196911216071076,8.14843027794436
+0.1513202806740523,0.29121455303698157,27.54499236402919,8.385082370490027
+0.1495748675694851,0.2966968031071554,35.38861268785101,11.249389408325996
+0.14868618543404513,0.29625593972376163,32.52465608807319,10.31711154506508
+0.14867940241876484,0.3076733966169209,31.89972393001516,11.26506508090484
+0.15017544974554442,0.30781992405258357,34.532357987073,12.345496380838124
+0.14981906307612894,0.30214278472501,30.36734813883662,10.271257449003341
+0.14760633901480427,0.3001461509069223,29.705354723879527,9.730450725031693
+0.14991595492919102,0.2984052133027884,22.427461878447083,7.307213111049208
+0.15010364658656386,0.3015330608394626,31.832306388667234,10.75728775168154
+0.1476998762419366,0.293772038417253,30.550795535732,9.361262345552683
+0.1486356102969105,0.30276629959023127,32.17717569626349,10.841495529713212
+0.14964491775920513,0.3002376168819587,31.28315866690355,10.376928720821732
+0.14926433552645604,0.3023194191650926,33.090143048768326,11.133046524923657
+0.1497521060262597,0.2941748923516563,27.96302277648373,8.740771357122512
+0.15120206245477083,0.30220826858172767,23.99406961041793,8.12774375281102
+0.14866790266649954,0.2988816971524031,30.769108737873843,9.995779732767193
+0.15231090146045898,0.29421598495503576,36.21682517152425,11.486969271914324
+0.14956779101831866,0.30862051458776796,26.139623152724027,9.427331824533974
+0.1492680766680745,0.3065317319035186,31.507877767630795,11.10954905887245
+0.14896887176694149,0.29302274547240686,33.69573056662001,10.341027787639755
+0.1511570837003466,0.29952074461906925,27.162764924980713,9.028781243713098
+0.1508905222394315,0.2961684539788763,27.56747246567262,8.774106155860837
+0.14796351253080037,0.30151527311916415,29.522034221927957,9.85020258077898
+0.14820822036322653,0.2868816488208629,34.58546502056767,9.902384850909206
+0.15222254485441236,0.31008248588673043,32.08049521414072,11.885854769059055
+0.15002169940636137,0.2945027630642081,33.29377887592012,10.423822805812815
+0.15014865392200202,0.3020486003536902,29.711005022138472,10.083106970587208
+0.14926341877387186,0.2990890939695514,32.78645723759185,10.712630306388725
+0.1490156054607856,0.3008200888649332,27.961460928249576,9.305435281767753
+0.1489283710622661,0.29770155569290213,28.509867777757176,9.168609427570857
+0.15015529736543312,0.29592997443162194,30.57710552590698,9.7420756713131
+0.1488157895998444,0.30776752330328366,36.95199305763871,13.110432855027154
+0.15092684368917436,0.2979349750075548,35.71631287917044,11.624905530896106
+0.15082540122171076,0.2953110015697303,30.921035004907782,9.826204515182667
+0.1501814956988744,0.28784192941841136,29.42492537768089,8.60960935109231
+0.15047271379792218,0.30392230182354457,27.718182222924813,9.655522186024093
+0.15128469168228462,0.2940610883994778,29.054043918428704,9.093265362778238
+0.15033152485418397,0.3038678096316422,24.6445722417661,8.510817685444275
+0.15094813757780276,0.29978069094392923,28.57645512630378,9.551089840464389
+0.15137927599462123,0.3006707879206192,34.89066079846014,11.812133544266292
+0.14807366948395467,0.30355125490979756,31.379793245948637,10.584699116476834
+0.15067075681151818,0.29297064293248604,30.380266171695954,9.411579424854203
+0.14948720685628894,0.3098718363150751,29.872096010906986,10.907423162323004
+0.14934755165682476,0.29950827930477886,33.3551817166329,10.908534079688636
+0.14824409966298438,0.2957396952193832,33.38886648899569,10.468072166486525
+0.1483305253735885,0.2950766640650365,38.631078228392724,11.990444235736213
+0.15020574851441773,0.2994192280628607,35.344757765811664,11.564145269414938
+0.15047681196108184,0.30454978544058325,24.48356829819246,8.493503962300439
+0.14863078088004653,0.29658923949796323,31.34907519206892,9.899472250135085
+0.147939721699655,0.3014808580777932,37.023111600233,12.287026710050018
+0.15081052979099716,0.2974786543879697,31.641295920104696,10.24502030274979
+0.14993771103059056,0.28739279798332773,35.56041645881522,10.358016638779802
+0.14886757148588764,0.3006925033333732,30.76630212519725,10.171674620081209
+0.1501138058850867,0.2940744641510798,29.194309623577865,9.128353272118193
+0.14985358185001596,0.3024551126315369,33.624244377061224,11.389727761955088
+0.1507371133981216,0.2975673031922062,26.448427832412758,8.55233417306252
+0.15032891026685283,0.3022787731880768,23.144514195900737,7.854529723853721
+0.14977211827336934,0.29771671191772703,31.12865088874681,10.090009677310386
+0.14965740472387368,0.2927722726652706,22.150066629782675,6.814084356479826
+0.1513260416002775,0.30252088867811594,29.623413782500187,10.193554364799468
+0.14797847044639953,0.30303949984859885,29.086409210280863,9.854205117721301
+0.15052056091013863,0.30014102729013825,32.42018905583195,10.79442110666853
+0.15114570990299359,0.29653936201104264,34.35984769301421,11.025948946665153
+0.15134160937052382,0.294199459129098,30.240090612220293,9.503677861179177
+0.1497750102349008,0.29882731986890065,32.18207479457769,10.525098283160602
+0.1510526287680108,0.309492087178215,32.32948174342018,11.818541553816054
+0.15023897583540516,0.3000358089088164,33.27946674866395,11.011641346647675
+0.14857436423288853,0.29659238763368156,34.63923904778641,10.976324209576884
+0.15005115613934308,0.29205086926061957,31.43249048926533,9.610103267584302
+0.1499750718392601,0.299276700664247,27.921044747177067,9.208595116815196
+0.1502054853552482,0.3039582367855805,29.98705769961588,10.346851800856971
+0.15099084691820877,0.30487951451208856,31.261619789794064,10.91944775312138
+0.15039945461587736,0.30613664669714774,29.802916474717023,10.513813163399892
+0.15050088557815675,0.2997002517860517,33.33776757747649,11.101550889116968
+0.14645586796458512,0.3025991410715975,26.810149515506108,8.902963939658877
+0.15181569898867173,0.2969935703100777,32.11844502876672,10.467582221269959
+0.15096468258227727,0.29490743416407833,33.00180993969867,10.448591687138393
+0.15161716121049162,0.29787106960149684,34.23414807915989,11.231126790462543
+0.1495378964889124,0.30738021625273765,25.547080434596687,9.066613618071425
+0.15147395987498682,0.2996482729627248,33.98303649397673,11.387055573979115
+0.15013367780401835,0.3016628768851793,26.45488877584498,8.891419389475725
+0.14788972756006655,0.31083044625616557,27.625246595891614,10.047210414496151
+0.14875503528065992,0.30209230479122384,32.16079853583899,10.792382813246666
+0.15215431999176726,0.29794301700840214,33.54402347760463,11.050176078693875
+0.14950936998075295,0.29068274656536347,30.490612020705033,9.191696911858706
+0.14989791510337147,0.2985927652832632,33.65144766558314,11.019352835694683
+0.14929809238786226,0.29785821278826125,30.3366342930611,9.790674644776237
+0.1486613379389852,0.29663249145812864,32.85705517416077,10.443606614067056
+0.14924698416621202,0.3003992056868047,30.898118964305574,10.212706254418578
+0.14873209511372762,0.29273485554001094,35.525787551017,10.863365959017413
+0.1489677032869497,0.2958519804244177,31.121836601774465,9.856044020758514
+0.1490133642817165,0.30318896367802056,29.072364828033056,9.912569299648062
+0.1503037793328231,0.3001477150513311,27.49953834308739,9.164212076247955
+0.14970901643046783,0.3026607947653859,36.29012769841112,12.335353434310651
+0.15125678827685787,0.291104210167792,36.28240369234204,11.054212874375724
+0.15048415136234156,0.3024117876267578,28.35460985946546,9.583091188920209
+0.14884809806260227,0.28872594855812656,33.14009542695273,9.696535469741468
+0.1520694573096359,0.29552531873895327,31.903443178962547,10.260290079614954
+0.15069490879242028,0.30043068456727995,32.54702130355865,10.836860354313544
+0.14999323819321814,0.30302479013506406,28.278277109852734,9.70364736931498
+0.15113114019189516,0.3057374959103277,36.735132256675875,12.962230594486503
+0.14857480290495506,0.29689320636590083,31.27706072785381,9.96023853709986
+0.14923429488116718,0.30651638061720715,32.2983966201665,11.445551115574599
+0.14907315783728978,0.2954324453113937,30.934899308471444,9.744902644638703
+0.1498193377290417,0.29870153031820057,33.3722447582064,10.87859171446133
+0.15002437160459928,0.2897008194000884,31.30456276322422,9.359849828875303
+0.1504846749910417,0.3024792524887086,30.443275599023046,10.400141902550603
+0.1502395954421454,0.2966506271926968,32.22797697358163,10.353494036615837
+0.15021099510193636,0.2980282344161049,26.581462991049,8.598221528856408
+0.1477925543222577,0.2969374079627099,25.529140377476473,8.129704229336431
+0.14953101510800917,0.2991014003277289,28.139138601766298,9.188141523213606
+0.14931153245448342,0.3020998244573696,38.21450464080064,12.756426257211537
+0.15176920756902143,0.3076481903134066,23.37093054235926,8.418612349674078
+0.14982276413619044,0.29805396970263126,26.4028142038635,8.607216865138613
+0.15099199729725604,0.30606382923326814,27.116321902321296,9.625942756395787
+0.14960064647034052,0.3016206833472833,29.249022008429264,9.844585348564236
+0.14946068210733846,0.2916964761473818,20.22793703494355,6.128474155182738
+0.1492574491615284,0.30671121417825115,29.56249321986638,10.35356749719643
+0.14979858865106568,0.2945194249179175,34.25609061280836,10.755577255533172
+0.1504414736356829,0.30249285938138004,30.973992675834705,10.556891103420735
+0.14924102843429962,0.297683332084331,31.328747454399856,10.049411612337751
+0.14913238313607072,0.29497604153456175,29.831367461063916,9.356303666100452
+0.15150140532341758,0.2989084227564561,30.37753657288228,10.040326355235774
+0.14947825764732398,0.29835882179263035,26.541066006112942,8.619780893929207
+0.14862273878055124,0.2935164045643788,35.20845978184,10.88275979713503
+0.1489607529999297,0.2969544442904765,27.73926286164283,8.846257171941161
+0.151169407483031,0.30252952171913144,34.49377486215751,11.808129940560164
+0.1499503207817476,0.3016343591712529,31.89886834918161,10.705606705734196
+0.1485862776274546,0.3003087658449724,28.855166175043273,9.490756513846442
+0.1512960983143978,0.29538797236144215,30.276103554415567,9.646282094244397
+0.14819164620410477,0.2999970267617919,34.84284761231417,11.325718725112747
+0.14940827855299696,0.29663435127174886,25.614546839803364,8.20115261354438
+0.14871767851110285,0.30744405170239364,30.807819514251065,10.884618538898266
+0.14920108145430983,0.30361950370535273,28.497665088933566,9.763695004325948
+0.15139735434464266,0.3035901005776587,29.571485762952452,10.244193134101973
+0.15012181087255863,0.29629184782548823,37.26241642865198,11.935364945086148
+0.1526058280972359,0.2996941884611459,23.330565594694566,7.832109922451526
+0.14939401425547894,0.30229836352029077,32.33574388954975,10.88002501007811
+0.15005453546588723,0.2989713568288707,32.27764601492652,10.547079493675835
+0.15017822558894336,0.2999289760448921,30.471932651372473,10.133583656654858
+0.14871499412922679,0.2977195585800254,30.679688139454225,9.892219278690515
+0.14856527617137907,0.30773488090935464,30.607319800701287,10.91796056725689
+0.14999894269420577,0.295574119779408,39.99920009209341,12.686691102999905
+0.14999449929090464,0.301579592334226,27.683878927883235,9.234572753522386
+0.14993449672388623,0.3015269803780047,28.480080543877932,9.579783258529272
+0.15128804455277114,0.29741193722560055,34.71100860185982,11.292616605532658
+0.14957011679778118,0.3066668673796131,34.260611774647316,12.064115833968636
+0.14799292477898493,0.3030520741567467,25.652221853589353,8.617525236158489
+0.1506538145336844,0.3017145994208696,36.98973439390947,12.592922618281245
+0.1484941993403921,0.3016196320409745,37.45156878576095,12.504825457251558
+0.15035111169147297,0.29537678446931454,30.348668141002868,9.604726361028108
+0.15028801537083977,0.301249299935818,29.764713235780583,10.02217092982409
+0.15087609239424163,0.2989574358526387,33.19310065784189,10.927052207714913
+0.15006416003270873,0.30715163454621597,34.18359749183143,12.165376658787231
+0.1500375567119525,0.29555898577544526,34.04900762928355,10.837860195694997
+0.15123715386073686,0.30264491076595607,30.417198060547836,10.492488747817966
+0.1524887711727224,0.2950338348574098,32.62697042628214,10.457867984966835
+0.15021125472432753,0.3061710874880104,36.33272586649872,12.797485825796656
+0.14862769940121426,0.29562399481725765,27.20463135580855,8.52658413837377
+0.1494495299953155,0.2904695369533957,29.28558481279983,8.79380739353955
+0.14868752295376772,0.2946106126703555,34.08832216253303,10.590925544718061
+0.15255127064510454,0.3059363901167279,28.275416083508265,10.11941138318144
+0.15098732324695074,0.30349123651478455,37.140115798423025,12.84736015807844
+0.1483441164519105,0.29999899714071065,28.53198127407743,9.329726319947607
+0.1508976107992546,0.2917475696583048,37.60362757925471,11.48490266232347
+0.15068288332237578,0.29266699425470544,30.547537778940317,9.405017106386248
+0.1492856216526658,0.2966020152486308,34.81553763219232,11.075600770943502
+0.15103879762551195,0.3026128695676911,40.179411243359986,13.801277934194665
+0.15076605584059574,0.30090647819056354,32.749164059454564,10.987450065122395
+0.14952092447284052,0.3016615638784237,27.932403115994664,9.380393258020973
+0.14981989828136766,0.2953944444753555,37.5410835070026,11.857769967899396
+0.1477135090049562,0.30303885508728867,22.367107318002933,7.531063580446716
+0.14955916641120268,0.3035013663573492,32.477756836496404,11.11677739722257
+0.15050774669158662,0.30625653239252915,28.677321242400627,10.063718570647945
+0.15147601862870108,0.30009022979027,32.469722223948345,10.904852954892924
+0.14878987061438503,0.30310021405411575,27.454728336835636,9.33833837789966
+0.1512930703914391,0.29765698346303654,29.065467802249763,9.403484921552431
+0.1505541802497736,0.29276420167320544,31.123058247320664,9.629502773658247
+0.14793713976626582,0.2941527124435379,37.43058324022697,11.471089212712302
+0.1502697503544137,0.29672793855479956,32.44282865694396,10.393166146409477
+0.14998910921529854,0.30118934907276357,33.087885177766005,11.137541692975535
+0.150616173605318,0.30396562871906907,29.276235831643856,10.148786832018336
+0.15138665333943124,0.29435721976875284,33.11203094387905,10.484862816803044
+0.15049278972360355,0.28930582951448935,26.673790468960025,7.961473961280664
+0.14858593609315945,0.2990753952606713,35.708861160444044,11.619804641382817
+0.1493894778152282,0.2983762200528547,25.60399447580653,8.303018844670245
+0.14867163614194442,0.3021707885395499,29.400435942763778,9.847848237450902
+0.14963832321053275,0.29533778350753503,28.692800248610805,9.055743547286841
+0.14866176323255706,0.29745346115244414,31.99093811619319,10.24603475435079
+0.15137209695641934,0.30250082260839556,30.30541414062356,10.393166573148184
+0.14724325473987518,0.29667388481304524,28.439915447952586,8.949758521424279
+0.14922108218764352,0.3087859263879597,29.674139682053983,10.656634235460869
+0.14983785337394684,0.29214247991098746,37.23113282125903,11.399086481716507
+0.15153558537157175,0.3019834967142261,33.2572436179282,11.391921366859949
+0.14907266546711995,0.29255146105313135,30.362316586428353,9.281652111014886
+0.15219871357347833,0.29764606930278903,25.087937725230574,8.249008476431849
+0.15062548748476162,0.29638846516246,39.089263577601415,12.511309130793633
+0.15116900350568807,0.29458856675260303,34.33076619202574,10.870236705301936
+0.14988833429905324,0.30447137472216484,26.751042784098193,9.261954270438467
+0.14904480781917956,0.29350398680648787,28.397726738012263,8.791249187284674
+0.14876632486771404,0.3040187045185498,31.93851367666077,10.871499808231736
+0.1496081498711914,0.2913254301909701,28.681204168688357,8.70781434806039
+0.1495656481028336,0.29471285578849415,25.004773392592355,7.80950499785046
+0.14932413579102016,0.29712064884545597,31.23647339574155,10.04708449052797
+0.14872617817286654,0.2991559815841991,33.73029098102711,10.991301011624863
+0.14975156834932038,0.3012648177692105,34.133624515349375,11.394661584877626
+0.15021063206276283,0.30045014480302684,28.480769200083138,9.489828408477326
+0.1492128305592765,0.2966913896015689,26.385980545669614,8.407652461814827
+0.14894565732117263,0.30051379691791796,31.144722174994904,10.322902790643466
+0.14950896435219965,0.2946816033446604,27.611680001147953,8.667353410110513
+0.14961311881746991,0.30711174773834643,29.305313186618775,10.394442696226413
+0.1520663535107025,0.29926737823726723,27.133654212636333,9.054538378866983
+0.14955288625925298,0.30077494423906553,33.116899491139804,11.02869790974976
+0.15095699169029458,0.29382087368017357,28.840744237228343,9.022353667737528
+0.15134083281358066,0.3057471261886158,28.12823248516208,9.903981180286666
+0.1494497586070562,0.2944861837156314,30.12540751296775,9.35611919711405
+0.15010104461102933,0.3015734652668515,30.68432571340977,10.3197160959342
+0.15079594539713118,0.306013293783361,27.797471673656847,9.850559173770474
+0.14933119142918191,0.30339328523670733,29.259969466081987,9.995205013518987
+0.15085185975460735,0.29800548605870214,29.0620086959259,9.550174271877522
+0.15132789270657926,0.3014671259196212,27.722591010472986,9.402956037440154
+0.15036556120735342,0.29707660349397746,35.602207035567005,11.424574220460304
+0.1488528795829192,0.29900885055838433,30.315095822258332,9.874839807625724
+0.1493792432638709,0.2940546319700472,32.03383007480709,9.901042504372647
+0.1519839709675911,0.2947217020819583,25.692519102382043,8.190521303835695
+0.14920766458817827,0.3032813964214038,27.02123213046217,9.179801855917635
+0.15034117845487602,0.29898244335967117,31.033436099323783,10.16881935063563
+0.14765779653476932,0.2922180834680862,23.40794243194452,7.030110563814025
+0.15064926969942344,0.3046312404162434,30.47156703891164,10.623390073726759
+0.1499578674251292,0.2998244980593416,29.650948123126636,9.839409139415078
+0.15039095632849084,0.2934371881884244,30.052090485670213,9.28905684443697
+0.15115433439069237,0.29557220183371213,36.40669495248344,11.602408942685434
+0.15230463535928118,0.30097895446168244,26.877816697591324,9.11814166829997
+0.1488384833386981,0.3039354109385887,32.33438477869721,11.115023864169835
+0.1511764007009291,0.2978777886360229,29.2282147736894,9.536420744842086
+0.150653729604558,0.2983684559594173,32.58250195202131,10.691117210931829
+0.15034831028183657,0.30156960444696795,24.53659358808907,8.300184223895048
+0.1499069158081259,0.3051829330620302,25.05523214263512,8.798804250088713
+0.15020995838908335,0.2933526340494089,33.122720943401575,10.242189137246289
+0.14789795748937695,0.29714314541283404,24.015180317701745,7.629136494945911
+0.1497490255614566,0.2942401879846339,37.11894631556975,11.639167005956033
+0.14886633552128506,0.3030341551200493,29.591222189444988,10.024774043175361
+0.14933658153342824,0.3045162294525463,31.073429785486365,10.771386628029983
+0.14920264709700098,0.29225579053370493,30.459711721498177,9.24904385489372
+0.1482446649734762,0.2928670391176107,33.38848329781785,10.1521030698736
+0.15135438685869412,0.2969229977413132,30.42098022765133,9.932298619030039
+0.15014277672443208,0.3000196861884131,37.459940378455656,12.413770785108312
+0.1493298329631623,0.2979177662874133,25.912503979045702,8.333310270388866
+0.14855165735839745,0.29979013952537475,28.10669409284742,9.21518381839141
+0.14842805846243698,0.3043056770128097,31.40496622721553,10.745750313701324
+0.15072681642846839,0.29771655790625146,32.94956258372149,10.731819700850084
+0.15024667587370405,0.302566643315993,29.680824966097852,10.06816731065838
+0.14908924385888678,0.29757736999835044,28.339363857333595,9.121066945039175
+0.1517744741184002,0.29673053705403485,31.375578925495883,10.170048220676103
+0.14842002212696775,0.30060406751079877,34.247559162911216,11.284088034839845
+0.14900337357647908,0.3014189929994734,34.71736394751464,11.56164518270468
+0.1496211063002685,0.29439314197360267,31.085324038483478,9.71712874696822
+0.1494740039213615,0.3044642789050865,31.466918413399554,10.869470762059363
+0.15055313670523002,0.30317067997947944,29.85530237840948,10.277416596584299
+0.1487859970985092,0.3016126088750556,27.82783177432842,9.236857484705734
+0.14865243974388032,0.3026989406539749,33.626533978086755,11.368874992986296
+0.15019731609967235,0.29522161706102534,28.445131764591224,8.98189677883556
+0.14956924451364673,0.30206887692356604,30.949665534830896,10.468452686473045
+0.14836796313145892,0.30049819811884504,32.38861910411385,10.635274558884177
+0.15035178553180187,0.2932534346826723,24.79609275663509,7.669131304754092
+0.14984902868719416,0.29435333946454245,33.965604545111496,10.682517217139205
+0.1499524657469356,0.2984460996070768,27.667050417580764,8.98813735973988
+0.14908510535194372,0.29704099372200415,24.320825965764605,7.7258098321356545
+0.14982234256488167,0.2974484722306304,37.42880519805877,12.103752534928198
+0.1484458597086347,0.2978486814221021,30.350575828480498,9.711388612612947
+0.14989752083867666,0.29910403900479327,25.9700194262035,8.520982556367255
+0.15108036985036605,0.29606678796754016,26.720025456547518,8.575942193359118
+0.14870933884231602,0.29592743504497454,34.19449804232284,10.740054875175353
+0.14814516776684403,0.2981260931836523,33.31975172683718,10.681666718307918
+0.1499466825507866,0.30337355132633653,30.455337430373994,10.382902863852202
+0.1490454449982624,0.3017904951955264,30.912286340577257,10.321304992227322
+0.1497017566448227,0.2919410159502931,31.59855928412209,9.646140783126874
+0.15017053520338244,0.29637698761299264,33.081574395118274,10.641578624298639
+0.1499404753383808,0.29615417064942967,35.21874809757844,11.266719754044953
+0.1492295631723333,0.29192066306717207,29.37835407921179,8.902607144071771
+0.15096991515529465,0.30629875830664705,30.371716903092697,10.84802144225713
+0.14852857751670775,0.29978581624540834,29.39371016558173,9.630326521634116
+0.1502603910804987,0.3027457545304455,25.62263613621338,8.721479452445674
+0.14921070334706618,0.30156799952864866,28.219475037024115,9.448223592182838
+0.15037400864649794,0.29953261641158657,34.19280412033338,11.297265167659226
+0.14968578226200424,0.2940107235667621,29.841462651217675,9.316080598035045
+0.15009826661294642,0.29184035730028157,32.167137408940896,9.788086877294296
+0.14737402606234798,0.3044961194528802,30.48859345283718,10.366157773697994
+0.14939479473064646,0.3087994491660741,28.35872190672944,10.224643020995622
+0.14949017878483578,0.2961674205276579,31.026282214256135,9.855236676899592
+0.15041796766603474,0.29638604277892155,27.077255478202883,8.672116333996538
+0.14935501246803068,0.29427920334743446,26.3457070192256,8.176585285918648
+0.14995614927077464,0.30060121540520446,27.631901526308265,9.224758158241785
+0.14784172021468828,0.2941542711547484,32.81735604963042,10.149024574712012
+0.14920859736664008,0.3036925192952972,26.174328060601667,8.931638855355299
+0.1495743122913789,0.3035037195170273,27.332531315917766,9.399583240203311
+0.1500942992637808,0.3077690158433898,29.924660469581163,10.654892996427252
+0.1502854080726727,0.30130253824596387,33.31958086047155,11.234172674127995
+0.15043310448174962,0.29626056723482114,28.71496003999646,9.215509745910987
+0.14976631528288586,0.30349499674192776,29.780594807306446,10.153503926343516
+0.1477311517198725,0.2899975632174251,32.45463769552771,9.565954930826294
+0.14839862461960018,0.30201043419554224,27.405098265616207,9.114587082720192
+0.14988687207411927,0.3063525509392931,31.607618555728962,11.174284443705846
+0.14860026277715496,0.2921306359434917,30.664154138642047,9.310010813128748
+0.1492577357745439,0.30651099646336893,28.266863448602724,9.892024493061953
+0.15102842831308774,0.3091317525866396,31.83195068734497,11.646940346455905
+0.15138783006106968,0.29855496016923166,33.41878996815118,11.008649109673758
+0.14825064053598463,0.29919579074581826,34.96522842456004,11.320059507576829
+0.15016872202201303,0.3078414952837485,33.778179257372976,12.068014278267185
+0.14861139065025047,0.2981333867410804,35.25272488959999,11.326117506018935
+0.14801192562670992,0.2919287677768186,32.919132810511144,9.947062533683114
+0.14946465318469385,0.2992616424669362,25.904047502247188,8.531294514461806
+0.1491328543750145,0.30198722402428063,30.909061728371487,10.348459104862874
+0.1516555115233963,0.2949977069871955,32.392631408079026,10.28769050190307
+0.15082930771253064,0.2992986431095184,31.07955044340652,10.321294559194119
+0.14949008234689393,0.3006743681382189,29.14827525657818,9.696110058207728
+0.14975770275042077,0.30381420451715097,25.471139143741716,8.734261711841862
+0.1480198740560158,0.2989804866067878,29.62300034335842,9.613663798118438
+0.1503484029490885,0.2955841852585785,31.10030960929874,9.891722978111142
+0.1497500048159324,0.30421813654626345,27.47437400891313,9.49925682235692
+0.1490437606354778,0.293739718011721,34.050432952125064,10.519080007489698
+0.1520745484174731,0.30680132819429606,34.021255738880335,12.16245720256891
+0.1489356403705011,0.3000243023328318,18.669924274827522,6.154977829928493
+0.1485472833570378,0.30624545381821994,33.68706208178396,11.754206912449384
+0.14800748818065967,0.30127888121440183,32.33301824115385,10.674038488981582
+0.14981286956435289,0.2992762111063801,32.089699287167214,10.466302709604163
+0.15073442164293052,0.3016481531980852,32.54174409390011,11.013633578973714
+0.1510567349493497,0.30255489435504257,29.79339627584716,10.188281204876874
+0.14973880588267158,0.30413552385728193,30.58549991496495,10.536777734583989
+0.14960706256577835,0.3022498444699225,29.78172138087522,10.134687449699587
+0.14909432226954286,0.29651940627546586,31.376240044433082,9.972539441943908
+0.1501622243091739,0.3091285178848296,30.304412366688787,11.03092820089743
+0.14939515464805536,0.2952976936462183,29.25126619445309,9.186627145773603
+0.15132246700683033,0.30081608248025016,34.53457578296701,11.62780274822593
+0.1503091747641655,0.30203437940971983,31.344947911719842,10.665318783655458
+0.15137016503222664,0.30094429892742064,25.90660377826598,8.773694801364993
+0.15179818882427043,0.3011352330452675,28.932319531014066,9.830334151648294
+0.15046081259367824,0.30094039943436884,31.92012616577994,10.725407353867492
+0.15083967146596589,0.2948976202644054,35.520841568873415,11.27578750495999
+0.15041601327739001,0.2954863736852537,29.207248792660696,9.221902387935785
+0.1500401227787799,0.308384125449839,33.04548403249105,11.917283742541551
+0.14822975964839888,0.3023966895359634,29.713086050735743,10.006340478363473
+0.15016974903527308,0.30404580115183316,27.174857414239817,9.371206396014665
+0.14918160616652698,0.2964901238404795,31.502075108251642,10.033616147539568
+0.1481346961275278,0.2971270007759488,30.80241107175193,9.815827635240696
+0.1515743056852208,0.30031696175794426,30.484788703241083,10.314051752358239
+0.14907361047809017,0.2981645426522144,40.04689079431709,12.928410893676572
+0.1481913342592643,0.29884484333383476,24.227380272832313,7.83586742468237
+0.14977107902684916,0.30406933736696223,29.241116109863654,10.049993431635595
+0.15127447533402522,0.30750751266025944,29.457563756971048,10.547165976662475
+0.149109103672673,0.2985798821852634,25.95082350353434,8.43415829175974
+0.1500052180066964,0.2981352791288554,30.93882886908194,10.008775778394677
+0.152354230163436,0.2919583941917942,32.937696390581564,10.191738492107747
+0.15008190978310482,0.30256849110388956,30.230721544853598,10.32552114258786
+0.1504872137433576,0.3002427495081483,29.91853867961132,9.940137073578613
+0.1516572059055469,0.3000238696199626,26.8223698199233,9.01802873332646
+0.1512470457073407,0.29331158220684017,26.8652980815075,8.386090787777544
+0.14942920862705247,0.2947469289414168,31.607982587908005,9.926246223244236
+0.15005950123754794,0.296038865063365,25.370099366194324,8.113216347643426
+0.15059588861189768,0.2989162011247787,32.02719941589581,10.5226705335392
+0.14949674363200358,0.2977780663981329,30.66842430340807,9.885801455056344
+0.14863041793181656,0.29847846135490685,32.94676338254714,10.653764957402162
+0.1486087429225583,0.3008020663795074,35.10461540045329,11.677522946602645
+0.150758226127179,0.30748034696327586,33.03496477266876,11.897921127619467
+0.14973620880815455,0.30320327816931997,27.447579810030344,9.392407230874236
+0.14913385144760163,0.2930159313034078,30.44552067440856,9.392738381735198
+0.15004064670655606,0.30313654243491955,31.21650811154401,10.652163341200263
+0.14941974500856597,0.30743434170091505,32.43461830812643,11.518254589133251
+0.14869836583638749,0.30458288930009586,31.090008587329663,10.73761006814985
+0.1504478316413525,0.2968151705984984,33.48226807500696,10.768088896103029
+0.15080580179569966,0.2953336232244747,30.52785575915304,9.725614218256421
+0.14948955555533,0.29842625401706996,32.492833816786295,10.513788630457611
+0.14941641136507766,0.30495588898298076,25.954184614957946,8.990485501083473
+0.15199683069998346,0.2997435593913502,34.039266964101145,11.432318398253765
+0.15224822601553545,0.29802311664568043,33.30495217366891,10.935399174931687
+0.15077054599774878,0.30155602783667285,33.49953368216873,11.303194919888423
+0.15087927693268152,0.30115890173944476,29.97050655306997,10.091072606914702
+0.14936530397103656,0.2962291233043873,28.140543871010337,8.887986527314228
+0.14960695395476345,0.29893421618976135,31.269241642402008,10.18257831225109
+0.1517059848093937,0.30180797940885234,28.306464200761642,9.677874879566797
+0.15138883202137635,0.3014226774393414,29.991053060833334,10.188053593780248
+0.14976707105702788,0.2941709060564584,29.09757077782726,9.06248816684724
+0.15118934934540657,0.2959254332323661,24.48732722024753,7.802420352259426
+0.15077917902788368,0.30868866855059235,28.89059481172245,10.483961697335953
+0.14907276279293427,0.30370938168126566,26.03689976665551,8.85870678884724
+0.15013196261508524,0.3040536580464752,30.59002292868816,10.602686488235804
+0.1493926006906491,0.29815340544594,31.80395096590623,10.321827761325519
+0.14930541810251666,0.30410248847269905,27.789085656557923,9.498036874869632
+0.14990568736909052,0.2992143945472167,31.804761180219412,10.428356808058645
+0.14855498290235547,0.3028474776936483,27.792475996815217,9.373956041411443
+0.15003531415814222,0.30256536173482534,31.71621948078119,10.719834585503794
+0.15186806136960865,0.2962196093187158,33.23490864268922,10.756331226147884
+0.14974691851021218,0.2991913443091309,26.71160560382483,8.715272306797946
+0.1514421747581074,0.30455529490065997,32.421648925840074,11.329456432084601
+0.15191406617636996,0.3002103609286297,33.06295285095912,11.213431079973269
+0.14969194522363813,0.3004612643666757,33.27553707073521,11.021632285308678
+0.14945934516993015,0.29648025822890733,29.413848980581058,9.334514461184511
+0.14997904536628814,0.29851634963749124,30.38987261429582,9.918582522365556
+0.15187477173183844,0.3083010275099292,24.851545838239282,9.031602176491255
+0.15068552106451608,0.3021616559881324,32.820967440810186,11.174712248561631
+0.1505412093991277,0.29644968865538074,32.72755839723797,10.514594483445999
+0.15084033666193333,0.2888174857985579,24.896186749913678,7.422344930560398
+0.1497928336301585,0.3065319513053497,36.362106263175264,12.769160517809167
+0.14904011194245978,0.30027544003191947,32.129561736067885,10.561795640207123
+0.15080192787017302,0.29663754901140627,35.72444513495367,11.492153975113343
+0.15019347028359592,0.30283168364351515,28.673880623362063,9.760585993330068
+0.1523287050362359,0.29829041527459677,27.231637116894962,9.050933130394744
+0.15069802340999086,0.29551809897368997,31.428002069016337,10.03649326172372
+0.14851986601822706,0.3012251381661157,32.585498231519566,10.800288973461065
+0.14968016506727438,0.303321220583436,30.026499016911426,10.28835074886064
+0.15160233890180602,0.3009062979010729,36.30082395433563,12.208546111237206
+0.14812242092386677,0.3003925122536717,23.873204334927422,7.865096166632972
+0.1487214605669303,0.3025192647532891,27.891226309009912,9.39846018906425
+0.15187390700263156,0.3034566827564279,31.181713669054282,10.839446905289394
+0.14987187762483922,0.2965116108166391,24.086954149504688,7.7230121694792695
+0.14993042713215274,0.29687167990378116,24.838571184936143,7.994683234338886
+0.14968797980321843,0.3050089818347094,30.309063962309903,10.510822236917415
+0.15000386423747916,0.2924824083169497,35.46323227495485,10.887632097109615
+0.14975299606780448,0.2976972444698824,32.33181118844643,10.451712669981788
+0.14905566421987113,0.2930696517370505,29.325430901239795,9.006489365214296
+0.14936081892301833,0.3046413176350899,30.953109768477667,10.750506181213838
+0.15020608217161213,0.29698297091812853,39.89057765926289,12.792379334196454
+0.1489398212171489,0.30096054324320226,28.69750896002852,9.541029047098144
+0.1502367406999258,0.30483006778544747,31.608301914016636,10.992591238279495
+0.1498863953375269,0.29946680141881404,30.067833967312545,9.869653910666653
+0.14995874770395146,0.3067949955144337,38.13342201927412,13.521707634835813
+0.15141061958943894,0.29683416438766386,33.052977270373084,10.719516165779542
+0.1510815109532038,0.30212633940163347,31.71925030443675,10.858781289575333
+0.15072766963575016,0.29396474750220364,33.476999527707044,10.516308263497132
+0.14972961735317802,0.3023469322869604,33.98048141843153,11.44088670880714
+0.15067616527960637,0.3025016168771485,32.781952985688235,11.149267552514027
+0.15069765161784923,0.2986159496375919,31.47139915113055,10.306757824641947
+0.1507489578141288,0.2931693367728534,33.90183188914584,10.55193760919378
+0.15065197338780262,0.3105237919889188,29.67454190997589,10.970097286914655
+0.15057715666617702,0.3066599223783641,33.10773254399766,11.806078223385624
+0.15010962352733837,0.30142418274355137,31.178465062011103,10.501458918465815
+0.14955002542314652,0.3069636747252206,26.608670672594876,9.385678119912605
+0.14880874445883888,0.29491212658388444,31.11695618718649,9.690236247007395
+0.1502715775141707,0.3046295490652119,32.40697252817482,11.305994690959123
+0.15079436610174962,0.2962610539507452,30.499895463886578,9.7693536902944
+0.15075696800214014,0.3026730101751817,28.63407026565214,9.808688122983465
+0.15097370967711785,0.30073789476906426,31.307864202660298,10.51155495210636
+0.15078985272900608,0.30760517009623056,28.854616107954836,10.344583682796843
+0.14882191977122053,0.2969559110693046,33.960581457170576,10.830203257439626
+0.1502220834037896,0.2972447306833727,30.298885875108724,9.747014567258324
+0.1472027773793738,0.30397418851765745,29.779437964179426,10.062838904830029
+0.14995334423757045,0.303441341202552,32.67994854608827,11.20811958357367
+0.1527670994536614,0.30000237685706355,26.616511784372406,9.00651640038054
+0.1487475707380604,0.3005622054252957,27.16177254451676,8.946824085973887
+0.15032522255025163,0.3008562752590758,33.046391695537295,11.079152473234817
+0.15080721076707845,0.2955135649308298,27.795577876351448,8.859412648133938
+0.14930860113410793,0.3026531626286513,29.611935924863037,9.999902503914228
+0.1497944431557947,0.3043979766583116,36.06588748433671,12.485792100861987
+0.1508845886756924,0.2987230701239053,31.89152176589562,10.474513570906241
+0.15204338753418015,0.30085451183678036,29.694607770203742,10.080794296559041
+0.1508360625288325,0.2964205011319248,33.38799720975172,10.77716542796697
+0.14931773969525197,0.29337095951701325,30.89844628903715,9.538479717213031
+0.14945537919573137,0.3052573372814481,27.058592089193194,9.442379666341068
+0.1504357013971954,0.3023319198348644,29.128241505810564,9.894514702590353
+0.14854688339528863,0.3041349951423451,31.290409247370008,10.712076115863551
+0.1513105104259164,0.2967438244680712,33.385445988212645,10.77910944152698
+0.1496026799130961,0.29516435601163044,33.56754347301672,10.571498943306835
+0.15114704641894508,0.3057538395034736,33.79686433692095,11.95973389740671
+0.15071592932351077,0.2970341318988117,26.76324654246937,8.65486156377754
+0.15152197972150733,0.2995277387334031,30.342395134448076,10.113647986793167
+0.15036421526970417,0.3017045266364655,29.53081786068933,9.98960664733626
+0.15046383333102722,0.29232757616338473,28.712850083450004,8.826941785721182
+0.1509655795625167,0.30013326882249786,33.21640962285784,11.038170704216343
+0.15073078964278194,0.298512226117998,38.87406978670754,12.667699015806317
+0.15173344962620824,0.2992726522160836,31.77875409603203,10.497415535328063
+0.1502808781068652,0.3045390781465455,29.9666162291207,10.42285982752639
+0.14932367052978535,0.30524678834807195,29.368265329214143,10.157829564377053
+0.14927901009135286,0.2981533022103994,29.469522361544687,9.549534806300898
+0.15037320317757633,0.30140603716143133,35.26562885849645,11.919002149240804
+0.14999985729993287,0.2963197466537008,34.76717474230222,11.068448637624064
+0.14888148555488526,0.3014331902947741,33.08083313461529,11.003634367117744
+0.1494007565566521,0.301065055475783,28.52157033311379,9.546270307059151
+0.14959775241999207,0.2979009059404781,28.12254296751511,9.072070388673344
+0.1492180141733341,0.29376379385836016,29.859852532414997,9.243316469465576
+0.15194036406928266,0.30684370207110623,27.946086026146595,10.00268642225216
+0.14998477878158945,0.30006929891941453,32.79766388448502,10.821560496579876
+0.1490138409813838,0.30341470774757956,31.709715397521627,10.78705829559199
+0.15049780840455165,0.2990262855428169,39.4016506311597,12.927402760826936
+0.15091500531147842,0.3003835079194184,33.5058141172669,11.237692985666934
+0.15008736050359933,0.2933965207331989,26.678454115675983,8.270491944313722
+0.1474308332754758,0.29780890217872014,31.245893152955514,9.956461062123358
+0.1526969268051385,0.30400552746151027,28.67817422073331,10.081099811044943
+0.14984431441129095,0.2999354012821707,26.171946770547457,8.666705036514104
+0.15049958289486254,0.30132488386535106,33.078351859798794,11.18450155189797
+0.15220867183884765,0.2968029341151998,33.12299255548963,10.74639020036753
+0.14920125201050682,0.29940640248002864,34.270793778315266,11.217884261892223
+0.1497466180986925,0.30162753706979234,33.42409775699059,11.234607438058239
+0.14867875290509838,0.2882641010595247,33.240770800727475,9.730202681900646
+0.14927963370516795,0.29244584844515314,34.65836562995973,10.636866485042491
+0.1497554478916365,0.30360459121291283,31.29922151429405,10.723046134545028
+0.15125157489179983,0.30230814676836437,31.888980881236897,10.914069317724302
+0.14864372960282007,0.3026184550948954,24.68731206719738,8.265289553748579
+0.1493032164687627,0.2968825155860467,29.490569388615196,9.399574826256723
+0.14994623912423888,0.31024120870835714,28.071019980768984,10.244456216190526
+0.15006706684492727,0.3006454637244262,33.05868543777737,11.016768361424038
+0.1506224830700678,0.29939463613952344,31.34593157761961,10.343712719539697
+0.1502462713060135,0.30668299738701515,28.7289391069407,10.212404227913613
+0.15159085356295673,0.29457175833614485,29.69717146682835,9.394478799094331
+0.1499844017200477,0.29471659493667446,35.679901872384384,11.15875402297158
+0.15158993132306456,0.2983337762650887,31.172322567145017,10.32850586178081
+0.15046306668741416,0.29613860714434986,29.25642749473277,9.315778440315842
+0.1489698586804745,0.2984757703398498,27.728244975938633,9.045047823154563
+0.15168186424454014,0.2946837204983158,31.529683152156288,10.020714555418829
+0.14971508588846336,0.2896671888855328,30.38723245635816,9.050478942968764
+0.15183601311247422,0.3005830302644944,28.409727330127897,9.545614268503403
+0.1521553948068235,0.2947438103987859,32.66246359838032,10.398921684347599
+0.15079480027239772,0.29355347929825576,30.67618329669741,9.538535578231993
+0.14951905797091156,0.2995081955654008,26.276484066718606,8.623546364028718
+0.15123283684526295,0.30377231701673685,30.74241332204473,10.715897902484917
+0.14870387310069935,0.3034603305019377,29.726467581903176,10.124754894432925
+0.1497109403288454,0.294025462078789,30.126137450355863,9.36972950785382
+0.15061968993239297,0.3008716673405388,29.154360138652947,9.804269839658408
+0.1505344665905559,0.3007339928614618,28.053628856339536,9.3690290595295
+0.15095843320894775,0.3040272371872766,24.88092720023686,8.648622726091965
+0.15006978672791496,0.296265880674527,29.021242776596516,9.286657604489406
+0.14952997229262924,0.2982279938485511,33.83289095939914,10.940715614218892
+0.15152639754539454,0.2999386257483888,22.371974869567588,7.490660754475877
+0.14825865011847922,0.29649131515894434,29.634996874090856,9.355375829797756
+0.15002855158867914,0.30607144915129897,27.210365578522815,9.545951340680615
+0.148466259929669,0.3070457806115962,31.640009261734342,11.109071942478634
+0.14915918217215268,0.29844949384232794,33.60444686711569,10.941363657330157
+0.1502341592819998,0.29419938075548036,35.458890469601755,11.103711875053717
+0.15042621491397754,0.3072120701235366,31.725613846709514,11.2772730139953
+0.1504229720592804,0.29781788878922594,26.50445532406127,8.687976261753704
+0.15055299266432617,0.3009954101128926,33.48338335760052,11.274033417132973
+0.15114802899526095,0.3008172350236654,23.06645741795298,7.797329526914034
+0.1514829420760294,0.29902548599667006,31.11079756313551,10.35575651236677
+0.15048791508247808,0.2942266534582375,29.981445056039792,9.422479213201646
+0.14937600824050212,0.29323572694212235,32.38169121556348,10.042673799954978
+0.14973879208576485,0.30730928234815874,25.592523261447056,9.056090571196272
+0.1504578726046403,0.302279251938586,21.9901272546769,7.465971819244437
+0.1504641950638229,0.29455257036202653,24.618559306877874,7.748001178602279
+0.15128273080375812,0.30305467447868756,28.11888092916806,9.661132103747788
+0.15158392041776012,0.3019104024198162,28.115584594402243,9.561793846512629
+0.15037605453753677,0.30385708271534106,36.25476716889489,12.466440505755221
+0.15197926348001858,0.2915895494296114,31.356471158624363,9.672034160321084
+0.15051189069049203,0.29589631116438825,32.03475213270902,10.274858445265787
+0.1483498091262607,0.2966842723563442,33.10441659513931,10.444535260235417
+0.14994956386713443,0.3068922295621916,30.911747183507448,10.951746922409344
+0.1486570436745984,0.2988577036003469,32.96615503532279,10.628631378259533
+0.15030651069314943,0.297588848959711,29.235702983944506,9.498936550608287
+0.15191474698080243,0.30338501092546266,26.130151433546438,9.121090509324869
+0.14929983455198748,0.29647794536367783,28.214912680738195,8.97423087485924
+0.15141147924930615,0.2931972462407378,25.315958179081328,7.925432838646991
+0.14991586749136887,0.3058177202589954,26.044270364092522,9.112576727364925
+0.14767718645628675,0.2910148146089071,40.289061779511435,12.011983023398203
+0.15112921813862626,0.3029642355947397,35.62505981111805,12.308505253334385
+0.1504869471367079,0.2990959906699776,26.27836867508219,8.616237944988947
+0.15195633890608237,0.3005714478588066,29.28291008275983,9.934423047846133
+0.15028753209698664,0.301144138101138,29.975373944011164,10.058560622602238
+0.1506195930190322,0.3000438501009137,33.32678709780535,11.081594402233753
+0.1508272489820335,0.30661714363689896,35.775909040895755,12.725505705667086
+0.14868103411612757,0.3030837027099698,28.612208457503527,9.75745752321023
+0.15003557779518098,0.30335650179537704,28.17093687454318,9.621504179229728
+0.15103763337471945,0.30255731282695614,33.86615386692645,11.584948939543866
+0.14932435406598107,0.30074806103284507,31.95063884492903,10.63227481271124
+0.14931315625960795,0.3040295758031785,29.40624833982933,10.06380300012516
+0.1504650433283574,0.29409958990664326,27.168726086031427,8.515129468448166
+0.15061282739317755,0.3053014606340604,23.28820572194536,8.147903831827698
+0.1492119782970842,0.2997278889514853,37.71694418265116,12.329842520802298
+0.14998511885140048,0.29702846549255,33.73901245925508,10.85705519760846
+0.1508667098226756,0.29992932184442084,27.851559286819743,9.235368970995923
+0.14920102850078143,0.3030252668356909,33.01996889966566,11.28875696673719
+0.1507210749658682,0.3063064663876098,30.23955918385737,10.683480485744928
+0.1492873727618258,0.2960493858467969,25.64112484114324,8.10342974662121
+0.15097037898794394,0.303449676761166,28.79473569746567,9.93405053961764
+0.14846707199509213,0.3002570732049601,26.453272868430883,8.705670904183815
+0.15078695736168934,0.2974668044886989,31.876957854641496,10.282830539942806
+0.14848900868513468,0.3083387385284128,33.98677737199045,12.09208002663876
+0.1488408838607492,0.2996104272312263,26.035069646698037,8.508334175152296
+0.14883275705840793,0.3102731527051896,30.107443604196416,11.009899730136926
+0.15010913808313814,0.29908912810442956,28.154562557107557,9.273402832432918
+0.1490655639954912,0.3010119668416879,25.359574030855455,8.391844801836603
+0.148558081060578,0.29747509014451545,26.875108313699997,8.560954577476684
+0.1510498532456531,0.298928316158837,29.714747397833616,9.825387439292449
+0.1509891328655058,0.3027539712709605,36.442026054639385,12.471381560361195
+0.14934545468586863,0.3011992168898658,38.844544677385684,12.937631950229802
+0.14817802603662444,0.30148610311764956,29.71032382178374,9.884767270813759
+0.14862514808091665,0.29314426869359006,33.04335421790559,10.101151696524523
+0.14956192066911345,0.2953331466913765,35.79463931302081,11.237391956678191
+0.14882819851081278,0.2925284229608988,27.7049644868336,8.462174726929774
+0.150194578332161,0.30092498170424703,34.64105438601209,11.556561099625988
+0.14805297157197594,0.2981085652542085,33.69928674466049,10.814121744209455
+0.1488304440548724,0.29575087110575515,32.53835987761112,10.253095990772321
+0.14751063183396998,0.2977300978951996,26.586185718579582,8.492737260230047
+0.14998229528725218,0.30746961125029093,27.50700790187116,9.843225593523275
diff --git a/examples/beam/test_beam.py b/tests/test_model/example_beam.py
similarity index 100%
rename from examples/beam/test_beam.py
rename to tests/test_model/example_beam.py
diff --git a/tests/test_model/myBeam9points b/tests/test_model/myBeam9points
new file mode 100644
index 0000000000000000000000000000000000000000..a3665cde7ade283f93e530021b82207535cda6f9
Binary files /dev/null and b/tests/test_model/myBeam9points differ
diff --git a/tests/test_model/read_Beam_Deflection.py b/tests/test_model/read_Beam_Deflection.py
new file mode 100644
index 0000000000000000000000000000000000000000..cd7a5e26ee498496abd6b49fed201e1506e14823
--- /dev/null
+++ b/tests/test_model/read_Beam_Deflection.py
@@ -0,0 +1,25 @@
+#!/usr/bin/env python2
+# -*- coding: utf-8 -*-
+"""
+Created on Fri Jul 19 16:48:59 2019
+
+@author: farid
+"""
+import pandas as pd
+import numpy as np
+
+
+def read_Beam_Deflection(FileNames):
+
+    df_Mean = pd.read_csv(FileNames[0], header=None, delimiter=' ')
+    x_values = np.linspace(0, 1, 11)
+    deflection = df_Mean[df_Mean.columns[0]]
+
+    deflection_zero = np.zeros((1))
+    deflection_mid = np.append(deflection_zero, deflection)
+    deflection_final = np.append(deflection_mid, deflection_zero)
+
+    # Prepare output dict using standard bayesvalidrox format
+    output = {'x_values': x_values, 'Deflection [m]': deflection_final}
+
+    return output
diff --git a/tests/test_polyconst.py b/tests/test_polyconst.py
new file mode 100644
index 0000000000000000000000000000000000000000..f831cd5a1b922e2865ca744f89d6cd068fe26b91
--- /dev/null
+++ b/tests/test_polyconst.py
@@ -0,0 +1,69 @@
+# -*- coding: utf-8 -*-
+"""
+Test the various classes and functions provided for constructing the polynomials.
+Tests are available for the following functions:
+    apoly_construction      - x
+    glexindex             
+    cross_truncate
+
+"""
+import sys
+sys.path.append("src/")
+sys.path.append('../src/')
+import pytest
+import numpy as np
+
+from bayesvalidrox.surrogate_models.apoly_construction import apoly_construction
+from bayesvalidrox.surrogate_models.glexindex import glexindex, cross_truncate
+
+#%% Test apoly_construction
+
+def test_apoly_construction_dimerr() -> None:
+    """
+    Cannot construct with wrong dim of data
+    """
+    data = np.random.uniform(0,1,(3,1000))
+    with pytest.raises(AttributeError) as excinfo:
+        apoly_construction(data, 3)
+    assert str(excinfo.value) == 'Data should be a 1D array'
+
+def test_apoly_construction() -> None:
+    """
+    Construct poly for aPC
+    """
+    data = np.random.uniform(0,1,1000)
+    apoly_construction(data, 3)
+
+def test_apoly_construction_deg0() -> None:
+    """
+    Construct poly for aPC for degree 0
+    """
+    data = np.random.uniform(0,1,1000)
+    apoly_construction(data, 0)
+    
+def test_apoly_construction_negdeg() -> None:
+    """
+    Construct poly for aPC for negative degree -- this works??
+    """
+    data = np.random.uniform(0,1,1000)
+    apoly_construction(data, -2)
+    
+#%% Test glexindex
+    
+def test_glexindex() -> None:
+    """
+    Create monomial exponent dict
+    """
+    glexindex(0)
+    
+#%% Test cross_truncate
+    
+def test_cross_truncate()-> None:
+    """
+    Truncate indices via Lp norm
+    """
+    #cross_truncate(np.array([0,1,2]), 2, 1)
+    None
+
+if __name__ == '__main__':
+    None
diff --git a/tests/test_pylink.py b/tests/test_pylink.py
new file mode 100644
index 0000000000000000000000000000000000000000..47cc27081339a71d53963bb77cc44ad2da4b934a
--- /dev/null
+++ b/tests/test_pylink.py
@@ -0,0 +1,240 @@
+# -*- coding: utf-8 -*-
+"""
+Test the PyLinkForwardModel class in bayesvalidrox.
+Tests are available for the following functions
+    within_range *not used again in here            - x
+PyLinkForwardModel:
+    read_observation *not used again in here        - x
+    read_mc_reference *not used again in here       - x
+    read_output *used only once
+    update_input_params *used only once
+    run_command *used only once
+    run_forwardmodel
+    run_model_parallel
+    _store_simulations *used only once
+    zip_subdirs *used in metamodel again
+OutputData:
+    constructor only
+
+"""
+import sys
+sys.path.append("src/")
+import pandas as pd
+import pytest
+
+from bayesvalidrox.pylink.pylink import PyLinkForwardModel as PL
+from bayesvalidrox.pylink.pylink import within_range
+
+#%% Test constructor
+
+def test_PL() -> None:
+    """
+    Build PyLinkForwardModel without inputs
+    """
+    PL()
+
+
+#%% Test PyLink.within_range
+
+def test_within_range_noarray() -> None:
+    """
+    Value not an array
+    """
+    with pytest.raises(AttributeError) as excinfo:
+        within_range(1,2,3)
+    assert str(excinfo.value) == 'The given values should be a 1D array, but are not'
+
+def test_within_range_2d() -> None:
+    """
+    Value not an array
+    """
+    with pytest.raises(AttributeError) as excinfo:
+        within_range([[1],[2]],2,3)
+    assert str(excinfo.value) == 'The given values should be a 1D array, but are not'
+
+def test_within_range_err() -> None:
+    """
+    Value not in range
+    """
+    assert within_range([1],2,3) == False
+
+def test_within_range_switchbounds() -> None:
+    """
+    Switched min and max
+    """
+    with pytest.raises(ValueError) as excinfo:
+        within_range([1],4,3)
+    assert str(excinfo.value) == 'The lower and upper bounds do not form a valid range, they might be switched'
+
+def test_within_range() -> None:
+    """
+    Value in range
+    """
+    assert within_range([1],0,3) == True
+    
+#%% Test PyLink.read_observation
+# TODO: check that the shape,... of what is read in matches wha is in the files
+def test_read_observation_none() -> None:
+    """
+    Read observation - 'calib' without anything
+    """
+    pl = PL()
+    with pytest.raises(Exception) as excinfo:
+        pl.read_observation()
+    assert str(excinfo.value) == "Please provide the observation data as a dictionary via observations attribute or pass the csv-file path to MeasurementFile attribute"
+    
+def test_read_observation() -> None:
+    """
+    Read observation - 'calib' from file
+    """
+    pl = PL()
+    pl.meas_file = 'tests/MeasuredData.csv'
+    pl.read_observation()
+    
+def test_read_observation_datadict() -> None:
+    """
+    Read observation - 'calib' with given observation as dict
+    """
+    pl = PL()
+    pl.observations = {'Z':[0.1]}
+    pl.read_observation()
+    
+def test_read_observation_dataframe() -> None:
+    """
+    Read observation - 'calib' with given observation as dict
+    """
+    pl = PL()
+    pl.observations = pd.DataFrame({'Z':[0.1]}, columns = ['Z'])
+    pl.read_observation()
+    
+def test_read_observation_validnone() -> None:
+    """
+    Read observation - 'valid' without anything
+    """
+    pl = PL()
+    with pytest.raises(Exception) as excinfo:
+        pl.read_observation(case = 'valid')
+    assert str(excinfo.value) == "Please provide the observation data as a dictionary via observations attribute or pass the csv-file path to MeasurementFile attribute"
+    
+def test_read_observation_valid() -> None:
+    """
+    Read observation - 'valid' from file
+    """
+    pl = PL()
+    pl.meas_file_valid = 'tests/MeasuredData_Valid.csv'
+    pl.read_observation(case = 'valid')
+       
+def test_read_observation_validdatadict() -> None:
+    """
+    Read observation - 'valid' with given observation as dict
+    """
+    pl = PL()
+    pl.observations_valid = {'Z':[0.1]}
+    pl.read_observation(case = 'valid')
+    
+def test_read_observation_validdataframe() -> None:
+    """
+    Read observation - 'valid' with given observation as dict
+    """
+    pl = PL()
+    pl.observations_valid = pd.DataFrame({'Z':[0.1]}, columns = ['Z'])
+    pl.read_observation(case = 'valid')
+    
+
+def test_read_observation_mc() -> None:
+    """
+    Read mc ref from file
+    """
+    pl = PL()
+    pl.mc_ref_file = 'tests/MCrefs_MeanStd.csv'
+    pl.read_observation(case = 'mc_ref')
+    
+
+def test_read_observation_mcdatadict() -> None:
+    """
+    Read mc ref from fict
+    """
+    pl = PL()
+    pl.mc_reference = {'Mean':[0.1],'Std':[0.1]}
+    pl.read_observation(case = 'mc_ref')
+ 
+def test_read_observation_mcdataframe() -> None:
+    """
+    Read mc ref from dataframe
+    """
+    pl = PL()
+    pl.observations_valid = pd.DataFrame({'Mean':[0.1],'Std':[0.1]}, columns = ['Mean', 'Std'])
+    pl.read_observation(case = 'mc_ref')
+    
+def test_read_observation_mcnone() -> None:
+    """
+    Read mc ref with nothing
+    """
+    pl = PL()
+    pl.read_observation(case = 'mc_ref')
+    
+#%% Test PyLink.read_output
+
+def test_read_output() -> None:
+    """
+    Reads model run output
+    """
+    pl = PL()
+    #pl.read_output()
+    # TODO: create parser first to be able to test this
+    
+#%% Test PyLink.update_input_params
+
+def test_update_input_params() -> None:
+    """
+    Updates parameters in file
+    """
+    pl = PL()
+    # TODO: better understand what this is meant to do
+    
+#%% Test PyLink.run_command
+
+def test_run_command() -> None:
+    """
+    Runs command and reads results
+    """
+    pl = PL()
+    # TODO: Find command to run to then read in file
+    
+#%% Test PyLink.zip_subdirs
+def test_zip_subdirs() -> None:
+    """
+    Zips specified subdirs
+    """
+    pl = PL()
+    pl.zip_subdirs('tests\Outputs_SeqPosteriorComparison', 'Z')
+
+#%% Test PyLink._store_simulations
+def test_store_simulations() -> None:
+    """
+    Stores simulation results
+    """
+    pl = PL()
+    
+    
+#%% Test PyLink.run_model_parallel
+if 0:
+    def test_run_model_parallel() -> None:
+        """
+        Runs model in parallel
+        """
+        pl = PL()
+        pl.link_type = 'PyLink'
+        pl.name = 'Beam9points'
+        pl.input_file = "tests\test_model\SSBeam_Deflection.inp"
+        pl.input_template = "tests\test_model\SSBeam_Deflection.tpl.inp"
+    
+        pl.shell_command = "tests\test_model\myBeam9points SSBeam_Deflection.inp"
+        pl.Output.parser = 'tests\test_model\read_Beam_Deflection'
+        pl.Output.names = ['Deflection [m]']
+        pl.Output.file_names = ["SSBeam_Deflection.out"]
+        pl.run_model_parallel([[0.1,0.25,30000e+6,1e4]])
+    
+
+if __name__ == '__main__':
+    None