From 93427023d106fe912a897bfa0178954304019ab7 Mon Sep 17 00:00:00 2001
From: Luc Maisonobe <luc@orekit.org>
Date: Wed, 12 Mar 2014 20:18:35 +0100
Subject: [PATCH] Added ExtendedEllipsoid to chop off line-of-sight according
 to DEM.

---
 .../org/orekit/rugged/api/RuggedMessages.java |   5 +-
 .../org/orekit/rugged/RuggedMessages_en.utf8  |   9 +
 .../org/orekit/rugged/RuggedMessages_fr.utf8  |   9 +
 .../orekit/rugged/api/RuggedMessagesTest.java |   2 +-
 .../orekit/rugged/core/ExtendedEllipsoid.java | 193 +++++++++
 .../rugged/core/ExtendedEllipsoidTest.java    | 206 ++++++++++
 .../resources/orekit-data/UTC-TAI.history     |  48 +++
 .../orekit-data/eopc04_08_IAU2000.12          | 380 ++++++++++++++++++
 8 files changed, 850 insertions(+), 2 deletions(-)
 create mode 100644 rugged-core/src/main/java/org/orekit/rugged/core/ExtendedEllipsoid.java
 create mode 100644 rugged-core/src/test/java/org/orekit/rugged/core/ExtendedEllipsoidTest.java
 create mode 100644 rugged-core/src/test/resources/orekit-data/UTC-TAI.history
 create mode 100644 rugged-core/src/test/resources/orekit-data/eopc04_08_IAU2000.12

diff --git a/rugged-api/src/main/java/org/orekit/rugged/api/RuggedMessages.java b/rugged-api/src/main/java/org/orekit/rugged/api/RuggedMessages.java
index 98e28964..7f82b305 100644
--- a/rugged-api/src/main/java/org/orekit/rugged/api/RuggedMessages.java
+++ b/rugged-api/src/main/java/org/orekit/rugged/api/RuggedMessages.java
@@ -54,7 +54,10 @@ public enum RuggedMessages implements Localizable {
     OUT_OF_TILE_INDICES("no data at indices [{0}, {1}], tile only covers from [0, 0] to [{2}, {3}] (inclusive)"),
     UNINITIALIZED_CONTEXT("general context has not been initialized"),
     EMPTY_TILE("tile is empty: {0} ⨉ {1}"),
-    UNKNOWN_SENSOR("unknown sensor {0}");
+    UNKNOWN_SENSOR("unknown sensor {0}"),
+    LINE_OF_SIGHT_NEVER_CROSSES_LATITUDE("line-of-sight never crosses latitude {0}"),
+    LINE_OF_SIGHT_NEVER_CROSSES_LONGITUDE("line-of-sight never crosses longitude {0}"),
+    LINE_OF_SIGHT_NEVER_CROSSES_ALTITUDE("line-of-sight never crosses altitude {0}");
 
     // CHECKSTYLE: resume JavadocVariable check
 
diff --git a/rugged-api/src/main/resources/assets/org/orekit/rugged/RuggedMessages_en.utf8 b/rugged-api/src/main/resources/assets/org/orekit/rugged/RuggedMessages_en.utf8
index 72ad70cb..c7bbe549 100644
--- a/rugged-api/src/main/resources/assets/org/orekit/rugged/RuggedMessages_en.utf8
+++ b/rugged-api/src/main/resources/assets/org/orekit/rugged/RuggedMessages_en.utf8
@@ -12,3 +12,12 @@ EMPTY_TILE = tile is empty: {0} ⨉ {1}
 
 # unknown sensor {0}
 UNKNOWN_SENSOR = unknown sensor {0}
+
+# line-of-sight never crosses latitude {0}
+LINE_OF_SIGHT_NEVER_CROSSES_LATITUDE = line-of-sight never crosses latitude {0}
+
+# line-of-sight never crosses longitude {0}
+LINE_OF_SIGHT_NEVER_CROSSES_LONGITUDE = line-of-sight never crosses longitude {0}
+
+# line never crosses altitude {0}
+LINE_OF_SIGHT_NEVER_CROSSES_ALTITUDE = line-of-sight never crosses altitude {0}
diff --git a/rugged-api/src/main/resources/assets/org/orekit/rugged/RuggedMessages_fr.utf8 b/rugged-api/src/main/resources/assets/org/orekit/rugged/RuggedMessages_fr.utf8
index 27838bea..5fdf518c 100644
--- a/rugged-api/src/main/resources/assets/org/orekit/rugged/RuggedMessages_fr.utf8
+++ b/rugged-api/src/main/resources/assets/org/orekit/rugged/RuggedMessages_fr.utf8
@@ -12,3 +12,12 @@ EMPTY_TILE = la tuile est vide : {0} ⨉ {1}
 
 # unknown sensor {0}
 UNKNOWN_SENSOR = capteur {0} inconnu
+
+# line-of-sight never crosses latitude {0}
+LINE_OF_SIGHT_NEVER_CROSSES_LATITUDE = la ligne de visée ne franchit jamais la latitude {0}
+
+# line-of-sight never crosses longitude {0}
+LINE_OF_SIGHT_NEVER_CROSSES_LONGITUDE = la ligne de visée ne franchit jamais la longitude {0}
+
+# line never crosses altitude {0}
+LINE_OF_SIGHT_NEVER_CROSSES_ALTITUDE = la ligne de visée ne franchit jamais l''altitude {0}
diff --git a/rugged-api/src/test/java/org/orekit/rugged/api/RuggedMessagesTest.java b/rugged-api/src/test/java/org/orekit/rugged/api/RuggedMessagesTest.java
index 4a9af073..d0b62e73 100644
--- a/rugged-api/src/test/java/org/orekit/rugged/api/RuggedMessagesTest.java
+++ b/rugged-api/src/test/java/org/orekit/rugged/api/RuggedMessagesTest.java
@@ -29,7 +29,7 @@ public class RuggedMessagesTest {
 
     @Test
     public void testMessageNumber() {
-        Assert.assertEquals(5, RuggedMessages.values().length);
+        Assert.assertEquals(8, RuggedMessages.values().length);
     }
 
     @Test
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/ExtendedEllipsoid.java b/rugged-core/src/main/java/org/orekit/rugged/core/ExtendedEllipsoid.java
new file mode 100644
index 00000000..b8128c69
--- /dev/null
+++ b/rugged-core/src/main/java/org/orekit/rugged/core/ExtendedEllipsoid.java
@@ -0,0 +1,193 @@
+/* Copyright 2013-2014 CS Systèmes d'Information
+ * Licensed to CS Systèmes d'Information (CS) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * CS licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.orekit.rugged.core;
+
+import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;
+import org.apache.commons.math3.util.FastMath;
+import org.orekit.bodies.GeodeticPoint;
+import org.orekit.bodies.OneAxisEllipsoid;
+import org.orekit.errors.OrekitException;
+import org.orekit.frames.Frame;
+import org.orekit.rugged.api.RuggedException;
+import org.orekit.rugged.api.RuggedMessages;
+
+/** Transform provider from Spacecraft frame to observed body frame.
+ * @author Luc Maisonobe
+ */
+public class ExtendedEllipsoid extends OneAxisEllipsoid {
+
+    /** Serializable UID. */
+    private static final long serialVersionUID = 20140312L;
+
+    /** Convergence threshold for {@link #pointAtAltitude(Vector3D, Vector3D, double)}. */
+    private static final double ALTITUDE_CONVERGENCE = 1.0e-3;
+
+    /** Simple constructor.
+     * @param ae equatorial radius
+     * @param f the flattening (f = (a-b)/a)
+     * @param bodyFrame body frame related to body shape
+     * @see org.orekit.frames.FramesFactory#getITRF(org.orekit.utils.IERSConventions, boolean)
+     */
+    public ExtendedEllipsoid(final double ae, final double f, final Frame bodyFrame) {
+        super(ae, f, bodyFrame);
+    }
+
+    /** Get point at some latitude along a pixel line of sight.
+     * @param position pixel position (in body frame)
+     * @param los pixel line-of-sight, not necessarily normalized (in body frame)
+     * @param latitude latitude with respect to ellipsoid
+     * @return point at altitude
+     * @exception RuggedException if no such point exists
+     */
+    public Vector3D pointAtLatitude(final Vector3D position, final Vector3D los, final double latitude)
+        throws RuggedException {
+
+        // find apex of iso-latitude cone, somewhere along polar axis
+        final GeodeticPoint groundPoint = new GeodeticPoint(latitude, 0, 0);
+        final Vector3D gpCartesian = transform(groundPoint);
+        final double r             = FastMath.sqrt(gpCartesian.getX() * gpCartesian.getX() +
+                                                   gpCartesian.getY() * gpCartesian.getY());
+        final Vector3D zenith      = groundPoint.getZenith();
+        final Vector3D apex        = new Vector3D(1, gpCartesian, -r / FastMath.cos(latitude), zenith);
+
+        // quadratic equation representing line intersection with iso-latitude cone
+        // a k² + 2 b k + c = 0
+        final Vector3D delta = position.subtract(apex);
+        final double zz2     = zenith.getZ() * zenith.getZ();
+        final double   a     = zz2 * los.getNormSq()                 - los.getZ()   * los.getZ();
+        final double   b     = zz2 * Vector3D.dotProduct(delta, los) - delta.getZ() * los.getZ();
+        final double   c     = zz2 * delta.getNormSq()               - delta.getZ() * delta.getZ();
+
+        // find the two intersections along the line
+        final double   b2    = b * b;
+        final double   ac    = a * c;
+        if (b2 < ac) {
+            throw new RuggedException(RuggedMessages.LINE_OF_SIGHT_NEVER_CROSSES_LATITUDE,
+                                      FastMath.toDegrees(latitude));
+        }
+        final double s  = FastMath.sqrt(b2 - ac);
+        final double k1 = (b > 0) ? -(s + b) / a : c / (s - b);
+        final double k2 = c / (a * k1);
+
+        // the quadratic equation may find spurious solutions in the wrong cone nappe
+        final boolean  k1IsOK = (delta.getZ() + k1 * los.getZ()) * latitude >= 0;
+        final boolean  k2IsOK = (delta.getZ() + k2 * los.getZ()) * latitude >= 0;
+        final double selectedK;
+        if (k1IsOK) {
+            if (k2IsOK) {
+                // both solutions are in the good nappe,
+                // we arbitrarily select the one closest to the initial position
+                selectedK = FastMath.abs(k1) <= FastMath.abs(k2) ? k1 : k2;
+            } else {
+                // only k1 is in the good nappe
+                selectedK = k1;
+            }
+        } else {  
+            if (k2IsOK) {
+                // only k2 is in the good nappe
+                selectedK = k2;
+            } else {
+                // both solutions are in the wrong nappe,
+                // there are no solutions
+                throw new RuggedException(RuggedMessages.LINE_OF_SIGHT_NEVER_CROSSES_LATITUDE,
+                                          FastMath.toDegrees(latitude));
+            }
+        }
+
+        // compute point
+        return new Vector3D(1, position, selectedK, los);
+
+    }
+
+    /** Get point at some longitude along a pixel line of sight.
+     * @param position pixel position (in body frame)
+     * @param los pixel line-of-sight, not necessarily normalized (in body frame)
+     * @param longitude longitude with respect to ellipsoid
+     * @return point at altitude
+     * @exception RuggedException if no such point exists
+     */
+    public Vector3D pointAtLongitude(final Vector3D position, final Vector3D los, final double longitude)
+        throws RuggedException {
+
+        // normal to meridian
+        final Vector3D normal = new Vector3D(-FastMath.sin(longitude), FastMath.cos(longitude), 0);
+        final double d = Vector3D.dotProduct(los, normal);
+        if (FastMath.abs(d) < 1.0e-12) {
+            throw new RuggedException(RuggedMessages.LINE_OF_SIGHT_NEVER_CROSSES_LONGITUDE,
+                                      FastMath.toDegrees(longitude));
+        }
+
+        // compute point
+       return new Vector3D(1, position, -Vector3D.dotProduct(position, normal) / d, los);
+
+    }
+
+    /** Get point at some altitude along a pixel line of sight.
+     * @param position pixel position (in body frame)
+     * @param los pixel line-of-sight, not necessarily normalized (in body frame)
+     * @param altitude altitude with respect to ellipsoid
+     * @return point at altitude
+     * @exception RuggedException if no such point exists (typically too negative altitude)
+     */
+    public Vector3D pointAtAltitude(final Vector3D position, final Vector3D los, final double altitude)
+        throws RuggedException {
+        try {
+
+            // point on line closest to origin
+            final double   los2   = los.getNormSq();
+            final double   dot    = Vector3D.dotProduct(position, los);
+            final double   k0     = -dot / los2;
+            final Vector3D close0 = new Vector3D(1, position, k0, los);
+
+            // very rough guess: if body is spherical, the desired point on line
+            // is at distance ae + altitude from origin
+            final double r        = getEquatorialRadius() + altitude;
+            final double delta2   = r * r - close0.getNormSq();
+            if (delta2 < 0) {
+                throw new RuggedException(RuggedMessages.LINE_OF_SIGHT_NEVER_CROSSES_ALTITUDE, altitude);
+            }
+            final double deltaK   = FastMath.sqrt(delta2 / los2);
+            final double k1       = k0 + deltaK;
+            final double k2       = k0 - deltaK;
+            double k              = (FastMath.abs(k1) <= FastMath.abs(k2)) ? k1 : k2;
+
+            // this loop generally converges in 3 iterations
+            for (int i = 0; i < 100; ++i) {
+
+                final Vector3D      point   = new Vector3D(1, position, k, los);
+                final GeodeticPoint gpK     = transform(point, getBodyFrame(), null);
+                final double        deltaH  = altitude - gpK.getAltitude();
+                if (FastMath.abs(deltaH) <= ALTITUDE_CONVERGENCE) {
+                    return point;
+                }
+
+                // improve the offset using linear ratio between
+                // altitude variation and displacement along line-of-sight
+                k += deltaH / Vector3D.dotProduct(gpK.getZenith(), los);
+
+            }
+
+            // this should never happen
+            throw new RuggedException(RuggedMessages.LINE_OF_SIGHT_NEVER_CROSSES_ALTITUDE, altitude);
+
+        } catch (OrekitException oe) {
+            // this should never happen
+            throw new RuggedException(oe, oe.getSpecifier(), oe.getParts());
+        }
+    }
+
+}
diff --git a/rugged-core/src/test/java/org/orekit/rugged/core/ExtendedEllipsoidTest.java b/rugged-core/src/test/java/org/orekit/rugged/core/ExtendedEllipsoidTest.java
new file mode 100644
index 00000000..ffbf3083
--- /dev/null
+++ b/rugged-core/src/test/java/org/orekit/rugged/core/ExtendedEllipsoidTest.java
@@ -0,0 +1,206 @@
+/* Copyright 2013-2014 CS Systèmes d'Information
+ * Licensed to CS Systèmes d'Information (CS) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * CS licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.orekit.rugged.core;
+
+import java.io.File;
+import java.net.URISyntaxException;
+
+import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;
+import org.apache.commons.math3.util.FastMath;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.orekit.bodies.GeodeticPoint;
+import org.orekit.data.DataProvidersManager;
+import org.orekit.data.DirectoryCrawler;
+import org.orekit.errors.OrekitException;
+import org.orekit.frames.Frame;
+import org.orekit.frames.FramesFactory;
+import org.orekit.rugged.api.RuggedException;
+import org.orekit.rugged.api.RuggedMessages;
+import org.orekit.rugged.core.ExtendedEllipsoid;
+import org.orekit.utils.Constants;
+import org.orekit.utils.IERSConventions;
+
+public class ExtendedEllipsoidTest {
+
+    @Test
+    public void testPointAtLongitude() throws RuggedException, OrekitException {
+
+        Vector3D p = new Vector3D(3220103.0, 69623.0, -6449822.0);
+        Vector3D d = new Vector3D(1.0, 2.0, 3.0);
+
+        for (double longitude = -1.0; longitude < 1.0; longitude += 0.01) {
+            GeodeticPoint gp = ellipsoid.transform(ellipsoid.pointAtLongitude(p, d, longitude),
+                                                   ellipsoid.getBodyFrame(), null);
+            Assert.assertEquals(longitude, gp.getLongitude(), 1.0e-15);
+        }
+
+    }
+
+    @Test
+    public void testPointAtLongitudeError() throws RuggedException, OrekitException {
+
+        Vector3D p = new Vector3D(3220103.0, 69623.0, -6449822.0);
+        double longitude = 1.25;
+        Vector3D parallelToLongitudePlane = new Vector3D(FastMath.cos(longitude),
+                                                         FastMath.sin(longitude),
+                                                         -2.4);
+        try {
+            ellipsoid.pointAtLongitude(p, parallelToLongitudePlane, longitude);
+            Assert.fail("an error should have been triggered");
+        } catch (RuggedException re) {
+            Assert.assertEquals(RuggedMessages.LINE_OF_SIGHT_NEVER_CROSSES_LONGITUDE, re.getSpecifier());
+            Assert.assertEquals(FastMath.toDegrees(longitude), re.getParts()[0]);
+        }
+
+    }
+
+    @Test
+    public void testPointAtLatitude() throws RuggedException, OrekitException {
+
+        Vector3D p = new Vector3D(3220103.0, 69623.0, -6449822.0);
+        Vector3D d = new Vector3D(1.0, 2.0, 3.0);
+
+        for (double latitude = -d.getDelta() + 1.0e-6; latitude < d.getDelta(); latitude += 0.1) {
+            GeodeticPoint gp = ellipsoid.transform(ellipsoid.pointAtLatitude(p, d, latitude),
+                                                   ellipsoid.getBodyFrame(), null);
+            Assert.assertEquals(latitude, gp.getLatitude(), 1.0e-12);
+        }
+
+    }
+
+    @Test
+    public void testPointAtLatitudeTwoPointsInGoodNappe() throws RuggedException, OrekitException {
+
+        Vector3D p = new Vector3D(3220103.0, 69623.0, -6449822.0);
+        Vector3D d = new Vector3D(1.0, 2.0, 0.1);
+        double latitude = -0.5;
+
+        GeodeticPoint gpPlus = ellipsoid.transform(ellipsoid.pointAtLatitude(p, d, latitude),
+                                                   ellipsoid.getBodyFrame(), null);
+        Assert.assertEquals(latitude, gpPlus.getLatitude(), 1.0e-12);
+
+        GeodeticPoint gpMinus = ellipsoid.transform(ellipsoid.pointAtLatitude(p, d.negate(), latitude),
+                                                    ellipsoid.getBodyFrame(), null);
+        Assert.assertEquals(latitude, gpMinus.getLatitude(), 1.0e-12);
+
+    }
+
+    @Test
+    public void testPointAtLatitudeErrorQuadraticEquation() throws RuggedException, OrekitException {
+
+        Vector3D p = new Vector3D(3220103.0, 69623.0, -6449822.0);
+        Vector3D d = new Vector3D(1.0, 2.0, 3.0);
+        double latitude = -1.4;
+
+        try {
+            ellipsoid.pointAtLatitude(p, d, latitude);
+            Assert.fail("an error should have been triggered");
+        } catch (RuggedException re) {
+            Assert.assertEquals(RuggedMessages.LINE_OF_SIGHT_NEVER_CROSSES_LATITUDE, re.getSpecifier());
+            Assert.assertEquals(FastMath.toDegrees(latitude), re.getParts()[0]);
+        }
+
+    }
+
+    @Test
+    public void testPointAtLatitudeErrorNappe() throws RuggedException, OrekitException {
+
+        Vector3D p = new Vector3D(3220103.0, 69623.0, -6449822.0);
+        Vector3D d = new Vector3D(1.0, 2.0, 0.1);
+        double latitude = 0.5;
+
+        try {
+            ellipsoid.pointAtLatitude(p, d, latitude);
+            Assert.fail("an error should have been triggered");
+        } catch (RuggedException re) {
+            Assert.assertEquals(RuggedMessages.LINE_OF_SIGHT_NEVER_CROSSES_LATITUDE, re.getSpecifier());
+            Assert.assertEquals(FastMath.toDegrees(latitude), re.getParts()[0]);
+        }
+
+    }
+
+    @Test
+    public void testPointAtAltitude() throws RuggedException, OrekitException {
+
+        Vector3D p = new Vector3D(3220103.0, 69623.0, -6449822.0);
+        Vector3D d = new Vector3D(1.0, 2.0, 3.0);
+        for (double altitude = -500000; altitude < 800000.0; altitude += 100) {
+            GeodeticPoint gp = ellipsoid.transform(ellipsoid.pointAtAltitude(p, d, altitude),
+                                                   ellipsoid.getBodyFrame(), null);
+            Assert.assertEquals(altitude, gp.getAltitude(), 1.0e-3);
+        }
+
+    }
+
+    @Test
+    public void testPointAtAltitudeStartInside() throws RuggedException, OrekitException {
+
+        Vector3D p = new Vector3D(322010.30, 6962.30, -644982.20);
+        Vector3D d = new Vector3D(-1.0, -2.0, -3.0);
+        for (double altitude = -500000; altitude < 800000.0; altitude += 100) {
+            GeodeticPoint gp = ellipsoid.transform(ellipsoid.pointAtAltitude(p, d, altitude),
+                                                   ellipsoid.getBodyFrame(), null);
+            Assert.assertEquals(altitude, gp.getAltitude(), 1.0e-3);
+        }
+
+    }
+
+    @Test
+    public void testPointAtAltitudeError() throws RuggedException, OrekitException {
+
+        Vector3D p = new Vector3D(3220103.0, 69623.0, -6449822.0);
+        Vector3D d = new Vector3D(1.0, 2.0, 3.0);
+        double altitude = -580000.0;
+        try {
+            ellipsoid.pointAtAltitude(p, d, altitude);
+            Assert.fail("an error should have been triggered");
+        } catch (RuggedException re) {
+            Assert.assertEquals(RuggedMessages.LINE_OF_SIGHT_NEVER_CROSSES_ALTITUDE, re.getSpecifier());
+            Assert.assertEquals(altitude, re.getParts()[0]);
+        }
+
+    }
+
+    @Before
+    public void setUp() {
+        try {
+
+            String path = getClass().getClassLoader().getResource("orekit-data").toURI().getPath();
+            DataProvidersManager.getInstance().addProvider(new DirectoryCrawler(new File(path)));
+
+            Frame itrf = FramesFactory.getITRF(IERSConventions.IERS_2010, true);
+            ellipsoid = new ExtendedEllipsoid(Constants.WGS84_EARTH_EQUATORIAL_RADIUS,
+                                              Constants.WGS84_EARTH_FLATTENING,
+                                              itrf);
+        } catch (OrekitException oe) {
+            Assert.fail(oe.getLocalizedMessage());
+        } catch (URISyntaxException use) {
+            Assert.fail(use.getLocalizedMessage());
+        }
+    }
+
+    @After
+    public void tearDown() {
+        ellipsoid = null;
+    }
+
+    private ExtendedEllipsoid ellipsoid;
+
+}
diff --git a/rugged-core/src/test/resources/orekit-data/UTC-TAI.history b/rugged-core/src/test/resources/orekit-data/UTC-TAI.history
new file mode 100644
index 00000000..2d8f96b7
--- /dev/null
+++ b/rugged-core/src/test/resources/orekit-data/UTC-TAI.history
@@ -0,0 +1,48 @@
+
+ ---------------
+ UTC-TAI.history
+ ---------------
+ RELATIONSHIP BETWEEN TAI AND UTC
+ ------------------------------------------------------------------------------- 
+ Limits of validity(at 0h UTC)       TAI - UTC  
+ 
+ 1961  Jan.  1 - 1961  Aug.  1     1.422 818 0s + (MJD - 37 300) x 0.001 296s
+       Aug.  1 - 1962  Jan.  1     1.372 818 0s +        ""
+ 1962  Jan.  1 - 1963  Nov.  1     1.845 858 0s + (MJD - 37 665) x 0.001 123 2s
+ 1963  Nov.  1 - 1964  Jan.  1     1.945 858 0s +        ""
+ 1964  Jan.  1 -       April 1     3.240 130 0s + (MJD - 38 761) x 0.001 296s
+       April 1 -       Sept. 1     3.340 130 0s +        ""
+       Sept. 1 - 1965  Jan.  1     3.440 130 0s +        ""
+ 1965  Jan.  1 -       March 1     3.540 130 0s +        ""
+       March 1 -       Jul.  1     3.640 130 0s +        ""
+       Jul.  1 -       Sept. 1     3.740 130 0s +        ""
+       Sept. 1 - 1966  Jan.  1     3.840 130 0s +        ""
+ 1966  Jan.  1 - 1968  Feb.  1     4.313 170 0s + (MJD - 39 126) x 0.002 592s
+ 1968  Feb.  1 - 1972  Jan.  1     4.213 170 0s +        ""
+ 1972  Jan.  1 -       Jul.  1    10s            
+       Jul.  1 - 1973  Jan.  1    11s
+ 1973  Jan.  1 - 1974  Jan.  1    12s	
+ 1974  Jan.  1 - 1975  Jan.  1    13s	
+ 1975  Jan.  1 - 1976  Jan.  1    14s	  
+ 1976  Jan.  1 - 1977  Jan.  1    15s	    
+ 1977  Jan.  1 - 1978  Jan.  1    16s
+ 1978  Jan.  1 - 1979  Jan.  1    17s	
+ 1979  Jan.  1 - 1980  Jan.  1    18s	
+ 1980  Jan.  1 - 1981  Jul.  1    19s	
+ 1981  Jul.  1 - 1982  Jul.  1    20s	
+ 1982  Jul.  1 - 1983  Jul.  1    21s
+ 1983  Jul.  1 - 1985  Jul.  1    22s
+ 1985  Jul.  1 - 1988  Jan.  1    23s
+ 1988  Jan.  1 - 1990  Jan.  1    24s
+ 1990  Jan.  1 - 1991  Jan.  1    25s
+ 1991  Jan.  1 - 1992  Jul.  1    26s
+ 1992  Jul.  1.- 1993  Jul   1    27s
+ 1993  Jul.  1 - 1994  Jul.  1    28s
+ 1994  Jul.  1 - 1996  Jan.  1    29s
+ 1996  Jan.  1 - 1997  Jul.  1    30s
+ 1997  Jul.  1.- 1999  Jan.  1    31s
+ 1999  Jan.  1.- 2006  Jan.  1    32s
+ 2006  Jan.  1.- 2009  Jan.  1    33s
+ 2009  Jan.  1.- 2012  Jul   1    34s
+ 2012  Jul   1 -                  35s
+ ----------------------------------------------------------------------
diff --git a/rugged-core/src/test/resources/orekit-data/eopc04_08_IAU2000.12 b/rugged-core/src/test/resources/orekit-data/eopc04_08_IAU2000.12
new file mode 100644
index 00000000..ea7d9901
--- /dev/null
+++ b/rugged-core/src/test/resources/orekit-data/eopc04_08_IAU2000.12
@@ -0,0 +1,380 @@
+
+
+                   INTERNATIONAL EARTH ROTATION AND REFERENCE SYSTEMS SERVICE
+                        EARTH ORIENTATION PARAMETERS
+                          EOP (IERS) 08 C04
+
+  
+             FORMAT(3(I4),I7,2(F11.6),2(F12.7),2(F11.6),2(F11.6),2(F11.7),2F12.6)
+**********************************************************************************
+  
+      Date      MJD      x          y        UT1-UTC       LOD         dX        dY        x Err     y Err   UT1-UTC Err  LOD Err     dX Err       dY Err  
+                         "          "           s           s          "         "           "          "          s         s            "           "
+     (0h UTC)
+
+2012   1   1  55927   0.118700   0.263209  -0.4190307   0.0012643   0.000520  -0.000064   0.000019   0.000021  0.0000070  0.0000055    0.000134    0.000215
+2012   1   2  55928   0.117478   0.262407  -0.4202660   0.0011668   0.000506  -0.000044   0.000018   0.000020  0.0000043  0.0000055    0.000107    0.000169
+2012   1   3  55929   0.115947   0.261649  -0.4213914   0.0010732   0.000487  -0.000035   0.000018   0.000020  0.0000046  0.0000055    0.000080    0.000127
+2012   1   4  55930   0.114546   0.260620  -0.4223894   0.0009431   0.000464  -0.000036   0.000018   0.000019  0.0000024  0.0000054    0.000056    0.000088
+2012   1   5  55931   0.113261   0.260200  -0.4232747   0.0008274   0.000424  -0.000073   0.000018   0.000019  0.0000140  0.0000054    0.000076    0.000121
+2012   1   6  55932   0.111438   0.259932  -0.4240546   0.0007439   0.000381  -0.000125   0.000018   0.000019  0.0000031  0.0000054    0.000109    0.000174
+2012   1   7  55933   0.108883   0.259664  -0.4247816   0.0007242   0.000348  -0.000141   0.000018   0.000019  0.0000036  0.0000053    0.000109    0.000170
+2012   1   8  55934   0.106429   0.258874  -0.4255338   0.0007866   0.000325  -0.000147   0.000018   0.000019  0.0000056  0.0000055    0.000096    0.000144
+2012   1   9  55935   0.104225   0.258041  -0.4263648   0.0009020   0.000308  -0.000153   0.000019   0.000021  0.0000066  0.0000055    0.000083    0.000118
+2012   1  10  55936   0.101787   0.257252  -0.4272859   0.0009794   0.000299  -0.000161   0.000019   0.000021  0.0000030  0.0000055    0.000071    0.000092
+2012   1  11  55937   0.099783   0.256002  -0.4283517   0.0011310   0.000296  -0.000196   0.000019   0.000020  0.0000152  0.0000055    0.000082    0.000108
+2012   1  12  55938   0.098374   0.255057  -0.4295936   0.0013295   0.000299  -0.000236   0.000019   0.000020  0.0000041  0.0000053    0.000097    0.000135
+2012   1  13  55939   0.097330   0.254481  -0.4310036   0.0014854   0.000308  -0.000272   0.000019   0.000020  0.0000029  0.0000053    0.000113    0.000162
+2012   1  14  55940   0.096133   0.254325  -0.4325201   0.0015230   0.000307  -0.000270   0.000019   0.000020  0.0000058  0.0000052    0.000109    0.000157
+2012   1  15  55941   0.094902   0.254379  -0.4340233   0.0014555   0.000303  -0.000252   0.000019   0.000020  0.0000076  0.0000033    0.000098    0.000139
+2012   1  16  55942   0.093576   0.254528  -0.4354233   0.0013370   0.000298  -0.000223   0.000020   0.000020  0.0000063  0.0000014    0.000031    0.000043
+2012   1  17  55943   0.091710   0.254906  -0.4366664   0.0011580   0.000295  -0.000201   0.000020   0.000020  0.0000040  0.0000014    0.000029    0.000041
+2012   1  18  55944   0.089569   0.254798  -0.4377220   0.0009552   0.000292  -0.000183   0.000019   0.000020  0.0000012  0.0000014    0.000028    0.000040
+2012   1  19  55945   0.087373   0.254461  -0.4385853   0.0007743   0.000356  -0.000209   0.000019   0.000020  0.0000219  0.0000014    0.000040    0.000049
+2012   1  20  55946   0.085428   0.254180  -0.4393168   0.0006897   0.000431  -0.000250   0.000019   0.000020  0.0000042  0.0000014    0.000056    0.000062
+2012   1  21  55947   0.083249   0.254651  -0.4400245   0.0007410   0.000439  -0.000289   0.000019   0.000020  0.0000024  0.0000014    0.000063    0.000071
+2012   1  22  55948   0.080627   0.254924  -0.4408023   0.0008370   0.000401  -0.000323   0.000019   0.000020  0.0000042  0.0000011    0.000065    0.000077
+2012   1  23  55949   0.078598   0.255078  -0.4416951   0.0009573   0.000353  -0.000351   0.000019   0.000020  0.0000056  0.0000010    0.000068    0.000085
+2012   1  24  55950   0.076541   0.255624  -0.4427049   0.0010539   0.000302  -0.000373   0.000019   0.000020  0.0000028  0.0000010    0.000070    0.000091
+2012   1  25  55951   0.074227   0.255806  -0.4437962   0.0011148   0.000253  -0.000351   0.000018   0.000019  0.0000151  0.0000010    0.000079    0.000101
+2012   1  26  55952   0.071900   0.256092  -0.4449204   0.0011189   0.000212  -0.000312   0.000018   0.000019  0.0000071  0.0000010    0.000088    0.000111
+2012   1  27  55953   0.069358   0.256156  -0.4460334   0.0010883   0.000181  -0.000266   0.000018   0.000019  0.0000025  0.0000010    0.000098    0.000120
+2012   1  28  55954   0.066770   0.256221  -0.4470732   0.0010003   0.000207  -0.000237   0.000018   0.000019  0.0000154  0.0000010    0.000089    0.000109
+2012   1  29  55955   0.064294   0.256203  -0.4479982   0.0008641   0.000260  -0.000216   0.000018   0.000019  0.0000049  0.0000012    0.000073    0.000090
+2012   1  30  55956   0.061824   0.255972  -0.4487993   0.0007511   0.000316  -0.000195   0.000019   0.000021  0.0000048  0.0000017    0.000056    0.000071
+2012   1  31  55957   0.059292   0.255822  -0.4494656   0.0006002   0.000376  -0.000179   0.000019   0.000021  0.0000020  0.0000017    0.000041    0.000052
+2012   2   1  55958   0.056906   0.255521  -0.4499897   0.0004580   0.000404  -0.000155   0.000019   0.000020  0.0000026  0.0000015    0.000036    0.000046
+2012   2   2  55959   0.054725   0.255253  -0.4504155   0.0003937   0.000416  -0.000138   0.000019   0.000020  0.0000040  0.0000015    0.000035    0.000045
+2012   2   3  55960   0.052998   0.254824  -0.4508189   0.0004269   0.000416  -0.000134   0.000019   0.000018  0.0000018  0.0000015    0.000034    0.000044
+2012   2   4  55961   0.051408   0.254365  -0.4512567   0.0004943   0.000404  -0.000161   0.000019   0.000018  0.0000196  0.0000015    0.000038    0.000041
+2012   2   5  55962   0.049333   0.254085  -0.4517747   0.0005607   0.000378  -0.000204   0.000019   0.000020  0.0000080  0.0000015    0.000043    0.000037
+2012   2   6  55963   0.047368   0.254001  -0.4524402   0.0007546   0.000308  -0.000278   0.000022   0.000023  0.0000070  0.0000017    0.000030    0.000040
+2012   2   7  55964   0.045706   0.254220  -0.4533091   0.0009995   0.000258  -0.000330   0.000022   0.000023  0.0000023  0.0000017    0.000028    0.000038
+2012   2   8  55965   0.044328   0.254546  -0.4544131   0.0012229   0.000299  -0.000339   0.000021   0.000022  0.0000350  0.0000016    0.000034    0.000046
+2012   2   9  55966   0.043192   0.255056  -0.4557227   0.0013892   0.000362  -0.000331   0.000021   0.000022  0.0000087  0.0000016    0.000042    0.000056
+2012   2  10  55967   0.042172   0.255797  -0.4571640   0.0014757   0.000422  -0.000316   0.000021   0.000022  0.0000028  0.0000016    0.000050    0.000067
+2012   2  11  55968   0.041276   0.256690  -0.4586395   0.0014643   0.000361  -0.000304   0.000021   0.000022  0.0000103  0.0000016    0.000049    0.000067
+2012   2  12  55969   0.040311   0.257438  -0.4600560   0.0013481   0.000255  -0.000290   0.000021   0.000022  0.0000090  0.0000014    0.000046    0.000063
+2012   2  13  55970   0.038861   0.258102  -0.4613256   0.0011742   0.000149  -0.000272   0.000022   0.000025  0.0000081  0.0000012    0.000043    0.000061
+2012   2  14  55971   0.037082   0.258631  -0.4623763   0.0009157   0.000050  -0.000258   0.000022   0.000025  0.0000030  0.0000012    0.000041    0.000057
+2012   2  15  55972   0.035700   0.259565  -0.4631795   0.0006923   0.000089  -0.000259   0.000021   0.000024  0.0000638  0.0000012    0.000040    0.000057
+2012   2  16  55973   0.034328   0.260928  -0.4637969   0.0005548   0.000168  -0.000266   0.000021   0.000024  0.0000067  0.0000012    0.000040    0.000057
+2012   2  17  55974   0.033052   0.261952  -0.4643422   0.0005356   0.000251  -0.000278   0.000021   0.000024  0.0000019  0.0000012    0.000040    0.000057
+2012   2  18  55975   0.031627   0.263077  -0.4649159   0.0006173   0.000243  -0.000280   0.000021   0.000024  0.0000033  0.0000012    0.000052    0.000074
+2012   2  19  55976   0.030595   0.263990  -0.4655836   0.0007289   0.000201  -0.000280   0.000021   0.000024  0.0000052  0.0000014    0.000068    0.000096
+2012   2  20  55977   0.029688   0.265055  -0.4663655   0.0008446   0.000148  -0.000275   0.000023   0.000028  0.0000060  0.0000018    0.000085    0.000120
+2012   2  21  55978   0.028345   0.265672  -0.4672390   0.0008971   0.000106  -0.000277   0.000023   0.000028  0.0000052  0.0000018    0.000101    0.000142
+2012   2  22  55979   0.026675   0.266316  -0.4681516   0.0009304   0.000069  -0.000276   0.000022   0.000027  0.0000027  0.0000018    0.000116    0.000160
+2012   2  23  55980   0.024689   0.267060  -0.4690540   0.0008475   0.000138  -0.000287   0.000022   0.000027  0.0000198  0.0000018    0.000091    0.000126
+2012   2  24  55981   0.022814   0.267829  -0.4698906   0.0007513   0.000232  -0.000299   0.000022   0.000027  0.0000016  0.0000018    0.000055    0.000076
+2012   2  25  55982   0.021568   0.268920  -0.4706253   0.0006815   0.000242  -0.000344   0.000022   0.000027  0.0000028  0.0000018    0.000049    0.000068
+2012   2  26  55983   0.020597   0.270273  -0.4712585   0.0005631   0.000213  -0.000396   0.000022   0.000027  0.0000063  0.0000018    0.000055    0.000076
+2012   2  27  55984   0.020119   0.271192  -0.4718084   0.0005016   0.000167  -0.000441   0.000027   0.000030  0.0000069  0.0000019    0.000061    0.000083
+2012   2  28  55985   0.019720   0.271968  -0.4722734   0.0004154   0.000125  -0.000477   0.000027   0.000030  0.0000024  0.0000019    0.000067    0.000091
+2012   2  29  55986   0.019069   0.273018  -0.4726379   0.0003138   0.000115  -0.000438   0.000026   0.000030  0.0000356  0.0000019    0.000085    0.000127
+2012   3   1  55987   0.018798   0.274244  -0.4729194   0.0002463   0.000113  -0.000373   0.000023   0.000025  0.0000086  0.0000022    0.000113    0.000171
+2012   3   2  55988   0.018937   0.275646  -0.4731884   0.0002932   0.000111  -0.000303   0.000023   0.000025  0.0000040  0.0000022    0.000141    0.000216
+2012   3   3  55989   0.018563   0.277173  -0.4735285   0.0003928   0.000089  -0.000259   0.000023   0.000025  0.0000039  0.0000022    0.000136    0.000192
+2012   3   4  55990   0.017782   0.278172  -0.4739946   0.0005434   0.000063  -0.000232   0.000023   0.000025  0.0000043  0.0000022    0.000120    0.000144
+2012   3   5  55991   0.017387   0.279057  -0.4746191   0.0007031   0.000063  -0.000317   0.000021   0.000024  0.0000040  0.0000021    0.000114    0.000146
+2012   3   6  55992   0.016938   0.279996  -0.4754440   0.0009276   0.000053  -0.000354   0.000021   0.000024  0.0000023  0.0000021    0.000103    0.000126
+2012   3   7  55993   0.015713   0.280781  -0.4764778   0.0011170   0.000055  -0.000372   0.000021   0.000023  0.0000253  0.0000021    0.000089    0.000107
+2012   3   8  55994   0.014414   0.281463  -0.4776973   0.0012909   0.000064  -0.000383   0.000021   0.000023  0.0000110  0.0000021    0.000072    0.000087
+2012   3   9  55995   0.013219   0.282526  -0.4790665   0.0014230   0.000076  -0.000390   0.000021   0.000023  0.0000027  0.0000021    0.000056    0.000068
+2012   3  10  55996   0.012112   0.283779  -0.4805270   0.0014563   0.000089  -0.000393   0.000021   0.000023  0.0000048  0.0000021    0.000054    0.000065
+2012   3  11  55997   0.011081   0.285000  -0.4819953   0.0014503   0.000101  -0.000387   0.000021   0.000023  0.0000064  0.0000021    0.000056    0.000069
+2012   3  12  55998   0.009693   0.286339  -0.4833724   0.0012916   0.000111  -0.000366   0.000022   0.000024  0.0000076  0.0000023    0.000060    0.000074
+2012   3  13  55999   0.008716   0.287402  -0.4846160   0.0011775   0.000115  -0.000333   0.000022   0.000024  0.0000076  0.0000023    0.000062    0.000077
+2012   3  14  56000   0.007787   0.288851  -0.4857658   0.0011305   0.000113  -0.000287   0.000021   0.000023  0.0000023  0.0000022    0.000066    0.000081
+2012   3  15  56001   0.006396   0.290088  -0.4868843   0.0011365   0.000123  -0.000261   0.000021   0.000023  0.0000239  0.0000022    0.000051    0.000067
+2012   3  16  56002   0.004961   0.291305  -0.4880525   0.0012366   0.000131  -0.000237   0.000021   0.000023  0.0000022  0.0000022    0.000033    0.000048
+2012   3  17  56003   0.003408   0.292453  -0.4893520   0.0013827   0.000134  -0.000231   0.000021   0.000023  0.0000060  0.0000022    0.000032    0.000048
+2012   3  18  56004   0.001664   0.293818  -0.4907959   0.0014974   0.000132  -0.000232   0.000021   0.000023  0.0000098  0.0000022    0.000039    0.000056
+2012   3  19  56005  -0.000066   0.295068  -0.4923400   0.0015768   0.000127  -0.000233   0.000021   0.000024  0.0000088  0.0000023    0.000045    0.000064
+2012   3  20  56006  -0.001503   0.295981  -0.4939230   0.0015941   0.000118  -0.000230   0.000021   0.000024  0.0000033  0.0000023    0.000052    0.000071
+2012   3  21  56007  -0.002628   0.296959  -0.4954831   0.0015507   0.000104  -0.000200   0.000020   0.000023  0.0000308  0.0000022    0.000047    0.000066
+2012   3  22  56008  -0.003668   0.298210  -0.4969786   0.0014646   0.000091  -0.000163   0.000020   0.000023  0.0000074  0.0000022    0.000040    0.000057
+2012   3  23  56009  -0.004461   0.299582  -0.4983959   0.0013760   0.000078  -0.000125   0.000020   0.000023  0.0000032  0.0000022    0.000033    0.000048
+2012   3  24  56010  -0.004601   0.300921  -0.4997354   0.0013061   0.000129  -0.000121   0.000020   0.000023  0.0000040  0.0000022    0.000031    0.000045
+2012   3  25  56011  -0.005048   0.302625  -0.5009856   0.0012063   0.000203  -0.000130   0.000020   0.000023  0.0000065  0.0000018    0.000031    0.000045
+2012   3  26  56012  -0.005769   0.303991  -0.5021345   0.0011041   0.000295  -0.000150   0.000020   0.000024  0.0000060  0.0000015    0.000030    0.000043
+2012   3  27  56013  -0.006669   0.305064  -0.5031977   0.0010361   0.000361  -0.000174   0.000020   0.000024  0.0000022  0.0000015    0.000030    0.000042
+2012   3  28  56014  -0.007584   0.305823  -0.5042043   0.0010024   0.000324  -0.000259   0.000019   0.000023  0.0000037  0.0000015    0.000043    0.000058
+2012   3  29  56015  -0.008111   0.307058  -0.5051893   0.0009960   0.000254  -0.000355   0.000019   0.000023  0.0000051  0.0000015    0.000057    0.000076
+2012   3  30  56016  -0.008824   0.308790  -0.5061999   0.0010312   0.000176  -0.000439   0.000019   0.000023  0.0000024  0.0000015    0.000072    0.000093
+2012   3  31  56017  -0.009569   0.310658  -0.5072863   0.0011621   0.000149  -0.000438   0.000019   0.000023  0.0000018  0.0000015    0.000076    0.000103
+2012   4   1  56018  -0.010272   0.312753  -0.5085085   0.0013212   0.000142  -0.000392   0.000019   0.000023  0.0000044  0.0000018    0.000077    0.000111
+2012   4   2  56019  -0.011351   0.314853  -0.5098935   0.0014645   0.000136  -0.000317   0.000020   0.000023  0.0000059  0.0000023    0.000068    0.000114
+2012   4   3  56020  -0.012264   0.316855  -0.5114393   0.0016464   0.000140  -0.000253   0.000020   0.000023  0.0000029  0.0000023    0.000068    0.000121
+2012   4   4  56021  -0.012896   0.318655  -0.5131549   0.0017876   0.000264  -0.000234   0.000019   0.000022  0.0000241  0.0000023    0.000072    0.000128
+2012   4   5  56022  -0.013364   0.320312  -0.5149928   0.0018599   0.000415  -0.000232   0.000019   0.000022  0.0000019  0.0000023    0.000076    0.000134
+2012   4   6  56023  -0.013715   0.322168  -0.5168595   0.0018563   0.000421  -0.000251   0.000019   0.000022  0.0000202  0.0000023    0.000072    0.000129
+2012   4   7  56024  -0.013652   0.324149  -0.5186314   0.0016680   0.000362  -0.000280   0.000021   0.000022  0.0000088  0.0000023    0.000066    0.000120
+2012   4   8  56025  -0.013097   0.325975  -0.5202021   0.0014264   0.000289  -0.000309   0.000021   0.000022  0.0000079  0.0000023    0.000060    0.000110
+2012   4   9  56026  -0.012284   0.327886  -0.5215395   0.0012179   0.000207  -0.000296   0.000020   0.000023  0.0000069  0.0000023    0.000053    0.000102
+2012   4  10  56027  -0.011627   0.330100  -0.5226753   0.0010577   0.000112  -0.000322   0.000020   0.000023  0.0000046  0.0000023    0.000047    0.000093
+2012   4  11  56028  -0.010886   0.332532  -0.5236983   0.0009927   0.000018  -0.000346   0.000020   0.000022  0.0000028  0.0000022    0.000038    0.000083
+2012   4  12  56029  -0.009896   0.334821  -0.5247296   0.0010518  -0.000003  -0.000367   0.000020   0.000022  0.0000184  0.0000022    0.000027    0.000058
+2012   4  13  56030  -0.008876   0.337102  -0.5258404   0.0011597   0.000004  -0.000382   0.000020   0.000022  0.0000026  0.0000022    0.000014    0.000029
+2012   4  14  56031  -0.008011   0.339146  -0.5270311   0.0012156   0.000001  -0.000389   0.000020   0.000022  0.0000041  0.0000022    0.000014    0.000028
+2012   4  15  56032  -0.007230   0.341115  -0.5282793   0.0012592   0.000002  -0.000387   0.000020   0.000022  0.0000066  0.0000022    0.000019    0.000037
+2012   4  16  56033  -0.006329   0.342951  -0.5295673   0.0013069   0.000012  -0.000375   0.000020   0.000023  0.0000048  0.0000024    0.000027    0.000047
+2012   4  17  56034  -0.005199   0.344926  -0.5308783   0.0013224   0.000030  -0.000365   0.000020   0.000023  0.0000015  0.0000024    0.000033    0.000056
+2012   4  18  56035  -0.004236   0.347145  -0.5321965   0.0013050   0.000049  -0.000340   0.000022   0.000024  0.0000216  0.0000024    0.000035    0.000059
+2012   4  19  56036  -0.003430   0.349499  -0.5334911   0.0012692   0.000068  -0.000312   0.000022   0.000024  0.0000034  0.0000024    0.000036    0.000061
+2012   4  20  56037  -0.002859   0.351929  -0.5347248   0.0011976   0.000088  -0.000285   0.000022   0.000024  0.0000015  0.0000024    0.000038    0.000064
+2012   4  21  56038  -0.002364   0.354154  -0.5358613   0.0010735   0.000084  -0.000298   0.000022   0.000024  0.0000184  0.0000024    0.000034    0.000058
+2012   4  22  56039  -0.001494   0.356002  -0.5368881   0.0009847   0.000070  -0.000325   0.000022   0.000024  0.0000048  0.0000024    0.000029    0.000048
+2012   4  23  56040  -0.000272   0.357958  -0.5378074   0.0008768   0.000053  -0.000345   0.000022   0.000026  0.0000056  0.0000102    0.000024    0.000040
+2012   4  24  56041   0.000653   0.359920  -0.5386339   0.0007777   0.000033  -0.000357   0.000022   0.000026  0.0000020  0.0000102    0.000018    0.000030
+2012   4  25  56042   0.001379   0.361760  -0.5394047   0.0007599   0.000097  -0.000332   0.000021   0.000026  0.0000238  0.0000100    0.000051    0.000046
+2012   4  26  56043   0.002156   0.363391  -0.5401645   0.0007562   0.000179  -0.000290   0.000021   0.000026  0.0000078  0.0000100    0.000095    0.000069
+2012   4  27  56044   0.003382   0.364806  -0.5409514   0.0008113   0.000255  -0.000242   0.000021   0.000026  0.0000102  0.0000100    0.000138    0.000091
+2012   4  28  56045   0.004355   0.366218  -0.5417935   0.0008890   0.000002   0.000002   0.000021   0.000026  0.0000085  0.0000099    0.000087    0.000081
+2012   4  29  56046   0.005295   0.367419  -0.5427026   0.0009543   0.000002   0.000002   0.000021   0.000026  0.0000075  0.0000099    0.000065    0.000075
+2012   4  30  56047   0.006321   0.368720  -0.5436860   0.0010777  -0.000016  -0.000254   0.000022   0.000027  0.0000081  0.0000104    0.000034    0.000061
+2012   5   1  56048   0.007701   0.369896  -0.5448627   0.0012836  -0.000072  -0.000241   0.000022   0.000027  0.0000060  0.0000104    0.000034    0.000061
+2012   5   2  56049   0.009214   0.370867  -0.5462259   0.0014206  -0.000130  -0.000252   0.000021   0.000026  0.0000038  0.0000099    0.000039    0.000071
+2012   5   3  56050   0.010546   0.371897  -0.5476981   0.0014781  -0.000174  -0.000257   0.000021   0.000026  0.0000011  0.0000095    0.000042    0.000076
+2012   5   4  56051   0.011863   0.373233  -0.5491911   0.0014524  -0.000124  -0.000430   0.000021   0.000026  0.0000003  0.0000099    0.000029    0.000053
+2012   5   5  56052   0.013328   0.374713  -0.5505806   0.0013560  -0.000128  -0.000496   0.000021   0.000026  0.0000124  0.0000101    0.000029    0.000050
+2012   5   6  56053   0.015115   0.376289  -0.5519143   0.0011972  -0.000156  -0.000490   0.000021   0.000026  0.0000108  0.0000097    0.000035    0.000058
+2012   5   7  56054   0.016308   0.378006  -0.5529813   0.0009654  -0.000176  -0.000452   0.000021   0.000029  0.0000082  0.0000099    0.000039    0.000065
+2012   5   8  56055   0.016994   0.379387  -0.5538805   0.0008582  -0.000188  -0.000415   0.000021   0.000029  0.0000023  0.0000095    0.000045    0.000072
+2012   5   9  56056   0.017569   0.380756  -0.5546775   0.0008585  -0.000164  -0.000381   0.000020   0.000027  0.0000084  0.0000087    0.000039    0.000065
+2012   5  10  56057   0.017690   0.381913  -0.5555654   0.0008893  -0.000129  -0.000348   0.000020   0.000027  0.0000094  0.0000087    0.000032    0.000055
+2012   5  11  56058   0.017780   0.382703  -0.5564987   0.0009321  -0.000094  -0.000313   0.000020   0.000027  0.0000021  0.0000090    0.000024    0.000045
+2012   5  12  56059   0.018358   0.383365  -0.5574634   0.0009890  -0.000051  -0.000324   0.000020   0.000027  0.0000147  0.0000093    0.000022    0.000042
+2012   5  13  56060   0.019698   0.384038  -0.5584999   0.0010488  -0.000011  -0.000353   0.000020   0.000027  0.0000130  0.0000089    0.000021    0.000041
+2012   5  14  56061   0.021579   0.384748  -0.5595554   0.0010784   0.000021  -0.000379   0.000018   0.000021  0.0000075  0.0000086    0.000021    0.000041
+2012   5  15  56062   0.023673   0.385619  -0.5606062   0.0010969   0.000040  -0.000404   0.000016   0.000018  0.0000026  0.0000086    0.000021    0.000041
+2012   5  16  56063   0.025895   0.386691  -0.5617379   0.0010618  -0.000032  -0.000384   0.000015   0.000020  0.0000114  0.0000082    0.000029    0.000040
+2012   5  17  56064   0.027811   0.387502  -0.5626890   0.0009536  -0.000129  -0.000346   0.000015   0.000020  0.0000068  0.0000079    0.000041    0.000040
+2012   5  18  56065   0.029234   0.388335  -0.5636053   0.0008258  -0.000223  -0.000299   0.000017   0.000022  0.0000037  0.0000078    0.000053    0.000040
+2012   5  19  56066   0.030346   0.388884  -0.5643392   0.0006682  -0.000226  -0.000250   0.000019   0.000025  0.0000060  0.0000080    0.000053    0.000037
+2012   5  20  56067   0.031434   0.389058  -0.5649455   0.0005017  -0.000186  -0.000199   0.000017   0.000022  0.0000061  0.0000078    0.000047    0.000034
+2012   5  21  56068   0.032275   0.389282  -0.5653980   0.0004082  -0.000137  -0.000147   0.000016   0.000022  0.0000118  0.0000074    0.000042    0.000031
+2012   5  22  56069   0.033210   0.389771  -0.5657928   0.0004042  -0.000078  -0.000097   0.000016   0.000022  0.0000061  0.0000074    0.000037    0.000027
+2012   5  23  56070   0.034221   0.390526  -0.5661696   0.0004037  -0.000073  -0.000096   0.000015   0.000021  0.0000111  0.0000074    0.000035    0.000029
+2012   5  24  56071   0.035455   0.391205  -0.5665821   0.0004431  -0.000082  -0.000117   0.000015   0.000021  0.0000075  0.0000074    0.000040    0.000033
+2012   5  25  56072   0.037074   0.391898  -0.5670903   0.0005170  -0.000093  -0.000149   0.000015   0.000021  0.0000039  0.0000074    0.000045    0.000037
+2012   5  26  56073   0.039082   0.392483  -0.5677077   0.0006670  -0.000100  -0.000185   0.000015   0.000021  0.0000159  0.0000073    0.000046    0.000038
+2012   5  27  56074   0.041109   0.393177  -0.5684351   0.0008057  -0.000108  -0.000221   0.000015   0.000021  0.0000142  0.0000073    0.000045    0.000038
+2012   5  28  56075   0.042920   0.393837  -0.5693419   0.0009406  -0.000102  -0.000231   0.000016   0.000022  0.0000129  0.0000072    0.000054    0.000039
+2012   5  29  56076   0.044706   0.394674  -0.5703691   0.0010727  -0.000112  -0.000261   0.000016   0.000022  0.0000088  0.0000072    0.000053    0.000039
+2012   5  30  56077   0.045635   0.395458  -0.5714640   0.0011683  -0.000124  -0.000283   0.000015   0.000021  0.0000045  0.0000071    0.000050    0.000038
+2012   5  31  56078   0.046295   0.395962  -0.5726044   0.0012286  -0.000105  -0.000410   0.000018   0.000022  0.0000062  0.0000077    0.000029    0.000057
+2012   6   1  56079   0.046904   0.396529  -0.5738579   0.0011900  -0.000126  -0.000424   0.000018   0.000022  0.0000020  0.0000077    0.000023    0.000038
+2012   6   2  56080   0.047752   0.397169  -0.5750136   0.0010731  -0.000151  -0.000414   0.000018   0.000022  0.0000048  0.0000077    0.000023    0.000035
+2012   6   3  56081   0.048883   0.397593  -0.5759777   0.0008980  -0.000177  -0.000388   0.000018   0.000022  0.0000064  0.0000080    0.000024    0.000037
+2012   6   4  56082   0.050164   0.397885  -0.5768206   0.0007145  -0.000202  -0.000346   0.000016   0.000021  0.0000066  0.0000082    0.000026    0.000041
+2012   6   5  56083   0.051748   0.398092  -0.5774835   0.0006022  -0.000224  -0.000306   0.000016   0.000021  0.0000049  0.0000082    0.000027    0.000043
+2012   6   6  56084   0.053303   0.398675  -0.5780250   0.0006101  -0.000244  -0.000266   0.000015   0.000021  0.0000020  0.0000077    0.000028    0.000046
+2012   6   7  56085   0.054801   0.398944  -0.5786822   0.0007000  -0.000230  -0.000265   0.000015   0.000021  0.0000117  0.0000074    0.000028    0.000046
+2012   6   8  56086   0.056559   0.399505  -0.5794676   0.0008186  -0.000203  -0.000275   0.000015   0.000021  0.0000033  0.0000071    0.000028    0.000045
+2012   6   9  56087   0.058236   0.400027  -0.5803155   0.0008893  -0.000203  -0.000290   0.000015   0.000021  0.0000142  0.0000074    0.000028    0.000046
+2012   6  10  56088   0.059975   0.400443  -0.5812728   0.0008809  -0.000211  -0.000305   0.000015   0.000021  0.0000086  0.0000071    0.000028    0.000047
+2012   6  11  56089   0.061732   0.401401  -0.5820705   0.0008119  -0.000212  -0.000315   0.000017   0.000022  0.0000092  0.0000067    0.000029    0.000048
+2012   6  12  56090   0.063526   0.402509  -0.5828366   0.0007430  -0.000207  -0.000316   0.000017   0.000022  0.0000080  0.0000067    0.000029    0.000049
+2012   6  13  56091   0.064962   0.403874  -0.5835287   0.0006265  -0.000191  -0.000301   0.000017   0.000021  0.0000021  0.0000065    0.000031    0.000053
+2012   6  14  56092   0.065967   0.404715  -0.5840927   0.0004785  -0.000165  -0.000228   0.000017   0.000021  0.0000055  0.0000065    0.000032    0.000057
+2012   6  15  56093   0.066912   0.405172  -0.5844996   0.0003328  -0.000133  -0.000135   0.000017   0.000021  0.0000019  0.0000062    0.000034    0.000063
+2012   6  16  56094   0.067613   0.405417  -0.5847645   0.0002061  -0.000137  -0.000153   0.000017   0.000021  0.0000080  0.0000065    0.000043    0.000076
+2012   6  17  56095   0.068671   0.405618  -0.5849684   0.0001149  -0.000158  -0.000216   0.000017   0.000021  0.0000088  0.0000071    0.000056    0.000091
+2012   6  18  56096   0.070078   0.405863  -0.5850269   0.0000151  -0.000188  -0.000289   0.000018   0.000022  0.0000090  0.0000077    0.000065    0.000103
+2012   6  19  56097   0.071947   0.406222  -0.5849518  -0.0000577  -0.000219  -0.000356   0.000018   0.000022  0.0000044  0.0000077    0.000075    0.000115
+2012   6  20  56098   0.073719   0.406799  -0.5848340  -0.0000932  -0.000227  -0.000336   0.000016   0.000022  0.0000025  0.0000079    0.000060    0.000099
+2012   6  21  56099   0.075527   0.407342  -0.5847583  -0.0000777  -0.000228  -0.000283   0.000016   0.000022  0.0000019  0.0000079    0.000047    0.000079
+2012   6  22  56100   0.077422   0.407945  -0.5847443  -0.0000077  -0.000231  -0.000226   0.000016   0.000022  0.0000013  0.0000076    0.000033    0.000059
+2012   6  23  56101   0.078904   0.408461  -0.5848059   0.0001223  -0.000278  -0.000220   0.000016   0.000022  0.0000160  0.0000075    0.000033    0.000057
+2012   6  24  56102   0.080862   0.408502  -0.5850064   0.0002569  -0.000337  -0.000230   0.000016   0.000022  0.0000086  0.0000075    0.000037    0.000061
+2012   6  25  56103   0.083114   0.408517  -0.5853030   0.0003872  -0.000388  -0.000240   0.000017   0.000022  0.0000104  0.0000074    0.000041    0.000065
+2012   6  26  56104   0.085285   0.408564  -0.5857136   0.0004553  -0.000429  -0.000250   0.000015   0.000019  0.0000044  0.0000073    0.000045    0.000068
+2012   6  27  56105   0.087439   0.408651  -0.5861801   0.0004176  -0.000400  -0.000254   0.000014   0.000018  0.0000136  0.0000073    0.000037    0.000055
+2012   6  28  56106   0.089473   0.409002  -0.5865662   0.0003057  -0.000345  -0.000256   0.000014   0.000018  0.0000077  0.0000073    0.000025    0.000038
+2012   6  29  56107   0.091346   0.409225  -0.5867776   0.0001678  -0.000281  -0.000255   0.000014   0.000018  0.0000018  0.0000073    0.000013    0.000021
+2012   6  30  56108   0.092800   0.409392  -0.5868238   0.0000012  -0.000256  -0.000237   0.000014   0.000018  0.0000449  0.0000076    0.000014    0.000021
+2012   7   1  56109   0.094064   0.409151   0.4131816  -0.0001241  -0.000242  -0.000210   0.000014   0.000018  0.0000122  0.0000075    0.000019    0.000029
+2012   7   2  56110   0.095640   0.408939   0.4133963  -0.0002276  -0.000216  -0.000170   0.000019   0.000022  0.0000087  0.0000073    0.000024    0.000037
+2012   7   3  56111   0.097268   0.408650   0.4136688  -0.0002157  -0.000206  -0.000143   0.000019   0.000022  0.0000024  0.0000073    0.000029    0.000044
+2012   7   4  56112   0.098946   0.408274   0.4137809  -0.0001348  -0.000183  -0.000148   0.000018   0.000023  0.0000153  0.0000072    0.000030    0.000046
+2012   7   5  56113   0.100502   0.407981   0.4138739  -0.0000409  -0.000162  -0.000166   0.000018   0.000023  0.0000091  0.0000072    0.000031    0.000046
+2012   7   6  56114   0.102491   0.407531   0.4138922   0.0000899  -0.000148  -0.000186   0.000018   0.000023  0.0000028  0.0000072    0.000031    0.000046
+2012   7   7  56115   0.105059   0.407518   0.4137229   0.0002019  -0.000176  -0.000200   0.000018   0.000023  0.0000161  0.0000072    0.000029    0.000044
+2012   7   8  56116   0.107683   0.407590   0.4134589   0.0002824  -0.000218  -0.000209   0.000018   0.000023  0.0000124  0.0000072    0.000027    0.000042
+2012   7   9  56117   0.110089   0.407731   0.4131662   0.0002979  -0.000255  -0.000213   0.000017   0.000020  0.0000076  0.0000075    0.000026    0.000040
+2012   7  10  56118   0.111864   0.407792   0.4128977   0.0002350  -0.000282  -0.000210   0.000015   0.000018  0.0000019  0.0000074    0.000023    0.000037
+2012   7  11  56119   0.113448   0.407539   0.4127029   0.0001164  -0.000265  -0.000220   0.000018   0.000021  0.0000126  0.0000070    0.000021    0.000034
+2012   7  12  56120   0.114869   0.407288   0.4126306  -0.0000738  -0.000230  -0.000229   0.000018   0.000021  0.0000106  0.0000070    0.000019    0.000031
+2012   7  13  56121   0.116662   0.407013   0.4128536  -0.0002246  -0.000191  -0.000231   0.000018   0.000021  0.0000027  0.0000070    0.000017    0.000028
+2012   7  14  56122   0.118293   0.407111   0.4131009  -0.0002932  -0.000196  -0.000193   0.000022   0.000023  0.0000082  0.0000075    0.000018    0.000031
+2012   7  15  56123   0.119936   0.407332   0.4133776  -0.0003112  -0.000214  -0.000137   0.000022   0.000023  0.0000052  0.0000078    0.000021    0.000035
+2012   7  16  56124   0.121393   0.407270   0.4137799  -0.0003142  -0.000219  -0.000077   0.000020   0.000023  0.0000117  0.0000075    0.000024    0.000040
+2012   7  17  56125   0.122814   0.407047   0.4140680  -0.0002586  -0.000231  -0.000023   0.000020   0.000023  0.0000040  0.0000072    0.000027    0.000044
+2012   7  18  56126   0.124435   0.406840   0.4141897  -0.0001211  -0.000188  -0.000023   0.000019   0.000021  0.0000055  0.0000072    0.000026    0.000042
+2012   7  19  56127   0.126239   0.406643   0.4142080   0.0000848  -0.000135  -0.000040   0.000019   0.000021  0.0000034  0.0000072    0.000024    0.000038
+2012   7  20  56128   0.127745   0.406264   0.4140650   0.0002780  -0.000089  -0.000063   0.000019   0.000021  0.0000013  0.0000072    0.000023    0.000035
+2012   7  21  56129   0.129227   0.405785   0.4137358   0.0003926  -0.000102  -0.000089   0.000019   0.000021  0.0000051  0.0000072    0.000030    0.000035
+2012   7  22  56130   0.130787   0.405125   0.4132710   0.0004882  -0.000138  -0.000117   0.000019   0.000021  0.0000047  0.0000072    0.000041    0.000037
+2012   7  23  56131   0.132387   0.404523   0.4127181   0.0005677  -0.000169  -0.000247   0.000018   0.000021  0.0000041  0.0000069    0.000023    0.000033
+2012   7  24  56132   0.133932   0.404018   0.4121307   0.0005665  -0.000200  -0.000303   0.000018   0.000021  0.0000014  0.0000069    0.000022    0.000033
+2012   7  25  56133   0.135614   0.403272   0.4115946   0.0005071  -0.000246  -0.000239   0.000017   0.000020  0.0000139  0.0000066    0.000018    0.000028
+2012   7  26  56134   0.137280   0.402524   0.4110659   0.0004115  -0.000296  -0.000133   0.000017   0.000020  0.0000084  0.0000066    0.000017    0.000024
+2012   7  27  56135   0.138993   0.401814   0.4107666   0.0002750  -0.000338  -0.000018   0.000017   0.000020  0.0000020  0.0000066    0.000015    0.000019
+2012   7  28  56136   0.140920   0.401178   0.4105485   0.0001827  -0.000365   0.000037   0.000017   0.000020  0.0000078  0.0000069    0.000016    0.000019
+2012   7  29  56137   0.142506   0.401049   0.4104218   0.0001033  -0.000378   0.000066   0.000223   0.000101  0.0000051  0.0000270    0.000016    0.000021
+2012   7  30  56138   0.143480   0.400692   0.4103389   0.0000898  -0.000352   0.000113   0.000020   0.000022  0.0000102  0.0000081    0.000095    0.000050
+2012   7  31  56139   0.144625   0.400215   0.4102122   0.0001944  -0.000361   0.000129   0.000020   0.000022  0.0000100  0.0000081    0.000095    0.000052
+2012   8   1  56140   0.145946   0.399829   0.4099390   0.0003125  -0.000243  -0.000097   0.000020   0.000023  0.0000101  0.0000079    0.000013    0.000017
+2012   8   2  56141   0.147315   0.399345   0.4095109   0.0004448  -0.000259  -0.000018   0.000020   0.000023  0.0000248  0.0000080    0.000018    0.000023
+2012   8   3  56142   0.148473   0.398802   0.4090457   0.0005349  -0.000267   0.000054   0.000020   0.000023  0.0000056  0.0000080    0.000024    0.000030
+2012   8   4  56143   0.149249   0.398140   0.4084970   0.0005555  -0.000253   0.000091   0.000020   0.000023  0.0000047  0.0000079    0.000027    0.000034
+2012   8   5  56144   0.149979   0.397590   0.4078980   0.0005695  -0.000229   0.000114   0.000020   0.000023  0.0000052  0.0000076    0.000029    0.000037
+2012   8   6  56145   0.150671   0.397024   0.4074006   0.0005046  -0.000323   0.000025   0.000020   0.000023  0.0000178  0.0000075    0.000028    0.000035
+2012   8   7  56146   0.151467   0.396333   0.4069557   0.0003400  -0.000340  -0.000001   0.000020   0.000023  0.0000060  0.0000075    0.000029    0.000036
+2012   8   8  56147   0.152500   0.395877   0.4066848   0.0001660  -0.000288   0.000044   0.000019   0.000022  0.0000130  0.0000079    0.000032    0.000041
+2012   8   9  56148   0.153731   0.395218   0.4065725   0.0000398  -0.000217   0.000103   0.000019   0.000022  0.0000146  0.0000079    0.000036    0.000046
+2012   8  10  56149   0.155332   0.394230   0.4065859  -0.0000282  -0.000147   0.000157   0.000019   0.000022  0.0000036  0.0000076    0.000039    0.000052
+2012   8  11  56150   0.156948   0.393425   0.4066744  -0.0000903  -0.000136   0.000116   0.000019   0.000022  0.0000088  0.0000079    0.000038    0.000050
+2012   8  12  56151   0.158540   0.392912   0.4068334  -0.0001849  -0.000149   0.000040   0.000019   0.000022  0.0000101  0.0000078    0.000035    0.000045
+2012   8  13  56152   0.160221   0.392335   0.4070462  -0.0001930  -0.000153  -0.000034   0.000020   0.000023  0.0000134  0.0000075    0.000033    0.000040
+2012   8  14  56153   0.162134   0.391867   0.4071880  -0.0000865  -0.000175  -0.000110   0.000020   0.000023  0.0000041  0.0000075    0.000030    0.000035
+2012   8  15  56154   0.163362   0.391425   0.4072338   0.0000221  -0.000192  -0.000108   0.000019   0.000022  0.0000178  0.0000073    0.000027    0.000031
+2012   8  16  56155   0.164337   0.390714   0.4071029   0.0001697  -0.000213  -0.000081   0.000019   0.000022  0.0000102  0.0000073    0.000023    0.000028
+2012   8  17  56156   0.165627   0.389979   0.4068344   0.0003544  -0.000237  -0.000049   0.000019   0.000022  0.0000025  0.0000073    0.000019    0.000025
+2012   8  18  56157   0.167118   0.389033   0.4064603   0.0005000  -0.000252  -0.000046   0.000019   0.000022  0.0000222  0.0000073    0.000017    0.000022
+2012   8  19  56158   0.168597   0.387928   0.4058641   0.0006231  -0.000264  -0.000053   0.000024   0.000027  0.0000098  0.0000069    0.000014    0.000019
+2012   8  20  56159   0.169942   0.386763   0.4051827   0.0006640  -0.000273  -0.000058   0.000023   0.000026  0.0000150  0.0000059    0.000012    0.000016
+2012   8  21  56160   0.171298   0.385398   0.4044970   0.0006236  -0.000283  -0.000061   0.000023   0.000026  0.0000044  0.0000059    0.000010    0.000013
+2012   8  22  56161   0.172368   0.384295   0.4039089   0.0005211  -0.000301  -0.000077   0.000023   0.000027  0.0000107  0.0000060    0.000014    0.000019
+2012   8  23  56162   0.173431   0.383057   0.4034457   0.0003728  -0.000321  -0.000093   0.000021   0.000025  0.0000130  0.0000060    0.000021    0.000028
+2012   8  24  56163   0.174105   0.382028   0.4031042   0.0002330  -0.000337  -0.000107   0.000025   0.000025  0.0000031  0.0000066    0.000028    0.000037
+2012   8  25  56164   0.174644   0.380911   0.4029126   0.0001327  -0.000362  -0.000095   0.000027   0.000025  0.0000127  0.0000066    0.000035    0.000047
+2012   8  26  56165   0.175245   0.379956   0.4027897   0.0001302  -0.000384  -0.000070   0.000219   0.000124  0.0000091  0.0000255    0.000041    0.000058
+2012   8  27  56166   0.175637   0.378763   0.4025922   0.0002565  -0.000394  -0.000041   0.000029   0.000030  0.0000075  0.0000065    0.000049    0.000065
+2012   8  28  56167   0.176051   0.377272   0.4022464   0.0004426  -0.000394  -0.000012   0.000029   0.000030  0.0000023  0.0000061    0.000055    0.000075
+2012   8  29  56168   0.176396   0.375751   0.4017502   0.0006084  -0.000357  -0.000015   0.000029   0.000029  0.0000144  0.0000069    0.000047    0.000066
+2012   8  30  56169   0.176738   0.374268   0.4010153   0.0007421  -0.000303  -0.000027   0.000029   0.000029  0.0000074  0.0000069    0.000034    0.000046
+2012   8  31  56170   0.177099   0.373095   0.4002225   0.0008255  -0.000245  -0.000040   0.000027   0.000029  0.0000018  0.0000066    0.000020    0.000025
+2012   9   1  56171   0.177275   0.371957   0.3993713   0.0008531  -0.000176  -0.000026   0.000025   0.000026  0.0000068  0.0000063    0.000018    0.000021
+2012   9   2  56172   0.176992   0.370856   0.3985346   0.0008164  -0.000110  -0.000004   0.000025   0.000026  0.0000062  0.0000060    0.000019    0.000024
+2012   9   3  56173   0.176650   0.369576   0.3977350   0.0007865  -0.000057   0.000019   0.000022   0.000025  0.0000038  0.0000060    0.000021    0.000027
+2012   9   4  56174   0.176375   0.368337   0.3969768   0.0006557  -0.000013   0.000037   0.000022   0.000025  0.0000021  0.0000060    0.000022    0.000030
+2012   9   5  56175   0.176227   0.366835   0.3964221   0.0004809   0.000018   0.000054   0.000024   0.000024  0.0000010  0.0000068    0.000024    0.000033
+2012   9   6  56176   0.176079   0.365318   0.3960766   0.0003651  -0.000030   0.000018   0.000024   0.000024  0.0000127  0.0000078    0.000026    0.000038
+2012   9   7  56177   0.175947   0.363610   0.3957532   0.0002873  -0.000106  -0.000029   0.000024   0.000026  0.0000033  0.0000085    0.000029    0.000042
+2012   9   8  56178   0.175877   0.362235   0.3954737   0.0001969  -0.000136  -0.000033   0.000022   0.000024  0.0000111  0.0000071    0.000027    0.000040
+2012   9   9  56179   0.175770   0.360924   0.3953274   0.0002235  -0.000150  -0.000016   0.000020   0.000022  0.0000063  0.0000065    0.000024    0.000036
+2012   9  10  56180   0.175594   0.359634   0.3950609   0.0003344  -0.000162   0.000006   0.000019   0.000024  0.0000054  0.0000067    0.000021    0.000031
+2012   9  11  56181   0.175696   0.358288   0.3946589   0.0004786  -0.000174   0.000033   0.000019   0.000024  0.0000015  0.0000070    0.000018    0.000026
+2012   9  12  56182   0.176007   0.357211   0.3940966   0.0006534  -0.000177   0.000074   0.000017   0.000025  0.0000098  0.0000072    0.000021    0.000031
+2012   9  13  56183   0.176196   0.356139   0.3933510   0.0008391  -0.000176   0.000117   0.000017   0.000025  0.0000047  0.0000069    0.000025    0.000036
+2012   9  14  56184   0.176741   0.355007   0.3923733   0.0010866  -0.000168   0.000155   0.000017   0.000023  0.0000017  0.0000065    0.000029    0.000041
+2012   9  15  56185   0.177425   0.353913   0.3911818   0.0013191  -0.000191   0.000147   0.000017   0.000023  0.0000124  0.0000193    0.000031    0.000042
+2012   9  16  56186   0.177784   0.352812   0.3897334   0.0014194  -0.000218   0.000119   0.000017   0.000023  0.0000065  0.0000233    0.000031    0.000043
+2012   9  17  56187   0.177802   0.351932   0.3883459   0.0014015  -0.000241   0.000068   0.000017   0.000023  0.0000066  0.0000234    0.000031    0.000042
+2012   9  18  56188   0.177737   0.350812   0.3869787   0.0012928  -0.000246   0.000034   0.000017   0.000023  0.0000022  0.0000335    0.000027    0.000036
+2012   9  19  56189   0.177452   0.349704   0.3857794   0.0011324  -0.000193   0.000041   0.000017   0.000026  0.0000089  0.0000326    0.000027    0.000040
+2012   9  20  56190   0.177149   0.348196   0.3847136   0.0009374  -0.000120   0.000064   0.000017   0.000026  0.0000054  0.0000272    0.000029    0.000044
+2012   9  21  56191   0.176564   0.346359   0.3838781   0.0007399  -0.000049   0.000094   0.000017   0.000026  0.0000020  0.0000059    0.000032    0.000049
+2012   9  22  56192   0.176120   0.344589   0.3832650   0.0006562  -0.000048   0.000110   0.000017   0.000026  0.0000213  0.0000694    0.000030    0.000046
+2012   9  23  56193   0.175882   0.343246   0.3825801   0.0006935  -0.000078   0.000122   0.000015   0.000026  0.0000082  0.0000825    0.000025    0.000040
+2012   9  24  56194   0.175608   0.342116   0.3818287   0.0007769  -0.000112   0.000136   0.000016   0.000032  0.0000050  0.0000066    0.000022    0.000035
+2012   9  25  56195   0.174962   0.341530   0.3810195   0.0009283  -0.000151   0.000149   0.000018   0.000032  0.0000013  0.0000072    0.000018    0.000029
+2012   9  26  56196   0.173929   0.341108   0.3799844   0.0011293  -0.000145   0.000177   0.000018   0.000029  0.0000145  0.0000070    0.000018    0.000031
+2012   9  27  56197   0.173095   0.340541   0.3787985   0.0012887  -0.000128   0.000206   0.000018   0.000029  0.0000066  0.0000064    0.000021    0.000034
+2012   9  28  56198   0.172110   0.339831   0.3774630   0.0013459  -0.000112   0.000229   0.000018   0.000027  0.0000018  0.0000057    0.000024    0.000037
+2012   9  29  56199   0.170690   0.338621   0.3761286   0.0013303  -0.000110   0.000207   0.000018   0.000029  0.0000067  0.0000061    0.000025    0.000041
+2012   9  30  56200   0.169484   0.336658   0.3748316   0.0012338  -0.000112   0.000169   0.000018   0.000029  0.0000106  0.0000061    0.000026    0.000045
+2012  10   1  56201   0.168893   0.334488   0.3736748   0.0010666  -0.000113   0.000127   0.000020   0.000029  0.0000062  0.0000061    0.000028    0.000049
+2012  10   2  56202   0.168556   0.332869   0.3726886   0.0008843  -0.000118   0.000091   0.000017   0.000027  0.0000021  0.0000064    0.000029    0.000054
+2012  10   3  56203   0.168261   0.331527   0.3719108   0.0007204  -0.000140   0.000111   0.000019   0.000027  0.0000085  0.0000059    0.000029    0.000050
+2012  10   4  56204   0.168218   0.330668   0.3712561   0.0006217  -0.000165   0.000148   0.000019   0.000027  0.0000187  0.0000056    0.000027    0.000044
+2012  10   5  56205   0.167775   0.329688   0.3706736   0.0005530  -0.000188   0.000189   0.000019   0.000027  0.0000043  0.0000053    0.000025    0.000038
+2012  10   6  56206   0.166829   0.328457   0.3701593   0.0005139  -0.000180   0.000203   0.000019   0.000027  0.0000253  0.0000053    0.000028    0.000043
+2012  10   7  56207   0.165776   0.327262   0.3696645   0.0005181  -0.000157   0.000207   0.000019   0.000027  0.0000081  0.0000059    0.000034    0.000053
+2012  10   8  56208   0.164811   0.326195   0.3691114   0.0006293  -0.000128   0.000192   0.000019   0.000033  0.0000027  0.0000060    0.000038    0.000064
+2012  10   9  56209   0.163850   0.325275   0.3684334   0.0007981  -0.000105   0.000184   0.000016   0.000030  0.0000205  0.0000053    0.000045    0.000075
+2012  10  10  56210   0.162665   0.324057   0.3675127   0.0009569  -0.000086   0.000176   0.000015   0.000030  0.0000296  0.0000053    0.000051    0.000085
+2012  10  11  56211   0.161680   0.322876   0.3664814   0.0011412  -0.000070   0.000166   0.000017   0.000030  0.0000053  0.0000059    0.000056    0.000095
+2012  10  12  56212   0.160551   0.322152   0.3652754   0.0013041  -0.000107   0.000125   0.000019   0.000030  0.0000001  0.0000059    0.000023    0.000038
+2012  10  13  56213   0.159093   0.321446   0.3638545   0.0014383  -0.000146   0.000121   0.000017   0.000030  0.0000110  0.0000056    0.000010    0.000017
+2012  10  14  56214   0.157601   0.320568   0.3623838   0.0015090  -0.000178   0.000136   0.000017   0.000030  0.0000069  0.0000060    0.000010    0.000016
+2012  10  15  56215   0.156054   0.319968   0.3608963   0.0014698  -0.000204   0.000141   0.000022   0.000032  0.0000087  0.0000066    0.000009    0.000015
+2012  10  16  56216   0.154180   0.319360   0.3594887   0.0013351  -0.000221   0.000160   0.000020   0.000032  0.0000017  0.0000063    0.000008    0.000014
+2012  10  17  56217   0.152154   0.318297   0.3582199   0.0011582  -0.000164   0.000188   0.000018   0.000032  0.0000113  0.0000060    0.000008    0.000014
+2012  10  18  56218   0.150678   0.317253   0.3571501   0.0009695  -0.000085   0.000219   0.000016   0.000030  0.0000201  0.0000058    0.000008    0.000013
+2012  10  19  56219   0.149569   0.316662   0.3562671   0.0008218  -0.000007   0.000251   0.000018   0.000033  0.0000044  0.0000061    0.000008    0.000013
+2012  10  20  56220   0.148043   0.316131   0.3554928   0.0007675   0.000026   0.000253   0.000020   0.000033  0.0000085  0.0000061    0.000013    0.000024
+2012  10  21  56221   0.146608   0.315322   0.3547440   0.0007928   0.000035   0.000246   0.000020   0.000033  0.0000061  0.0000067    0.000021    0.000039
+2012  10  22  56222   0.145543   0.314380   0.3538588   0.0008641   0.000032   0.000236   0.000021   0.000033  0.0000060  0.0000069    0.000029    0.000055
+2012  10  23  56223   0.145007   0.313268   0.3530058   0.0009556   0.000020   0.000224   0.000021   0.000030  0.0000018  0.0000059    0.000037    0.000071
+2012  10  24  56224   0.145213   0.312435   0.3519872   0.0010597  -0.000030   0.000219   0.000022   0.000029  0.0000066  0.0000057    0.000043    0.000080
+2012  10  25  56225   0.145615   0.311852   0.3509033   0.0011278  -0.000092   0.000220   0.000020   0.000030  0.0000041  0.0000054    0.000049    0.000087
+2012  10  26  56226   0.145955   0.311525   0.3497695   0.0011597  -0.000150   0.000221   0.000017   0.000030  0.0000016  0.0000051    0.000054    0.000095
+2012  10  27  56227   0.146089   0.311350   0.3485935   0.0011237  -0.000144   0.000245   0.000017   0.000027  0.0000118  0.0000051    0.000052    0.000092
+2012  10  28  56228   0.145902   0.311464   0.3474828   0.0010661  -0.000109   0.000273   0.000017   0.000027  0.0000142  0.0000051    0.000046    0.000084
+2012  10  29  56229   0.144985   0.311623   0.3464489   0.0009639  -0.000067   0.000294   0.000018   0.000028  0.0000077  0.0000058    0.000040    0.000075
+2012  10  30  56230   0.144143   0.311322   0.3455521   0.0008863  -0.000020   0.000307   0.000018   0.000028  0.0000012  0.0000058    0.000034    0.000068
+2012  10  31  56231   0.143952   0.311344   0.3446854   0.0008094  -0.000003   0.000307   0.000018   0.000027  0.0000110  0.0000060    0.000029    0.000057
+2012  11   1  56232   0.143335   0.311322   0.3439558   0.0007282   0.000011   0.000307   0.000018   0.000027  0.0000078  0.0000060    0.000025    0.000045
+2012  11   2  56233   0.142496   0.311202   0.3432281   0.0007022   0.000026   0.000308   0.000018   0.000027  0.0000018  0.0000056    0.000020    0.000033
+2012  11   3  56234   0.141501   0.311090   0.3425405   0.0007021   0.000075   0.000329   0.000018   0.000027  0.0000043  0.0000056    0.000031    0.000053
+2012  11   4  56235   0.140655   0.310338   0.3417878   0.0008071   0.000132   0.000359   0.000018   0.000024  0.0000070  0.0000056    0.000047    0.000086
+2012  11   5  56236   0.139661   0.309499   0.3409540   0.0008889   0.000173   0.000366   0.000018   0.000023  0.0000056  0.0000058    0.000063    0.000121
+2012  11   6  56237   0.138701   0.308399   0.3400027   0.0010174   0.000208   0.000380   0.000018   0.000026  0.0000016  0.0000058    0.000079    0.000154
+2012  11   7  56238   0.138146   0.307641   0.3389408   0.0011536   0.000179   0.000341   0.000017   0.000026  0.0000081  0.0000061    0.000066    0.000128
+2012  11   8  56239   0.137681   0.306960   0.3377096   0.0012756   0.000113   0.000267   0.000017   0.000026  0.0000151  0.0000061    0.000046    0.000087
+2012  11   9  56240   0.137470   0.306697   0.3363673   0.0013616   0.000042   0.000190   0.000019   0.000026  0.0000035  0.0000065    0.000025    0.000047
+2012  11  10  56241   0.136415   0.306862   0.3349822   0.0014158   0.000013   0.000190   0.000019   0.000026  0.0000117  0.0000065    0.000021    0.000038
+2012  11  11  56242   0.135140   0.306608   0.3335328   0.0014946   0.000001   0.000216   0.000017   0.000026  0.0000114  0.0000057    0.000023    0.000042
+2012  11  12  56243   0.134281   0.306265   0.3320174   0.0015146  -0.000006   0.000233   0.000018   0.000027  0.0000078  0.0000060    0.000026    0.000045
+2012  11  13  56244   0.133366   0.305787   0.3305276   0.0014486  -0.000004   0.000257   0.000018   0.000027  0.0000017  0.0000060    0.000028    0.000049
+2012  11  14  56245   0.132333   0.305606   0.3291377   0.0013427   0.000034   0.000230   0.000017   0.000026  0.0000061  0.0000060    0.000031    0.000054
+2012  11  15  56246   0.131284   0.305387   0.3278387   0.0012898   0.000085   0.000191   0.000017   0.000026  0.0000094  0.0000060    0.000035    0.000060
+2012  11  16  56247   0.130376   0.305026   0.3265250   0.0012852   0.000137   0.000156   0.000017   0.000026  0.0000022  0.0000060    0.000039    0.000066
+2012  11  17  56248   0.129972   0.304514   0.3252155   0.0013455   0.000130   0.000153   0.000017   0.000026  0.0000050  0.0000060    0.000035    0.000059
+2012  11  18  56249   0.129616   0.304629   0.3237804   0.0015122   0.000098   0.000164   0.000017   0.000026  0.0000057  0.0000060    0.000028    0.000048
+2012  11  19  56250   0.128850   0.304488   0.3221868   0.0016714   0.000064   0.000177   0.000020   0.000036  0.0000111  0.0000063    0.000022    0.000037
+2012  11  20  56251   0.127719   0.304116   0.3204734   0.0017408   0.000031   0.000198   0.000020   0.000036  0.0000033  0.0000063    0.000016    0.000025
+2012  11  21  56252   0.126270   0.303725   0.3187318   0.0017465   0.000117   0.000183   0.000017   0.000030  0.0000002  0.0000058    0.000025    0.000045
+2012  11  22  56253   0.124830   0.303039   0.3170010   0.0017007   0.000157   0.000215   0.000017   0.000030  0.0000085  0.0000058    0.000026    0.000048
+2012  11  23  56254   0.123682   0.302270   0.3153139   0.0016361   0.000166   0.000263   0.000017   0.000030  0.0000077  0.0000058    0.000023    0.000041
+2012  11  24  56255   0.122815   0.301758   0.3137377   0.0015098   0.000168   0.000299   0.000017   0.000030  0.0000068  0.0000061    0.000020    0.000035
+2012  11  25  56256   0.121446   0.301305   0.3123183   0.0013572   0.000163   0.000323   0.000017   0.000030  0.0000058  0.0000061    0.000017    0.000028
+2012  11  26  56257   0.120330   0.300698   0.3110089   0.0012209   0.000138   0.000319   0.000018   0.000035  0.0000068  0.0000059    0.000014    0.000022
+2012  11  27  56258   0.120111   0.300372   0.3098756   0.0010843   0.000131   0.000330   0.000018   0.000035  0.0000017  0.0000059    0.000010    0.000016
+2012  11  28  56259   0.119773   0.300632   0.3088455   0.0009915   0.000130   0.000313   0.000017   0.000036  0.0000170  0.0000060    0.000010    0.000014
+2012  11  29  56260   0.119249   0.300583   0.3079206   0.0009233   0.000132   0.000285   0.000017   0.000036  0.0000051  0.0000060    0.000009    0.000013
+2012  11  30  56261   0.118883   0.300539   0.3070117   0.0008703   0.000135   0.000252   0.000017   0.000036  0.0000011  0.0000060    0.000009    0.000013
+2012  12   1  56262   0.118435   0.300220   0.3061411   0.0009115   0.000149   0.000219   0.000017   0.000036  0.0000048  0.0000060    0.000012    0.000018
+2012  12   2  56263   0.117747   0.299784   0.3051720   0.0010053   0.000166   0.000188   0.000017   0.000032  0.0000059  0.0000060    0.000017    0.000025
+2012  12   3  56264   0.116649   0.299475   0.3041420   0.0010707   0.000179   0.000159   0.000019   0.000031  0.0000051  0.0000062    0.000022    0.000031
+2012  12   4  56265   0.115800   0.299221   0.3030426   0.0011420   0.000189   0.000137   0.000019   0.000035  0.0000013  0.0000062    0.000027    0.000038
+2012  12   5  56266   0.115161   0.299515   0.3018303   0.0012547   0.000172   0.000142   0.000018   0.000034  0.0000154  0.0000060    0.000024    0.000039
+2012  12   6  56267   0.114070   0.299438   0.3005523   0.0013252   0.000143   0.000154   0.000018   0.000034  0.0000087  0.0000060    0.000020    0.000039
+2012  12   7  56268   0.112562   0.299270   0.2991894   0.0013649   0.000111   0.000168   0.000020   0.000034  0.0000020  0.0000064    0.000017    0.000038
+2012  12   8  56269   0.110757   0.299082   0.2977818   0.0013447   0.000094   0.000184   0.000020   0.000034  0.0000138  0.0000064    0.000015    0.000034
+2012  12   9  56270   0.109587   0.298335   0.2964589   0.0013415   0.000082   0.000195   0.000018   0.000034  0.0000101  0.0000056    0.000013    0.000028
+2012  12  10  56271   0.108678   0.297733   0.2951313   0.0013011   0.000070   0.000200   0.000018   0.000034  0.0000070  0.0000055    0.000012    0.000022
+2012  12  11  56272   0.107369   0.297098   0.2938971   0.0011538   0.000060   0.000199   0.000018   0.000034  0.0000013  0.0000059    0.000010    0.000016
+2012  12  12  56273   0.106168   0.296689   0.2928453   0.0010051   0.000076   0.000244   0.000018   0.000031  0.0000203  0.0000059    0.000012    0.000024
+2012  12  13  56274   0.104749   0.296358   0.2919197   0.0009091   0.000103   0.000299   0.000018   0.000031  0.0000348  0.0000062    0.000016    0.000035
+2012  12  14  56275   0.103055   0.295597   0.2909741   0.0009133   0.000136   0.000349   0.000020   0.000033  0.0000075  0.0000069    0.000020    0.000045
+2012  12  15  56276   0.101061   0.294850   0.2899782   0.0009629   0.000165   0.000367   0.000020   0.000033  0.0000119  0.0000066    0.000023    0.000054
+2012  12  16  56277   0.098998   0.293924   0.2890035   0.0010471   0.000142   0.000299   0.000020   0.000033  0.0000090  0.0000062    0.000023    0.000048
+2012  12  17  56278   0.096862   0.293381   0.2879406   0.0010959   0.000142   0.000244   0.000021   0.000035  0.0000086  0.0000073    0.000023    0.000046
+2012  12  18  56279   0.094647   0.292659   0.2868441   0.0011422   0.000143   0.000193   0.000023   0.000035  0.0000050  0.0000076    0.000024    0.000044
+2012  12  19  56280   0.093111   0.291768   0.2857065   0.0011148   0.000145   0.000134   0.000019   0.000032  0.0000014  0.0000062    0.000025    0.000045
+2012  12  20  56281   0.091472   0.291349   0.2846565   0.0009436   0.000172   0.000145   0.000019   0.000032  0.0000084  0.0000059    0.000027    0.000046
+2012  12  21  56282   0.090028   0.291117   0.2837893   0.0007936   0.000205   0.000170   0.000022   0.000032  0.0000020  0.0000062    0.000034    0.000059
+2012  12  22  56283   0.088588   0.291159   0.2830603   0.0007287   0.000222   0.000170   0.000019   0.000032  0.0000111  0.0000062    0.000039    0.000072
+2012  12  23  56284   0.087501   0.290712   0.2823224   0.0006926   0.000234   0.000163   0.000019   0.000032  0.0000088  0.0000062    0.000044    0.000084
+2012  12  24  56285   0.086882   0.290363   0.2816902   0.0006156   0.000225   0.000157   0.000021   0.000030  0.0000068  0.0000064    0.000050    0.000098
+2012  12  25  56286   0.086339   0.290236   0.2811304   0.0005151   0.000234   0.000161   0.000018   0.000030  0.0000050  0.0000060    0.000054    0.000111
+2012  12  26  56287   0.085694   0.290416   0.2806345   0.0004547   0.000245   0.000166   0.000018   0.000029  0.0000032  0.0000059    0.000058    0.000124
+2012  12  27  56288   0.084727   0.290487   0.2801731   0.0004607   0.000254   0.000175   0.000020   0.000032  0.0000015  0.0000063    0.000062    0.000136
+2012  12  28  56289   0.082947   0.290475   0.2797111   0.0004567   0.000220   0.000199   0.000020   0.000032  0.0000003  0.0000063    0.000021    0.000044
+2012  12  29  56290   0.080756   0.290205   0.2792361   0.0005094   0.000233   0.000215   0.000018   0.000029  0.0000070  0.0000059    0.000010    0.000016
+2012  12  30  56291   0.079007   0.289959   0.2786180   0.0006577   0.000265   0.000224   0.000018   0.000029  0.0000093  0.0000059    0.000015    0.000023
+2012  12  31  56292   0.077238   0.289933   0.2778751   0.0007788   0.000286   0.000226   0.000018   0.000028  0.0000082  0.0000061    0.000019    0.000029
-- 
GitLab