container) {
}
return false;
}
-
+
/**
* Returns a new array of size first.length + second.length, with the
* contents of the first array loaded into the returned array starting
@@ -170,11 +170,11 @@ public static double[] concat(double[] first, double[] second) {
}
return retVal;
}
-
+
public static int maxIndex(int[] shape) {
return shape[0] * Math.max(1, initDimensionMultiples(shape)[0]) - 1;
}
-
+
/**
* Returns an array of coordinates calculated from
* a flat index.
@@ -212,21 +212,6 @@ public static int fromCoordinate(int[] coordinates, int[] shape) {
return base;
}
- /**
- * Utility to compute a flat index from coordinates.
- *
- * @param coordinates an array of integer coordinates
- * @return a flat index
- */
- public static int fromCoordinate(int[] coordinates) {
- int[] localMults = initDimensionMultiples(coordinates);
- int base = 0;
- for (int i = 0; i < coordinates.length; i++) {
- base += (localMults[i] * coordinates[i]);
- }
- return base;
- }
-
/**
* Initializes internal helper array which is used for multidimensional
* index computation.
@@ -244,7 +229,7 @@ public static int[] initDimensionMultiples(int[] shape) {
}
return dimensionMultiples;
}
-
+
/**
* Takes a two-dimensional input array and returns a new array which is "rotated"
* a quarter-turn clockwise.
@@ -289,7 +274,7 @@ public static int[][] rotateLeft(int[][] array) {
}
return result;
}
-
+
/**
* Takes a one-dimensional input array of m n numbers and returns a two-dimensional
* array of m rows and n columns. The first n numbers of the given array are copied
@@ -363,7 +348,7 @@ public static int[][] reshape(int[][] array, int n) throws IllegalArgumentExcept
int[][] result = new int[(r * c) / n][n];
int ii = 0;
int jj = 0;
-
+
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
result[ii][jj] = array[i][j];
@@ -377,6 +362,101 @@ public static int[][] reshape(int[][] array, int n) throws IllegalArgumentExcept
return result;
}
+ /**
+ * Takes a two-dimensional array of r rows and c columns and reshapes it to
+ * have (r*c)/n by n columns. The value in location [i][j] of the input array
+ * is copied into location [j][i] of the new array.
+ *
+ * @param array The array of values to be reshaped.
+ * @param n The number of columns in the created array.
+ * @return The new (r*c)/n by n array.
+ * @throws IllegalArgumentException If r*c is not evenly divisible by n.
+ */
+ public static double[][] reshape(double[][] array, int n) throws IllegalArgumentException {
+ int r = array.length;
+ if (r == 0) {
+ return new double[0][0]; // Special case: zero-length array
+ }
+ if ((array.length * array[0].length) % n != 0) {
+ int size = array.length * array[0].length;
+ throw new IllegalArgumentException(size + " is not evenly divisible by " + n);
+ }
+ int c = array[0].length;
+ double[][] result = new double[(r * c) / n][n];
+ int ii = 0;
+ int jj = 0;
+
+ for (int i = 0; i < r; i++) {
+ for (int j = 0; j < c; j++) {
+ result[ii][jj] = array[i][j];
+ jj++;
+ if (jj == n) {
+ jj = 0;
+ ii++;
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Returns an array of minimum values collected from the specified axis.
+ *
+ *
+ * int[] a = min(new int[][] { { 49, 2, 3, 4, 5 }, { 6, 7, 8, 9, 10 } }, 0)
+ * output:
+ * a = { 6, 2, 3, 4, 5 }
+ *
+ * int[] a = min(new int[][] { { 49, 2, 3, 4, 5 }, { 6, 7, 8, 9, 10 } }, 1)
+ * output:
+ * a = { 6, 2 }
+ *
+ * @param arr
+ * @param axis
+ * @return
+ */
+ public static int[] min(int[][] arr, int axis) {
+ switch(axis) {
+ case 0:
+ return IntStream.range(0, arr[0].length)
+ .map(i -> Arrays.stream(arr).mapToInt(ia -> ia[i]).min().getAsInt()).toArray();
+ case 1:
+ return Arrays.stream(arr).mapToInt(i -> Arrays.stream(i).min().getAsInt()).toArray();
+
+ default: throw new IllegalArgumentException("axis must be either '0' or '1'");
+ }
+ }
+
+ /**
+ * Returns an array of minimum values collected from the specified axis.
+ *
+ *
+ * // axis = 0
+ * double[] a = min(new double[][] { { 49, 2, 3, 4, 5 }, { 6, 7, 8, 9, 10 } }, 0)
+ * output:
+ * a = { 6, 2, 3, 4, 5 }
+ *
+ * // axis = 1
+ * double[] a = min(new double[][] { { 49, 2, 3, 4, 5 }, { 6, 7, 8, 9, 10 } }, 1)
+ * output:
+ * a = { 2, 6 }
+ *
+ * @param arr
+ * @param axis
+ * @return
+ */
+ public static double[] min(double[][] arr, int axis) {
+ switch(axis) {
+ case 0:
+ return IntStream.range(0, arr[0].length)
+ .mapToDouble(i -> Arrays.stream(arr).mapToDouble(ia -> ia[i]).min().getAsDouble()).toArray();
+ case 1:
+ return Arrays.stream(arr).mapToDouble(i -> Arrays.stream(i).min().getAsDouble()).toArray();
+
+ default: throw new IllegalArgumentException("axis must be either '0' or '1'");
+ }
+ }
+
/**
* Returns an int[] with the dimensions of the input.
* @param inputArray
@@ -390,10 +470,56 @@ public static int[] shape(Object inputArray) {
int len = l[i] = Array.getLength(oa);
if (0 < len) { oa = Array.get(oa, 0); }
}
-
+
return l;
}
+
+ /**
+ * Takes an input array of m rows and n columns, and transposes it to form an array
+ * of n rows and m columns. The value in location [i][j] of the input array is copied
+ * into location [j][i] of the new array.
+ *
+ * @param array The array to transpose.
+ * @return The transposed array.
+ */
+ public static int[][] transpose(int[][] array) {
+ int r = array.length;
+ if (r == 0) {
+ return new int[0][0]; // Special case: zero-length array
+ }
+ int c = array[0].length;
+ int[][] result = new int[c][r];
+ for (int i = 0; i < r; i++) {
+ for (int j = 0; j < c; j++) {
+ result[j][i] = array[i][j];
+ }
+ }
+ return result;
+ }
+ /**
+ * Takes an input array of m rows and n columns, and transposes it to form an array
+ * of n rows and m columns. The value in location [i][j] of the input array is copied
+ * into location [j][i] of the new array.
+ *
+ * @param array The array to transpose.
+ * @return The transposed array.
+ */
+ public static double[][] transpose(double[][] array) {
+ int r = array.length;
+ if (r == 0) {
+ return new double[0][0]; // Special case: zero-length array
+ }
+ int c = array[0].length;
+ double[][] result = new double[c][r];
+ for (int i = 0; i < r; i++) {
+ for (int j = 0; j < c; j++) {
+ result[j][i] = array[i][j];
+ }
+ }
+ return result;
+ }
+
/**
* Sorts the array, then returns an array containing the indexes of
* those sorted items in the original array.
@@ -408,7 +534,7 @@ public static int[] shape(Object inputArray) {
public static int[] argsort(int[] in) {
return argsort(in, -1, -1);
}
-
+
/**
* Sorts the array, then returns an array containing the indexes of
* those sorted items in the original array which are between the
@@ -426,51 +552,182 @@ public static int[] argsort(int[] in) {
public static int[] argsort(int[] in, int start, int end) {
if(start == -1 || end == -1) {
return IntStream.of(in).sorted().map(i ->
- Arrays.stream(in).boxed().collect(Collectors.toList()).indexOf(i)).toArray();
+ Arrays.stream(in).boxed().collect(Collectors.toList()).indexOf(i)).toArray();
}
-
+
return IntStream.of(in).sorted().map(i ->
- Arrays.stream(in).boxed().collect(Collectors.toList()).indexOf(i))
- .skip(start).limit(end).toArray();
+ Arrays.stream(in).boxed().collect(Collectors.toList()).indexOf(i))
+ .skip(start).limit(end).toArray();
+ }
+
+ /**
+ * Sorts the array, then returns an array containing the indexes of
+ * those sorted items in the original array which are between the
+ * given bounds (start=inclusive, end=exclusive)
+ *
+ * double[] args = argsort(new double[] { 11, 2, 3, 7, 0 }, 0, 3);
+ * contains:
+ * [4, 1, 2]
+ *
+ * @param in
+ * @return the indexes of input elements filtered in the way specified
+ *
+ * @see #argsort(int[])
+ */
+ public static int[] argsort(double[] in, int start, int end) {
+ if(start == -1 || end == -1) {
+ return DoubleStream.of(in).sorted().mapToInt(i ->
+ Arrays.stream(in).boxed().collect(Collectors.toList()).indexOf(i)).toArray();
+ }
+
+ return DoubleStream.of(in).sorted().mapToInt(i ->
+ Arrays.stream(in).boxed().collect(Collectors.toList()).indexOf(i))
+ .skip(start).limit(end).toArray();
+ }
+
+ /**
+ * Transforms 2D matrix of doubles to 1D by concatenation
+ * @param A
+ * @return
+ */
+ public static double[] to1D(double[][] A){
+
+ double[] B = new double[A.length * A[0].length];
+ int index = 0;
+
+ for(int i = 0;i zip(List> arg1, List> arg2) {
return tuples;
}
-
+
/**
* Return a list of tuples, where each tuple contains the i-th element
* from each of the argument sequences. The returned list is
* truncated in length to the length of the shortest argument sequence.
*
- * @param args the array of Objects to be wrapped in {@link Tuple}s
+ * @param args the array of ints to be wrapped in {@link Tuple}s
* @return a list of tuples
*/
public static List zip(Object[]... args) {
@@ -533,10 +790,10 @@ public static List zip(Object[]... args) {
}
tuples.add(mt);
}
-
+
return tuples;
}
-
+
/**
* Returns an array with the same shape and the contents
* converted to integers.
@@ -710,17 +967,17 @@ public static double[] retainLogicalAnd(double[] values, Condition>[] conditio
* @throws IllegalArgumentException if the two argument arrays are not the same length
*/
public static double[] divide(double[] dividend, double[] divisor,
- double dividendAdjustment, double divisorAdjustment) {
+ double dividendAdjustment, double divisorAdjustment) {
if (dividend.length != divisor.length) {
throw new IllegalArgumentException(
- "The dividend array and the divisor array must be the same length");
+ "The dividend array and the divisor array must be the same length");
}
double[] quotient = new double[dividend.length];
double denom = 1;
for (int i = 0; i < dividend.length; i++) {
quotient[i] = (dividend[i] + dividendAdjustment) /
- ((denom = divisor[i] + divisorAdjustment) == 0 ? 1 : denom); //Protect against division by 0
+ ((denom = divisor[i] + divisorAdjustment) == 0 ? 1 : denom); //Protect against division by 0
}
return quotient;
}
@@ -741,13 +998,13 @@ public static double[] divide(int[] dividend, int[] divisor) {
if (dividend.length != divisor.length) {
throw new IllegalArgumentException(
- "The dividend array and the divisor array must be the same length");
+ "The dividend array and the divisor array must be the same length");
}
double[] quotient = new double[dividend.length];
double denom = 1;
for (int i = 0; i < dividend.length; i++) {
quotient[i] = (dividend[i]) /
- (double)((denom = divisor[i]) == 0 ? 1 : denom); //Protect against division by 0
+ (double)((denom = divisor[i]) == 0 ? 1 : denom); //Protect against division by 0
}
return quotient;
}
@@ -769,7 +1026,7 @@ public static double[] divide(double[] dividend, double divisor) {
double denom = 1;
for (int i = 0; i < dividend.length; i++) {
quotient[i] = (dividend[i]) /
- (double)((denom = divisor) == 0 ? 1 : denom); //Protect against division by 0
+ (double)((denom = divisor) == 0 ? 1 : denom); //Protect against division by 0
}
return quotient;
}
@@ -789,7 +1046,7 @@ public static double[] roundDivide(double[] dividend, double[] divisor, int scal
if (dividend.length != divisor.length) {
throw new IllegalArgumentException(
- "The dividend array and the divisor array must be the same length");
+ "The dividend array and the divisor array must be the same length");
}
double[] quotient = new double[dividend.length];
for (int i = 0; i < dividend.length; i++) {
@@ -812,12 +1069,13 @@ public static double[] roundDivide(double[] dividend, double[] divisor, int scal
* @throws IllegalArgumentException if the two argument arrays are not the same length
*/
public static double[] multiply(
- double[] multiplicand, double[] factor, double multiplicandAdjustment, double factorAdjustment) {
+ double[] multiplicand, double[] factor, double multiplicandAdjustment, double factorAdjustment) {
if (multiplicand.length != factor.length) {
throw new IllegalArgumentException(
"The multiplicand array and the factor array must be the same length");
}
+
double[] product = new double[multiplicand.length];
for (int i = 0; i < multiplicand.length; i++) {
product[i] = (multiplicand[i] + multiplicandAdjustment) * (factor[i] + factorAdjustment);
@@ -841,7 +1099,7 @@ public static double[] multiply(double[] multiplicand, int[] factor) {
if (multiplicand.length != factor.length) {
throw new IllegalArgumentException(
- "The multiplicand array and the factor array must be the same length");
+ "The multiplicand array and the factor array must be the same length");
}
double[] product = new double[multiplicand.length];
for (int i = 0; i < multiplicand.length; i++) {
@@ -897,7 +1155,7 @@ public static int[] subtract(int[] minuend, int[] subtrahend) {
}
return retVal;
}
-
+
/**
* Subtracts the contents of the first argument from the last argument's list.
*
@@ -939,7 +1197,7 @@ public static double average(double[] arr) {
}
return sum / (double)arr.length;
}
-
+
/**
* Computes and returns the variance.
* @param arr
@@ -955,12 +1213,12 @@ public static double variance(double[] arr, double mean) {
accum += dev * dev;
accum2 += dev;
}
-
+
double var = (accum - (accum2 * accum2 / arr.length)) / arr.length;
-
+
return var;
}
-
+
/**
* Computes and returns the variance.
* @param arr
@@ -973,6 +1231,8 @@ public static double variance(double[] arr) {
/**
* Returns the passed in array with every value being altered
* by the addition of the specified amount.
+ *
+ * Warning: This method mutates original array
*
* @param arr
* @param amount
@@ -989,12 +1249,14 @@ public static int[] add(int[] arr, int amount) {
* Returns the passed in array with every value being altered
* by the addition of the specified double amount at the same
* index
+ *
+ * Warning: This method mutates original array
*
* @param arr
* @param amount
* @return
*/
- public static int[] i_add(int[] arr, int[] amount) {
+ public static int[] add(int[] arr, int[] amount) {
for (int i = 0; i < arr.length; i++) {
arr[i] += amount[i];
}
@@ -1005,6 +1267,8 @@ public static int[] i_add(int[] arr, int[] amount) {
* Returns the passed in array with every value being altered
* by the addition of the specified double amount at the same
* index
+ *
+ * Warning: This method mutates original array
*
* @param arr
* @param amount
@@ -1020,6 +1284,8 @@ public static double[] d_add(double[] arr, double[] amount) {
/**
* Returns the passed in array with every value being altered
* by the addition of the specified double amount
+ *
+ * Warning: This method mutates original array
*
* @param arr
* @param amount
@@ -1031,6 +1297,37 @@ public static double[] d_add(double[] arr, double amount) {
}
return arr;
}
+
+ /**
+ * Returns the passed in array with every value being altered
+ * by the subtraction of the specified double amount
+ *
+ * @param arr
+ * @param amount
+ * @return
+ */
+ public static double[] d_sub(double[] arr, double amount) {
+ for (int i = 0; i < arr.length; i++) {
+ arr[i] -= amount;
+ }
+ return arr;
+ }
+
+ /**
+ * Returns the passed in array with every value being altered
+ * by the subtraction of the specified double amount at the same
+ * index
+ *
+ * @param arr
+ * @param amount
+ * @return
+ */
+ public static double[] d_sub(double[] arr, double[] amount) {
+ for (int i = 0; i < arr.length; i++) {
+ arr[i] -= amount[i];
+ }
+ return arr;
+ }
/**
* Returns the sum of all contents in the specified array.
@@ -1044,7 +1341,7 @@ public static int sum(int[] array) {
}
return sum;
}
-
+
/**
* Test whether each element of a 1-D array is also present in a second
* array.
@@ -1059,12 +1356,12 @@ public static int[] in1d(int[] ar1, int[] ar2) {
if(ar1 == null || ar2 == null) {
return EMPTY_ARRAY;
}
-
+
TIntSet retVal = new TIntHashSet(ar2);
retVal.retainAll(ar1);
return retVal.toArray();
}
-
+
/**
* Returns the sum of all contents in the specified array.
* @param array
@@ -1164,7 +1461,7 @@ public static double[] arange(double lowerBounds, double upperBounds, double int
}
return doubs.toArray();
}
-
+
/**
* Returns an array which starts from lowerBounds (inclusive) and
* ends at the upperBounds (exclusive).
@@ -1181,7 +1478,7 @@ public static int[] xrange(int lowerBounds, int upperBounds, int interval) {
}
return ints.toArray();
}
-
+
/**
* Fisher-Yates implementation which shuffles the array contents.
*
@@ -1201,7 +1498,7 @@ public static int[] shuffle(int[] array) {
}
return array;
}
-
+
/**
* Replaces the range specified by "start" and "end" of "orig" with the
* array of replacement ints found in "replacement".
@@ -1218,7 +1515,7 @@ public static int[] replace(int start, int end, int[] orig, int[] replacement) {
}
return orig;
}
-
+
/**
* Returns a new array containing the source array contents with
* substitutions from "substitutes" whose indexes reside in "substInds".
@@ -1229,11 +1526,26 @@ public static int[] replace(int start, int end, int[] orig, int[] replacement) {
* @return a new array with the specified indexes replaced with "substitutes"
*/
public static int[] subst(int[] source, int[] substitutes, int[] substInds) {
- List l = Arrays.stream(substInds).boxed().collect(Collectors.toList());
+ TIntHashSet h = new TIntHashSet(substInds);
return IntStream.range(0, source.length).map(
- i -> l.indexOf(i) == -1 ? source[i] : substitutes[i]).toArray();
+ i -> h.contains(i) ? substitutes[i] : source[i]).toArray();
}
+ /**
+ * Returns a new array containing the source array contents with
+ * substitutions from "substitutes" whose indexes reside in "substInds".
+ *
+ * @param source the original array
+ * @param substitutes the replacements whose indexes must be in substInds to be used.
+ * @param substInds the indexes of "substitutes" to replace in "source"
+ * @return a new array with the specified indexes replaced with "substitutes"
+ */
+ public static double[] subst(double[] source, double[] substitutes, int[] substInds) {
+ TIntHashSet h = new TIntHashSet(substInds);
+ return IntStream.range(0, source.length).mapToDouble(
+ i -> h.contains(i) ? substitutes[i] : source[i]).toArray();
+ }
+
/**
* Returns a sorted unique array of integers
*
@@ -1339,6 +1651,23 @@ public static void setRangeTo(int[] values, int start, int stop, int setTo) {
values[i] = setTo;
}
}
+
+ /**
+ * Sets the values in range start to stop to the value specified. If
+ * stop < 0, then stop indicates the number of places counting from the
+ * length of "values" back.
+ *
+ * @param values the array to alter
+ * @param start the start index (inclusive)
+ * @param stop the end index (exclusive)
+ * @param setTo the value to set the indexes to
+ */
+ public static void setRangeTo(double[] values, int start, int stop, double setTo) {
+ stop = stop < 0 ? values.length + stop : stop;
+ for (int i = start; i < stop; i++) {
+ values[i] = setTo;
+ }
+ }
/**
* Returns a random, sorted, and unique array of the specified sample size of
@@ -1595,7 +1924,7 @@ public static int[] where(int[] values, Condition c) {
}
return retVal.toArray();
}
-
+
/**
* Returns a flag indicating whether the specified array
* is a sparse array of 0's and 1's or not.
@@ -1610,10 +1939,10 @@ public static boolean isSparse(int[] ia) {
if(ia[i] > 1) return true;
else if(j > 0 && ia[i] == end) return false;
}
-
+
return false;
}
-
+
/**
* Returns a bit vector of the specified size whose "on" bit
* indexes are specified in "in"; basically converting a sparse
@@ -1628,7 +1957,7 @@ public static int[] asDense(int[] in, int size) {
Arrays.stream(in).forEach(i -> {retVal[i] = 1;});
return retVal;
}
-
+
/**
* Scans the specified values and applies the {@link Condition} to each
* value, returning the indexes of the values where the condition evaluates
@@ -1778,7 +2107,7 @@ public static int argmax(int[] array) {
}
return index;
}
-
+
/**
* Returns a boxed Integer[] from the specified primitive array
* @param ints the primitive int array
@@ -1787,7 +2116,7 @@ public static int argmax(int[] array) {
public static Integer[] toBoxed(int[] ints) {
return IntStream.of(ints).boxed().collect(Collectors.toList()).toArray(new Integer[ints.length]);
}
-
+
/**
* Returns a boxed Double[] from the specified primitive array
* @param doubles the primitive double array
@@ -1796,7 +2125,7 @@ public static Integer[] toBoxed(int[] ints) {
public static Double[] toBoxed(double[] doubles) {
return DoubleStream.of(doubles).boxed().collect(Collectors.toList()).toArray(new Double[doubles.length]);
}
-
+
/**
* Returns a byte array transformed from the specified boolean array.
* @param input the boolean array to transform to a byte array
@@ -1829,7 +2158,7 @@ public static int[] toPrimitive(Integer[] ints) {
}
return retVal;
}
-
+
/**
* Converts an array of Double objects to an array of its
* primitive form.
@@ -1844,7 +2173,7 @@ public static double[] toPrimitive(Double[] doubs) {
}
return retVal;
}
-
+
/**
* Returns the index of the max value in the specified array
* @param array the array to find the max value index in
@@ -1939,7 +2268,7 @@ public static int[][] sub(int[][] source, int[] indexes) {
}
return retVal;
}
-
+
/**
* Returns the minimum value in the specified array
* @param array
@@ -2056,7 +2385,7 @@ public static void setValue(Object array, int value, int... indexes) {
setValue(Array.get(array, indexes[0]), value, tail(indexes));
}
}
-
+
/**
* Get value for array at specified position indexes
*
@@ -2068,7 +2397,7 @@ public static Object getValue(Object array, int... indexes) {
for(int i = 0;i < indexes.length;i++) {
slice = Array.get(slice, indexes[i]);
}
-
+
return slice;
}
@@ -2090,10 +2419,10 @@ public static void fillArray(Object array, int value) {
}
/**
- * Aggregates all element of multi dimensional array of ints
- * @param array
- * @return sum of all array elements
- */
+ * Aggregates all element of multi dimensional array of ints
+ * @param array
+ * @return sum of all array elements
+ */
public static int aggregateArray(Object array) {
int sum = 0;
if(array instanceof Integer){
diff --git a/src/main/java/org/numenta/nupic/util/BeanUtil.java b/src/main/java/org/numenta/nupic/util/BeanUtil.java
index 5d9424a0..0b9931d6 100644
--- a/src/main/java/org/numenta/nupic/util/BeanUtil.java
+++ b/src/main/java/org/numenta/nupic/util/BeanUtil.java
@@ -25,7 +25,7 @@
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
-import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -90,10 +90,17 @@ private Object getSimpleProperty(Object bean, PropertyInfo info) {
private void setSimpleProperty(Object bean, PropertyInfo info, Object value) {
if (info.getWriteMethod() == null) {
- throw new IllegalArgumentException("Property '" + info.name + "' of bean " + bean.getClass().getName() +
+ try {
+ Field f = bean.getClass().getDeclaredField(info.getName());
+ f.setAccessible(true);
+ f.set(bean, value);
+ }catch(Exception e) {
+ throw new IllegalArgumentException("Property '" + info.name + "' of bean " + bean.getClass().getName() +
" does not have setter method");
+ }
+ }else {
+ invokeMethod(info.getWriteMethod(), bean, value);
}
- invokeMethod(info.getWriteMethod(), bean, value);
}
private Object invokeMethod(Method m, Object instance, Object... args) {
@@ -102,20 +109,11 @@ private Object invokeMethod(Method m, Object instance, Object... args) {
}
try {
return m.invoke(instance, args);
- } catch (IllegalArgumentException e) {
+ } catch (Exception e) {
final String msg = "Cannot invoke " + m.getDeclaringClass().getName() + "." + m.getName() + " - " + e.getMessage();
//LOG.error(msg, e);
throw new IllegalArgumentException(msg, e);
- } catch (IllegalAccessException e) {
- final String msg = "Cannot invoke " + m.getDeclaringClass().getName() + "." + m.getName() + " - " + e.getMessage();
- //LOG.error(msg, e);
- throw new RuntimeException(msg, e);
- } catch (InvocationTargetException e) {
- Throwable te = e.getTargetException() == null ? e : e.getTargetException();
- final String msg = "Error invoking " + m.getDeclaringClass().getName() + "." + m.getName() + " - " + te.getMessage();
- //LOG.error(msg, e);
- throw new RuntimeException(msg, te);
- }
+ }
}
public PropertyInfo getPropertyInfo(Object bean, String name) {
diff --git a/src/main/java/org/numenta/nupic/util/NearestNeighbor.java b/src/main/java/org/numenta/nupic/util/NearestNeighbor.java
index d506feb4..0044f654 100644
--- a/src/main/java/org/numenta/nupic/util/NearestNeighbor.java
+++ b/src/main/java/org/numenta/nupic/util/NearestNeighbor.java
@@ -31,4 +31,4 @@ public int[] rightVecSumAtNZ(int[] inputVector, int[][] base) {
}
return results;
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/numenta/nupic/util/Tuple.java b/src/main/java/org/numenta/nupic/util/Tuple.java
index aee13e3a..99ed919e 100644
--- a/src/main/java/org/numenta/nupic/util/Tuple.java
+++ b/src/main/java/org/numenta/nupic/util/Tuple.java
@@ -22,10 +22,12 @@
package org.numenta.nupic.util;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
+import java.util.stream.Collector;
import org.numenta.nupic.Persistable;
@@ -80,6 +82,49 @@ protected void remake(Object...objects) {
this.hashcode = hashCode();
}
+ /*
+ * Private constructor for Builder use
+ */
+ private Tuple(List l) {
+ this(l.toArray());
+ }
+
+ /**
+ * Returns builder for building immutable {@code Tuple}s
+ * @return
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ /**
+ * Allows the creation of an immutable {@link Tuple}
+ * using a "Fluent" style construction.
+ */
+ public static class Builder {
+ List accumulator = new ArrayList<>();
+ public Builder add(Object o) {
+ accumulator.add(o);
+ return this;
+ }
+
+ /**
+ * Creates and returns the {@link Tuple}
+ * @return
+ */
+ public Tuple build() {
+ return new Tuple(accumulator);
+ }
+
+ /**
+ * So that this builder can be used as a custom {@link Collector}
+ * @param b
+ */
+ public void addAll(Builder b) {
+ accumulator.addAll(b.accumulator);
+ }
+ }
+
/**
* Returns the object previously inserted into the
* specified index.
diff --git a/src/main/java/org/numenta/nupic/util/TupleCollector.java b/src/main/java/org/numenta/nupic/util/TupleCollector.java
new file mode 100644
index 00000000..2ab55ffe
--- /dev/null
+++ b/src/main/java/org/numenta/nupic/util/TupleCollector.java
@@ -0,0 +1,52 @@
+package org.numenta.nupic.util;
+
+import java.util.EnumSet;
+import java.util.Set;
+import java.util.function.BiConsumer;
+import java.util.function.BinaryOperator;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import java.util.stream.Collector;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import org.numenta.nupic.util.Tuple.Builder;
+
+/**
+ * Enables the use of {@link Tuple}s as {@link Collectors} for
+ * use with Java 8 Streams (see {@link Stream})
+ * @author cogmission
+ * @see Tuple.Builder
+ */
+public class TupleCollector
+ implements Collector {
+
+ @Override
+ public Supplier supplier() {
+ return Tuple::builder;
+ }
+
+ @Override
+ public BiConsumer accumulator() {
+ return (builder, o) -> builder.add(o);
+ }
+
+ @Override
+ public BinaryOperator combiner() {
+ return (left, right) -> {
+ left.addAll(right);
+ return left;
+ };
+ }
+
+ @Override
+ public Function finisher() {
+ return Tuple.Builder::build;
+ }
+
+ @Override
+ public Set characteristics() {
+ return EnumSet.noneOf(Characteristics.class);
+ }
+
+}
diff --git a/src/main/resources/test_pcaknnshort_class.txt b/src/main/resources/test_pcaknnshort_class.txt
new file mode 100644
index 00000000..ee39bebf
--- /dev/null
+++ b/src/main/resources/test_pcaknnshort_class.txt
@@ -0,0 +1,100 @@
+7.000000000000000000e+00
+8.000000000000000000e+00
+6.000000000000000000e+00
+1.000000000000000000e+00
+4.000000000000000000e+00
+0.000000000000000000e+00
+8.000000000000000000e+00
+6.000000000000000000e+00
+0.000000000000000000e+00
+3.000000000000000000e+00
+7.000000000000000000e+00
+0.000000000000000000e+00
+4.000000000000000000e+00
+8.000000000000000000e+00
+1.000000000000000000e+00
+9.000000000000000000e+00
+6.000000000000000000e+00
+5.000000000000000000e+00
+9.000000000000000000e+00
+8.000000000000000000e+00
+3.000000000000000000e+00
+6.000000000000000000e+00
+5.000000000000000000e+00
+3.000000000000000000e+00
+1.000000000000000000e+00
+0.000000000000000000e+00
+1.000000000000000000e+00
+8.000000000000000000e+00
+9.000000000000000000e+00
+7.000000000000000000e+00
+2.000000000000000000e+00
+7.000000000000000000e+00
+6.000000000000000000e+00
+5.000000000000000000e+00
+1.000000000000000000e+00
+9.000000000000000000e+00
+2.000000000000000000e+00
+7.000000000000000000e+00
+7.000000000000000000e+00
+6.000000000000000000e+00
+7.000000000000000000e+00
+8.000000000000000000e+00
+9.000000000000000000e+00
+7.000000000000000000e+00
+4.000000000000000000e+00
+2.000000000000000000e+00
+7.000000000000000000e+00
+5.000000000000000000e+00
+9.000000000000000000e+00
+3.000000000000000000e+00
+9.000000000000000000e+00
+5.000000000000000000e+00
+7.000000000000000000e+00
+2.000000000000000000e+00
+8.000000000000000000e+00
+3.000000000000000000e+00
+4.000000000000000000e+00
+0.000000000000000000e+00
+7.000000000000000000e+00
+6.000000000000000000e+00
+4.000000000000000000e+00
+3.000000000000000000e+00
+6.000000000000000000e+00
+1.000000000000000000e+00
+0.000000000000000000e+00
+2.000000000000000000e+00
+0.000000000000000000e+00
+5.000000000000000000e+00
+2.000000000000000000e+00
+1.000000000000000000e+00
+3.000000000000000000e+00
+7.000000000000000000e+00
+2.000000000000000000e+00
+9.000000000000000000e+00
+9.000000000000000000e+00
+3.000000000000000000e+00
+4.000000000000000000e+00
+4.000000000000000000e+00
+1.000000000000000000e+00
+0.000000000000000000e+00
+5.000000000000000000e+00
+5.000000000000000000e+00
+5.000000000000000000e+00
+5.000000000000000000e+00
+5.000000000000000000e+00
+0.000000000000000000e+00
+8.000000000000000000e+00
+6.000000000000000000e+00
+3.000000000000000000e+00
+4.000000000000000000e+00
+1.000000000000000000e+00
+5.000000000000000000e+00
+6.000000000000000000e+00
+9.000000000000000000e+00
+0.000000000000000000e+00
+0.000000000000000000e+00
+8.000000000000000000e+00
+5.000000000000000000e+00
+8.000000000000000000e+00
+1.000000000000000000e+00
diff --git a/src/main/resources/test_pcaknnshort_data.txt b/src/main/resources/test_pcaknnshort_data.txt
new file mode 100644
index 00000000..baf9ed6f
--- /dev/null
+++ b/src/main/resources/test_pcaknnshort_data.txt
@@ -0,0 +1,100 @@
+3.532800382472515111e+01 3.845307656193318024e+01 3.786203862983882829e+01 3.702259762229117257e+01 3.681805724595032103e+01 3.608407137964554323e+01 3.834805628268758682e+01 3.985334013896935090e+01 3.587857622918412659e+01 3.798558310007751970e+01
+4.435638494060578552e+01 4.096290816229264209e+01 4.048809380267574198e+01 4.448897903196012749e+01 4.174947731823699115e+01 4.275658695331406989e+01 4.179771572260001733e+01 4.062901168173025468e+01 4.294665822473864125e+01 4.262570425884814540e+01
+3.134430772489503170e+01 3.010518451230234405e+01 3.361419601950105829e+01 3.016243298345082380e+01 3.297638420552027583e+01 3.269596897063657082e+01 3.484407345288902036e+01 3.242106569673821070e+01 3.031800718188898713e+01 3.275843983903230594e+01
+5.192131744811624650e+00 9.508809960677117701e+00 7.307387323123670342e+00 8.186007384041403157e+00 8.296769611028913971e+00 9.475588703532682899e+00 8.183348410836035924e+00 8.069667923800309950e+00 5.333260202803449701e+00 7.592040109726020169e+00
+2.181491420201935938e+01 2.439639778078503340e+01 2.362685800117428769e+01 2.056295233264597400e+01 2.203889017203081480e+01 2.443190180980070636e+01 2.023598350848689620e+01 2.480708309821024926e+01 2.339581284159781305e+01 2.315687988821688492e+01
+7.583743986637558887e-01 1.558610338977741261e+00 1.242445699072328713e+00 3.719731462863384852e+00 1.676621736788969086e-01 2.849448424356582521e+00 3.812293428703452669e+00 4.383828183808747170e+00 1.710408743579537205e+00 4.106286523360064500e+00
+4.110064622098763465e+01 4.140968442170878916e+01 4.221799850659093778e+01 4.085551239206701268e+01 4.436627178345836597e+01 4.352455566365667750e+01 4.042600238779831301e+01 4.325046225569965941e+01 4.326828238202810439e+01 4.478110586821814110e+01
+3.309051482780848374e+01 3.254754436612100932e+01 3.272874839889718146e+01 3.179711913415408731e+01 3.040736948856470789e+01 3.096669616806025971e+01 3.475372356606335700e+01 3.204349781135466912e+01 3.233341577915432197e+01 3.026354894926719652e+01
+3.037724259507191604e+00 8.526206184364576446e-01 3.252579649263975803e-01 4.744427686266666555e+00 4.828160165372796797e+00 4.041986740582305337e+00 1.523068845866853316e+00 4.883605700319193499e-01 3.421165132560784361e+00 2.200762468698006735e+00
+1.648645395153666726e+01 1.546033493041237783e+01 1.799522293575190801e+01 1.811824389145133196e+01 1.824252410059344243e+01 1.633701013928770607e+01 1.507555342107237450e+01 1.982507684727235997e+01 1.625446522845551200e+01 1.838013144026273693e+01
+3.983432775146696514e+01 3.763297471294895047e+01 3.651640513032722879e+01 3.681291606297338603e+01 3.533202676730248726e+01 3.994674757021019218e+01 3.519645972575346349e+01 3.827453561573929619e+01 3.721367963853229099e+01 3.974458109094357638e+01
+5.908241381082812715e-01 3.483685826820753118e+00 3.144714233899419842e+00 4.387360067635264649e+00 3.675355219019428965e+00 4.017404651924242565e+00 1.410172862856532428e+00 8.871977188986140961e-01 3.753073758204291899e+00 4.034173696336320170e+00
+2.201351860497280200e+01 2.336253631336824554e+01 2.341095844627549383e+01 2.157619717324725528e+01 2.066604962068314322e+01 2.316198128232754172e+01 2.064162931094382358e+01 2.289246254114664936e+01 2.346711064028154681e+01 2.350305748197225952e+01
+4.263535469256729016e+01 4.019101391878695750e+01 4.307607448298456632e+01 4.414021642887126262e+01 4.078750274037901846e+01 4.297165866963297987e+01 4.296805272223207339e+01 4.082092482028179603e+01 4.061731786865367866e+01 4.490025971488242362e+01
+8.827564494955549179e+00 5.794540838346767586e+00 8.051125747388205411e+00 5.676770411388427640e+00 8.756875430145228734e+00 8.284775781335698142e+00 9.783073105417290805e+00 5.344790081782106128e+00 5.285273605756271920e+00 6.410935373466000620e+00
+4.672589919147814896e+01 4.553240881642353344e+01 4.745928435696573899e+01 4.884233897832066873e+01 4.610823657308779389e+01 4.634745025066681734e+01 4.621357493399291627e+01 4.995836526415838819e+01 4.598701866865270915e+01 4.787760108483062282e+01
+3.097064385222986260e+01 3.268303754631887159e+01 3.467411020221900486e+01 3.417478387526058725e+01 3.421267254175900518e+01 3.151604096879837513e+01 3.214723948539351284e+01 3.235352973657968789e+01 3.078685791674955041e+01 3.015534065122228213e+01
+2.553355909551177305e+01 2.824778003378481017e+01 2.933999795947545053e+01 2.914092934661726275e+01 2.813027354490400711e+01 2.537639358325836980e+01 2.556198513588006449e+01 2.524654493554912449e+01 2.628739608246234738e+01 2.567830733580188962e+01
+4.557837611824058399e+01 4.973132246501540976e+01 4.866680757366047061e+01 4.818749401467081839e+01 4.822638877661781720e+01 4.913363824198140861e+01 4.553459932189910830e+01 4.752377161782770543e+01 4.848545569130379107e+01 4.793410222536781617e+01
+4.498006391691124151e+01 4.089999808305343265e+01 4.251273803361011261e+01 4.424208863215255860e+01 4.010200805344103259e+01 4.302244491129229687e+01 4.138512724434811929e+01 4.431167458219865551e+01 4.141730574632039463e+01 4.343377860140954283e+01
+1.727382171276330425e+01 1.837393151083705334e+01 1.838765806941842129e+01 1.686561309211191784e+01 1.970845993329015400e+01 1.583678516118390434e+01 1.750179723107780205e+01 1.845441988275411305e+01 1.848567902945904606e+01 1.824319478384407844e+01
+3.113379308700258008e+01 3.465745193459463280e+01 3.454205053634284894e+01 3.390645323702845815e+01 3.009700622809107884e+01 3.163503384248051020e+01 3.313979367671453957e+01 3.137595105886737912e+01 3.454793347526888425e+01 3.316944730916220863e+01
+2.826140556409223237e+01 2.702598571287664697e+01 2.798021797738823579e+01 2.553725276314454007e+01 2.508456399960803651e+01 2.954782213690150527e+01 2.634815004383591486e+01 2.909838501390229482e+01 2.999675150236100052e+01 2.605715628999455546e+01
+1.776685594874885865e+01 1.751566236275770194e+01 1.596931533968446359e+01 1.929408385584077479e+01 1.838470391498418621e+01 1.918954187425901736e+01 1.929382139674736152e+01 1.874177926832869900e+01 1.719605300624858657e+01 1.805273377507712240e+01
+6.481540602279950214e+00 6.168038755249549254e+00 5.210465948181809637e+00 5.089369673667069272e+00 9.938611948680158292e+00 7.138865668679311938e+00 6.921633235798408279e+00 8.398236413465349770e+00 6.091269439325320612e+00 9.749805919751127092e+00
+3.536193171566992977e+00 7.626952145713067344e-01 2.881441800834065869e+00 3.033575231914279691e+00 2.120653356511930099e+00 3.682221178123614269e+00 4.671835073845073794e+00 4.627842564533882097e+00 2.254196857020660527e+00 5.661902292037762630e-01
+8.444426510250453433e+00 9.366614579304037846e+00 8.181456769896239933e+00 8.805607685215790070e+00 5.800358174772864750e+00 7.307787372098949241e+00 5.046658099135466813e+00 6.233394322608114990e+00 8.632308575565023290e+00 9.959049756746818360e+00
+4.063655939373362713e+01 4.087836148984292350e+01 4.480133179246033137e+01 4.346584680126922962e+01 4.400685767731818032e+01 4.198817492866376710e+01 4.168156363752477489e+01 4.117242003391584859e+01 4.240324014156204413e+01 4.275914366767084118e+01
+4.701078190921983690e+01 4.551197231396588450e+01 4.530752868229319574e+01 4.525667185661838943e+01 4.690075070978834759e+01 4.668618875417921288e+01 4.858968511811284685e+01 4.871410750792433220e+01 4.525426984416869658e+01 4.610561631444507213e+01
+3.671483259850039360e+01 3.569122782817028394e+01 3.719732687179221386e+01 3.748161385642189458e+01 3.701823347246738649e+01 3.839330046913448768e+01 3.710448264379613192e+01 3.980708788923286789e+01 3.799638758911795833e+01 3.903738967825954376e+01
+1.328315536853938106e+01 1.120199456446753494e+01 1.095796472867412952e+01 1.459119543337718561e+01 1.050901841474768439e+01 1.252978953867465783e+01 1.110426391481504460e+01 1.019464981662833658e+01 1.018009409145713207e+01 1.087610886052913628e+01
+3.504655145381176595e+01 3.721196870374096477e+01 3.523034584837733973e+01 3.771938960580558842e+01 3.669277013718525637e+01 3.736717466797024656e+01 3.806585180371558863e+01 3.934400547908910539e+01 3.830950788235963955e+01 3.717024434239090169e+01
+3.223651378126299960e+01 3.482758959117383313e+01 3.188674238615155687e+01 3.129113406629991445e+01 3.121733522033380126e+01 3.228882306352067388e+01 3.379760074358472366e+01 3.102994092094236578e+01 3.354648063570384409e+01 3.010574911674708076e+01
+2.649711562401553167e+01 2.550077498753383409e+01 2.635858799449089673e+01 2.907977894707603284e+01 2.689157803582629924e+01 2.544198483573379121e+01 2.671112762389452300e+01 2.990691667120639963e+01 2.814841797629601317e+01 2.708080473203078853e+01
+9.368385570931692996e+00 9.920417345996476399e+00 8.841367069322590311e+00 7.088833910836669361e+00 7.106785011385350792e+00 8.687911507944457767e+00 6.193885728841511451e+00 5.552370565656973511e+00 6.773110788203882571e+00 6.436194958270409217e+00
+4.664073590257534363e+01 4.954094797848251375e+01 4.548476061799493664e+01 4.803204888371899983e+01 4.725747969559721895e+01 4.969234106182906174e+01 4.561259571268546864e+01 4.606013925251114216e+01 4.514770984305746993e+01 4.716967624815686833e+01
+1.130143428783001447e+01 1.453597515352914904e+01 1.335366155952917033e+01 1.280220315490219996e+01 1.055494734606740614e+01 1.223527771903212624e+01 1.230179135600963036e+01 1.432281804761334953e+01 1.273324110093894213e+01 1.190200274485204801e+01
+3.910900729627100247e+01 3.884625279620793492e+01 3.798361495053108428e+01 3.668601017584476409e+01 3.631254302133272205e+01 3.560944606040179394e+01 3.754878533450435896e+01 3.792630437754922923e+01 3.679669495257893885e+01 3.737679533840434232e+01
+3.884886153692792732e+01 3.780677912094668613e+01 3.941418245339039572e+01 3.763906054147810210e+01 3.758814914198983814e+01 3.788938540720454284e+01 3.874657677571217107e+01 3.982345239414230775e+01 3.536781677107882871e+01 3.526717301195508725e+01
+3.351640027021124979e+01 3.201263177745070720e+01 3.460020026272951554e+01 3.325127535546830870e+01 3.045209488895830319e+01 3.473928283626830193e+01 3.129278631820123024e+01 3.168606245203142890e+01 3.201130206841771297e+01 3.025612148202156604e+01
+3.536178628870663232e+01 3.940552574178283152e+01 3.628330844947956990e+01 3.796492373877747184e+01 3.967997089500888563e+01 3.839061250768322964e+01 3.707214906233518548e+01 3.844767104452707684e+01 3.671989818158185415e+01 3.638629208174592833e+01
+4.238376937754163976e+01 4.135337302982645014e+01 4.014585334287037455e+01 4.302550811118575069e+01 4.197872414923676843e+01 4.149336078693774965e+01 4.433470521415256371e+01 4.373371653899079803e+01 4.428882774186221383e+01 4.247491397356230181e+01
+4.911613179623249437e+01 4.551520846715491331e+01 4.613724127032399736e+01 4.501560825678204480e+01 4.651755062439055877e+01 4.554303701173246566e+01 4.736396672650791828e+01 4.838563744286950907e+01 4.937252647519038362e+01 4.874608582545449309e+01
+3.684691323791292916e+01 3.752904611296165172e+01 3.780174337175161980e+01 3.864307578396388720e+01 3.677422861715329105e+01 3.806342172337303964e+01 3.792687711395478090e+01 3.773808050326873342e+01 3.820241646571106031e+01 3.629724585534037828e+01
+2.467216519376720640e+01 2.344543826874114956e+01 2.411636606340015021e+01 2.278095346315005898e+01 2.389758350712031643e+01 2.008100198669733771e+01 2.409190212389767538e+01 2.020069429542683181e+01 2.444956688181431304e+01 2.495981373619321531e+01
+1.152655338348365710e+01 1.106322188185547972e+01 1.016594677281213066e+01 1.151973200620361837e+01 1.326581395265641561e+01 1.469152409224241396e+01 1.435602241131526036e+01 1.383032388267651314e+01 1.394223671626649264e+01 1.332492451737997641e+01
+3.884986809103300232e+01 3.551979687956194454e+01 3.981182658227264426e+01 3.945110335277277613e+01 3.635174295247792031e+01 3.911380121516165786e+01 3.759161961519911443e+01 3.730903240781009345e+01 3.657217052905702559e+01 3.790484293315796549e+01
+2.822575041650451766e+01 2.508484564657733173e+01 2.980183387311065246e+01 2.522294046367072085e+01 2.571530976361701093e+01 2.507007258763028545e+01 2.783429216647047255e+01 2.966133441960486294e+01 2.832973583040232057e+01 2.911328734240213834e+01
+4.668984989620239645e+01 4.734922717491837574e+01 4.665396495713827818e+01 4.877470100079164439e+01 4.664676762124977216e+01 4.569116043392668303e+01 4.699520226024151981e+01 4.989957216391189831e+01 4.612940706466788043e+01 4.806079329471614869e+01
+1.570611771686574798e+01 1.785438708419738063e+01 1.592635177691661852e+01 1.639321531557518341e+01 1.609354900161791591e+01 1.591418889934408476e+01 1.912855475780333592e+01 1.642853783830445025e+01 1.963561890932224685e+01 1.984963262672595619e+01
+4.971649198622826304e+01 4.763886104534438459e+01 4.770014596130344131e+01 4.730516784048906231e+01 4.662945071696821486e+01 4.737827515462458905e+01 4.801403766133379492e+01 4.992995786085329968e+01 4.968882279659111845e+01 4.931076479146560843e+01
+2.724539257067437958e+01 2.788806540318566718e+01 2.785453526876072416e+01 2.666213346087182501e+01 2.657766590331567613e+01 2.553311809468299032e+01 2.683399160323134325e+01 2.549747334436482404e+01 2.883297972356025696e+01 2.983137148874092759e+01
+3.930516699986119988e+01 3.782931536779809534e+01 3.578617832547116961e+01 3.845311371040671133e+01 3.756717248562910072e+01 3.825303261626051921e+01 3.944843706285832496e+01 3.720217285328023138e+01 3.950588811608677986e+01 3.875334507140827611e+01
+1.166095516557802370e+01 1.346809028736897673e+01 1.385561407925943200e+01 1.327325343432977256e+01 1.075797537400049642e+01 1.437941541758528530e+01 1.269547276368004418e+01 1.141236213185001880e+01 1.212614092718846948e+01 1.018785545199453679e+01
+4.252871149177722288e+01 4.408551066501307503e+01 4.430504410654006620e+01 4.307812198341563459e+01 4.006378239853714973e+01 4.347614827873867682e+01 4.208999608460175779e+01 4.282778741613193318e+01 4.324540301009442089e+01 4.175118307163538134e+01
+1.626636191761357608e+01 1.504989388329224731e+01 1.861721831177456110e+01 1.767828299673789161e+01 1.918058851603624504e+01 1.910694181450347173e+01 1.921663083893941604e+01 1.742547329989769977e+01 1.666814197918432683e+01 1.895779101295685010e+01
+2.338772902591887970e+01 2.273464437992738496e+01 2.237544936433383924e+01 2.461217141828062438e+01 2.036367473889334079e+01 2.140300406618958107e+01 2.174968926785356871e+01 2.391212906106393987e+01 2.496257310080985548e+01 2.120335257378576443e+01
+3.861223846483286870e+00 9.935784076708620294e-01 2.761058561801199573e-02 4.077307142274170459e+00 3.534286719238085794e+00 3.645035840204936761e+00 3.856351733429728590e+00 3.702232586704518047e-01 1.792328642721363163e+00 5.793452976256485698e-01
+3.598117140843928041e+01 3.845037677094398987e+01 3.695188223023477292e+01 3.707887400494825414e+01 3.734588748046385831e+01 3.683854254063771805e+01 3.550309988611294898e+01 3.654815905001422749e+01 3.831867180346969093e+01 3.832892200734435306e+01
+3.328974955602296149e+01 3.411948190812331916e+01 3.323759897785081563e+01 3.484472198587145897e+01 3.356978973932385912e+01 3.462329304791123263e+01 3.258565946005319347e+01 3.058532206490931316e+01 3.264088860711508744e+01 3.063436414031546562e+01
+2.367075629520823199e+01 2.170659322975026129e+01 2.239264184959761295e+01 2.464429774922782812e+01 2.165985752367922856e+01 2.232668466969742838e+01 2.006841207380340464e+01 2.040799360002419149e+01 2.129295795567391991e+01 2.013926120410537379e+01
+1.969264891736565204e+01 1.590591639525041323e+01 1.811376701619920482e+01 1.611338039561542601e+01 1.653608208510635436e+01 1.773229270864062102e+01 1.708596709282288373e+01 1.580112800488253200e+01 1.585468201210424155e+01 1.709072394081399793e+01
+3.256758933370885245e+01 3.475139611805703765e+01 3.267844485228015117e+01 3.197095247299953868e+01 3.424101564276448073e+01 3.246491355229044729e+01 3.235951255282261485e+01 3.245156244704914172e+01 3.423392500934872373e+01 3.415970770844025850e+01
+9.713658870675628165e+00 8.248233244961841848e+00 8.038683974394295717e+00 7.563442555082542818e+00 6.153349058588792886e+00 5.882640160027541754e+00 6.102431045350876992e+00 5.932191310721272259e+00 8.897922367833766444e+00 6.750626295833650481e+00
+3.210158230771438692e+00 4.206998249752441632e-01 8.081435704730688396e-01 4.492770942635396558e+00 3.032145298297949765e+00 4.598525808314823937e-02 5.073577143301605252e-01 3.317508845540278806e+00 2.530791923109343422e-02 8.040402570874932708e-01
+1.276855742679005701e+01 1.270852406205002083e+01 1.380950906302435044e+01 1.416824980968792858e+01 1.220220675156211954e+01 1.151166624675746775e+01 1.129667448658547180e+01 1.097311918352435889e+01 1.028823791099512519e+01 1.171223989417356748e+01
+5.038900068871332572e-01 9.110912825774863943e-02 4.722148037796419784e-01 3.415033867081784358e+00 3.559432423011449353e-01 1.594878151468806404e+00 4.224376554847272480e+00 1.163596786791293303e-01 4.072342412944679246e+00 1.409273873866999649e+00
+2.925426378661047622e+01 2.643067521229157180e+01 2.820223636996626482e+01 2.657081031918486147e+01 2.978985533241226946e+01 2.516711786217751978e+01 2.789896421916477465e+01 2.583251773524757411e+01 2.856110102588579380e+01 2.587945141709331054e+01
+1.135123846065391717e+01 1.483208692933203565e+01 1.278854413125021949e+01 1.173638519515253797e+01 1.290233800496848104e+01 1.069598350672847786e+01 1.222021874601101388e+01 1.313117160710531905e+01 1.244448915896225749e+01 1.200889400327162093e+01
+5.336753007343858712e+00 7.910852300881366261e+00 6.729415284764783678e+00 8.104577588837384994e+00 5.228710169062564361e+00 9.357684030761880933e+00 9.867444845886984339e+00 9.844389276428458402e+00 8.748259158714624562e+00 5.650431200653160069e+00
+1.878641489137750398e+01 1.948982323423894059e+01 1.542063831129691387e+01 1.696551953779700384e+01 1.550122781861438348e+01 1.508296240316298942e+01 1.830859341321978206e+01 1.801224720983293892e+01 1.581509556907443148e+01 1.616906416546532199e+01
+3.600169910548220997e+01 3.605503345853762909e+01 3.844146499213627521e+01 3.609861375055198351e+01 3.719335848401524203e+01 3.891000912796970823e+01 3.891976259048920639e+01 3.726630886262930176e+01 3.896094969137622854e+01 3.919310898099028151e+01
+1.236140902081490900e+01 1.440078368960742594e+01 1.107870339588227004e+01 1.338906600155022097e+01 1.303876061126361208e+01 1.147650738785916325e+01 1.068300451825586350e+01 1.325819880238638326e+01 1.369298729066165343e+01 1.157813671881675077e+01
+4.756011694554379687e+01 4.774420877796737273e+01 4.769163186004956145e+01 4.782536895740052785e+01 4.974352459119590719e+01 4.951122811548115976e+01 4.937858518279469422e+01 4.900708405454313521e+01 4.971714053632642560e+01 4.549247320839701558e+01
+4.593366497048685204e+01 4.672974758931601258e+01 4.673984333077608255e+01 4.734530170110576819e+01 4.667068205938086578e+01 4.553680559225333724e+01 4.572814369262725620e+01 4.516718992780548803e+01 4.735124542664377145e+01 4.977223847426494530e+01
+1.774429332538677784e+01 1.643816364521839191e+01 1.653388299761070712e+01 1.676479251726178177e+01 1.810646224524804992e+01 1.667024982834384517e+01 1.866349525295140310e+01 1.702263692786934968e+01 1.534176600154979297e+01 1.891879921242053797e+01
+2.466376469530156612e+01 2.010068924474644803e+01 2.076891852756608259e+01 2.443085647027996643e+01 2.229259281093507639e+01 2.282295319466731698e+01 2.331513601861573548e+01 2.339533302247818725e+01 2.465870201658254146e+01 2.498474708705834857e+01
+2.472874851112965189e+01 2.156459774014411224e+01 2.429253227275777149e+01 2.065843451718103552e+01 2.352520453176796167e+01 2.370988864756992953e+01 2.338861620600660274e+01 2.126157368067576670e+01 2.436521573507601701e+01 2.084429231685197337e+01
+5.400574231923375379e+00 9.474083280302638244e+00 7.737961880768681411e+00 9.086488849812468516e+00 7.261591422591500589e+00 8.217888475982624286e+00 7.632013304680565824e+00 8.657947608776659365e+00 5.408149910152947548e+00 5.301760419952818992e+00
+2.743668946832930722e+00 3.459475988463466045e+00 3.259806297513002882e+00 1.121346547302799035e+00 3.560896106737679201e+00 1.186245437484000353e+00 1.626998490796338626e+00 3.732457025590120825e+00 3.248164495236073535e+00 4.246117052470889774e+00
+2.727697452623970520e+01 2.759007674454259984e+01 2.503731570208609725e+01 2.711343309828712833e+01 2.859034080600430272e+01 2.721346850983717758e+01 2.866109603156111163e+01 2.616509482198417302e+01 2.906571002240862711e+01 2.794215620226726315e+01
+2.617691630949178716e+01 2.747185405522878909e+01 2.957417474998439033e+01 2.605857186073985332e+01 2.572120010559051906e+01 2.879488415927015410e+01 2.750309766166965630e+01 2.955892556190885756e+01 2.573307278579921231e+01 2.822963946511519850e+01
+2.655826458327324602e+01 2.762659132225360636e+01 2.533027653911080179e+01 2.986284117824868289e+01 2.680029950965363028e+01 2.738933677456567750e+01 2.677641987118461486e+01 2.841255865058100127e+01 2.831116079164796417e+01 2.857661155264568009e+01
+2.632585370591677787e+01 2.831429893817333010e+01 2.982724317300310446e+01 2.957907174095371872e+01 2.751437760032792568e+01 2.897555141263362444e+01 2.567872926549950563e+01 2.988719092102006059e+01 2.982176617017993436e+01 2.581864478939585439e+01
+2.630024020126217010e+01 2.692529027859480806e+01 2.971491392035567713e+01 2.805188029890846124e+01 2.917486892841480994e+01 2.855175750356166020e+01 2.556251565263315939e+01 2.867960203186974510e+01 2.637549440779562104e+01 2.819553923497353054e+01
+4.014267242990056772e+00 2.316011502301429381e-02 1.667495858455720903e+00 1.990843467954716672e+00 2.686978014689614280e+00 4.599278082063802842e+00 1.731729971829806258e+00 1.734766009481138571e+00 3.687506240548741765e+00 2.261089704449035676e+00
+4.001510435678080313e+01 4.123966224902903832e+01 4.463895739687657738e+01 4.466066957699141682e+01 4.360293209685318772e+01 4.382881660523769796e+01 4.045741478964823301e+01 4.256937917389117132e+01 4.115791495644499776e+01 4.090609021806808698e+01
+3.187985610964569716e+01 3.378155048490147294e+01 3.269830894451575887e+01 3.038741813277741244e+01 3.009014504479456065e+01 3.051166089767031409e+01 3.205249356848689501e+01 3.466596458524509217e+01 3.318701240604610803e+01 3.400912949937757901e+01
+1.725647056514627309e+01 1.591721098201717233e+01 1.927487009780737282e+01 1.941279938386173853e+01 1.733154878070084948e+01 1.537849863654893667e+01 1.693913044958465619e+01 1.901768829731301480e+01 1.950887014273114417e+01 1.601736371248797752e+01
+2.211885059965461764e+01 2.171066300055947451e+01 2.480775366068782972e+01 2.222426216413770561e+01 2.244524200224641675e+01 2.175824936170952739e+01 2.454774236506069229e+01 2.284477741640925430e+01 2.381087293590822185e+01 2.405903359175443157e+01
+6.159735480579877631e+00 6.954529979527572792e+00 7.972381675930865441e+00 7.483834294295847123e+00 9.938927601074436069e+00 5.682198762783665202e+00 8.475722770237968717e+00 7.021593840521460628e+00 7.140998074628074122e+00 8.587988828290882282e+00
+2.705563639129689690e+01 2.617162532825263455e+01 2.509825741373423824e+01 2.939696528403597853e+01 2.982804915690442016e+01 2.670785193515784073e+01 2.669253439712736409e+01 2.503545906387185482e+01 2.840125344165187116e+01 2.912719947874314386e+01
+3.123731490616573225e+01 3.322618822276665895e+01 3.325485872609272064e+01 3.412258534899964957e+01 3.208854283486488157e+01 3.036542545513075098e+01 3.136833192460728981e+01 3.490002731598408303e+01 3.298129287616350780e+01 3.354868542400510023e+01
+4.546515187370447819e+01 4.794633669378333707e+01 4.766058986229391081e+01 4.633188820715012213e+01 4.949726542276917485e+01 4.963683204730777021e+01 4.701305719170080977e+01 4.945151278556760133e+01 4.691974447131486414e+01 4.868408415914849741e+01
+2.087055015743894959e+00 1.110539052353651357e+00 5.993268366684140203e-01 1.688075857018139780e+00 4.714548519562596240e+00 1.616014660103776146e+00 2.593953108716830602e+00 3.515094794475889017e+00 1.818148011896469907e+00 4.858910413604803580e+00
+1.940849631032609546e+00 3.216441092211765884e+00 2.291264452457583367e+00 2.728083946579674901e+00 4.707324043882625375e+00 1.930513189003871144e+00 4.805952819119570840e+00 4.526753209780318699e+00 9.789556739464821966e-01 3.468065043758272736e-01
+4.101535296460031077e+01 4.200975962307609990e+01 4.422872439162881619e+01 4.173133025393965312e+01 4.327310596757731531e+01 4.354657147401741923e+01 4.293091177044171047e+01 4.178620984085068102e+01 4.288526670856771972e+01 4.171132796394873310e+01
+2.843617171730341653e+01 2.656417098762110029e+01 2.530452771617591523e+01 2.850782632801471195e+01 2.504913776284893956e+01 2.704591293729244228e+01 2.664689634651037764e+01 2.846688769259426266e+01 2.883122736380189366e+01 2.652047317985642039e+01
+4.337109816223698289e+01 4.110746774429819794e+01 4.017399599934174859e+01 4.204624786892698296e+01 4.144596575982934894e+01 4.404488874806854426e+01 4.400182094227672280e+01 4.228511976096312708e+01 4.303256112661609478e+01 4.302129757993462533e+01
+6.028436310977776103e+00 5.606932090797032586e+00 8.075064840194333016e+00 8.873168903188940249e+00 8.219521267705653500e+00 7.651510666245791015e+00 5.209756117158181432e+00 9.842443887971919381e+00 8.993570958272872673e+00 6.464110183504823581e+00
diff --git a/src/main/resources/train_pcaknnshort_class.txt b/src/main/resources/train_pcaknnshort_class.txt
new file mode 100644
index 00000000..151a5eb1
--- /dev/null
+++ b/src/main/resources/train_pcaknnshort_class.txt
@@ -0,0 +1,900 @@
+9.000000000000000000e+00
+0.000000000000000000e+00
+1.000000000000000000e+00
+1.000000000000000000e+00
+6.000000000000000000e+00
+9.000000000000000000e+00
+8.000000000000000000e+00
+6.000000000000000000e+00
+1.000000000000000000e+00
+1.000000000000000000e+00
+2.000000000000000000e+00
+7.000000000000000000e+00
+4.000000000000000000e+00
+3.000000000000000000e+00
+3.000000000000000000e+00
+2.000000000000000000e+00
+8.000000000000000000e+00
+2.000000000000000000e+00
+1.000000000000000000e+00
+3.000000000000000000e+00
+0.000000000000000000e+00
+0.000000000000000000e+00
+6.000000000000000000e+00
+6.000000000000000000e+00
+7.000000000000000000e+00
+9.000000000000000000e+00
+8.000000000000000000e+00
+5.000000000000000000e+00
+4.000000000000000000e+00
+1.000000000000000000e+00
+7.000000000000000000e+00
+5.000000000000000000e+00
+3.000000000000000000e+00
+2.000000000000000000e+00
+1.000000000000000000e+00
+6.000000000000000000e+00
+9.000000000000000000e+00
+5.000000000000000000e+00
+6.000000000000000000e+00
+2.000000000000000000e+00
+2.000000000000000000e+00
+1.000000000000000000e+00
+6.000000000000000000e+00
+8.000000000000000000e+00
+0.000000000000000000e+00
+5.000000000000000000e+00
+6.000000000000000000e+00
+4.000000000000000000e+00
+7.000000000000000000e+00
+6.000000000000000000e+00
+7.000000000000000000e+00
+4.000000000000000000e+00
+7.000000000000000000e+00
+1.000000000000000000e+00
+7.000000000000000000e+00
+1.000000000000000000e+00
+4.000000000000000000e+00
+5.000000000000000000e+00
+1.000000000000000000e+00
+0.000000000000000000e+00
+6.000000000000000000e+00
+9.000000000000000000e+00
+3.000000000000000000e+00
+9.000000000000000000e+00
+0.000000000000000000e+00
+3.000000000000000000e+00
+6.000000000000000000e+00
+2.000000000000000000e+00
+3.000000000000000000e+00
+8.000000000000000000e+00
+8.000000000000000000e+00
+5.000000000000000000e+00
+7.000000000000000000e+00
+6.000000000000000000e+00
+8.000000000000000000e+00
+4.000000000000000000e+00
+7.000000000000000000e+00
+0.000000000000000000e+00
+5.000000000000000000e+00
+6.000000000000000000e+00
+0.000000000000000000e+00
+1.000000000000000000e+00
+5.000000000000000000e+00
+8.000000000000000000e+00
+2.000000000000000000e+00
+2.000000000000000000e+00
+6.000000000000000000e+00
+4.000000000000000000e+00
+2.000000000000000000e+00
+7.000000000000000000e+00
+9.000000000000000000e+00
+8.000000000000000000e+00
+9.000000000000000000e+00
+5.000000000000000000e+00
+3.000000000000000000e+00
+2.000000000000000000e+00
+8.000000000000000000e+00
+0.000000000000000000e+00
+2.000000000000000000e+00
+1.000000000000000000e+00
+8.000000000000000000e+00
+8.000000000000000000e+00
+0.000000000000000000e+00
+3.000000000000000000e+00
+5.000000000000000000e+00
+9.000000000000000000e+00
+0.000000000000000000e+00
+1.000000000000000000e+00
+4.000000000000000000e+00
+0.000000000000000000e+00
+7.000000000000000000e+00
+9.000000000000000000e+00
+6.000000000000000000e+00
+0.000000000000000000e+00
+0.000000000000000000e+00
+7.000000000000000000e+00
+0.000000000000000000e+00
+2.000000000000000000e+00
+3.000000000000000000e+00
+2.000000000000000000e+00
+0.000000000000000000e+00
+2.000000000000000000e+00
+7.000000000000000000e+00
+9.000000000000000000e+00
+6.000000000000000000e+00
+7.000000000000000000e+00
+7.000000000000000000e+00
+2.000000000000000000e+00
+9.000000000000000000e+00
+3.000000000000000000e+00
+2.000000000000000000e+00
+2.000000000000000000e+00
+7.000000000000000000e+00
+4.000000000000000000e+00
+9.000000000000000000e+00
+4.000000000000000000e+00
+1.000000000000000000e+00
+6.000000000000000000e+00
+6.000000000000000000e+00
+5.000000000000000000e+00
+7.000000000000000000e+00
+9.000000000000000000e+00
+9.000000000000000000e+00
+8.000000000000000000e+00
+3.000000000000000000e+00
+4.000000000000000000e+00
+4.000000000000000000e+00
+5.000000000000000000e+00
+6.000000000000000000e+00
+2.000000000000000000e+00
+3.000000000000000000e+00
+6.000000000000000000e+00
+4.000000000000000000e+00
+1.000000000000000000e+00
+3.000000000000000000e+00
+4.000000000000000000e+00
+5.000000000000000000e+00
+8.000000000000000000e+00
+6.000000000000000000e+00
+1.000000000000000000e+00
+5.000000000000000000e+00
+9.000000000000000000e+00
+3.000000000000000000e+00
+7.000000000000000000e+00
+8.000000000000000000e+00
+1.000000000000000000e+00
+7.000000000000000000e+00
+0.000000000000000000e+00
+6.000000000000000000e+00
+0.000000000000000000e+00
+7.000000000000000000e+00
+0.000000000000000000e+00
+1.000000000000000000e+00
+3.000000000000000000e+00
+3.000000000000000000e+00
+7.000000000000000000e+00
+7.000000000000000000e+00
+2.000000000000000000e+00
+3.000000000000000000e+00
+4.000000000000000000e+00
+1.000000000000000000e+00
+3.000000000000000000e+00
+0.000000000000000000e+00
+5.000000000000000000e+00
+9.000000000000000000e+00
+1.000000000000000000e+00
+8.000000000000000000e+00
+7.000000000000000000e+00
+2.000000000000000000e+00
+9.000000000000000000e+00
+6.000000000000000000e+00
+3.000000000000000000e+00
+9.000000000000000000e+00
+3.000000000000000000e+00
+6.000000000000000000e+00
+3.000000000000000000e+00
+6.000000000000000000e+00
+1.000000000000000000e+00
+6.000000000000000000e+00
+4.000000000000000000e+00
+5.000000000000000000e+00
+0.000000000000000000e+00
+1.000000000000000000e+00
+6.000000000000000000e+00
+3.000000000000000000e+00
+5.000000000000000000e+00
+8.000000000000000000e+00
+5.000000000000000000e+00
+6.000000000000000000e+00
+3.000000000000000000e+00
+9.000000000000000000e+00
+9.000000000000000000e+00
+4.000000000000000000e+00
+6.000000000000000000e+00
+3.000000000000000000e+00
+8.000000000000000000e+00
+4.000000000000000000e+00
+3.000000000000000000e+00
+5.000000000000000000e+00
+0.000000000000000000e+00
+1.000000000000000000e+00
+4.000000000000000000e+00
+9.000000000000000000e+00
+5.000000000000000000e+00
+3.000000000000000000e+00
+1.000000000000000000e+00
+1.000000000000000000e+00
+2.000000000000000000e+00
+8.000000000000000000e+00
+1.000000000000000000e+00
+3.000000000000000000e+00
+4.000000000000000000e+00
+6.000000000000000000e+00
+5.000000000000000000e+00
+9.000000000000000000e+00
+6.000000000000000000e+00
+7.000000000000000000e+00
+6.000000000000000000e+00
+0.000000000000000000e+00
+9.000000000000000000e+00
+7.000000000000000000e+00
+1.000000000000000000e+00
+7.000000000000000000e+00
+4.000000000000000000e+00
+3.000000000000000000e+00
+4.000000000000000000e+00
+2.000000000000000000e+00
+9.000000000000000000e+00
+2.000000000000000000e+00
+7.000000000000000000e+00
+7.000000000000000000e+00
+3.000000000000000000e+00
+1.000000000000000000e+00
+4.000000000000000000e+00
+4.000000000000000000e+00
+9.000000000000000000e+00
+0.000000000000000000e+00
+0.000000000000000000e+00
+2.000000000000000000e+00
+1.000000000000000000e+00
+5.000000000000000000e+00
+7.000000000000000000e+00
+5.000000000000000000e+00
+8.000000000000000000e+00
+3.000000000000000000e+00
+9.000000000000000000e+00
+5.000000000000000000e+00
+5.000000000000000000e+00
+8.000000000000000000e+00
+9.000000000000000000e+00
+4.000000000000000000e+00
+4.000000000000000000e+00
+3.000000000000000000e+00
+6.000000000000000000e+00
+7.000000000000000000e+00
+9.000000000000000000e+00
+3.000000000000000000e+00
+0.000000000000000000e+00
+8.000000000000000000e+00
+5.000000000000000000e+00
+4.000000000000000000e+00
+2.000000000000000000e+00
+0.000000000000000000e+00
+0.000000000000000000e+00
+2.000000000000000000e+00
+1.000000000000000000e+00
+6.000000000000000000e+00
+2.000000000000000000e+00
+1.000000000000000000e+00
+5.000000000000000000e+00
+8.000000000000000000e+00
+2.000000000000000000e+00
+3.000000000000000000e+00
+0.000000000000000000e+00
+1.000000000000000000e+00
+2.000000000000000000e+00
+0.000000000000000000e+00
+8.000000000000000000e+00
+3.000000000000000000e+00
+6.000000000000000000e+00
+0.000000000000000000e+00
+2.000000000000000000e+00
+1.000000000000000000e+00
+1.000000000000000000e+00
+8.000000000000000000e+00
+0.000000000000000000e+00
+5.000000000000000000e+00
+7.000000000000000000e+00
+0.000000000000000000e+00
+8.000000000000000000e+00
+4.000000000000000000e+00
+4.000000000000000000e+00
+2.000000000000000000e+00
+1.000000000000000000e+00
+8.000000000000000000e+00
+9.000000000000000000e+00
+4.000000000000000000e+00
+4.000000000000000000e+00
+7.000000000000000000e+00
+9.000000000000000000e+00
+9.000000000000000000e+00
+5.000000000000000000e+00
+8.000000000000000000e+00
+0.000000000000000000e+00
+4.000000000000000000e+00
+7.000000000000000000e+00
+9.000000000000000000e+00
+2.000000000000000000e+00
+0.000000000000000000e+00
+5.000000000000000000e+00
+1.000000000000000000e+00
+8.000000000000000000e+00
+0.000000000000000000e+00
+8.000000000000000000e+00
+8.000000000000000000e+00
+1.000000000000000000e+00
+8.000000000000000000e+00
+5.000000000000000000e+00
+5.000000000000000000e+00
+7.000000000000000000e+00
+6.000000000000000000e+00
+2.000000000000000000e+00
+4.000000000000000000e+00
+0.000000000000000000e+00
+0.000000000000000000e+00
+5.000000000000000000e+00
+8.000000000000000000e+00
+4.000000000000000000e+00
+4.000000000000000000e+00
+8.000000000000000000e+00
+7.000000000000000000e+00
+7.000000000000000000e+00
+6.000000000000000000e+00
+6.000000000000000000e+00
+0.000000000000000000e+00
+0.000000000000000000e+00
+7.000000000000000000e+00
+7.000000000000000000e+00
+9.000000000000000000e+00
+2.000000000000000000e+00
+7.000000000000000000e+00
+5.000000000000000000e+00
+1.000000000000000000e+00
+9.000000000000000000e+00
+5.000000000000000000e+00
+1.000000000000000000e+00
+8.000000000000000000e+00
+8.000000000000000000e+00
+6.000000000000000000e+00
+3.000000000000000000e+00
+5.000000000000000000e+00
+7.000000000000000000e+00
+7.000000000000000000e+00
+1.000000000000000000e+00
+3.000000000000000000e+00
+5.000000000000000000e+00
+1.000000000000000000e+00
+2.000000000000000000e+00
+7.000000000000000000e+00
+2.000000000000000000e+00
+3.000000000000000000e+00
+3.000000000000000000e+00
+6.000000000000000000e+00
+9.000000000000000000e+00
+5.000000000000000000e+00
+5.000000000000000000e+00
+0.000000000000000000e+00
+2.000000000000000000e+00
+7.000000000000000000e+00
+6.000000000000000000e+00
+4.000000000000000000e+00
+6.000000000000000000e+00
+6.000000000000000000e+00
+9.000000000000000000e+00
+8.000000000000000000e+00
+4.000000000000000000e+00
+3.000000000000000000e+00
+2.000000000000000000e+00
+5.000000000000000000e+00
+1.000000000000000000e+00
+8.000000000000000000e+00
+6.000000000000000000e+00
+5.000000000000000000e+00
+6.000000000000000000e+00
+0.000000000000000000e+00
+0.000000000000000000e+00
+0.000000000000000000e+00
+4.000000000000000000e+00
+5.000000000000000000e+00
+2.000000000000000000e+00
+6.000000000000000000e+00
+3.000000000000000000e+00
+7.000000000000000000e+00
+1.000000000000000000e+00
+0.000000000000000000e+00
+4.000000000000000000e+00
+8.000000000000000000e+00
+2.000000000000000000e+00
+8.000000000000000000e+00
+2.000000000000000000e+00
+2.000000000000000000e+00
+7.000000000000000000e+00
+5.000000000000000000e+00
+8.000000000000000000e+00
+2.000000000000000000e+00
+5.000000000000000000e+00
+1.000000000000000000e+00
+4.000000000000000000e+00
+3.000000000000000000e+00
+7.000000000000000000e+00
+4.000000000000000000e+00
+0.000000000000000000e+00
+5.000000000000000000e+00
+7.000000000000000000e+00
+1.000000000000000000e+00
+2.000000000000000000e+00
+7.000000000000000000e+00
+3.000000000000000000e+00
+1.000000000000000000e+00
+8.000000000000000000e+00
+9.000000000000000000e+00
+8.000000000000000000e+00
+9.000000000000000000e+00
+1.000000000000000000e+00
+6.000000000000000000e+00
+9.000000000000000000e+00
+5.000000000000000000e+00
+0.000000000000000000e+00
+7.000000000000000000e+00
+1.000000000000000000e+00
+9.000000000000000000e+00
+6.000000000000000000e+00
+1.000000000000000000e+00
+1.000000000000000000e+00
+3.000000000000000000e+00
+6.000000000000000000e+00
+7.000000000000000000e+00
+5.000000000000000000e+00
+6.000000000000000000e+00
+8.000000000000000000e+00
+2.000000000000000000e+00
+3.000000000000000000e+00
+6.000000000000000000e+00
+5.000000000000000000e+00
+7.000000000000000000e+00
+6.000000000000000000e+00
+0.000000000000000000e+00
+9.000000000000000000e+00
+5.000000000000000000e+00
+0.000000000000000000e+00
+7.000000000000000000e+00
+8.000000000000000000e+00
+3.000000000000000000e+00
+4.000000000000000000e+00
+0.000000000000000000e+00
+8.000000000000000000e+00
+5.000000000000000000e+00
+7.000000000000000000e+00
+9.000000000000000000e+00
+9.000000000000000000e+00
+5.000000000000000000e+00
+4.000000000000000000e+00
+8.000000000000000000e+00
+2.000000000000000000e+00
+8.000000000000000000e+00
+4.000000000000000000e+00
+9.000000000000000000e+00
+7.000000000000000000e+00
+7.000000000000000000e+00
+6.000000000000000000e+00
+4.000000000000000000e+00
+6.000000000000000000e+00
+2.000000000000000000e+00
+8.000000000000000000e+00
+2.000000000000000000e+00
+7.000000000000000000e+00
+1.000000000000000000e+00
+3.000000000000000000e+00
+8.000000000000000000e+00
+7.000000000000000000e+00
+5.000000000000000000e+00
+1.000000000000000000e+00
+5.000000000000000000e+00
+7.000000000000000000e+00
+6.000000000000000000e+00
+0.000000000000000000e+00
+6.000000000000000000e+00
+0.000000000000000000e+00
+6.000000000000000000e+00
+0.000000000000000000e+00
+2.000000000000000000e+00
+2.000000000000000000e+00
+6.000000000000000000e+00
+5.000000000000000000e+00
+7.000000000000000000e+00
+3.000000000000000000e+00
+9.000000000000000000e+00
+5.000000000000000000e+00
+8.000000000000000000e+00
+5.000000000000000000e+00
+3.000000000000000000e+00
+5.000000000000000000e+00
+3.000000000000000000e+00
+1.000000000000000000e+00
+8.000000000000000000e+00
+0.000000000000000000e+00
+1.000000000000000000e+00
+5.000000000000000000e+00
+4.000000000000000000e+00
+4.000000000000000000e+00
+6.000000000000000000e+00
+4.000000000000000000e+00
+3.000000000000000000e+00
+4.000000000000000000e+00
+1.000000000000000000e+00
+9.000000000000000000e+00
+3.000000000000000000e+00
+6.000000000000000000e+00
+1.000000000000000000e+00
+3.000000000000000000e+00
+8.000000000000000000e+00
+7.000000000000000000e+00
+0.000000000000000000e+00
+8.000000000000000000e+00
+0.000000000000000000e+00
+2.000000000000000000e+00
+6.000000000000000000e+00
+6.000000000000000000e+00
+8.000000000000000000e+00
+8.000000000000000000e+00
+0.000000000000000000e+00
+4.000000000000000000e+00
+6.000000000000000000e+00
+6.000000000000000000e+00
+3.000000000000000000e+00
+6.000000000000000000e+00
+9.000000000000000000e+00
+3.000000000000000000e+00
+8.000000000000000000e+00
+3.000000000000000000e+00
+8.000000000000000000e+00
+9.000000000000000000e+00
+9.000000000000000000e+00
+9.000000000000000000e+00
+9.000000000000000000e+00
+7.000000000000000000e+00
+9.000000000000000000e+00
+7.000000000000000000e+00
+7.000000000000000000e+00
+2.000000000000000000e+00
+5.000000000000000000e+00
+7.000000000000000000e+00
+3.000000000000000000e+00
+8.000000000000000000e+00
+4.000000000000000000e+00
+9.000000000000000000e+00
+8.000000000000000000e+00
+8.000000000000000000e+00
+8.000000000000000000e+00
+2.000000000000000000e+00
+6.000000000000000000e+00
+8.000000000000000000e+00
+0.000000000000000000e+00
+3.000000000000000000e+00
+5.000000000000000000e+00
+2.000000000000000000e+00
+3.000000000000000000e+00
+5.000000000000000000e+00
+5.000000000000000000e+00
+4.000000000000000000e+00
+3.000000000000000000e+00
+4.000000000000000000e+00
+9.000000000000000000e+00
+4.000000000000000000e+00
+9.000000000000000000e+00
+4.000000000000000000e+00
+3.000000000000000000e+00
+4.000000000000000000e+00
+8.000000000000000000e+00
+2.000000000000000000e+00
+3.000000000000000000e+00
+8.000000000000000000e+00
+3.000000000000000000e+00
+9.000000000000000000e+00
+0.000000000000000000e+00
+0.000000000000000000e+00
+6.000000000000000000e+00
+3.000000000000000000e+00
+8.000000000000000000e+00
+2.000000000000000000e+00
+4.000000000000000000e+00
+3.000000000000000000e+00
+3.000000000000000000e+00
+5.000000000000000000e+00
+3.000000000000000000e+00
+7.000000000000000000e+00
+2.000000000000000000e+00
+9.000000000000000000e+00
+6.000000000000000000e+00
+4.000000000000000000e+00
+2.000000000000000000e+00
+0.000000000000000000e+00
+6.000000000000000000e+00
+2.000000000000000000e+00
+8.000000000000000000e+00
+2.000000000000000000e+00
+9.000000000000000000e+00
+2.000000000000000000e+00
+9.000000000000000000e+00
+9.000000000000000000e+00
+6.000000000000000000e+00
+8.000000000000000000e+00
+3.000000000000000000e+00
+9.000000000000000000e+00
+6.000000000000000000e+00
+6.000000000000000000e+00
+9.000000000000000000e+00
+4.000000000000000000e+00
+9.000000000000000000e+00
+2.000000000000000000e+00
+1.000000000000000000e+00
+1.000000000000000000e+00
+6.000000000000000000e+00
+2.000000000000000000e+00
+8.000000000000000000e+00
+8.000000000000000000e+00
+9.000000000000000000e+00
+2.000000000000000000e+00
+3.000000000000000000e+00
+2.000000000000000000e+00
+0.000000000000000000e+00
+3.000000000000000000e+00
+1.000000000000000000e+00
+1.000000000000000000e+00
+6.000000000000000000e+00
+5.000000000000000000e+00
+6.000000000000000000e+00
+5.000000000000000000e+00
+1.000000000000000000e+00
+1.000000000000000000e+00
+1.000000000000000000e+00
+4.000000000000000000e+00
+0.000000000000000000e+00
+9.000000000000000000e+00
+8.000000000000000000e+00
+8.000000000000000000e+00
+7.000000000000000000e+00
+3.000000000000000000e+00
+4.000000000000000000e+00
+8.000000000000000000e+00
+4.000000000000000000e+00
+2.000000000000000000e+00
+2.000000000000000000e+00
+2.000000000000000000e+00
+1.000000000000000000e+00
+5.000000000000000000e+00
+1.000000000000000000e+00
+4.000000000000000000e+00
+1.000000000000000000e+00
+3.000000000000000000e+00
+5.000000000000000000e+00
+3.000000000000000000e+00
+6.000000000000000000e+00
+0.000000000000000000e+00
+4.000000000000000000e+00
+7.000000000000000000e+00
+8.000000000000000000e+00
+1.000000000000000000e+00
+5.000000000000000000e+00
+5.000000000000000000e+00
+1.000000000000000000e+00
+9.000000000000000000e+00
+5.000000000000000000e+00
+2.000000000000000000e+00
+0.000000000000000000e+00
+3.000000000000000000e+00
+1.000000000000000000e+00
+7.000000000000000000e+00
+9.000000000000000000e+00
+8.000000000000000000e+00
+0.000000000000000000e+00
+0.000000000000000000e+00
+7.000000000000000000e+00
+2.000000000000000000e+00
+3.000000000000000000e+00
+1.000000000000000000e+00
+3.000000000000000000e+00
+4.000000000000000000e+00
+8.000000000000000000e+00
+6.000000000000000000e+00
+6.000000000000000000e+00
+1.000000000000000000e+00
+9.000000000000000000e+00
+8.000000000000000000e+00
+9.000000000000000000e+00
+5.000000000000000000e+00
+4.000000000000000000e+00
+0.000000000000000000e+00
+1.000000000000000000e+00
+4.000000000000000000e+00
+4.000000000000000000e+00
+4.000000000000000000e+00
+0.000000000000000000e+00
+2.000000000000000000e+00
+9.000000000000000000e+00
+5.000000000000000000e+00
+3.000000000000000000e+00
+0.000000000000000000e+00
+7.000000000000000000e+00
+1.000000000000000000e+00
+3.000000000000000000e+00
+9.000000000000000000e+00
+9.000000000000000000e+00
+6.000000000000000000e+00
+4.000000000000000000e+00
+6.000000000000000000e+00
+2.000000000000000000e+00
+4.000000000000000000e+00
+5.000000000000000000e+00
+4.000000000000000000e+00
+7.000000000000000000e+00
+8.000000000000000000e+00
+7.000000000000000000e+00
+0.000000000000000000e+00
+4.000000000000000000e+00
+0.000000000000000000e+00
+2.000000000000000000e+00
+5.000000000000000000e+00
+7.000000000000000000e+00
+7.000000000000000000e+00
+3.000000000000000000e+00
+2.000000000000000000e+00
+9.000000000000000000e+00
+5.000000000000000000e+00
+6.000000000000000000e+00
+5.000000000000000000e+00
+1.000000000000000000e+00
+7.000000000000000000e+00
+9.000000000000000000e+00
+1.000000000000000000e+00
+4.000000000000000000e+00
+5.000000000000000000e+00
+6.000000000000000000e+00
+4.000000000000000000e+00
+0.000000000000000000e+00
+0.000000000000000000e+00
+4.000000000000000000e+00
+2.000000000000000000e+00
+8.000000000000000000e+00
+0.000000000000000000e+00
+3.000000000000000000e+00
+4.000000000000000000e+00
+7.000000000000000000e+00
+8.000000000000000000e+00
+5.000000000000000000e+00
+0.000000000000000000e+00
+4.000000000000000000e+00
+2.000000000000000000e+00
+0.000000000000000000e+00
+4.000000000000000000e+00
+1.000000000000000000e+00
+1.000000000000000000e+00
+3.000000000000000000e+00
+5.000000000000000000e+00
+7.000000000000000000e+00
+3.000000000000000000e+00
+3.000000000000000000e+00
+4.000000000000000000e+00
+5.000000000000000000e+00
+0.000000000000000000e+00
+4.000000000000000000e+00
+4.000000000000000000e+00
+2.000000000000000000e+00
+4.000000000000000000e+00
+4.000000000000000000e+00
+9.000000000000000000e+00
+0.000000000000000000e+00
+2.000000000000000000e+00
+3.000000000000000000e+00
+0.000000000000000000e+00
+9.000000000000000000e+00
+0.000000000000000000e+00
+2.000000000000000000e+00
+6.000000000000000000e+00
+5.000000000000000000e+00
+5.000000000000000000e+00
+8.000000000000000000e+00
+8.000000000000000000e+00
+9.000000000000000000e+00
+6.000000000000000000e+00
+1.000000000000000000e+00
+0.000000000000000000e+00
+4.000000000000000000e+00
+3.000000000000000000e+00
+1.000000000000000000e+00
+8.000000000000000000e+00
+7.000000000000000000e+00
+3.000000000000000000e+00
+4.000000000000000000e+00
+9.000000000000000000e+00
+0.000000000000000000e+00
+5.000000000000000000e+00
+1.000000000000000000e+00
+7.000000000000000000e+00
+4.000000000000000000e+00
+5.000000000000000000e+00
+4.000000000000000000e+00
+7.000000000000000000e+00
+4.000000000000000000e+00
+0.000000000000000000e+00
+1.000000000000000000e+00
+0.000000000000000000e+00
+1.000000000000000000e+00
+2.000000000000000000e+00
+1.000000000000000000e+00
+2.000000000000000000e+00
+9.000000000000000000e+00
+2.000000000000000000e+00
+2.000000000000000000e+00
+9.000000000000000000e+00
+8.000000000000000000e+00
+2.000000000000000000e+00
+9.000000000000000000e+00
+7.000000000000000000e+00
+6.000000000000000000e+00
+1.000000000000000000e+00
+0.000000000000000000e+00
+2.000000000000000000e+00
+0.000000000000000000e+00
+8.000000000000000000e+00
+4.000000000000000000e+00
+3.000000000000000000e+00
+2.000000000000000000e+00
+2.000000000000000000e+00
+2.000000000000000000e+00
+6.000000000000000000e+00
+2.000000000000000000e+00
+7.000000000000000000e+00
+6.000000000000000000e+00
+7.000000000000000000e+00
+9.000000000000000000e+00
+4.000000000000000000e+00
+7.000000000000000000e+00
+8.000000000000000000e+00
+9.000000000000000000e+00
+9.000000000000000000e+00
+5.000000000000000000e+00
+8.000000000000000000e+00
+1.000000000000000000e+00
+4.000000000000000000e+00
+1.000000000000000000e+00
+5.000000000000000000e+00
+8.000000000000000000e+00
+5.000000000000000000e+00
+0.000000000000000000e+00
+2.000000000000000000e+00
+9.000000000000000000e+00
+7.000000000000000000e+00
+2.000000000000000000e+00
+6.000000000000000000e+00
+1.000000000000000000e+00
+7.000000000000000000e+00
+9.000000000000000000e+00
+0.000000000000000000e+00
+3.000000000000000000e+00
+8.000000000000000000e+00
+9.000000000000000000e+00
+7.000000000000000000e+00
+6.000000000000000000e+00
+8.000000000000000000e+00
+3.000000000000000000e+00
+3.000000000000000000e+00
+7.000000000000000000e+00
+6.000000000000000000e+00
+9.000000000000000000e+00
+3.000000000000000000e+00
+9.000000000000000000e+00
+1.000000000000000000e+00
+1.000000000000000000e+00
+2.000000000000000000e+00
diff --git a/src/main/resources/train_pcaknnshort_data.txt b/src/main/resources/train_pcaknnshort_data.txt
new file mode 100644
index 00000000..4a1173d7
--- /dev/null
+++ b/src/main/resources/train_pcaknnshort_data.txt
@@ -0,0 +1,900 @@
+4.556120535995794540e+01 4.645611659289138373e+01 4.807091861992269344e+01 4.902160163048586128e+01 4.949625153490782736e+01 4.811876692184616644e+01 4.502815656374026787e+01 4.593158388259266900e+01 4.549863101926683839e+01 4.681662237784505010e+01
+1.571459284336712559e-01 3.182052056318902089e+00 1.571779905381633480e+00 2.542853455823514075e+00 4.537832369630464768e+00 1.246461145744374832e+00 2.051914615178148438e+00 3.777755692715243363e+00 1.143990827458112314e+00 3.848995491439649586e-01
+7.326028061418590198e+00 5.300711713003925851e+00 7.811484079389549251e+00 9.788126422526900683e+00 5.876514711788297873e+00 8.450024454103328253e+00 6.004668443295281932e+00 7.679138422365406669e+00 5.483382248233597878e+00 7.251854681290925697e+00
+8.084634591878710808e+00 9.905930890137117473e+00 8.159067635083342651e+00 6.299017905320798860e+00 8.170028515498056976e+00 7.699926898579277257e+00 8.899226975755718527e+00 5.534903194134791704e+00 8.805139512510139710e+00 7.706332893380551496e+00
+3.386997543647004250e+01 3.026036203110635014e+01 3.006410824755302968e+01 3.397772195963324293e+01 3.238573187994524716e+01 3.065440569276788096e+01 3.117782967297250707e+01 3.466251976548691260e+01 3.429751487812448829e+01 3.354892525111986146e+01
+4.754155847138347468e+01 4.511987723688265817e+01 4.656512677350790597e+01 4.909934073763502482e+01 4.776970866927318582e+01 4.725291246408058754e+01 4.642762535857669803e+01 4.649021261395677840e+01 4.691550716795292431e+01 4.917785354982279955e+01
+4.041936869276005950e+01 4.496401989093007501e+01 4.063591226816255642e+01 4.036174191918028953e+01 4.439265374603577641e+01 4.150917330446447551e+01 4.325148487036754119e+01 4.164502864831116113e+01 4.195727135397235941e+01 4.131056486008398565e+01
+3.434770584429609386e+01 3.382047793289439852e+01 3.123906221453453469e+01 3.018170374158121305e+01 3.050923632571191391e+01 3.364246966923720095e+01 3.099834869020323325e+01 3.185635460252697015e+01 3.250849583003212473e+01 3.362734084225081688e+01
+7.595408925681089940e+00 7.395909388148655061e+00 5.128210329032178549e+00 6.706239138130781541e+00 6.900978093929285073e+00 6.994113904484501987e+00 7.900861846136661981e+00 7.668012733634392397e+00 8.039525463967223118e+00 8.824416307710642116e+00
+5.591680954616936816e+00 7.049524448481441219e+00 9.199011428178085481e+00 6.919164759665219933e+00 7.859361356135933008e+00 7.938846804310990990e+00 5.922381265668196448e+00 6.811177208261441685e+00 6.672556443709661167e+00 5.130983542660324304e+00
+1.165782349533596829e+01 1.427515100809967663e+01 1.103537904605427578e+01 1.035579142586716372e+01 1.034503796306408141e+01 1.470392260251554006e+01 1.253460218980917418e+01 1.204706035908509065e+01 1.405439290503959171e+01 1.417912963955258121e+01
+3.864944558851799172e+01 3.705466452481378781e+01 3.814609596504146083e+01 3.849656460577651984e+01 3.855560908507642637e+01 3.525983049065590080e+01 3.929873902842533084e+01 3.729126657382524002e+01 3.631208040848107288e+01 3.620882253739840451e+01
+2.490628788695638463e+01 2.190808249554567411e+01 2.387617269449528123e+01 2.171295541405565999e+01 2.313834438579404207e+01 2.096008042370018387e+01 2.073010509648481303e+01 2.469032069784065442e+01 2.458823638952216584e+01 2.443734470106441137e+01
+1.685556469215064013e+01 1.960383304231678636e+01 1.792224454878713047e+01 1.769165971627856848e+01 1.634426757191096868e+01 1.684224459958289444e+01 1.947673044576584545e+01 1.833231523763417670e+01 1.893693513376166493e+01 1.727172711533827609e+01
+1.637644106725930016e+01 1.578103284343310975e+01 1.817970163413355422e+01 1.799651058069719056e+01 1.589678005144620521e+01 1.852569572785281693e+01 1.727585995866828128e+01 1.833880295801576565e+01 1.918683539885075362e+01 1.584864214288461604e+01
+1.351842988730397899e+01 1.270349238322455143e+01 1.048267235097720373e+01 1.120946914129419447e+01 1.006202018138657373e+01 1.234383982732252960e+01 1.150632630380000165e+01 1.299178742148879451e+01 1.148618903854308648e+01 1.149959555753492424e+01
+4.413579074213811282e+01 4.212501207061598762e+01 4.137723339895254782e+01 4.132517459070273702e+01 4.268096139641102127e+01 4.224574101366106049e+01 4.220060385492467958e+01 4.045568669544853435e+01 4.359301870345097996e+01 4.106868343990955594e+01
+1.326145824295969788e+01 1.422802181494953366e+01 1.346246413334612591e+01 1.214965538695074088e+01 1.336483311197216217e+01 1.137690587127709207e+01 1.153156749389106395e+01 1.394492579960396661e+01 1.223209758200790986e+01 1.399190170259176291e+01
+5.835209539504749188e+00 5.838096081441587870e+00 5.183357134667715194e+00 8.682010075328202348e+00 8.319022638109025536e+00 7.373154378749068982e+00 9.220852244845985979e+00 9.028350764750266322e+00 7.926771821983760624e+00 9.341356402566294292e+00
+1.916181769830497572e+01 1.902824402681670790e+01 1.612159279426763092e+01 1.613039535505281208e+01 1.908652656106618295e+01 1.965199210084662695e+01 1.547680460636501820e+01 1.725029319713112486e+01 1.668727139482114552e+01 1.935344227728719702e+01
+1.618396182021218266e+00 2.127182193082084005e+00 2.538051893422275107e+00 1.212048662075401184e+00 5.741841236960176786e-01 3.053100212208162745e+00 1.443152766201278858e+00 2.906191107113061278e+00 7.718135763710115560e-01 2.405700509274087295e+00
+2.313398928348032069e+00 1.506889370820710283e+00 3.738046900881255574e+00 2.513601950462395873e+00 1.161063475734086525e+00 4.497872866372842005e+00 1.919456106866057166e+00 2.717764305569942973e+00 4.532360554822735033e+00 3.121189979569960471e+00
+3.467205397285607660e+01 3.024232116237911328e+01 3.105138088950930708e+01 3.282944302550879456e+01 3.307776311596589380e+01 3.019778753281306649e+01 3.201519378953565820e+01 3.324576982415436532e+01 3.349035273201700846e+01 3.319069951258134665e+01
+3.360724578554786035e+01 3.470639464453398659e+01 3.440817674587705710e+01 3.257596113069106991e+01 3.387326309896509002e+01 3.281072376913792255e+01 3.276351945022769740e+01 3.057370979169095904e+01 3.063068829008075866e+01 3.264766807511228563e+01
+3.953731588173212685e+01 3.561240708425148682e+01 3.767018056602328357e+01 3.939731346755946362e+01 3.705011893370871690e+01 3.740997458866433334e+01 3.535230338833478925e+01 3.639071820224455678e+01 3.662253324584473546e+01 3.972561224372443434e+01
+4.643030025829642682e+01 4.758418383867249446e+01 4.631681809499039559e+01 4.604932338639560641e+01 4.799549662551375917e+01 4.544464761377511763e+01 4.529083879360462106e+01 4.686122647593035850e+01 4.860332227253930881e+01 4.777403379136973882e+01
+4.214009676219821898e+01 4.329141891713078394e+01 4.131903037473178841e+01 4.006034967650308687e+01 4.259468682132378348e+01 4.302879744679486151e+01 4.481435247000904809e+01 4.294735401546623166e+01 4.235586279689071176e+01 4.286700812948851791e+01
+2.649964698736533109e+01 2.737154332434215220e+01 2.584010026096339274e+01 2.677398644828194207e+01 2.699991509146784097e+01 2.528695921844136763e+01 2.791653624092102248e+01 2.942171713985643677e+01 2.575871456476526333e+01 2.798904006700757208e+01
+2.197526668928398053e+01 2.025631729587999175e+01 2.200938135618369884e+01 2.336878114892044778e+01 2.225175192890396403e+01 2.374481575430199243e+01 2.178491214734332004e+01 2.317372070552014662e+01 2.093209902426987412e+01 2.374684718322478361e+01
+7.933042315877370854e+00 5.840071038724317098e+00 8.684368724720910038e+00 9.313985387716142483e+00 6.083699000453878014e+00 5.478572777600808408e+00 5.118192930231682425e+00 8.209857502216330261e+00 8.035470180443903487e+00 7.733487063570350095e+00
+3.739727489074882527e+01 3.683638850640354434e+01 3.956907261312471746e+01 3.684147733827855120e+01 3.686722295572717911e+01 3.691767256216988358e+01 3.918310105183829251e+01 3.825394160423451240e+01 3.807084425159446539e+01 3.667071511191931421e+01
+2.667908182320767452e+01 2.807534877007348939e+01 2.963453781072932003e+01 2.981029249470675779e+01 2.754479520211023669e+01 2.726412402642163357e+01 2.639347157964262891e+01 2.979435936595205092e+01 2.571407152236433546e+01 2.789914788023862613e+01
+1.661513672877046943e+01 1.948959593478832986e+01 1.944059094467017701e+01 1.662645309180873809e+01 1.950480447845233911e+01 1.998078836749389353e+01 1.912707832061974145e+01 1.922435673877614448e+01 1.624504368054545012e+01 1.788351199428878147e+01
+1.344137117890118560e+01 1.070276483789180411e+01 1.242794849829698833e+01 1.013768359934732821e+01 1.252727558955225007e+01 1.482008703558851082e+01 1.192103356492900090e+01 1.019498006287455816e+01 1.015477895459671842e+01 1.193993379973434799e+01
+6.344967022175488580e+00 8.987795503185941115e+00 6.551809794617868832e+00 7.276100745409006088e+00 5.058102699540503622e+00 5.362234438972794059e+00 6.962467782033423980e+00 7.399694173585617207e+00 8.000102740596517492e+00 6.458312893546516165e+00
+3.277310245605572447e+01 3.450815614743179793e+01 3.463096493207313387e+01 3.004549090640388087e+01 3.037706087996394189e+01 3.125179364785427794e+01 3.334657708181750735e+01 3.444136098255752643e+01 3.229970975646981657e+01 3.303486558137132789e+01
+4.727659205030964529e+01 4.849037169239324641e+01 4.693976084327446330e+01 4.579956622512063547e+01 4.699074746761453270e+01 4.789983910101571496e+01 4.974026640926444998e+01 4.534375476044338882e+01 4.753697046922480496e+01 4.664459889105361867e+01
+2.881106029157088599e+01 2.795858484446200265e+01 2.596011684568172129e+01 2.833342825946256482e+01 2.811689782979953378e+01 2.801234585228633023e+01 2.744892933994120199e+01 2.764328301994637727e+01 2.667221263559051891e+01 2.759656346321151688e+01
+3.386133778418752627e+01 3.037763543012943401e+01 3.413790608740350763e+01 3.213834542912084657e+01 3.298031965550297429e+01 3.044826115617839335e+01 3.168679539178639715e+01 3.044850459507422968e+01 3.480771861440554460e+01 3.403630824663125054e+01
+1.013583710612779853e+01 1.032602295630245948e+01 1.231965688406166493e+01 1.454610102930780080e+01 1.269350898976357200e+01 1.248906254017145123e+01 1.052736849978315270e+01 1.328390052362147067e+01 1.411051580300112818e+01 1.190210003753781187e+01
+1.449280302337419712e+01 1.391599206649313025e+01 1.390188061785490170e+01 1.228997879501785739e+01 1.199002646477251410e+01 1.151457864416596344e+01 1.032847429477182821e+01 1.114117681746849620e+01 1.123301817489012322e+01 1.242038534855100806e+01
+9.856975470208197976e+00 5.904884763547448401e+00 9.271925466847896757e+00 7.461389282240173948e+00 6.236155372015884879e+00 9.353749506362557753e+00 7.226526275013327449e+00 7.574086769648451067e+00 6.796166846998827893e+00 7.964754257174637253e+00
+3.241112615168663069e+01 3.260161813095692906e+01 3.487622267641979334e+01 3.482885221942143517e+01 3.107634522892917062e+01 3.405552283152658788e+01 3.098621333083508489e+01 3.106768738941975627e+01 3.338046517082288744e+01 3.202500549293774412e+01
+4.144993696322070775e+01 4.314452572461807733e+01 4.058969337437116565e+01 4.327470552283660510e+01 4.141648263998850865e+01 4.000121467217256566e+01 4.063468028837088042e+01 4.466807688917546670e+01 4.433677319557678942e+01 4.116804516018118676e+01
+5.844902035418203523e-01 4.699160618067375950e+00 3.138540265357089076e+00 1.674528073285430629e+00 6.963603633169362928e-01 3.970125946351479751e+00 3.100363779642567597e+00 2.667305459881607721e+00 4.469462915254788449e+00 3.942986056122653515e+00
+2.596128959234046008e+01 2.654734774544300535e+01 2.987452136405117642e+01 2.705556708497424268e+01 2.722356388429167851e+01 2.788272494975570126e+01 2.991670384207113287e+01 2.620800638217881584e+01 2.840641055266216952e+01 2.857992346770862113e+01
+3.167052326043281596e+01 3.260915437652595017e+01 3.292827167714399650e+01 3.004247789303604677e+01 3.380502991474777730e+01 3.356507145930870450e+01 3.183143193103261126e+01 3.026467967784409296e+01 3.377466269892525474e+01 3.477587580239066511e+01
+2.088448475411992078e+01 2.493668079289772876e+01 2.222051778453309367e+01 2.265935883252508276e+01 2.436809264368607586e+01 2.497784450245343990e+01 2.291357224672340820e+01 2.406236910522085992e+01 2.163470512168337478e+01 2.152871978723645441e+01
+3.684508866205586486e+01 3.567758436780376741e+01 3.759199813316532612e+01 3.556304614674610320e+01 3.966993709256308875e+01 3.591789813677573306e+01 3.626382929975581959e+01 3.703318263442485403e+01 3.691582234279562869e+01 3.897331446198944604e+01
+3.056420272258442239e+01 3.435012462760082741e+01 3.318052817321809300e+01 3.082365448040530964e+01 3.214915628756501320e+01 3.143628847438533924e+01 3.368397284355098265e+01 3.226708115312133884e+01 3.494639972553192564e+01 3.027372491129797538e+01
+3.806922972503862468e+01 3.543858820859982472e+01 3.695768549800814640e+01 3.856660864750636364e+01 3.829711623424957878e+01 3.812350334703303645e+01 3.641270431831221543e+01 3.689012474717200973e+01 3.551473072350142957e+01 3.859511410216800442e+01
+2.140167376275706346e+01 2.066089828876935997e+01 2.219927819856917495e+01 2.321978289723806910e+01 2.190475922511737394e+01 2.027282704141349612e+01 2.299730569829358373e+01 2.451201638055337284e+01 2.191607682973625870e+01 2.108166388815413583e+01
+3.641333680270579265e+01 3.730434367634826032e+01 3.835652211782139887e+01 3.581091686203938451e+01 3.743221193570937544e+01 3.869269519737953544e+01 3.933427606513532737e+01 3.813129637331213218e+01 3.834526757658473883e+01 3.563141736292284634e+01
+6.235516170050732221e+00 5.797723400565941709e+00 9.358917832961008543e+00 6.096069936790221355e+00 9.879326279095657526e+00 6.684478958855534003e+00 5.910589578443496528e+00 8.948492535712395224e+00 8.293538877504380125e+00 7.490978582265695351e+00
+3.768205191540015164e+01 3.718574052522517093e+01 3.633936791408720524e+01 3.802002498869750013e+01 3.935666796170141168e+01 3.999452349881538282e+01 3.803881384371712215e+01 3.702352937164585001e+01 3.612603550108100592e+01 3.628548044697556207e+01
+8.487101336234200488e+00 6.486745036862753722e+00 9.621980976882651859e+00 9.855291225826839252e+00 9.721332445567169245e+00 7.371071083287318970e+00 9.310213254946567929e+00 9.222746992675350697e+00 6.595502366216278389e+00 9.144577370753387058e+00
+2.453520980207510860e+01 2.495766387913693052e+01 2.104157695004258954e+01 2.177719668682030729e+01 2.334609514962433252e+01 2.241901269930323792e+01 2.209194766689166656e+01 2.178905624667796559e+01 2.296890315971726082e+01 2.287796714320041147e+01
+2.518230525412809229e+01 2.526371976081108528e+01 2.917082054104220745e+01 2.558986241814030649e+01 2.522575682206145942e+01 2.718949943571456274e+01 2.921996735971012527e+01 2.631204188244651121e+01 2.710856308762958378e+01 2.519961266281875467e+01
+5.930507089231386253e+00 9.013216548978551401e+00 7.290934433689463035e+00 7.414844360426775971e+00 5.667399862079719242e+00 5.403007568785623604e+00 8.639696534868825495e+00 7.482305761776498976e+00 7.184253513075898212e+00 8.647541143261983976e+00
+8.446753153608227427e-01 1.392951695159793113e+00 8.850524213837340781e-01 4.435126687852780636e-01 6.031793555030040554e-01 2.303893840163628859e+00 1.031668592028962550e+00 1.821349305240377303e+00 2.517086354274284510e+00 3.451974143146826712e+00
+3.420548085308050901e+01 3.498424642140719953e+01 3.215171586844536478e+01 3.160149371248371253e+01 3.453326648475999150e+01 3.095621064538060807e+01 3.307714457516463114e+01 3.202857212090474093e+01 3.020541182477777653e+01 3.173644237152849001e+01
+4.924517256641736651e+01 4.760799756495561041e+01 4.966638206189533378e+01 4.903008252301534498e+01 4.846485896886833444e+01 4.502512751682655789e+01 4.713911728319124705e+01 4.598743140826016429e+01 4.955398955524434257e+01 4.587291992338180080e+01
+1.836351497104449138e+01 1.898340698595686149e+01 1.625233949396249500e+01 1.812437049803499534e+01 1.785872991571874380e+01 1.916415188394135427e+01 1.953043530240630332e+01 1.506078385738693370e+01 1.837009959529396497e+01 1.525917899559864566e+01
+4.732517662365336264e+01 4.844948001656680248e+01 4.941998888435593074e+01 4.603493151500060065e+01 4.959096579230851631e+01 4.907590115984944390e+01 4.989428007589117442e+01 4.940125886640843333e+01 4.639968664845953583e+01 4.552977955672023569e+01
+1.780483629489231223e+00 4.932576243964898133e+00 3.028874096784435643e+00 1.186133958679972400e+00 5.089123631020187055e-01 7.642956959216601343e-01 1.229788641922540560e+00 8.034068662977783548e-01 9.328351202565288158e-01 1.425475843469235393e+00
+1.913429280486376527e+01 1.762367818830716004e+01 1.887622025917474744e+01 1.617212800005757245e+01 1.672541872756616854e+01 1.515051936105659536e+01 1.980746162287056222e+01 1.833933953350406654e+01 1.966602543879653098e+01 1.632748203714536217e+01
+3.296246739588202246e+01 3.241246530263831716e+01 3.311287698916390809e+01 3.005023490527415930e+01 3.097420245827682095e+01 3.245665215956065452e+01 3.475251780794567225e+01 3.191804520177579363e+01 3.212186013026817477e+01 3.357348044503311257e+01
+1.196229093114740039e+01 1.377132486673511380e+01 1.459213216072704355e+01 1.475464297251274104e+01 1.288561293019160381e+01 1.178560579650251405e+01 1.393774542929389604e+01 1.125500691631150119e+01 1.282037014416758858e+01 1.179289230762436524e+01
+1.602158191699485101e+01 1.753902531979389678e+01 1.709635830583010829e+01 1.509062020522864955e+01 1.896379056786406281e+01 1.534522953157299874e+01 1.737127510488476645e+01 1.780339147469474881e+01 1.814213228307293591e+01 1.844315814653937835e+01
+4.303007501239721933e+01 4.044815886652308734e+01 4.479617717661911058e+01 4.357831326036155417e+01 4.394079894067853331e+01 4.352052180385818758e+01 4.294864518038232859e+01 4.224956390542752871e+01 4.429186689880530992e+01 4.478417833771531775e+01
+4.405151649561666005e+01 4.067519068340273947e+01 4.234325818498192717e+01 4.469289119793016596e+01 4.092916027782671051e+01 4.488996711869117462e+01 4.497143992880529595e+01 4.277808577341201612e+01 4.085071370088579101e+01 4.158052443970447598e+01
+2.772713975105856576e+01 2.566708167761603576e+01 2.845821700986659053e+01 2.897505768464235132e+01 2.581677224871578247e+01 2.552156543675940981e+01 2.572757741393679609e+01 2.938563780949250770e+01 2.764094630878178194e+01 2.733630498003751441e+01
+3.516713266546610583e+01 3.683376038212970371e+01 3.618535195587089248e+01 3.723636484078561182e+01 3.536188196597061051e+01 3.977065820785536232e+01 3.611627700534680230e+01 3.961153887741792090e+01 3.712946577518340519e+01 3.992762066627609130e+01
+3.044071121695396087e+01 3.206832761791603303e+01 3.375080416477300815e+01 3.346700426714522081e+01 3.495321368586089505e+01 3.138945562993878013e+01 3.249094649586989192e+01 3.164765206886998428e+01 3.220301557029587514e+01 3.428475064934693961e+01
+4.415016341814037304e+01 4.024636826791385857e+01 4.426219442820936933e+01 4.274200468370955974e+01 4.098656985288030086e+01 4.158627608224850292e+01 4.140964775875780646e+01 4.265429517144237792e+01 4.025842839955566177e+01 4.079268079249961687e+01
+2.040307702584800964e+01 2.469784294512582790e+01 2.377566808722598068e+01 2.293311959141831480e+01 2.414219335469495320e+01 2.040093378406056601e+01 2.238419438866562317e+01 2.315046563430831839e+01 2.414326453059144484e+01 2.391734780024633977e+01
+3.919603976519729827e+01 3.515997230072162694e+01 3.970089917364620646e+01 3.946037175546810261e+01 3.767760958042981656e+01 3.771797787455646045e+01 3.826888961478078244e+01 3.693525005967443775e+01 3.823611141698927440e+01 3.522384194344243724e+01
+4.342339879489563792e+00 2.437155991247568210e+00 4.472761134470457201e+00 3.999276279736576178e+00 2.126067522346167138e+00 1.123465416005869910e-01 1.343386796924730398e+00 2.708171073304334708e+00 3.167391099130736354e+00 1.289438427166011536e+00
+2.569725118102580197e+01 2.784603231564713965e+01 2.933989813365451482e+01 2.791552878639949142e+01 2.859007089063500828e+01 2.686021783906103622e+01 2.546224758518533449e+01 2.728950147563535822e+01 2.697239695419428784e+01 2.933530091189473765e+01
+3.208992042753456531e+01 3.426642399283601037e+01 3.428076810997330170e+01 3.049618832459840334e+01 3.045360441373915350e+01 3.131347738500967637e+01 3.437383031276996803e+01 3.064451292536749349e+01 3.359998401313723093e+01 3.050582809806551765e+01
+1.872700594236812455e+00 4.753571532049580384e+00 3.659969709057025344e+00 2.993292420985183000e+00 7.800932022121825904e-01 7.799726016810132334e-01 2.904180608409973052e-01 4.330880728874675789e+00 3.005575058716043912e+00 3.540362888980227218e+00
+8.301513598506691238e+00 8.821863311108678829e+00 6.325232141625019899e+00 5.104724805154564393e+00 5.410858337382136618e+00 9.839300174225151352e+00 6.477223887387101087e+00 8.846115739190668847e+00 8.123317844271319643e+00 6.909698198264479174e+00
+2.985037228333353454e+01 2.932535549687696985e+01 2.800396074669809465e+01 2.850432848621939996e+01 2.642602901340207211e+01 2.815385210086310508e+01 2.727824774719938716e+01 2.741008669888466187e+01 2.878888280187578985e+01 2.640959177798625745e+01
+4.431337581472863008e+01 4.221660160386349503e+01 4.292931525263961134e+01 4.488039166236259803e+01 4.266152181924083209e+01 4.452660914188044927e+01 4.041519378905093163e+01 4.095525934354341757e+01 4.220377471720659202e+01 4.292378404168652395e+01
+1.127195790420923416e+01 1.180926546602569260e+01 1.236246677503256741e+01 1.022824372751191824e+01 1.070012048776658808e+01 1.138407153895652968e+01 1.485766345450525350e+01 1.165673503551525414e+01 1.241020529056041255e+01 1.098048856369196535e+01
+1.005853305365451966e+01 1.211017130063819458e+01 1.147520353827078132e+01 1.243000246898801464e+01 1.288599943367275458e+01 1.021869536154473757e+01 1.061501647561872730e+01 1.279321198225212619e+01 1.171583676586329048e+01 1.364586743774724020e+01
+3.049273425706471130e+01 3.116039288933082574e+01 3.354450003125791113e+01 3.411872230956149821e+01 3.428514514165289029e+01 3.207553588427466451e+01 3.044669951145933595e+01 3.218890738649810146e+01 3.115367295103526857e+01 3.145598227498312127e+01
+2.335635412614566064e+01 2.135321970990882789e+01 2.040614817403336190e+01 2.496290897743881487e+01 2.078100753965299674e+01 2.494210496981740732e+01 2.488639966283223615e+01 2.396909051954019887e+01 2.329711481040998677e+01 2.288903525125542160e+01
+1.425308028920568937e+01 1.280611394141262416e+01 1.261695455687183198e+01 1.057384435934608646e+01 1.430069846674717482e+01 1.361407151604241861e+01 1.033834180950000814e+01 1.353917548614884225e+01 1.271769108671323067e+01 1.040862672873389094e+01
+3.939126233866173266e+01 3.763627574975338774e+01 3.964935241146939404e+01 3.741898448291398438e+01 3.745224548367974648e+01 3.559873394250266188e+01 3.901328122076110105e+01 3.623482706233531303e+01 3.949806244686157441e+01 3.955412110165197959e+01
+4.704672460441196336e+01 4.947706355597109251e+01 4.581283534331739560e+01 4.997758224295162677e+01 4.559426289238118812e+01 4.507474985552119762e+01 4.945009450574382015e+01 4.622476754182977743e+01 4.864849813723360228e+01 4.905507687466034383e+01
+4.304854097768379972e+01 4.098241326201459600e+01 4.125715076093731426e+01 4.086786072075720000e+01 4.478917652224251356e+01 4.427308731575917733e+01 4.115247418675760116e+01 4.163783146961063153e+01 4.104946421152498459e+01 4.245937979730411627e+01
+4.569189281270958958e+01 4.874080899514348175e+01 4.734827128475811975e+01 4.891467086369933526e+01 4.873127447175102844e+01 4.802306356752610839e+01 4.843183303289339392e+01 4.509177862189570618e+01 4.655888823402511179e+01 4.818911089629705202e+01
+2.641275133759319260e+01 2.639504145173898308e+01 2.702484293688094397e+01 2.999396467907827457e+01 2.527483153419910877e+01 2.789270909101765739e+01 2.541286079017638500e+01 2.577260414995259552e+01 2.719781470886449171e+01 2.755230065673220707e+01
+1.884724447041023510e+01 1.698932851508713782e+01 1.913776526137023382e+01 1.585354181656240158e+01 1.515231843154480096e+01 1.602224186232136560e+01 1.670205778057129820e+01 1.755290378729780087e+01 1.807564570270599802e+01 1.955302858607210936e+01
+1.343163598343048726e+01 1.034820574081202871e+01 1.087440718587979660e+01 1.427868629452893146e+01 1.113589778511757444e+01 1.418520562621469949e+01 1.139638044227205249e+01 1.321440955029353859e+01 1.347075286754915524e+01 1.256327376572526511e+01
+4.408016751151033930e+01 4.401280374075813739e+01 4.243195814044447189e+01 4.149225330573879944e+01 4.319046362898226477e+01 4.144076067888701687e+01 4.118003965161855717e+01 4.365257327013163291e+01 4.020162619860475672e+01 4.047384235517296958e+01
+4.924205994811672760e+00 4.194490432229670773e+00 6.233134060163342260e-01 4.604209413086861602e+00 4.349481810310641627e+00 2.594190285630360471e+00 2.956377178724646448e+00 1.995013519350651299e+00 2.738081941101566663e-01 1.675986208229504726e+00
+1.031228796809535808e+01 1.441732381493030246e+01 1.224159527684711080e+01 1.255216244502116041e+01 1.313296255546605096e+01 1.463191303365043439e+01 1.009558047214881960e+01 1.238421734158908549e+01 1.343861021215280260e+01 1.361353478849114218e+01
+8.462180756621847877e+00 9.956279968510941103e+00 5.641971447270625717e+00 5.520548246920832014e+00 8.621694085643705208e+00 7.891934585032045035e+00 6.370803332799029661e+00 5.397096844944933025e+00 5.428291247982152790e+00 9.470954373320591202e+00
+4.457292217610874019e+01 4.045518157472720588e+01 4.324104588724277676e+01 4.206597239401398980e+01 4.202809695127721312e+01 4.339775918286341749e+01 4.033546866314939194e+01 4.296852891475717229e+01 4.386015892986177533e+01 4.414106378943296960e+01
+4.003394087011795222e+01 4.076471593237712909e+01 4.034495004355229497e+01 4.497901183889959498e+01 4.144404984977045103e+01 4.074634006334623848e+01 4.120498128997959242e+01 4.468062785770067080e+01 4.260080111512198187e+01 4.182409048153928666e+01
+1.838915663596266015e+00 3.161529152967897272e+00 3.167648553804473632e+00 2.678873420373792502e+00 4.514488502720415131e-01 4.176512477946189961e+00 1.603900324858679172e+00 9.325925519992711576e-01 2.038757077738195811e-01 2.954464715941209185e+00
+1.648178806756644121e+01 1.969157864325658025e+01 1.909370114742025493e+01 1.991783603256831725e+01 1.629835419475206848e+01 1.984861816398988310e+01 1.715616934895778911e+01 1.673759397656877468e+01 1.525174763484676532e+01 1.526382628929801299e+01
+2.539313355494878977e+01 2.665457382890097549e+01 2.624143739815422904e+01 2.994006981032710968e+01 2.694694889833436591e+01 2.866306349620199256e+01 2.842362581940502153e+01 2.606040618738688863e+01 2.619498840105775628e+01 2.640642281776517208e+01
+4.788202775726816895e+01 4.896001563065097884e+01 4.662156831937790002e+01 4.858082269088805560e+01 4.567709424908913718e+01 4.645646873602752436e+01 4.572355318068260033e+01 4.905615279200679169e+01 4.611324617613392718e+01 4.858701777702604829e+01
+7.667570155804009913e-01 2.931149160083986072e+00 2.529443394422330016e+00 3.057271177173239263e+00 9.055091910420254298e-02 4.360619544720757190e+00 4.660591412418061630e+00 2.825665917946044825e+00 3.483254119384461056e+00 4.612496905886478871e+00
+8.791315979645112577e+00 5.122934582294007555e+00 5.110617757644986270e+00 6.618051095747706114e+00 7.443215952023328974e+00 8.852037089038965689e+00 8.416476883032526501e+00 7.229513531883741351e+00 6.368133331408329489e+00 9.985622500788554845e+00
+2.085914730178829046e+01 2.259038749020172432e+01 2.106997339349156917e+01 2.141642201746288521e+01 2.200156418086497112e+01 2.405933062005189882e+01 2.006931067956429970e+01 2.324689410118311272e+01 2.334438265520342526e+01 2.399327890178318157e+01
+3.611334659278295778e+00 4.278482340531429173e+00 4.151099322834958194e+00 1.985917648092274224e+00 3.340425682853230605e+00 1.024921477079104859e+00 1.465738651305066309e+00 4.481679092605598491e+00 6.500961755368017680e-02 4.275426542723403944e-01
+3.775345272347396985e+01 3.908396684787173569e+01 3.979796073804617151e+01 3.896331238375808681e+01 3.801901539421876919e+01 3.746670794026190521e+01 3.520034543174133290e+01 3.992160989407020821e+01 3.691740561287521416e+01 3.576114106958433325e+01
+4.674115319853684269e+01 4.855104924158132462e+01 4.681949703247666150e+01 4.916637152514378784e+01 4.727135362180212752e+01 4.859779206632717319e+01 4.553726608220943461e+01 4.923059592777556048e+01 4.867858993389054945e+01 4.605858389230982652e+01
+3.399226752525595430e+01 3.353614164167711920e+01 3.095190893148517475e+01 3.183360954296899337e+01 3.052902512428257253e+01 3.314103298546521614e+01 3.060685962274309802e+01 3.492967084312459036e+01 3.390341037343931418e+01 3.195119274791997555e+01
+2.458079375584161674e+00 2.367358853902828297e+00 8.660093495500759131e-01 2.169258246189865069e+00 1.992523671986867306e+00 3.079250490261082440e+00 3.175468254338218888e+00 2.265200488602225892e-01 1.873063073132356093e+00 3.129299578571181684e+00
+1.155373982940357092e+00 3.359463717993642184e+00 9.855268877182077336e-02 5.205429099228692236e-01 3.999580426865946947e+00 8.927233102716680690e-01 3.263730539259373398e+00 1.190913905233632608e+00 4.972069637967257982e-01 1.215860954997270316e+00
+3.939440572956426223e+01 3.657466613729466332e+01 3.564489453963582832e+01 3.734230618543543301e+01 3.799153037848009262e+01 3.515485301711255062e+01 3.637447829128544186e+01 3.516399937138447740e+01 3.710167694597749488e+01 3.947550014533122464e+01
+3.566747929422762198e+00 4.476034188435996874e+00 2.558387210578330517e+00 2.660567426326578389e+00 5.358600566988802605e-01 2.237061834117273218e+00 2.663086332275115709e+00 1.212352518173648308e+00 1.346216154746904703e+00 1.886420815523113248e+00
+1.457545034203521617e+01 1.266514433623069991e+01 1.078977411417674048e+01 1.347949559084401194e+01 1.396630675219127227e+01 1.158380838533763324e+01 1.428589628499376474e+01 1.453071627382883158e+01 1.138452243688904453e+01 1.491760736357610995e+01
+1.975722412831546038e+01 1.587745813690678709e+01 1.783863658965527321e+01 1.789657233330968822e+01 1.744812231025122529e+01 1.822372624288409426e+01 1.614913362898809268e+01 1.776331133888374225e+01 1.686086627623448564e+01 1.830833629814594588e+01
+1.316355939374300377e+01 1.351928545817165528e+01 1.002181634825154610e+01 1.083476544373599282e+01 1.356523025317159359e+01 1.333192706789103177e+01 1.483023752564338693e+01 1.380518895125391410e+01 1.475386353865668987e+01 1.351270250767403525e+01
+1.866546581398764726e+00 1.353723365717768967e+00 3.219997716195078574e+00 2.043670855490482108e+00 1.269317783017243073e-01 7.807629868309517995e-01 3.579861144236987869e+00 3.294619709550756781e+00 1.354799625174174516e-01 1.109860809664747094e+00
+1.240445073301504486e+01 1.331217005850534107e+01 1.059251311799075701e+01 1.144442469454582856e+01 1.198918312751078474e+01 1.459765512328024784e+01 1.496627507711481897e+01 1.022455649497807961e+01 1.380503961747696096e+01 1.185862033201171606e+01
+3.656591025351817592e+01 3.589420534253899575e+01 3.950958053918941459e+01 3.698593443158564753e+01 3.622639652487183781e+01 3.724203920507966359e+01 3.660268083403247630e+01 3.872209626906663260e+01 3.985609955942747007e+01 3.719016828348823367e+01
+4.702455407134922183e+01 4.599186269923851000e+01 4.980820246157652065e+01 4.755733770021308970e+01 4.866960185143850026e+01 4.705523596778029116e+01 4.677565882012858367e+01 4.703582149233562859e+01 4.704598321892824941e+01 4.772090057970977028e+01
+3.071392818333942287e+01 3.194717340038836539e+01 3.475851203195268369e+01 3.159860424669927070e+01 3.434049079933531345e+01 3.440625340840944801e+01 3.175093262165980690e+01 3.041628829025315994e+01 3.362278954579409174e+01 3.155756149506992969e+01
+3.527666193581673326e+01 3.599065370911788619e+01 3.504600448812689706e+01 3.813629200317988932e+01 3.658187703693841542e+01 3.986572355713454385e+01 3.596858525388149275e+01 3.672914285154796943e+01 3.678920579320766393e+01 3.504225748031230125e+01
+3.779945265922892617e+01 3.743202517768089166e+01 3.752466402044699834e+01 3.588205955213943099e+01 3.906366452152339974e+01 3.770880159970507606e+01 3.565539930852351347e+01 3.883078550791388750e+01 3.966221989188675678e+01 3.973653449618480948e+01
+1.322416302011156830e+01 1.197565453805751545e+01 1.356603441641308905e+01 1.099607637447026498e+01 1.445107501318087273e+01 1.143704798232789877e+01 1.183892993878076538e+01 1.029045976040174892e+01 1.055756106160638197e+01 1.257930951356163973e+01
+4.755106458239060885e+01 4.563924868496733467e+01 4.869496031578121631e+01 4.698443989112459462e+01 4.631462123816073273e+01 4.687749311010360032e+01 4.748878281803447976e+01 4.671557758208504652e+01 4.620952886295879125e+01 4.699251014401990290e+01
+1.786974933034505142e+01 1.696447554446589479e+01 1.514326213788827324e+01 1.791626196156278183e+01 1.505651268294511169e+01 1.893685979074636450e+01 1.653216411351685622e+01 1.520129001504616006e+01 1.794176110491576637e+01 1.698842207216527456e+01
+1.190258854934947230e+01 1.081517668465795445e+01 1.393102826130528982e+01 1.367221966037795688e+01 1.192177519262067520e+01 1.012596706979614680e+01 1.419498663859005383e+01 1.005708991727036761e+01 1.351849889814525518e+01 1.485128554863028505e+01
+1.113874868051604849e+01 1.482014423582756990e+01 1.454727305468620990e+01 1.361071617727952976e+01 1.266693314382681379e+01 1.434984579823842488e+01 1.065326171911731379e+01 1.395254897137442462e+01 1.062410406983424238e+01 1.397105331274702777e+01
+3.554677951554739224e+01 3.698645646472952819e+01 3.668423850723576152e+01 3.784741194068296011e+01 3.930556760030712837e+01 3.539169108881003467e+01 3.536287399022355515e+01 3.925158854078799209e+01 3.606425043019178389e+01 3.834376627224906997e+01
+2.287530286729407436e+01 2.103408946566698035e+01 2.252227970834677606e+01 2.156094868284564825e+01 2.213733264083344565e+01 2.322609287922331944e+01 2.372607371345417349e+01 2.116112345450671484e+01 2.202662680323476607e+01 2.134580785495814581e+01
+4.711438234233389721e+01 4.782875782112291319e+01 4.682725742326636720e+01 4.968073167716056560e+01 4.527452445455386965e+01 4.836695739514917847e+01 4.945641332413875091e+01 4.901942354367626820e+01 4.592020517410723102e+01 4.647963174490143956e+01
+2.061923013352908640e+01 2.035267818796478423e+01 2.454714751842938369e+01 2.095064383159352772e+01 2.410625077279852135e+01 2.272315435553568008e+01 2.038928259804384879e+01 2.477724095719033670e+01 2.123480583495946306e+01 2.429822672676303341e+01
+5.292754646219895776e+00 6.671191593480303439e+00 8.924484885557337321e+00 8.538404673704578229e+00 8.943074823362032078e+00 7.586345282208046825e+00 7.200994989777452560e+00 5.737262633531419631e+00 6.640963768046557192e+00 7.170096830869375992e+00
+3.226979416523929700e+01 3.150831120815574593e+01 3.192009536982478934e+01 3.427199756662840002e+01 3.374499508702478323e+01 3.136157698590541543e+01 3.058750920106186655e+01 3.125999110822035831e+01 3.460378225527367135e+01 3.290794418924877363e+01
+3.311568926873912488e+01 3.178033649559572282e+01 3.394456981482933600e+01 3.116845224412681858e+01 3.319600914694979821e+01 3.117841267287942486e+01 3.356830141556076796e+01 3.436839017280374264e+01 3.063400899563379909e+01 3.433297844297752022e+01
+2.581255532648728135e+01 2.979872860730984740e+01 2.925790700008618472e+01 2.931894811482501595e+01 2.703386874286002595e+01 2.881180606853586568e+01 2.571938077694889913e+01 2.504309501295890072e+01 2.509986466289014118e+01 2.793300868702280226e+01
+3.835889635127433195e+01 3.697170573175332464e+01 3.500642212763401062e+01 3.560079629367810838e+01 3.767277272378019859e+01 3.837564942922210065e+01 3.708724141948231079e+01 3.865339505764195138e+01 3.760931147666089203e+01 3.537088097797155939e+01
+4.594020546294392915e+01 4.929832773833237525e+01 4.628877607814055040e+01 4.613214802543824788e+01 4.740357028242178217e+01 4.749425511872136951e+01 4.607542614392546199e+01 4.635930363362957962e+01 4.584852619577622335e+01 4.859230089161583521e+01
+4.847838831607669619e+01 4.882892146357862373e+01 4.720600551106466014e+01 4.858238131321083131e+01 4.693246861431956773e+01 4.605631458469098050e+01 4.816338517420680176e+01 4.988006962799396860e+01 4.655300485697664925e+01 4.730484796106269840e+01
+4.209065799896811200e+01 4.455507849989609781e+01 4.496581869466739079e+01 4.053046024973976103e+01 4.116526593992429639e+01 4.475189875741046563e+01 4.479163843240693410e+01 4.048853637693379426e+01 4.007499250188568141e+01 4.080550011628211138e+01
+1.619073326832848281e+01 1.954217275939687681e+01 1.734034527117145075e+01 1.733149706469909290e+01 1.880287821227641132e+01 1.577246102002462891e+01 1.743632677050025492e+01 1.714992607060530005e+01 1.798455345273328021e+01 1.999778851625219289e+01
+2.188919606863593259e+01 2.031018381814390850e+01 2.169652633654783713e+01 2.252965827159779266e+01 2.080961503316106942e+01 2.329051109028246103e+01 2.498874694505100180e+01 2.225869737990721831e+01 2.177364278365106287e+01 2.200352083417233473e+01
+2.034093309882731404e+01 2.093562135205250740e+01 2.277774784942809916e+01 2.145680536418872109e+01 2.208697391164573887e+01 2.188433440173594136e+01 2.437952462499947259e+01 2.452649499505257680e+01 2.246478485827930172e+01 2.165077975157802115e+01
+2.870842064495911572e+01 2.837615418781018661e+01 2.602940994089160398e+01 2.676240523471675559e+01 2.563055070839312322e+01 2.564928506708940503e+01 2.838097873178269737e+01 2.929300053491249045e+01 2.981366291930569545e+01 2.814173558774722039e+01
+3.100587616144439806e+01 3.040031701264482678e+01 3.237226589922261866e+01 3.004984617367259148e+01 3.042383077213166587e+01 3.403812934781487343e+01 3.385736672429803207e+01 3.457569410202447813e+01 3.427257717955374972e+01 3.341587781619909236e+01
+1.229150320764328264e+01 1.242348143565023477e+01 1.082887270081637965e+01 1.472849073500141159e+01 1.424987685740330967e+01 1.334511168664554148e+01 1.231147780500303668e+01 1.205882770792254277e+01 1.325486733575477061e+01 1.272715934703452767e+01
+1.546312741525683521e+01 1.874192174838115577e+01 1.957274331924279664e+01 1.717010486354379495e+01 1.629355821077720634e+01 1.717201659503304967e+01 1.861723908925000615e+01 1.504527080790185423e+01 1.794726994742348580e+01 1.806645842443689531e+01
+3.077393017423056065e+01 3.150587793498679545e+01 3.124488449580682570e+01 3.186153549286524012e+01 3.127331882944980990e+01 3.244475463219225730e+01 3.203703940677342388e+01 3.493284745389663470e+01 3.027963175064112988e+01 3.071090688193675788e+01
+2.158050655773485360e+01 2.027870426793720782e+01 2.304906380774058405e+01 2.120401908036586747e+01 2.193403621025939998e+01 2.040290406143256874e+01 2.073581625547472740e+01 2.148988617747921737e+01 2.044879750280078667e+01 2.455413132343157656e+01
+5.925664644193098241e+00 7.709504736891791055e+00 9.364729179382042190e+00 8.661124432047806465e+00 9.032805739307249837e+00 8.293916833553586443e+00 8.461382822589262886e+00 9.245978257826596547e+00 6.248340044295929374e+00 7.447124818215701936e+00
+1.805731805612830243e+01 1.839249984146318795e+01 1.658774850128794043e+01 1.924054617507815124e+01 1.973580731450123693e+01 1.942427558848002178e+01 1.869533487969686192e+01 1.638732339862476906e+01 1.640808021052815846e+01 1.981680160223018916e+01
+2.255556819244750244e+01 2.302156491120160098e+01 2.230449169103290785e+01 2.414354491909003286e+01 2.414781357841524922e+01 2.354694410912193092e+01 2.052700688698230991e+01 2.419426930952034382e+01 2.335506490266454804e+01 2.348512083002149708e+01
+2.994062037977317559e+01 2.742615227882678042e+01 2.589581959145075274e+01 2.945570045896754863e+01 2.730177686567413531e+01 2.854835671752262272e+01 2.991855791604575998e+01 2.525087675159986844e+01 2.548347279893783579e+01 2.860228370731378078e+01
+4.423677526954683259e+01 4.004769477012772683e+01 4.201445015525024473e+01 4.453621583638539505e+01 4.370156515421975740e+01 4.271420687167037045e+01 4.264822263517567080e+01 4.173885048802218733e+01 4.260260266820757380e+01 4.327691599731726768e+01
+3.114858141841615691e+01 3.099785807947969474e+01 3.018892253297839900e+01 3.321684862534880267e+01 3.131255145241582838e+01 3.026173589215656534e+01 3.115489655264031654e+01 3.400956976418063249e+01 3.425744590823273228e+01 3.241533122596651140e+01
+9.129083752823813569e+00 5.644349337367225772e+00 6.675594271295709703e+00 8.717541281458039748e+00 5.803799480241541353e+00 9.089835120595310514e+00 9.160670889788709914e+00 7.537338668804181019e+00 5.031929358584167566e+00 6.435190665874563898e+00
+2.945486942345351977e+01 2.784748629259287966e+01 2.916195520850953926e+01 2.995812171480613983e+01 2.581808102069138044e+01 2.845888819570991046e+01 2.837146786850012248e+01 2.989977723679139388e+01 2.992800366976400284e+01 2.843339305862064847e+01
+4.756214275688328286e+01 4.836356805750217802e+01 4.693565254485574201e+01 4.625653843571078028e+01 4.583100268404372457e+01 4.674737059766312797e+01 4.870903237623085857e+01 4.878352455055734538e+01 4.833452693342105277e+01 4.617014087653437571e+01
+1.973378122346120378e+01 1.700106137924835892e+01 1.891648991478023945e+01 1.632964225316059270e+01 1.995166151896824047e+01 1.512884799382175594e+01 1.801764403250560420e+01 1.829752990825663517e+01 1.844022778537064511e+01 1.560193789394544517e+01
+3.785156253913251589e+01 3.526788279803704285e+01 3.570249504897758897e+01 3.811274698106556968e+01 3.603911920729417773e+01 3.752035039874212430e+01 3.772440843014696554e+01 3.641753595135469368e+01 3.974212577770746435e+01 3.921232053417787711e+01
+4.226161738817148006e+01 4.212194509036255141e+01 4.078381473799647239e+01 4.213203028245986559e+01 4.268708469299903641e+01 4.011252163714343055e+01 4.222056502587702909e+01 4.390678109197600065e+01 4.340023028187135168e+01 4.317578494431967329e+01
+6.984616381007979768e+00 5.663578770215301539e+00 7.837704241307790198e+00 8.447324845686328132e+00 9.002933495545413223e+00 6.000751221224049914e+00 5.837412911295349005e+00 5.522839201672001153e+00 8.182151247718183029e+00 8.532378632434506116e+00
+3.909713926835182463e+01 3.952791068786566342e+01 3.559879983216098509e+01 3.765966488776395948e+01 3.642255979871222138e+01 3.523530598938473446e+01 3.834273347556992917e+01 3.931385388729612629e+01 3.581451327238696791e+01 3.906206828811950516e+01
+2.662947162757929309e+00 2.591176841121345387e-01 1.683021390969603015e+00 6.720733846948712120e-01 3.168748523638387216e-01 4.949801161949726414e+00 1.611769224873614847e+00 4.049372229273174639e+00 1.273203273818819259e+00 3.407513611119646235e+00
+3.348715808618596412e+01 3.321403295543086642e+01 3.391372837125693707e+01 3.468740586199552212e+01 3.345963681633296005e+01 3.077925768275721907e+01 3.121721308382705473e+01 3.421096865436557266e+01 3.104653037917104186e+01 3.036261158477240585e+01
+2.584086058430384858e-01 2.656773157840739863e+00 2.703175608050532475e+00 3.187149507491032985e+00 3.630456668613307514e+00 4.879260397312672914e+00 2.581501741505976444e+00 1.614782364706229822e+00 3.975930973843518235e+00 1.354161256310371098e+00
+3.536114674136238989e+01 3.573726504633089718e+01 3.536622802053695125e+01 3.906158666357059417e+01 3.876204616606004549e+01 3.876656465939628760e+01 3.858162671738013927e+01 3.834692711834934897e+01 3.738495957689087845e+01 3.821139081753557321e+01
+6.077237344908170691e-02 4.849394133538194929e+00 2.157995597528805654e-01 4.455715568490355771e+00 2.638505545431499399e+00 4.964823980596501762e+00 3.689828236769943093e-01 2.769271422006603700e+00 4.846512678095495019e+00 2.615489220850744090e+00
+7.676550657262958488e+00 6.076009360086187527e+00 5.060603873219466031e+00 6.206007287997707067e+00 9.879368774550268739e+00 9.007685559414948528e+00 9.797883221605166781e+00 7.439270219631811898e+00 5.548680993387517191e+00 7.739797444868464993e+00
+1.576845521422102259e+01 1.786303616441011144e+01 1.638506262162989202e+01 1.960653756106487577e+01 1.791595402138548820e+01 1.796420090254055069e+01 1.677462330438504878e+01 1.525994675988853722e+01 1.515871882686494310e+01 1.711667572076598631e+01
+1.947781424065919254e+01 1.954587632026792932e+01 1.656939038257513630e+01 1.845527906369630955e+01 1.635816590637184831e+01 1.595304916537224926e+01 1.592316228673684542e+01 1.671053810431796904e+01 1.714978809889910849e+01 1.915474585527534401e+01
+3.725012119763901097e+01 3.666345089846335270e+01 3.719149304016583102e+01 3.631346654940002594e+01 3.582358873471490313e+01 3.844571678490169120e+01 3.757285558133899883e+01 3.600077105624683327e+01 3.659794713129998911e+01 3.795903953831663102e+01
+3.727750847609610219e+01 3.515412309349684961e+01 3.939602168792691117e+01 3.506505106712936026e+01 3.972375040105105626e+01 3.744608124344045308e+01 3.670967246787363081e+01 3.962109217421330243e+01 3.512195496555048635e+01 3.790712447434543719e+01
+1.375589023904209007e+01 1.035503832266627811e+01 1.040090007040951647e+01 1.177385645917992107e+01 1.470862855809462566e+01 1.334286323361457072e+01 1.339334978336282411e+01 1.180959995418932529e+01 1.296830395604269270e+01 1.005065592013871623e+01
+1.667639525039147941e+01 1.533508268875604941e+01 1.987671566739535223e+01 1.908486953635918582e+01 1.926273710622985291e+01 1.968982615716947038e+01 1.542551743059892644e+01 1.692798796256666805e+01 1.535517444522001007e+01 1.605396550775014219e+01
+2.080728917032120151e+01 2.235869918759219388e+01 2.276735888104924754e+01 2.285143469365695168e+01 2.105053596456176024e+01 2.371135696126143344e+01 2.012599547410534839e+01 2.177415927771581394e+01 2.390106324267816973e+01 2.281946460527701248e+01
+6.528021077451073850e+00 9.383253809141002932e+00 9.981671688136236398e+00 6.841547652534242019e+00 7.243053154772712610e+00 8.610354691013686335e+00 9.430978902325371394e+00 7.965221670933920528e+00 6.957628490889146811e+00 7.063109204243119166e+00
+1.810236892525985297e+01 1.871126593599543497e+01 1.584940503025367597e+01 1.597487599950144599e+01 1.945204758609664353e+01 1.874988899226035244e+01 1.954114244350161300e+01 1.879357660581960232e+01 1.798577652995150800e+01 1.827066368513936823e+01
+2.194857103528180531e+00 3.922819067113297864e-01 1.267537170772875532e-01 4.813242073389625730e+00 4.179900602561029466e+00 3.479871030468490112e+00 2.044764722071349183e+00 8.664716003542288769e-01 7.821852133554302311e-01 1.251214490822976533e+00
+2.808310989082637477e+01 2.520166926069225966e+01 2.663085127064126567e+01 2.734278497295567334e+01 2.573979167054702799e+01 2.992327238795419930e+01 2.604548682294807094e+01 2.565176565021632626e+01 2.601767436943448075e+01 2.884530566579861954e+01
+4.626427489381279656e+01 4.758700644912482858e+01 4.507480599128150089e+01 4.632273143113020808e+01 4.757015409737934419e+01 4.786574623990622968e+01 4.962875846527652612e+01 4.822672811625304234e+01 4.707367901264996846e+01 4.965175588566533804e+01
+8.474909430632713736e+00 9.300611985946023452e+00 8.899254944466749251e+00 5.198094126741786170e+00 7.402534736289144490e+00 5.524650892090874343e+00 6.210225079312637675e+00 9.933312966335732241e+00 5.712477714507565807e+00 7.494440767256779878e+00
+4.209181519214396872e+01 4.357076573196086855e+01 4.430616113630193098e+01 4.077342424092430662e+01 4.225773511408712579e+01 4.204010045642540661e+01 4.343732402024863859e+01 4.124933732628964833e+01 4.320125457476137854e+01 4.438744620865743684e+01
+3.998341638967340117e+01 3.875395115589893891e+01 3.822359988690908494e+01 3.677644821609659687e+01 3.524580414577523868e+01 3.515528438017577884e+01 3.777090627724399496e+01 3.881016360519525676e+01 3.768689595221927391e+01 3.920392535969557457e+01
+1.409531756930828017e+01 1.270396877492772170e+01 1.355121399311655850e+01 1.157175056591874096e+01 1.235583949466407283e+01 1.410818448855235729e+01 1.229632598586606917e+01 1.178899132662720817e+01 1.247106223625150001e+01 1.414124626218609215e+01
+4.843463708387151456e+01 4.647001694297476604e+01 4.779946550767974855e+01 4.650459536582709319e+01 4.583567157434653438e+01 4.703586869299437723e+01 4.616136682395250546e+01 4.767400488459583840e+01 4.599414265143239788e+01 4.754202988322313672e+01
+3.120075798011007251e+01 3.161762306868519090e+01 3.091906444740907389e+01 3.288468061672419651e+01 3.077420697323727339e+01 3.178096971730689546e+01 3.348506506967131457e+01 3.280057991504673964e+01 3.193231282163967677e+01 3.210124800903771103e+01
+1.986900206678574676e+01 1.772099331251851240e+01 1.637619590518504253e+01 1.854719432316987238e+01 1.635746001271355610e+01 1.952121645703782349e+01 1.687360985253688028e+01 1.774934281388102519e+01 1.525286551912114419e+01 1.713060618976115279e+01
+4.954458872060727259e+01 4.970995723441935610e+01 4.532159611596792104e+01 4.701185269770687114e+01 4.511729510860577363e+01 4.664708328687221695e+01 4.768434108985301378e+01 4.955397465254974065e+01 4.923277161232701360e+01 4.563749863335992529e+01
+1.599496069479718408e+01 1.709166932051140009e+01 1.875469899181659272e+01 1.550686448776579596e+01 1.638926388044855997e+01 1.638159554232926851e+01 1.716009463797253076e+01 1.990184370471092734e+01 1.533751273341911059e+01 1.759350497190297347e+01
+3.473451449730258389e+01 3.120356292831753464e+01 3.119974451861815723e+01 3.041689526884379902e+01 3.464253875971888874e+01 3.289868557469885957e+01 3.333518428562676661e+01 3.455788443631526263e+01 3.172810084450394896e+01 3.310753655569042309e+01
+1.533486806012635739e+01 1.938675226566419241e+01 1.694702469489437746e+01 1.770880482133781442e+01 1.984032906025379361e+01 1.533282363957111372e+01 1.824159003726047956e+01 1.537052711287433482e+01 1.687734464233250264e+01 1.901907272596723431e+01
+3.401846725938651161e+01 3.408911036783095483e+01 3.489473677927330897e+01 3.250934765512251801e+01 3.227478439863868687e+01 3.376737802723240378e+01 3.066235328170963115e+01 3.273457756896561932e+01 3.273123800065425826e+01 3.044736561405193598e+01
+7.297233842029933193e+00 8.925082719185283509e+00 9.460423444701172357e+00 9.776673432519640272e+00 8.934516931276474949e+00 6.577034478740063861e+00 8.440673530432711402e+00 7.188015620276959616e+00 6.273353110230255325e+00 9.204357897129613164e+00
+3.324128477038910745e+01 3.086193181052583157e+01 3.436197281677407744e+01 3.306558119534620488e+01 3.078601941778477169e+01 3.481169028740603721e+01 3.259182731667659993e+01 3.036449225935827556e+01 3.313416452207533780e+01 3.126599453506405268e+01
+2.184568096904602186e+01 2.178596166996522498e+01 2.172045808924720944e+01 2.260271918652429335e+01 2.220332441712146831e+01 2.439957313363507296e+01 2.252760395861745124e+01 2.253878919094284328e+01 2.069185797360278301e+01 2.491369770455192878e+01
+2.730164525321382740e+01 2.608793969965822157e+01 2.566889072496984170e+01 2.976653583791186364e+01 2.536332793790578322e+01 2.599546709967962954e+01 2.673911173716523138e+01 2.810117424480560189e+01 2.772400542638049359e+01 2.562821746206157059e+01
+1.779863393256307935e+00 3.789230552321845469e+00 7.196744314877934201e-02 5.803632025345811796e-01 2.300132101087637437e-01 2.036440115948506824e-01 4.277302920055036317e+00 3.518289296900118490e+00 2.370869145436626191e+00 4.891708032550073915e-01
+6.531268103933058455e+00 8.119479181458192585e+00 7.635207319558258376e+00 7.130416919451857183e+00 5.653551883700997038e+00 9.433021076202333433e+00 7.248923244106612707e+00 5.973112559103824992e+00 6.838796754386447851e+00 7.070648762644635710e+00
+3.233187297252274561e+01 3.180833041597521316e+01 3.054200186358311342e+01 3.437966511093102184e+01 3.391580014513951369e+01 3.084059048798862435e+01 3.256130281938130366e+01 3.243687403960622362e+01 3.312545776343264237e+01 3.473093446995630984e+01
+1.653897915840372690e+01 1.956894221936629563e+01 1.976407508501252863e+01 1.663371271015020270e+01 1.677212474396527497e+01 1.752817076710979549e+01 1.970560406266836750e+01 1.938159716571155755e+01 1.551283981291794944e+01 1.696365371635707930e+01
+2.703166115481883836e+01 2.963292691609190399e+01 2.855210907506205942e+01 2.709461812396459379e+01 2.758636084877155170e+01 2.542106505588549226e+01 2.992287948188056390e+01 2.833203652347459567e+01 2.642702034231711394e+01 2.792904197107622366e+01
+4.071540697708656609e+01 4.428944592623120258e+01 4.154430449618231336e+01 4.329427702113421361e+01 4.283221842543313329e+01 4.235878154695436848e+01 4.247909736324269403e+01 4.366118957046143834e+01 4.043886457061720563e+01 4.334090330978952466e+01
+2.654845855552594713e+01 2.600897474126228559e+01 2.954413248858431018e+01 2.880200033643741264e+01 2.838199184455002921e+01 2.650483159815810907e+01 2.592022386025106684e+01 2.878225543994456004e+01 2.737078972939539767e+01 2.612894776075314596e+01
+3.056615611629562679e+01 3.203183202638730620e+01 3.242536454571347804e+01 3.270413531985769851e+01 3.409180320697608124e+01 3.085839097521608565e+01 3.403915725913311263e+01 3.346439213848326233e+01 3.277935407099479903e+01 3.349763935201286102e+01
+1.815123609728079046e+01 1.624191804371603709e+01 1.852730415141743237e+01 1.713800666851668808e+01 1.721272757407372822e+01 1.824661162288440863e+01 1.968140310734463228e+01 1.532003173304310550e+01 1.912371618673503804e+01 1.646191555206096524e+01
+4.643330290643511660e+01 4.683478915908497697e+01 4.541948980314454332e+01 4.526138186136103059e+01 4.626728564836508184e+01 4.537123429665273022e+01 4.551887354317370438e+01 4.906464202696968613e+01 4.519436848508344440e+01 4.829471396967371533e+01
+4.579120370907631354e+01 4.847677125365935069e+01 4.552862280215567381e+01 4.832403879290122006e+01 4.643090435398953986e+01 4.599458406868612315e+01 4.968176278912492450e+01 4.509262288372978134e+01 4.718888635944784227e+01 4.510813496230896646e+01
+2.003023521591989109e+01 2.241930109432155760e+01 2.061623729066275601e+01 2.153839544738974254e+01 2.463029779909132699e+01 2.080847276636993470e+01 2.482916159859166427e+01 2.102897188494710790e+01 2.370783054233414688e+01 2.273338632448655972e+01
+3.032449639769204808e+01 3.232862788833748624e+01 3.120122509232151842e+01 3.234902160724340803e+01 3.227732786003181076e+01 3.291072401407370762e+01 3.178385245174625595e+01 3.082135224727964129e+01 3.251859717294978225e+01 3.415101442172881008e+01
+1.754927004775228738e+01 1.750637822312864600e+01 1.525121504911491144e+01 1.517455776328111838e+01 1.775579980958185899e+01 1.719089306624172053e+01 1.919590197490149208e+01 1.580339792355922590e+01 1.512485831058524788e+01 1.724519383965062858e+01
+4.182541836642200650e+01 4.456292108962411191e+01 4.390260901378510994e+01 4.377718636257790763e+01 4.303359789891116094e+01 4.313391908525922247e+01 4.319001617608124377e+01 4.314360693512791300e+01 4.276864115699180502e+01 4.493207009241444183e+01
+2.057573089197600424e+01 2.441636800713111910e+01 2.207412827760676066e+01 2.193637205712420624e+01 2.329845136465237232e+01 2.221016710465561772e+01 2.324116734403922990e+01 2.030723145065393709e+01 2.406861671861113905e+01 2.470251976439701380e+01
+1.944563961970004939e+01 1.789403377255970184e+01 1.816195662164193791e+01 1.578238358001800279e+01 1.736960610058051202e+01 1.858198555979049615e+01 1.635471349158182619e+01 1.601127090262267316e+01 1.656913404112207644e+01 1.620750313996416736e+01
+2.895655357156333309e+01 2.600455669842761353e+01 2.902559604377332647e+01 2.925066367342518348e+01 2.644575167227075596e+01 2.976130039181161990e+01 2.524930073199582026e+01 2.574954626623569709e+01 2.768790569025757264e+01 2.787896235561154867e+01
+2.569947445799054098e+00 3.918265063705715257e+00 1.982713911606350798e+00 3.110433501139367340e+00 4.311818543733726194e+00 4.747603118288211022e+00 7.353674046451896817e-01 4.632938125807472218e+00 2.460581465397690959e+00 1.291221941494791636e+00
+8.090778671590594939e+00 8.512324852720519530e+00 7.798243417434570723e+00 5.048854237095918407e+00 6.632306541219959328e+00 7.588558216923557254e+00 5.439332495724166883e+00 6.753134656045904016e+00 5.166015543956833156e+00 5.392892485775103495e+00
+2.270139446593710630e+01 2.039640142315595739e+01 2.282925280156623415e+01 2.454009272710831269e+01 2.198156312749110342e+01 2.148162900949899878e+01 2.071734728509009926e+01 2.075722760967678582e+01 2.216385742170909623e+01 2.297839912080764790e+01
+4.858523969353552729e+01 4.542135279590382879e+01 4.905930849916292402e+01 4.859453472302395483e+01 4.864803324617670910e+01 4.550120685133795462e+01 4.858880272408115530e+01 4.839909062609984858e+01 4.915461245410925528e+01 4.520797978128234718e+01
+2.973843088532139944e+01 2.609385854205439870e+01 2.663110253490465595e+01 2.878096117053390302e+01 2.696877570782703515e+01 2.804105688383223338e+01 2.722286750534714272e+01 2.871184968544891092e+01 2.614165626184305324e+01 2.529228993618438537e+01
+1.861368876119402316e+01 1.828364742360804129e+01 1.854382827614577067e+01 1.504181840938428572e+01 1.608833699790267957e+01 1.830842144199928256e+01 1.741994684089873502e+01 1.502656737834172951e+01 1.902247321215911313e+01 1.886404786645168841e+01
+6.180252316732319784e+00 5.367483736650063619e+00 5.848789525437704029e+00 7.598869742780088643e+00 6.685015882156431388e+00 9.144416829413046344e+00 7.154437618309029467e+00 6.243571362938149960e+00 8.085724933020150829e+00 8.533886084427228624e+00
+5.180801902623811017e+00 6.515641779726642824e+00 6.315562849554214431e+00 6.800682037357595355e+00 5.438213733819193152e+00 9.684789115155314931e+00 7.769011203561881018e+00 6.527621553290117618e+00 6.984907585371416872e+00 7.236012702524178053e+00
+1.142891777762935135e+01 1.101611545543043569e+01 1.380899095688848632e+01 1.193270253411513870e+01 1.255637731100375554e+01 1.246162740000590929e+01 1.288639514616565585e+01 1.432788572812276229e+01 1.490369671791714623e+01 1.203792104286908504e+01
+4.004620794202757139e+01 4.404078524512106441e+01 4.088097203082124054e+01 4.303108321110383372e+01 4.168460956538373097e+01 4.292742969157517763e+01 4.157826813491161744e+01 4.043469780346126896e+01 4.111475004278877066e+01 4.094029283239537875e+01
+9.814960019294971971e+00 6.709360830193430658e+00 8.163109465669741382e+00 9.660140527550087342e+00 5.512548639953395835e+00 9.686142436182255011e+00 8.439428611504066424e+00 5.339185295525859409e+00 6.504817834734081039e+00 8.540860443226407028e+00
+1.827586857262168962e+01 1.630118298992614712e+01 1.579746131270679221e+01 1.580231307135613150e+01 1.535245972821572380e+01 1.592823352450621499e+01 1.832109692494483966e+01 1.940845305921753905e+01 1.907062842795581048e+01 1.842567154937242080e+01
+2.146676710720505099e+01 2.262735153677946442e+01 2.348916392752585125e+01 2.450132055601035219e+01 2.396095597400838173e+01 2.338180533936361982e+01 2.339816591197571682e+01 2.472962322016043402e+01 2.147912048748268177e+01 2.000556047098093870e+01
+3.018783114771990128e+01 3.358590723523379040e+01 3.269047332060555533e+01 3.254352992108132980e+01 3.121562265211334264e+01 3.372375365814961157e+01 3.084118289554245962e+01 3.094967371830509961e+01 3.230356085674137745e+01 3.143139931055970493e+01
+2.584374719199114878e+01 2.984163480049627282e+01 2.726441680207755880e+01 2.972857554220512100e+01 2.838410021815023399e+01 2.650793434936775839e+01 2.594151262458553120e+01 2.651867523112549563e+01 2.546508704631337494e+01 2.571933983171664906e+01
+4.890392741682737920e+01 4.595886729146835137e+01 4.525032263546647471e+01 4.936816911317350076e+01 4.537777246881384485e+01 4.623344214871998759e+01 4.847659474812192570e+01 4.704723968813654267e+01 4.938156984957754503e+01 4.648989897331134813e+01
+3.457374664363830163e+01 3.083475089517234480e+01 3.060577730630492610e+01 3.042704241404132759e+01 3.454721832018315553e+01 3.096811904897730372e+01 3.208142464272177108e+01 3.224425682826001349e+01 3.299505522106783673e+01 3.035867671873712581e+01
+3.607621910250476560e+01 3.930812475041989273e+01 3.971092727244819542e+01 3.759246487471120446e+01 3.676154442104589037e+01 3.617028887508749335e+01 3.524890500761522105e+01 3.634250038098747382e+01 3.827117889972659270e+01 3.766808465654605698e+01
+3.177507633068123383e+01 3.240950083554988481e+01 3.251566777374159756e+01 3.157967911192818278e+01 3.364620124548783764e+01 3.437373536744487268e+01 3.469359650988931776e+01 3.402546688399763042e+01 3.425290098653299964e+01 3.275272650309997857e+01
+4.450026709087831378e+00 1.689975784257679026e+00 1.877914763199719950e+00 4.699096992043449994e-01 2.891400704980870096e+00 1.797113689837104289e-01 2.327990090662300560e+00 2.713223173537882893e+00 1.432706260641422036e+00 2.954166302845053771e+00
+4.636278874407700101e+01 4.935772840354063362e+01 4.742496142288749894e+01 4.652788229663912745e+01 4.758819467844717366e+01 4.690979009522634158e+01 4.782150532334915027e+01 4.557266434163174296e+01 4.998495251406275486e+01 4.712777938848358872e+01
+3.527023813674863106e+01 3.728615209809772324e+01 3.774811150553017569e+01 3.943908820167909823e+01 3.552330316953948142e+01 3.911323963596944964e+01 3.605023668646035162e+01 3.697041824255015996e+01 3.658301217413706752e+01 3.700077636432699535e+01
+6.580780524883752314e+00 7.536174043441961956e+00 5.207864295251960485e+00 5.741716004810443863e+00 9.933150614794234556e+00 9.825593482180227767e+00 5.024699904672048412e+00 9.759058927116194937e+00 8.195599689077502248e+00 9.339591472600110578e+00
+3.860166684582996766e+01 3.959142517689979002e+01 3.704020230801408076e+01 3.595638685518698452e+01 3.758558965428459686e+01 3.954041843529927291e+01 3.902187207068850228e+01 3.532914921681577169e+01 3.846286400038790987e+01 3.785948761229477100e+01
+2.290322612954816961e+01 2.467968624124279842e+01 2.336125343647097452e+01 2.240638975609618555e+01 2.404837518132944751e+01 2.475266410477204460e+01 2.011033074341145266e+01 2.491260636128019357e+01 2.043066069531840157e+01 2.407193389634380765e+01
+1.614682888518836279e+01 1.734553605523789344e+01 1.634281083726821393e+01 1.550489053408880480e+01 1.583745544547053896e+01 1.573637781776045408e+01 1.986538398956149365e+01 1.879646253459236860e+01 1.983880732634781197e+01 1.719870243253954101e+01
+2.299649643503194341e+01 2.256853927607652466e+01 2.144092262979764740e+01 2.003232178894855409e+01 2.248119610950406866e+01 2.142812994281121419e+01 2.367304150355267467e+01 2.011973132635241868e+01 2.292413905652895423e+01 2.470737118753032746e+01
+1.314778848445868320e+01 1.027166017411451904e+01 1.374322617063100083e+01 1.158793397630558353e+01 1.000067346502242671e+01 1.255564569618614890e+01 1.023425954263801607e+01 1.138084778910449657e+01 1.353488243727858098e+01 1.031344810810932877e+01
+4.661169229040471862e+01 4.805196933322027064e+01 4.969554349155120576e+01 4.835872420238741398e+01 4.537372951818157674e+01 4.730342486741066921e+01 4.945412065755314046e+01 4.547231212900543085e+01 4.994437856068771708e+01 4.974534696822711055e+01
+1.397257772245374241e+01 1.353543238633348977e+01 1.025113005731986959e+01 1.036450917683951722e+01 1.201436641316318443e+01 1.147645247023971571e+01 1.116192161528023874e+01 1.140502249454356765e+01 1.401741371648442325e+01 1.464614026815926984e+01
+3.715491531423629112e+01 3.587393357522579151e+01 3.993550042962058200e+01 3.780575106217587233e+01 3.843718430470433844e+01 3.662709140341303993e+01 3.547369457389672220e+01 3.987935431391768049e+01 3.643129517691591701e+01 3.711904092586787129e+01
+3.788510200845279030e+01 3.610573805055346952e+01 3.634559876319005411e+01 3.901566544468123254e+01 3.522072781043727474e+01 3.996046093514409847e+01 3.565175839857396056e+01 3.898034262698468666e+01 3.697387658385841291e+01 3.746108091643733218e+01
+1.670952639052745070e+01 1.763838733110847556e+01 1.605817949284930535e+01 1.997815554749441702e+01 1.990558953933967956e+01 1.824754464853723590e+01 1.902207029838736574e+01 1.857550080641849988e+01 1.796579109519733919e+01 1.526673998494448803e+01
+5.495890497936079200e+00 7.007471579306441711e+00 9.000354843495797397e+00 6.020178173144493883e+00 7.775424746511431451e+00 8.665356480148373564e+00 8.079927251300894397e+00 5.940123673077081001e+00 6.776922843428696552e+00 8.918958922426986291e+00
+2.488641911588464595e+01 2.121176847568381163e+01 2.331655354752000875e+01 2.419549849399805908e+01 2.275330229618282019e+01 2.076572250041978052e+01 2.364058218668083100e+01 2.300125705049791591e+01 2.365625294673687407e+01 2.384873311428543730e+01
+2.467271940357757742e+01 2.151692771814566640e+01 2.390945456498445054e+01 2.382929321942371104e+01 2.345827825933270816e+01 2.482819487633400257e+01 2.196777668053157839e+01 2.065358661794878614e+01 2.335854429622030182e+01 2.364654900238603119e+01
+4.509586455374949310e+01 4.886248923048157167e+01 4.585472446783792577e+01 4.521952306815318678e+01 4.826849346452539891e+01 4.886968064411836110e+01 4.906914565796421357e+01 4.746754591330299888e+01 4.602684092344992450e+01 4.868613838624913370e+01
+1.525012496952471430e-01 1.867409437460720856e-01 4.113002803298291710e+00 1.800953207056314564e+00 6.353025632594239136e-01 2.611216300274021851e+00 3.849967765493054195e+00 1.079105137484215771e+00 3.114452379095001167e+00 4.267373249688399817e-01
+6.547228294166818063e-02 3.317686860083552958e+00 8.901798343487571374e-01 4.805351587347275633e+00 7.433136387655647770e-01 2.073120618635118539e+00 4.267483403932192942e-01 4.984371259229736673e+00 2.510975051656212820e+00 2.976925086600219039e+00
+1.481697217106775177e+01 1.280084091730920903e+01 1.468411231016546026e+01 1.026128939643011861e+01 1.209396659537080687e+01 1.130078895481025647e+01 1.365410482490364785e+01 1.490648545248623336e+01 1.128265031222123937e+01 1.327087300737037268e+01
+5.443002148398086604e+00 6.103059763556055728e+00 7.991126470318693720e+00 8.678315571195948763e+00 9.991737556964748634e+00 9.665566656717789584e+00 8.212825997675956557e+00 7.106240266470360112e+00 8.180886823541163366e+00 8.928258090401159919e+00
+2.651387564135983510e+01 2.766235453941948563e+01 2.782208293889873829e+01 2.800291598493567946e+01 2.583127665174850307e+01 2.689868702410824497e+01 2.808597113558483471e+01 2.984909432316892364e+01 2.863815568849844340e+01 2.961301878546979083e+01
+3.575247749036292788e+01 3.751785037201777584e+01 3.900821294915683524e+01 3.720767005189448184e+01 3.745306787949099459e+01 3.924383792640657020e+01 3.853029057319015749e+01 3.745227204259892062e+01 3.628847824094589924e+01 3.942463373422483386e+01
+2.832369602455423063e+01 2.709667340209644237e+01 2.850548793682134985e+01 2.705365771745506009e+01 2.752318643988717639e+01 2.503676522277213579e+01 2.845860057067344329e+01 2.830671339472362291e+01 2.519200438663172292e+01 2.684125053697566443e+01
+4.315887421826377590e+01 4.128559251999347168e+01 4.474327040451495208e+01 4.084879249103568100e+01 4.482826587383205919e+01 4.007428061253752105e+01 4.240562845908422673e+01 4.166683919058281305e+01 4.224561706965125296e+01 4.285332289490394686e+01
+1.757466674956629760e+01 1.580681400527691771e+01 1.541777168755344896e+01 1.509564483218643538e+01 1.582874088482610375e+01 1.945427767491573334e+01 1.620768420850840741e+01 1.677135663608607885e+01 1.552672742240666537e+01 1.611180652374085298e+01
+4.794043122927348577e+01 4.785344830788424275e+01 4.742133099054862555e+01 4.774989493191932155e+01 4.745895316311833767e+01 4.782728183037053782e+01 4.857752977310564546e+01 4.554814097201720102e+01 4.874812876074511792e+01 4.567943075063796954e+01
+2.506640601729290196e+01 2.771007649239863113e+01 2.729781488752760765e+01 2.749483972110396479e+01 2.536106592667594128e+01 2.842217680534653823e+01 2.751610207429317256e+01 2.882574424930631807e+01 2.742645317030857655e+01 2.574690818113215940e+01
+2.759373923557354757e+01 2.525582753222737864e+01 2.616429278438047135e+01 2.746000864716041434e+01 2.655117641872352507e+01 2.590881798880597131e+01 2.752066420959219073e+01 2.661404896723925262e+01 2.629053821586707329e+01 2.731992708720190421e+01
+4.286749792467607989e+01 4.426814964263978425e+01 4.120963864059618231e+01 4.438146174261968468e+01 4.009521704637145945e+01 4.366227314566864948e+01 4.466556610584326847e+01 4.328598830820030940e+01 4.219514621990224157e+01 4.022440508236358880e+01
+4.638916449782327334e+01 4.934952966945160568e+01 4.802470406598877162e+01 4.807045368987850509e+01 4.765955348440651562e+01 4.545925168614600409e+01 4.722509341862677701e+01 4.999752594854258092e+01 4.917614645423007147e+01 4.946729527083557798e+01
+2.257230663869946952e+01 2.042528192744620696e+01 2.274436400771299915e+01 2.189989539482697367e+01 2.303567640441788456e+01 2.194363173938273448e+01 2.120149561725183318e+01 2.047482637614188405e+01 2.157459222294447798e+01 2.048322417143875995e+01
+2.281959783377811846e+01 2.250139267603880100e+01 2.034697042952091550e+01 2.044938425868080500e+01 2.300456002829542967e+01 2.170479285717779305e+01 2.458634033288840470e+01 2.203295268679736196e+01 2.071640729351320687e+01 2.357359416751017989e+01
+1.684173606897175546e+01 1.716173113201673672e+01 1.515574546396695510e+01 1.629788224637524507e+01 1.516838201937232000e+01 1.939592886300624031e+01 1.621698341609265270e+01 1.778668584786504070e+01 1.519489660330565250e+01 1.833423695652829011e+01
+3.209466488991972710e+01 3.387932532601393376e+01 3.169366477887215794e+01 3.281868550722699496e+01 3.102489616412955442e+01 3.370997695563086438e+01 3.026139551634379643e+01 3.426271322437749944e+01 3.099098193210834040e+01 3.437199015854165651e+01
+3.861186753816399175e+01 3.538996933204704476e+01 3.553065009654509510e+01 3.746390672932477628e+01 3.580356674595493160e+01 3.989132731764736661e+01 3.579260117013704701e+01 3.743733917731987049e+01 3.682060528420752377e+01 3.819693210727049149e+01
+4.954490445957431888e+01 4.818965244789832525e+01 4.884584934761793562e+01 4.684281234513856873e+01 4.980005940409562726e+01 4.910230645079157341e+01 4.926974231507271895e+01 4.586097133712877394e+01 4.635481603935609485e+01 4.642813299841788677e+01
+1.555215931705551391e+01 1.644593723147974984e+01 1.654903437661234378e+01 1.624978473198810747e+01 1.757502829854861659e+01 1.767776907439836265e+01 1.678442987585555102e+01 1.676894579368217819e+01 1.914277798953040843e+01 1.894646424159842724e+01
+9.226050967818866244e-01 1.046746616683551512e+00 1.852360513956909926e+00 2.422614925955106635e+00 3.091273857651479773e+00 1.844568197848861946e+00 2.312673580665739692e+00 3.737354690668782453e+00 1.834160144529894954e-01 1.262184721720103653e+00
+4.257463754430335712e+01 4.085338717651116980e+01 4.331453126172282708e+01 4.426269370427983318e+01 4.128969753393450048e+01 4.245757112915913467e+01 4.487763664510450923e+01 4.166620870275363586e+01 4.297523172461880847e+01 4.045097850100122372e+01
+2.598777952839239092e+01 2.902587198680188507e+01 2.592888477349353948e+01 2.542483144944733198e+01 2.718123013178578873e+01 2.829153719753031027e+01 2.718858412466770602e+01 2.638377065975654290e+01 2.779085591945220557e+01 2.673501167706099935e+01
+2.437153667068540130e+01 2.415311380215895554e+01 2.112328698820883233e+01 2.199666290099611388e+01 2.204836434646259491e+01 2.489110334263279256e+01 2.090445950689449006e+01 2.399578985552390975e+01 2.167096357086554903e+01 2.365435172888080118e+01
+1.167604023685436410e+01 1.086880796567871954e+01 1.356007010165390270e+01 1.412989106354040914e+01 1.050318739261766687e+01 1.119937056377972340e+01 1.070985994880496861e+01 1.173970705791083269e+01 1.225175489452706401e+01 1.374413168481653180e+01
+6.941358632470506773e-01 3.204373724016073233e+00 9.094004219957241286e-01 1.728336416619316029e+00 4.483942049530059037e+00 2.369808201314361540e+00 3.337788692605135665e+00 8.615993560081491864e-01 9.614450940433538761e-01 2.043430813323943163e-01
+3.520398840496117732e+00 1.064820807544553549e+00 6.818573779338488183e-01 7.272332833940964303e-02 1.752937794032984886e+00 2.949588434273165305e+00 1.961220225498661485e+00 2.187374610118645535e+00 4.520793472468741747e+00 1.741277335116501845e+00
+1.080012468231597111e+01 1.011676048164092911e+01 1.378106806975088361e+01 1.229261504440945352e+01 1.144622385986327195e+01 1.450041591508240302e+01 1.058069480100262894e+01 1.477959414477659550e+01 1.156983358688676411e+01 1.444201836154340590e+01
+9.443740399344886072e+00 9.778257491148767855e+00 9.310638086327251983e+00 9.047580373624390049e+00 8.276209903195109518e+00 7.754286853045696759e+00 5.434933799557050804e+00 7.042266065353492976e+00 6.863442585061569901e+00 6.298768918801631145e+00
+3.474640585877991583e+01 3.152549843409763142e+01 3.084429644683517679e+01 3.230336395827496432e+01 3.153543871680124511e+01 3.017579625135596899e+01 3.161572608639708548e+01 3.272054311969733931e+01 3.275856186009983162e+01 3.178279460588444394e+01
+1.024989514329839402e+01 1.421824832025911789e+01 1.490596264582057984e+01 1.396571436998369720e+01 1.426892460852333500e+01 1.120988565158522654e+01 1.480313487756599855e+01 1.098462852226714226e+01 1.475714905180916148e+01 1.497409646982975495e+01
+6.187720654371637430e+00 6.866258958146699953e+00 6.136348136315756818e+00 5.365979618842217747e+00 8.017242966906890089e+00 8.341063992775081815e+00 8.097451730048073060e+00 7.317470219002862208e+00 6.898928900896148519e+00 9.316668247859126950e+00
+2.905813507222426750e+01 2.646958380252466725e+01 2.723163179993280636e+01 2.863509263507067004e+01 2.846460114612394321e+01 2.993684236156099843e+01 2.612580512107965802e+01 2.831158956769791146e+01 2.804840954137888787e+01 2.957549227245014833e+01
+4.460056906661314713e+01 4.235148111345787214e+01 4.014498372167974338e+01 4.344910535664381257e+01 4.240918626788128876e+01 4.062172658721205210e+01 4.107135904655130076e+01 4.032245340227922981e+01 4.287146769854286532e+01 4.311014739626004655e+01
+1.174410266984739692e+01 1.055499049395657352e+01 1.404117605004611136e+01 1.473844012982235441e+01 1.036158237628969303e+01 1.477557603645850648e+01 1.261288299668372659e+01 1.149782838976936894e+01 1.038431037638081733e+01 1.250312134035208800e+01
+1.607347943731677731e+01 1.533617090045280662e+01 1.797423689750954878e+01 1.869433338566516412e+01 1.516221723023593526e+01 1.829358819363510946e+01 1.766145937975727165e+01 1.551632504437524140e+01 1.586261938473180955e+01 1.783987148658040311e+01
+3.059264473611897461e+00 6.974693032602091725e-01 1.460723242676090772e+00 1.831809216468458512e+00 2.280349921085179865e+00 3.925879806965068219e+00 9.983689107917986805e-01 2.571172192068058138e+00 2.962072844310212449e+00 2.322520635999886229e-01
+7.273699278169295290e+00 7.577980142896251436e+00 7.444232901284601134e+00 8.334321287730521277e+00 5.698256273781564296e+00 5.149867949363390096e+00 6.539649707955954128e+00 8.523403813683234631e+00 6.009267260614741701e+00 8.367162166624586561e+00
+1.070355764024379219e+01 1.101007834201245039e+01 1.092112419619013153e+01 1.446994855003935143e+01 1.327146276162480909e+01 1.076052141611136470e+01 1.220161709184174548e+01 1.307649012534901090e+01 1.041732042494691690e+01 1.441208184203669340e+01
+3.490808570098725916e+00 2.680481831720602059e+00 1.547638081431638835e+00 4.068975098534743040e+00 3.423655862769396485e+00 8.130846967244564905e-01 4.554635922469212339e+00 4.112686214615845159e+00 4.748999566459620070e+00 3.628597541941799953e+00
+4.224242614001316554e+01 4.490324109782024919e+01 4.175136185334663708e+01 4.226091469680054047e+01 4.066757775676409636e+01 4.023978866218493522e+01 4.387704757296247493e+01 4.285341587535989305e+01 4.380352403021947794e+01 4.074931399443276092e+01
+1.876198941151893962e+01 1.765647009175465953e+01 1.838719035614147401e+01 1.714228951924397748e+01 1.865748232021569564e+01 1.912235758802274432e+01 1.573218128301408036e+01 1.916464857787114084e+01 1.770148265895153727e+01 1.922332954545112216e+01
+3.248257711115302726e+01 3.061659245537646257e+01 3.200485163344175987e+01 3.175354893996042094e+01 3.386420041713251550e+01 3.401585255816365816e+01 3.076706441194544084e+01 3.183275593689613103e+01 3.186676580515915802e+01 3.075705221968042480e+01
+1.596568187952074336e+00 4.750309835254024726e+00 4.753035734687780511e+00 2.867189440616430662e+00 3.159186060848996114e+00 2.242227609891598750e+00 1.466053858490322659e+00 1.643322726849579807e+00 3.362592280385192200e+00 3.761872647188400087e+00
+1.099048816379869997e+01 1.282665127285804907e+01 1.231966243344168177e+01 1.486002664815768526e+01 1.304263636348233391e+01 1.174753186043409414e+01 1.057047892443966752e+01 1.075623414367467312e+01 1.112658464975617534e+01 1.125483330670149051e+01
+5.874193136302062968e+00 7.512830382317211786e+00 6.993315138861565750e+00 5.731869960811245335e+00 6.837672111457656854e+00 5.340861546927468062e+00 5.129059534747434590e+00 5.675831445774114137e+00 9.815575557945869889e+00 7.747647679475084814e+00
+6.429533946195800098e+00 9.079734694843086373e+00 9.306849981817180151e+00 9.232571693451390615e+00 9.594632668197771608e+00 6.261205100866807705e+00 8.775209643731392006e+00 7.302697486370700375e+00 9.209992764450307234e+00 8.642453385808066102e+00
+4.099541156413978626e+01 4.293851614170738173e+01 4.032021761932394099e+01 4.431217065070578087e+01 4.480749839618573560e+01 4.123373710333690667e+01 4.225047634295430043e+01 4.011067225514748458e+01 4.320355112363611028e+01 4.206963029026294265e+01
+4.085360354746399913e+00 1.289514135224699043e+00 8.544379369503291022e-01 3.343216099622154935e+00 4.646879945637929055e+00 2.783814465069649025e+00 2.858063447349499242e+00 1.399895468301420864e+00 3.847464665959684282e+00 9.352187427876168524e-01
+2.692257906853133420e+01 2.673479475188792875e+01 2.715903547553888586e+01 2.890889912964363262e+01 2.742086516081703707e+01 2.897007225132981389e+01 2.788244451569932991e+01 2.671034717328777575e+01 2.904989371841736201e+01 2.619144835276545891e+01
+3.971655055937074508e+01 3.760115244551545288e+01 3.838546892391822496e+01 3.889257940030832117e+01 3.565507309325232654e+01 3.800478597498748456e+01 3.517148950651655781e+01 3.748783041694363050e+01 3.577421340810114003e+01 3.591461462981042274e+01
+1.943386448447410153e+00 1.356745158869479440e+00 4.143687545759647151e+00 1.783766633467946505e+00 1.404672548436903812e+00 2.713480415791242439e+00 7.046211248738132316e-01 4.010984903770198784e+00 3.727532183988541137e-01 4.934434683002586475e+00
+4.463950314931013708e+01 4.414189072800823510e+01 4.161489366681904301e+01 4.118627181828568951e+01 4.131316806183036761e+01 4.252210519857606386e+01 4.372024725614289054e+01 4.251609603591481346e+01 4.033898197914056283e+01 4.361790350219990131e+01
+2.424979665251602512e+01 2.098122858353082876e+01 2.062774894949238558e+01 2.481739973737163751e+01 2.054022279688203412e+01 2.239245535053594693e+01 2.292781864396651059e+01 2.270687210453719018e+01 2.043016078516471623e+01 2.028513457001809783e+01
+2.315687663024125342e+01 2.213199178400811462e+01 2.274072601364010993e+01 2.087323592948164830e+01 2.147966014718307903e+01 2.331912237426362466e+01 2.482651361815199920e+01 2.025208386801104510e+01 2.445192160427632899e+01 2.288440600655604129e+01
+1.182840374130685746e+01 1.112690634003382861e+01 1.097916542067135026e+01 1.070401474446338064e+01 1.311206820782998328e+01 1.390660927873652497e+01 1.289149199710180227e+01 1.073481354794104803e+01 1.405561884966735420e+01 1.317977353581864186e+01
+9.757016711033283940e+00 8.008059100731657054e+00 9.095944297133950585e+00 9.421032316742039114e+00 6.140398859744662374e+00 6.060224199541133672e+00 8.054904944254959176e+00 7.055142349033523885e+00 9.199306514333601470e+00 9.500115616990054690e+00
+4.285914385591345166e+01 4.126821237170688050e+01 4.114030908450010315e+01 4.005763007026492772e+01 4.065170361784535658e+01 4.154634055749847477e+01 4.058439380295469334e+01 4.492929220205468965e+01 4.154316324261975524e+01 4.065161973351163738e+01
+4.654882657071451746e+01 4.760942230963739519e+01 4.831852239463128029e+01 4.690550256805907026e+01 4.859735115656690851e+01 4.668082669289790232e+01 4.645141838657379907e+01 4.770594027928512304e+01 4.511858180152895414e+01 4.539894561817000351e+01
+2.153885452646574450e+01 2.306818951494691916e+01 2.448967646721868618e+01 2.404962210151449753e+01 2.291565109549791757e+01 2.365110858878624711e+01 2.182411235103899472e+01 2.320482764049378943e+01 2.233090795563778386e+01 2.094968068228780567e+01
+2.191061747229986523e+01 2.066134357549240974e+01 2.098344098656411560e+01 2.118741652584692048e+01 2.149948796497267978e+01 2.321397535253154487e+01 2.300472742268859605e+01 2.348039930783519580e+01 2.181250992265756494e+01 2.411998825939988933e+01
+3.777029191730105140e+01 3.965416432087903331e+01 3.502674494347111533e+01 3.874119403090450220e+01 3.951525326551257677e+01 3.569860283489477126e+01 3.548062925866075545e+01 3.712286303592977532e+01 3.966839453066467769e+01 3.771193280095219080e+01
+4.771734934990681865e+01 4.748576907941436076e+01 4.567392892458718734e+01 4.748037739250265332e+01 4.584551950210325799e+01 4.563067893147882614e+01 4.966322858670584139e+01 4.802475006573852312e+01 4.829745029062291906e+01 4.700896835166681598e+01
+4.929493195516058535e+01 4.995797117832083245e+01 4.647019855019999568e+01 4.855121670963629299e+01 4.557699929140414241e+01 4.703404645678424600e+01 4.923985846656294996e+01 4.683829023029554151e+01 4.795547690267807184e+01 4.751886721862317131e+01
+2.693025467825917829e+01 2.983353070009230379e+01 2.848583127145175098e+01 2.541611533104036269e+01 2.931479811656509327e+01 2.740279970418134070e+01 2.534376953211243588e+01 2.774858627581655668e+01 2.708582139487851137e+01 2.938874702431312613e+01
+4.132298555940514717e+01 4.259750927382490460e+01 4.225268269533538046e+01 4.005822449751548220e+01 4.278406071570370273e+01 4.330762162073087751e+01 4.295957202209535097e+01 4.368139949391710530e+01 4.285669764226538803e+01 4.033375127425378537e+01
+1.705331755251292547e+00 5.673676062029453515e-01 4.623468091392814117e+00 4.386696766904904621e+00 1.289708138575778040e+00 3.299920230170894975e+00 4.086111001006079491e+00 2.776004057997311758e+00 2.648252891780032314e+00 1.209261454502258415e+00
+2.084405002892282255e+01 2.426971441070926261e+01 2.006614406452646904e+01 2.255890228284740218e+01 2.384721289710778436e+01 2.467397758746391645e+01 2.454601068103243477e+01 2.409812434773822432e+01 2.444095674830651888e+01 2.099609842918538405e+01
+3.833354427698228051e+01 3.642144144547729923e+01 3.792889135465523509e+01 3.793383953922295859e+01 3.722864910451434639e+01 3.918059307772521294e+01 3.632483530777721370e+01 3.724316295808866784e+01 3.768846064295485832e+01 3.831812360383649718e+01
+4.841849772862310175e+01 4.509841607690707121e+01 4.867821330005682512e+01 4.743508020258119728e+01 4.906591073642230327e+01 4.977318826003234165e+01 4.962894274747284129e+01 4.954632521727670280e+01 4.756084977966943939e+01 4.680071057069469020e+01
+1.061460339232693784e+01 1.444329540132699208e+01 1.251541975389918093e+01 1.224674871019820976e+01 1.292932394226759563e+01 1.312391931394701317e+01 1.035887903113256492e+01 1.341308610611701191e+01 1.120965840157764859e+01 1.356976316253294890e+01
+4.064505045650387949e+00 4.998588366430652741e+00 4.983184185369527341e+00 2.777158528013137229e+00 3.844937075902552515e+00 4.723828649412140201e+00 4.248236953387057646e+00 1.236740508715988174e+00 2.252720676550467704e+00 6.457970757574749143e-01
+2.605381549714953238e+01 2.618360237926916412e+01 2.814015232284768331e+01 2.914969796606221664e+01 2.707813891014577479e+01 2.629150214563795984e+01 2.933505803455300054e+01 2.834634145875417488e+01 2.724042743641538067e+01 2.743950097639650920e+01
+8.002971666803086137e+00 7.578397138482488415e+00 9.596959866072086953e+00 7.484817414529151058e+00 9.960790074116562920e+00 9.257124788725478837e+00 6.042552571786679039e+00 9.652976073219580400e+00 5.581831989427380236e+00 9.087248542455958145e+00
+4.156891071652864156e+01 4.070922198808492709e+01 4.106900605331366449e+01 4.052756823200600422e+01 4.341534787595062284e+01 4.330363696554575625e+01 4.475303185789936578e+01 4.364839206823620543e+01 4.026022919378065978e+01 4.442122586964477193e+01
+4.691702284105189413e+00 9.061653308283007524e-01 3.324813368338874753e-01 3.705603246450295263e+00 2.872365565899559492e+00 4.209143883791360174e+00 6.988618831314474811e-01 3.976336559299451068e+00 1.008136600238722647e+00 8.182797143285225339e-01
+4.336758393408629786e+01 4.057505468414048977e+01 4.347410364935860372e+01 4.220773644439915273e+01 4.472492392777921566e+01 4.070805675308949390e+01 4.321416695407869213e+01 4.190990022731472919e+01 4.478407335295438685e+01 4.164987447645138019e+01
+4.394137604085414495e+01 4.129517572051673824e+01 4.354338359982753559e+01 4.107427303212499226e+01 4.020165080525756451e+01 4.100568271295188794e+01 4.089314438377149941e+01 4.168873998367423894e+01 4.209224748587728726e+01 4.254269445748853684e+01
+9.561816728083455175e+00 6.053310945028332668e+00 8.114832917817413005e+00 8.157801100462602761e+00 8.665565112076404120e+00 5.657838425636299462e+00 8.579124823410442247e+00 9.545162603328204654e+00 5.898415544351209405e+00 6.187716624619388206e+00
+4.216861851415710305e+01 4.206046804816269713e+01 4.017806075136420674e+01 4.248988151293696802e+01 4.277084860805499744e+01 4.279420435477333484e+01 4.353515584661442261e+01 4.088740917495506011e+01 4.126111567115309242e+01 4.405365232615206139e+01
+2.881064810225162276e+01 2.968088282083252594e+01 2.970375429617230623e+01 2.587390642437467037e+01 2.937371824828283096e+01 2.868715720713561268e+01 2.626418700345144686e+01 2.533642306460757254e+01 2.633998633442189075e+01 2.956104118390762636e+01
+2.552330220173240605e+01 2.711471771870778724e+01 2.897789188128793114e+01 2.570691777108170228e+01 2.565160216586167863e+01 2.821714474758665503e+01 2.598591490984033214e+01 2.548805019054495702e+01 2.583424289102788762e+01 2.961865697938387854e+01
+3.940325288732289266e+01 3.706455594794606867e+01 3.768746876836617332e+01 3.524649831204585126e+01 3.501173736933726843e+01 3.622399936500863049e+01 3.840291546459383909e+01 3.560632446679568375e+01 3.556880979402274789e+01 3.705480304017951454e+01
+3.378178027371816938e+01 3.397067280866136230e+01 3.247298526381879213e+01 3.447373785415650360e+01 3.133834218597148791e+01 3.205299348619133326e+01 3.449298455284485243e+01 3.448128358235789648e+01 3.342856384412340276e+01 3.429490273561110314e+01
+1.104441362002581783e+01 1.184353585432397615e+01 1.184906627993588302e+01 1.026177510093736167e+01 1.383783814258959133e+01 1.208252215951939590e+01 1.411089943408211766e+01 1.425174000559947629e+01 1.105997027349329009e+01 1.328676741085064350e+01
+2.172508419962283099e+01 2.027366353462493009e+01 2.102121053184214361e+01 2.209347571663842302e+01 2.109817464297284317e+01 2.000113519109127935e+01 2.457500768873763519e+01 2.421939705615464433e+01 2.371146115743473359e+01 2.083907297823014204e+01
+3.877638083475052788e+00 2.266444173740138179e+00 2.621951346637900304e+00 2.203813734691140613e+00 2.003815304376630024e+00 2.798201656541089655e+00 7.762012296535625300e-01 9.096406524763556156e-01 4.308928105067586500e+00 4.730577310668163449e+00
+1.448757264568840242e+00 8.061064362700220975e-01 4.648488261712865111e+00 4.040601897822084787e+00 3.167018782552117440e+00 4.357302950938588992e+00 4.018360384495572646e+00 9.328502944301791944e-01 4.462794992449889087e+00 2.696711209578253499e+00
+2.891750751293954380e+01 2.505256612270826722e+01 2.880944947188741878e+01 2.946652246894061378e+01 2.716419960528586230e+01 2.767771236548898983e+01 2.738491696308826917e+01 2.694604309311719348e+01 2.943712267685179995e+01 2.946966755334995369e+01
+4.389185952272745794e+01 4.304285796586987090e+01 4.485452355724935103e+01 4.186802829767029266e+01 4.340730306258585358e+01 4.031767861211959314e+01 4.198123673408203160e+01 4.481908830594090176e+01 4.269490437225060475e+01 4.143939751667421945e+01
+2.487705183842372492e+01 2.286781640013354888e+01 2.170820556345301000e+01 2.324232278450118372e+01 2.034220354621313120e+01 2.448698659160793056e+01 2.059690505669098570e+01 2.163921418942909014e+01 2.407872690313060460e+01 2.298656189165355812e+01
+2.312716725083296865e+01 2.404134105608139294e+01 2.034518468455687312e+01 2.167394520945339664e+01 2.156851562378578180e+01 2.317822660976306537e+01 2.177978886735320430e+01 2.074253390821840526e+01 2.298233537706772012e+01 2.407191960334540681e+01
+4.372184102151994978e+01 4.309722536909076496e+01 4.401537821168872711e+01 4.215902550392956272e+01 4.392904242122175162e+01 4.231228408532574292e+01 4.470482893921396794e+01 4.243186050412573707e+01 4.231309635966864846e+01 4.392535930781756548e+01
+3.677211995993692994e+01 3.690573441017367884e+01 3.705926141572248156e+01 3.863789661067472281e+01 3.725819497759418653e+01 3.928364973252949000e+01 3.972047392965182411e+01 3.667973076689467149e+01 3.780347240687839871e+01 3.547528268416282060e+01
+3.596008125483974283e+01 3.919999111621971366e+01 3.862456373312219426e+01 3.947380993506247648e+01 3.558778624560468273e+01 3.995111267307537162e+01 3.604703356974966511e+01 3.505889938143320705e+01 3.998711469526777051e+01 3.640536942722556546e+01
+3.488244830573943744e+01 3.188129664665211038e+01 3.461643010506968210e+01 3.272412337836716034e+01 3.134871232936883700e+01 3.351199360540299210e+01 3.329450903287428787e+01 3.494562659554366491e+01 3.132523643704641714e+01 3.336029751330868010e+01
+3.175003434236589328e+01 3.464186275990395814e+01 3.032813044088908683e+01 3.274705916030482200e+01 3.295433133697557082e+01 3.326364061888612156e+01 3.127833111665907140e+01 3.182283213759932039e+01 3.421840264832488998e+01 3.097471384485080037e+01
+3.002584302168266994e+00 3.325183372731277398e+00 8.768563931172479453e-01 4.572059729624799118e+00 2.093852624460365686e+00 1.915692641247487282e+00 2.594588526414187690e+00 2.348298338752752290e-01 8.314168437803970413e-01 3.690168082131852323e+00
+2.295678781191306417e+00 4.900162876427385683e+00 2.463090469964348106e+00 1.643758051437540946e+00 3.167004271583628849e+00 1.200728093890965464e+00 3.793166405433195942e-01 6.443986095532461267e-01 6.402291947888621992e-01 7.595134675614717557e-01
+3.751944398395636426e+01 3.854382816172827120e+01 3.624471762398436425e+01 3.662219114317532842e+01 3.667107668630057304e+01 3.512871204873608377e+01 3.670523936415311539e+01 3.901652286759016874e+01 3.948649247874869417e+01 3.759109157817963620e+01
+3.542324376792314666e+01 3.559635836019871391e+01 3.612291191326950468e+01 3.750098967761392998e+01 3.920221375273010267e+01 3.850646671044192004e+01 3.894520302101023645e+01 3.675487811963045459e+01 3.702326870824275318e+01 3.696840942995306278e+01
+4.726876880125176683e+01 4.753465058038597135e+01 4.843694956342856983e+01 4.816641741166498036e+01 4.905360336472587335e+01 4.522375716963119174e+01 4.648220362389698579e+01 4.640067059387689596e+01 4.573008452796054257e+01 4.644589126928221390e+01
+1.115208331058675029e+01 1.000736911043155786e+01 1.364672397043998231e+01 1.483422749899642668e+01 1.112146741642522585e+01 1.331523595901711232e+01 1.370948163479357618e+01 1.424212689545262478e+01 1.211314598506804607e+01 1.151465452820214708e+01
+3.801877571918806353e+01 3.581965860476601193e+01 3.867976780257588842e+01 3.650615647396953989e+01 3.731695504402323138e+01 3.799715271013810991e+01 3.585636705333119778e+01 3.870818909308810163e+01 3.651320170318407321e+01 3.831185929956376413e+01
+2.573304150180001670e+01 2.579833174683575336e+01 2.895041624985718798e+01 2.808145374177072284e+01 2.522430278813858351e+01 2.811273495231140984e+01 2.654458861421883142e+01 2.684362577735423017e+01 2.884865709148440160e+01 2.905467596336305292e+01
+9.400395437807290477e+00 8.254386845235970327e+00 7.664788932756676942e+00 6.621668765576878002e+00 6.665009565290989535e+00 8.347434775990951294e+00 9.970696806105838306e+00 8.309195949246893420e+00 7.788917086850124960e+00 8.653252551196230158e+00
+4.962632320828482335e+01 4.573448284438889289e+01 4.985427098933850232e+01 4.973738617197812317e+01 4.942285993529131360e+01 4.607278260665000857e+01 4.817027528005491632e+01 4.880445736480619701e+01 4.993013964098214785e+01 4.590211911040685067e+01
+2.910735626388095199e+01 2.677032281177547191e+01 2.827910383663696336e+01 2.768637836834018984e+01 2.838562131741282002e+01 2.841335576231379534e+01 2.814367007529996556e+01 2.633050684268654251e+01 2.519503210381408920e+01 2.727783390995054447e+01
+5.301336951447804147e+00 9.672180134027570375e+00 6.758113436198172508e+00 5.507104142246082468e+00 7.429358795931628734e+00 6.283882838602539600e+00 6.424364509809613821e+00 6.536449824631432648e+00 9.015129489163317800e+00 7.695806383376272208e+00
+4.292560830463562382e+01 4.221457049020981600e+01 4.017087794520544008e+01 4.159826031127650481e+01 4.405216456786585155e+01 4.344850767430934013e+01 4.362435426789940607e+01 4.349058462041762141e+01 4.155486510691516600e+01 4.049831961038388073e+01
+4.381807649480828104e+01 4.129132178943581977e+01 4.240393084089863862e+01 4.496007984698417914e+01 4.343325211677018416e+01 4.420678385652599474e+01 4.207423803280272523e+01 4.383930461562927405e+01 4.020254586470660740e+01 4.061455591271122501e+01
+3.342104537594243396e+01 3.441220595673790683e+01 3.101755554165943352e+01 3.436680558920718909e+01 3.029881137089192222e+01 3.444299640218576286e+01 3.164536889730364067e+01 3.157293816707033329e+01 3.256044288349332305e+01 3.470345093861615737e+01
+1.690495636834199900e+01 1.904202869446845625e+01 1.911811805374486539e+01 1.692305537989384234e+01 1.729562011643340469e+01 1.651642945424641340e+01 1.966277439209655853e+01 1.559321882870790077e+01 1.966874711500734918e+01 1.841933225917671635e+01
+2.776407437859174365e+01 2.870331790533312954e+01 2.742508993762020708e+01 2.542701515081360952e+01 2.986230695013951220e+01 2.759005215688048906e+01 2.807093122159505683e+01 2.618304891353753661e+01 2.741749042553401949e+01 2.714574745979160753e+01
+3.819631441590681220e+01 3.537571476588793473e+01 3.567101213163174833e+01 3.822378363295046455e+01 3.669830310240721616e+01 3.853973913350594671e+01 3.778712372335071024e+01 3.628010586530756854e+01 3.825413975244664044e+01 3.558136840146440250e+01
+3.975105602932715243e+01 3.531631335910337555e+01 3.801506931682293811e+01 3.528566359671665253e+01 3.946887093880972230e+01 3.764904528535026884e+01 3.834674175381397987e+01 3.915786962955226613e+01 3.575155311241984180e+01 3.519295780969066811e+01
+8.617100568442925379e+00 7.479378675393854259e+00 5.405231079538239669e+00 6.100916009749056457e+00 8.416293818297980067e+00 5.380654297451500589e+00 9.256034570243844684e+00 7.475732635069871179e+00 7.402932886633239562e+00 7.962038923297587445e+00
+1.519634707120826178e+01 1.635999302672178146e+01 1.503189521703295384e+01 1.989177393528428439e+01 1.982873604909873677e+01 1.697577648736152511e+01 1.864185427169822873e+01 1.672903049205212511e+01 1.835546578542988172e+01 1.902715021522989503e+01
+2.647408619173383570e+01 2.677274104414303579e+01 2.782297040645160635e+01 2.626161372131872440e+01 2.957644970189636879e+01 2.632842782433131745e+01 2.947907865780097225e+01 2.551737531823292215e+01 2.828281351199826332e+01 2.953492759219121666e+01
+8.882237232498622959e+00 8.280809188405356736e+00 5.887143847348534464e+00 7.725134594484691419e+00 9.923348697622540016e+00 9.686940332485594496e+00 5.215868678985058793e+00 5.824074078647186070e+00 5.658643867272809658e+00 8.629899549926477675e+00
+1.488400164255329727e+01 1.055360296663157804e+01 1.211274214155972295e+01 1.021012337585702667e+01 1.369952060383465131e+01 1.459038276099575349e+01 1.140018664775244694e+01 1.429170838399560495e+01 1.146109115230948916e+01 1.455385080821957544e+01
+3.628146187684608748e+01 3.595206748012454767e+01 3.834976745429609224e+01 3.500200772012669859e+01 3.902945584598427331e+01 3.539624803064964453e+01 3.595744807454060066e+01 3.693118197649544499e+01 3.742429369858052013e+01 3.677497557906971082e+01
+1.338410649428697852e+01 1.414234649724558501e+01 1.147309698173096493e+01 1.007157638833530022e+01 1.368934759280764979e+01 1.417072298500337979e+01 1.370238065976759501e+01 1.071425143650419365e+01 1.376713961128484520e+01 1.384461391053820378e+01
+1.868267614167396218e+01 1.941496912414886467e+01 1.601316317067671591e+01 1.793792935554700918e+01 1.850569797208736844e+01 1.840055942723486382e+01 1.704075845433349201e+01 1.507697445845654194e+01 1.791463028402131386e+01 1.626550769589804446e+01
+1.542282689048618849e+01 1.803423477770069638e+01 1.940486502819828729e+01 1.941457408259361017e+01 1.829522705066116117e+01 1.605615915736465382e+01 1.931498415679435965e+01 1.943046717656604017e+01 1.598326792476479419e+01 1.868713042885338638e+01
+3.289281966139677138e+01 3.455670908108204742e+01 3.277049640197913050e+01 3.087249243198977666e+01 3.189351677790579487e+01 3.421572432514872730e+01 3.322106507994809022e+01 3.325362192166900144e+01 3.433410742844244368e+01 3.446986528731252264e+01
+4.890366365014335059e+01 4.607502384135014495e+01 4.857817775278881101e+01 4.900027203975685808e+01 4.673053620391197427e+01 4.586304556451137415e+01 4.501316077789794434e+01 4.725451826546574097e+01 4.676216365769420946e+01 4.777454916912704164e+01
+2.629396204182262053e+01 2.658228565437208246e+01 2.543483510127966696e+01 2.651609891922125328e+01 2.983279219690271944e+01 2.972353690836240858e+01 2.667439145068492579e+01 2.785426968139380932e+01 2.954797695555472359e+01 2.503091911320448304e+01
+2.801622711342015037e+01 2.613630526779831342e+01 2.771893535195873426e+01 2.847485066560737721e+01 2.757583514193294505e+01 2.995142585292470727e+01 2.805670828123863103e+01 2.685486856296084568e+01 2.886076013807918983e+01 2.585231255790820981e+01
+1.039431275730136495e+00 1.326610193690985762e-01 9.071771754489865724e-01 2.915207804848460871e+00 2.107122752962489631e+00 4.463358555384874471e+00 4.087217808692204635e+00 1.709086758489379854e+00 1.297117167156462525e+00 1.898462040836334630e+00
+1.031136552940942863e+01 1.256251324385165802e+01 1.403201808616419655e+01 1.229619938798479062e+01 1.025978288777134217e+01 1.393139099692016458e+01 1.100681891067987195e+01 1.129310417444019343e+01 1.082353176716148013e+01 1.165107532435748716e+01
+3.972888248623173979e+01 3.566287038742240867e+01 3.887336468590898875e+01 3.632408160889159632e+01 3.966796571850625952e+01 3.859979769684739637e+01 3.876906856489184605e+01 3.609529586529941980e+01 3.721519988317580641e+01 3.808906597294642893e+01
+3.395065686863053855e+01 3.108890400883784366e+01 3.338518907441005013e+01 3.401606061622046440e+01 3.280938478120756940e+01 3.370441603360993099e+01 3.330930156107503137e+01 3.177764898576003816e+01 3.404429269516782597e+01 3.147350684942763976e+01
+2.241616037937717465e+01 2.493447972694148973e+01 2.377284680602868150e+01 2.124302442306653305e+01 2.269197489643478960e+01 2.496067819739291593e+01 2.428765303875961834e+01 2.048683446895610416e+01 2.353185998404998003e+01 2.172789792935406439e+01
+3.026011877514723381e+01 3.056823019348359693e+01 3.001959187475546642e+01 3.499730340529836781e+01 3.401136848573739258e+01 3.393361507366770269e+01 3.254863037644089729e+01 3.150033541452719987e+01 3.075632142231338051e+01 3.142337369423231763e+01
+3.296787627207149285e+01 3.063555245433511942e+01 3.213770927679856015e+01 3.080430146742548914e+01 3.350173944433284845e+01 3.379434067208974568e+01 3.052898260136399600e+01 3.253069926347322394e+01 3.407312528012958808e+01 3.468081520775498205e+01
+4.556552878250860061e+01 4.914136782407994275e+01 4.625926681172854416e+01 4.888651074071959357e+01 4.978553548000025586e+01 4.848397756982170392e+01 4.798015080474900174e+01 4.730193087837520238e+01 4.682204932997701974e+01 4.676502375485917895e+01
+4.267110204965623410e+01 4.411900874960269192e+01 4.051573380439180738e+01 4.471510354822868294e+01 4.397536440590582174e+01 4.090625127775776093e+01 4.356003980599081160e+01 4.192479361318778786e+01 4.201147339038159600e+01 4.391645046219433368e+01
+2.376736055329798347e+01 2.436429710782832103e+01 2.249979495982394084e+01 2.365124594764785471e+01 2.309586367682918251e+01 2.093319969898841393e+01 2.012844822434703929e+01 2.142270692838467028e+01 2.221516853168809646e+01 2.308552972214328136e+01
+1.759612285390102571e+01 1.803876341547826456e+01 1.622676157083105508e+01 1.528866079612558693e+01 1.695516434563699448e+01 1.617101685463167016e+01 1.609776961614900870e+01 1.979931401356727605e+01 1.808150242962862109e+01 1.778439221586047836e+01
+1.301471438239730816e+01 1.413353679870743740e+01 1.492006581605232185e+01 1.144202718909372862e+01 1.480567742703796519e+01 1.194740947451210111e+01 1.192755952368461081e+01 1.170193552127252801e+01 1.270703803673792542e+01 1.077072521589243514e+01
+2.966433845063316710e+01 2.961322569801786031e+01 2.751185909986047662e+01 2.663941997009129281e+01 2.868566206978319499e+01 2.518356471741533298e+01 2.737384503021825566e+01 2.668161697135166577e+01 2.960267942551277542e+01 2.506001513636341116e+01
+8.931725072077760785e+00 5.447055011561297455e+00 7.087903878924642243e+00 9.395591537810823013e+00 9.723660111457050448e+00 7.337007556249348639e+00 8.067056946053538624e+00 5.835169730460376236e+00 9.955843130684883135e+00 6.158358506917217312e+00
+4.299681775869132849e+01 4.209379495241327618e+01 4.215921846156015107e+01 4.026966291420435340e+01 4.258273255194631446e+01 4.252369737690175810e+01 4.074774659278472200e+01 4.051919693055463512e+01 4.061786245299744991e+01 4.050514123245629605e+01
+3.023890682340702796e+01 3.176115487535372495e+01 3.428285994341668186e+01 3.198027238717733312e+01 3.099578448798533614e+01 3.212397090665705690e+01 3.192776250745834687e+01 3.457708100733351841e+01 3.380967187871548418e+01 3.252557777872003442e+01
+2.566642129041086662e+01 2.963872866537703743e+01 2.933851048959619590e+01 2.853810292870267773e+01 2.553106913794228205e+01 2.887938627234846578e+01 2.903978664054509551e+01 2.883882308857168653e+01 2.556982943559620480e+01 2.821953978533882434e+01
+3.172813518518079334e+01 3.403851184522028461e+01 3.123174123621150855e+01 3.031626704449339726e+01 3.065854767603177677e+01 3.429372484264790444e+01 3.316891642373644089e+01 3.126600581684988356e+01 3.277647912664090768e+01 3.263789811212674863e+01
+4.952525710003366832e+00 2.063088384557132393e+00 1.860090428963915965e+00 3.882064803709984080e+00 1.704017701265089224e+00 4.653786628017823723e+00 4.292063759215059449e+00 2.144970136875091526e+00 3.754355338957486854e+00 3.772714370423411623e+00
+3.957895218629242429e+00 3.948090713972769450e+00 4.560305152434518394e-01 2.472101523512907129e+00 2.877938000832214183e-01 2.747644411618677562e+00 2.207652506866884856e+00 4.438520913791498934e+00 1.754575062760393322e+00 5.853350821380293167e-01
+3.353823869421374004e-01 3.749802351995889182e+00 1.049527965477928815e+00 4.490271447203568300e+00 1.025698202410035842e+00 9.534386033183328557e-01 1.827483392404744000e-01 2.360334725549996016e+00 2.824205666313082119e+00 3.285431971417618335e-01
+2.209484886889762123e+01 2.229014308291934299e+01 2.128323603593047864e+01 2.376057166348487470e+01 2.256437371152633986e+01 2.160427271374921787e+01 2.298025057880474975e+01 2.497867226025661580e+01 2.217631139828277043e+01 2.460345700389309798e+01
+2.803662208396533018e+01 2.544289169818322094e+01 2.838436137913788215e+01 2.532047355518087883e+01 2.798071324774948465e+01 2.869790588610871396e+01 2.605484945309975231e+01 2.920811003771387249e+01 2.515176902766502209e+01 2.921906431829152950e+01
+1.387805925462663836e+01 1.482238326950405849e+01 1.101883229563844502e+01 1.261664815597370648e+01 1.143568979042287737e+01 1.396427209516919632e+01 1.288796682940578719e+01 1.317291208775151823e+01 1.398957079807946968e+01 1.197985236331227377e+01
+3.208035335204343141e+01 3.488926846750890576e+01 3.100282329794034908e+01 3.107679641427304063e+01 3.145933588518199997e+01 3.086378659140543590e+01 3.189682799102093469e+01 3.455417113494876702e+01 3.307673920314287130e+01 3.205973274306131771e+01
+1.716736116377817112e+01 1.998591176951475035e+01 1.779529642473301010e+01 1.660581076317976823e+01 1.610055662952376565e+01 1.675260267143080739e+01 1.686266636879775405e+01 1.534356838861980421e+01 1.684787099713386738e+01 1.732119259869612549e+01
+3.991326205746784694e+01 3.818523776751813870e+01 3.580818846892295682e+01 3.952924694999652644e+01 3.758123911600030453e+01 3.576874656051459311e+01 3.960863334725830498e+01 3.878734525361551277e+01 3.865852636361575634e+01 3.854590351897202538e+01
+6.860835119187566278e+00 7.160384414720979862e+00 7.197024948472261485e+00 8.064697912472627905e+00 9.715379188723538562e+00 6.203463559162525343e+00 5.607506881504590091e+00 5.987352449299686796e+00 9.434624501046346978e+00 8.229054063276031172e+00
+7.149584102641792782e-01 3.807553158587361430e+00 3.091090316581305508e+00 5.056133806139512243e-01 4.205340305749871721e-01 3.504845657295599715e+00 3.638150318209676382e-01 4.109300296451781520e+00 3.531211135782481136e+00 4.067439032094988249e-01
+2.053400352001181872e+01 2.476701439691047568e+01 2.030113472450148748e+01 2.148825138784140165e+01 2.149033100585002032e+01 2.160200643070107418e+01 2.082143421636204650e+01 2.391580715461848428e+01 2.061248930982994665e+01 2.317453329576581211e+01
+4.292926061216584088e+01 4.337096058307500357e+01 4.402130577189225136e+01 4.329577772300066840e+01 4.199027420339469074e+01 4.256816691964325372e+01 4.401522762337940264e+01 4.186825148186492385e+01 4.194060728384248193e+01 4.047845058029000853e+01
+1.371596599365801694e+01 1.024071417989176780e+01 1.451447497595993497e+01 1.426131937195590638e+01 1.333902341613203291e+01 1.296610785053692183e+01 1.446151249069826150e+01 1.092665089764357234e+01 1.039484581095414306e+01 1.119755084954769053e+01
+4.377436264454280490e+01 4.324347521266517447e+01 4.318722689358951072e+01 4.276713850393534244e+01 4.005694834044276575e+01 4.348253591738444612e+01 4.188020895554578260e+01 4.471304855079327467e+01 4.408992385538602576e+01 4.293847234765656395e+01
+1.355861402873024346e+01 1.490571865895910975e+01 1.284769889783551733e+01 1.129770891588045245e+01 1.218497942832810388e+01 1.296780467689393035e+01 1.036540781013507484e+01 1.311171632308623103e+01 1.490588918381147288e+01 1.095053824891863847e+01
+1.137883784125678410e+01 1.438545290509094343e+01 1.472021046912698949e+01 1.074397984702557807e+01 1.231337802532696735e+01 1.490493689081342588e+01 1.241703717986573352e+01 1.431773761257272604e+01 1.294365761065659903e+01 1.187664953959800940e+01
+3.972020639140463771e+01 3.698138631245850405e+01 3.846931671164197297e+01 3.744661373737560695e+01 3.756288107962105727e+01 3.633887157302059023e+01 3.727475388420999991e+01 3.735392498506353576e+01 3.853321260874466958e+01 3.970319999593056792e+01
+2.670480986821494440e+01 2.998836131632329582e+01 2.631775739748388787e+01 2.639565235387134834e+01 2.965336127781199238e+01 2.512322202318161501e+01 2.848344493936598454e+01 2.862663195367938940e+01 2.918189288705199758e+01 2.987219655319237788e+01
+4.484719687837939261e+01 4.346604771109434040e+01 4.035458095719284444e+01 4.094680437895931391e+01 4.385661571608424936e+01 4.420719879978122435e+01 4.308847293094295594e+01 4.322211584814908036e+01 4.014168725191692033e+01 4.414265129790754116e+01
+1.046928642411678112e+01 1.454813409718296313e+01 1.334600131469039219e+01 1.414643399658377731e+01 1.439489450141133631e+01 1.285886176024161109e+01 1.258723175877520717e+01 1.215213705160495117e+01 1.158473293895559664e+01 1.217297980429355775e+01
+2.602128233968198145e+01 2.813401315032421834e+01 2.679371255271444241e+01 2.997822588337174565e+01 2.740091757630943903e+01 2.742942803094806692e+01 2.782925893705336051e+01 2.958378001559373160e+01 2.900409049929875138e+01 2.725565034898920658e+01
+9.089171080875107833e+00 5.601045276853041877e+00 7.722445489804247387e+00 5.028793302490607964e+00 6.622929149501350921e+00 6.832307674356989935e+00 6.980863458046276726e+00 8.477336033449311969e+00 6.942790506351729007e+00 7.243468113112653484e+00
+2.017336352113033371e+01 2.195955281471954379e+01 2.348581846068990231e+01 2.096717671478241130e+01 2.320752240628125662e+01 2.129914068970149543e+01 2.443043054406758330e+01 2.447844972133308161e+01 2.148643602140663234e+01 2.114996876981620133e+01
+1.671693351088822155e+01 1.917285895127813689e+01 1.967742256763747832e+01 1.592866536002592781e+01 1.686254465776733014e+01 1.964315281057697149e+01 1.530904230344611250e+01 1.546180264055689335e+01 1.581395494603114749e+01 1.797606417063437334e+01
+3.852246818205842516e+01 3.726923281903455631e+01 3.770305497162364361e+01 3.924800087491229306e+01 3.740067469819186385e+01 3.686603684552563465e+01 3.746623746512992881e+01 3.789564902017524872e+01 3.594538826889174743e+01 3.950453865133495412e+01
+2.477824733633244847e+01 2.476816303914844752e+01 2.176163527126269770e+01 2.021550054474161939e+01 2.089547469664090684e+01 2.196108896716770076e+01 2.473889848984615014e+01 2.070599531768592527e+01 2.381757921834105929e+01 2.054341269687346028e+01
+6.101911742238941283e-01 2.475884550556350927e+00 1.719426055760919780e-01 4.546602010393910653e+00 1.293899908000084586e+00 3.312611421769910081e+00 1.558555380447054883e+00 2.600340105889054065e+00 2.733551396716398241e+00 9.242722776276351970e-01
+2.708691470900236453e+01 2.572156021843740703e+01 2.546779703456167709e+01 2.508335775299816461e+01 2.936767132122607293e+01 2.618237456119347328e+01 2.605753374640883990e+01 2.868017700213032839e+01 2.660008056543695787e+01 2.753022346205918325e+01
+3.867760352896790721e+01 3.831895811970721866e+01 3.556693547776286124e+01 3.860308145331857332e+01 3.750152578177257112e+01 3.947049768053079788e+01 3.959935467065271553e+01 3.527578295300892819e+01 3.910320780177239186e+01 3.518848695211335098e+01
+9.088926649284726267e+00 6.067556831553359231e+00 7.529263464759145208e+00 9.203515140056000021e+00 8.664007723831252505e+00 7.711186027459241643e+00 7.951738452293864334e+00 7.541802734581399825e+00 6.487742256594103196e+00 7.825109964295080545e+00
+1.401801767720767700e+01 1.252603386788319106e+01 1.483563307629585282e+01 1.208880489637549793e+01 1.492055159518248786e+01 1.333959999401813512e+01 1.317335636626970796e+01 1.082977447647892433e+01 1.440963879152321958e+01 1.213744843960307662e+01
+3.834009726256280004e+01 3.588341157088152755e+01 3.790114266099570983e+01 3.952017493227279488e+01 3.660090583714219292e+01 3.835126988022179262e+01 3.593951794399207955e+01 3.812397699359362946e+01 3.668225175908754920e+01 3.605604129293976001e+01
+1.533627956983684015e+01 1.547458968410834856e+01 1.999446306016645281e+01 1.663319624712955402e+01 1.874091956024423311e+01 1.903332526513408141e+01 1.929011635503614741e+01 1.998814148701078253e+01 1.620748242628433999e+01 1.520175413429849876e+01
+8.982686454880880689e+00 7.407611757562750476e+00 5.586540944811972054e+00 5.625928961012752083e+00 8.427826436144856714e+00 7.151529474497313466e+00 6.002623633501683820e+00 7.457972733707184609e+00 5.321044685375670547e+00 7.909857009571993558e+00
+4.167778600848328807e+01 4.488010078762246735e+01 4.436777788113544574e+01 4.164689033517108641e+01 4.293897702533185878e+01 4.423648372767746650e+01 4.220637168375034065e+01 4.008978931875075347e+01 4.037255230909320147e+01 4.255196360674353429e+01
+4.944565267852429002e+01 4.733924591646021440e+01 4.828722163588732030e+01 4.947533361468106961e+01 4.696475382495676598e+01 4.980881239172734354e+01 4.707893031034591758e+01 4.800541332696607810e+01 4.854902356636186056e+01 4.975296006537968907e+01
+4.217794579006354638e+01 4.207423425150797414e+01 4.366361707706653306e+01 4.342938137543232102e+01 4.416635641017924030e+01 4.124979490619747935e+01 4.304764254877031959e+01 4.292597392696426795e+01 4.184868905436344733e+01 4.243028770951340789e+01
+4.741796524052164585e+01 4.750523688897209240e+01 4.660831235697373387e+01 4.566080888762511591e+01 4.688193768867238020e+01 4.836131469966282737e+01 4.891197904322229562e+01 4.765375301194070801e+01 4.794917197219877636e+01 4.600308185562326457e+01
+9.829110805766099190e+00 7.162489391650659343e+00 6.559080665426297863e+00 7.530709314201220472e+00 7.197558443164551178e+00 5.528323421308719787e+00 8.204131573451030945e+00 6.080190912547998039e+00 8.097939774489148590e+00 8.251005461990766676e+00
+3.301896378643058938e+01 3.149463075049166605e+01 3.205408197783713575e+01 3.108849899428616226e+01 3.483010729565104668e+01 3.065317190778679901e+01 3.185918392283209855e+01 3.012919486110005707e+01 3.110889745966773035e+01 3.390235569190077314e+01
+4.632433128906785669e+01 4.674930847111239274e+01 4.854162024538985065e+01 4.683923590571400553e+01 4.777631661303970390e+01 4.549965938527204656e+01 4.902508846617313765e+01 4.684944312824062251e+01 4.824267079516670975e+01 4.862694800830916364e+01
+2.537447921000991968e+01 2.553080176773733712e+01 2.918736259809387334e+01 2.619909976103295079e+01 2.597479135749315304e+01 2.752455725625069505e+01 2.884373565681256579e+01 2.530973259289493882e+01 2.788403959819127920e+01 2.559605221420286725e+01
+5.979712296915085101e-01 3.566223936114974791e+00 3.803925243084487207e+00 2.806385987847481278e+00 3.854835899772805163e+00 2.468977981821953716e+00 2.613664146909970398e+00 2.137705091792748036e+00 1.270956337204759423e-01 5.394571349665222559e-01
+3.968775168703669465e+01 3.764937812759102798e+01 3.807451507283467862e+01 3.741211800797364617e+01 3.546828726303737511e+01 3.884044689209333256e+01 3.873612322544293818e+01 3.655851660746405685e+01 3.653119622614200068e+01 3.918920690452759459e+01
+9.849560230536351213e+00 5.469503578947091604e+00 8.363010591125631166e+00 7.218751096522855626e+00 9.340711271887526479e+00 5.885748947236929318e+00 8.463129761130822715e+00 9.190576448240552310e+00 9.723071097370116433e+00 8.416240141448229295e+00
+4.676952833605908211e+01 4.801662782822299391e+01 4.656000653054225324e+01 4.954911820416030110e+01 4.935200231552918382e+01 4.779115875139830649e+01 4.662399457690180071e+01 4.646694837791488908e+01 4.516708997352530019e+01 4.907910425512647379e+01
+3.296748207910925998e+01 3.105058887970107406e+01 3.058165863566630449e+01 3.485058443209216250e+01 3.010990907404811523e+01 3.401348702668011015e+01 3.394017574787510938e+01 3.148607056922547898e+01 3.067813308003656658e+01 3.072814323352711696e+01
+9.123404829625744838e+00 6.739046039510965258e+00 8.390080762795317781e+00 7.828659819978955881e+00 6.335141350847106168e+00 9.393149931775790051e+00 8.987130108034641296e+00 8.292259173292126917e+00 9.252908645471208615e+00 9.336471004799012263e+00
+6.556538495780017684e+00 8.051668916554591604e+00 8.580753371115967809e+00 6.363120003667669167e+00 7.067745507626757018e+00 5.609430466684737659e+00 5.905746747673401131e+00 8.405589269824913501e+00 5.907191738478134724e+00 7.625816918335300620e+00
+1.697629657715578944e+01 1.590889433608681003e+01 1.578406352658402767e+01 1.913651074868623070e+01 1.520957608358128788e+01 1.709591437951060655e+01 1.584101827883259084e+01 1.939665107839237024e+01 1.778520256637517605e+01 1.615690318188423902e+01
+3.266740104372391329e+01 3.298196799846230931e+01 3.183014132873257651e+01 3.403553510159756001e+01 3.261643124650125003e+01 3.058373951384397671e+01 3.064532562414531469e+01 3.268429573251309250e+01 3.468285109035419822e+01 3.154176060838099360e+01
+3.518910068276017711e+01 3.561526061795162690e+01 3.993174961472080753e+01 3.657608368688642742e+01 3.557650545169524747e+01 3.553495630587311638e+01 3.859729983834986200e+01 3.927284332016320434e+01 3.628476149754234825e+01 3.510454756167617774e+01
+2.917162397874699309e+01 2.788676700609833858e+01 2.823203687614044455e+01 2.729181739713153121e+01 2.764353659942026198e+01 2.517188429175862652e+01 2.819481510986642192e+01 2.540723606445579463e+01 2.717507297170111613e+01 2.646327548833703958e+01
+3.465772203553260056e+01 3.044504867448004504e+01 3.255762820404746805e+01 3.459260765221560519e+01 3.452056830239752827e+01 3.078264606707870499e+01 3.183318850048228299e+01 3.309560700023347835e+01 3.079697442385701223e+01 3.484011086022869108e+01
+4.481392403990366091e+01 4.063327936423596753e+01 4.210315118439409332e+01 4.240470804042151798e+01 4.188155908477499167e+01 4.181594561858112513e+01 4.026134333780798613e+01 4.342769310281311590e+01 4.218107208560022769e+01 4.097396901321963725e+01
+1.218830664074101833e+01 1.117486702497976481e+01 1.352435505021690787e+01 1.408564071007792506e+01 1.273215158038923711e+01 1.483517637628073160e+01 1.025834360828980607e+01 1.252397799152264035e+01 1.359226973661274940e+01 1.431320235574589361e+01
+1.907335502354994716e+01 1.805915510051610795e+01 1.686728972566352525e+01 1.627668186881621892e+01 1.552937159106564735e+01 1.677448841743277086e+01 1.706586258603859818e+01 1.837911462552036923e+01 1.829079912148786846e+01 1.535054069820628442e+01
+3.413433923586681118e+01 3.281327711451370988e+01 3.381093755597041195e+01 3.356803683131735738e+01 3.103755747692439471e+01 3.284406368216936301e+01 3.433861576402546234e+01 3.216058118400964361e+01 3.483295385111658504e+01 3.226107550050858919e+01
+2.878323274676199617e+01 2.791217538444147905e+01 2.593295048436583627e+01 2.594116099884522697e+01 2.592124325786337025e+01 2.528501193775966982e+01 2.793899224685842597e+01 2.920174088794254175e+01 2.508749106993694156e+01 2.524502322485636796e+01
+3.651609773359295730e+01 3.848995235748895993e+01 3.895129951970847060e+01 3.647876417310164499e+01 3.747826960441623356e+01 3.710559452217040644e+01 3.705261392175714263e+01 3.615674356600075612e+01 3.568185552514729153e+01 3.598344279115606525e+01
+3.140227532380027498e+01 3.079874730116972259e+01 3.082031794132667457e+01 3.142593298005023783e+01 3.396420022636763747e+01 3.452878395318224136e+01 3.487543584853840883e+01 3.116144827048226418e+01 3.440648772807045930e+01 3.164127544638668610e+01
+4.847923138822793021e+00 3.875664116805572768e+00 4.697494707820945692e+00 4.474136752138243800e+00 2.989499894055425600e+00 4.609371175115583696e+00 4.424625102595974857e-01 9.799143120957259923e-01 2.261364445526903300e-01 1.626651653816321819e+00
+4.578689257434433557e+01 4.835487354742892308e+01 4.876968842220711764e+01 4.555197117124966866e+01 4.733901206018669683e+01 4.535435850327436924e+01 4.799091222771001242e+01 4.632202148964822896e+01 4.763812228419354255e+01 4.758730504692145757e+01
+2.644863991869107167e+01 2.619375885543011862e+01 2.606771427245170614e+01 2.705572168239993402e+01 2.852015726295828557e+01 2.608726466108618069e+01 2.683339439851490837e+01 2.695458713420581276e+01 2.988228264717704974e+01 2.977333178439534578e+01
+2.951474712574038595e+00 1.340318204114381295e+00 3.120744539245670079e+00 2.047058260956202247e+00 2.760235904259901396e+00 2.180632645676583437e+00 1.472328797709588244e+00 4.742266534810783085e+00 3.818028970798803989e+00 7.005658788322627339e-01
+3.972836768525402107e+01 3.704463617878336379e+01 3.830984919725317184e+01 3.732427390406635226e+01 3.815294348654271772e+01 3.724799453003868877e+01 3.594316123212037439e+01 3.753948708001690449e+01 3.764292100718721201e+01 3.905301924130080238e+01
+4.410788845880419018e+01 4.277244557160585714e+01 4.089898906747537666e+01 4.233879115478789856e+01 4.484036251454838862e+01 4.376493096519592285e+01 4.405581301939565719e+01 4.016412749409619920e+01 4.233929731317080325e+01 4.323310566828777723e+01
+1.541762457340009362e+01 1.605562971279018569e+01 1.876234168793247292e+01 1.525646924490607859e+01 1.746267690357144531e+01 1.721053517339860051e+01 1.667200589494374441e+01 1.697286157659461736e+01 1.764970293465116669e+01 1.580683679194191527e+01
+2.476031223319501251e+01 2.368963884499400052e+01 2.298714621286709914e+01 2.440447580272376271e+01 2.024802954174741387e+01 2.128531346094604260e+01 2.232518167110454854e+01 2.113489269735760701e+01 2.371952593651075958e+01 2.459604015526862497e+01
+3.997079394844896161e+00 3.473482354272134032e+00 1.360725686149813374e+00 2.951153334345435475e+00 1.804869484700133864e+00 4.579103666331707512e-01 4.586567877311214403e+00 6.840931545948070180e-01 4.751186769104012164e+00 2.230028864789778797e+00
+4.402985064335477006e+01 4.144748932559859611e+01 4.332062869641675462e+01 4.213295950527196965e+01 4.444559677863721703e+01 4.422612779080370160e+01 4.262715999154821134e+01 4.345752772906796935e+01 4.441674850511051886e+01 4.247858505039138066e+01
+2.592050661680478640e+01 2.552825172724465475e+01 2.906425485768378891e+01 2.789378238179999769e+01 2.809142510506859836e+01 2.890731044377354664e+01 2.851638613866225924e+01 2.917229126428048147e+01 2.528106952729939394e+01 2.873760318373252431e+01
+3.519180777393987114e+01 3.810732211328392083e+01 3.888938852768438892e+01 3.750179180192195361e+01 3.678756664213618421e+01 3.638713367400489318e+01 3.821401025081041070e+01 3.846400599314954150e+01 3.935483799931271420e+01 3.671167041230495443e+01
+4.849856538577168408e+01 4.623135367051586542e+01 4.951703877931396391e+01 4.552185729041414675e+01 4.991344119795662948e+01 4.930123905488732561e+01 4.843949322739537422e+01 4.969374944139916295e+01 4.861155584161853938e+01 4.595228498515022864e+01
+4.780120731891526020e+01 4.627501826250537675e+01 4.631275115009999865e+01 4.519626526535500233e+01 4.652722113274241167e+01 4.872301839501690068e+01 4.523758878603555189e+01 4.609647641252415440e+01 4.853116249265890758e+01 4.891325781411438101e+01
+2.787832626498709843e+01 2.563057661187705349e+01 2.790860763736738193e+01 2.883173606552326262e+01 2.703208268287009375e+01 2.939918873970734126e+01 2.824341476678682383e+01 2.949624459144601474e+01 2.811752655623668673e+01 2.565643986002412191e+01
+2.142092147855864326e+01 2.144484262460529322e+01 2.188526965500849286e+01 2.196660335192594360e+01 2.272277662327337566e+01 2.079939881683220548e+01 2.345623331892994656e+01 2.083783269652253267e+01 2.155154241052273889e+01 2.251672565303076823e+01
+4.176738737564189563e+01 4.321104818501348888e+01 4.122815787024407541e+01 4.054639722684080283e+01 4.397192112546428433e+01 4.049484311704353701e+01 4.135690697539791927e+01 4.427554710998720111e+01 4.173234643539333888e+01 4.486522674757080154e+01
+1.063933400611208846e+01 1.382773375257930404e+01 1.000005817377683037e+01 1.208282914241146067e+01 1.261255090542794122e+01 1.027317210000486192e+01 1.486539081486166403e+01 1.113062665624836001e+01 1.152099359818140378e+01 1.151971256127513676e+01
+4.134986818427731237e+01 4.384210535558621302e+01 4.442507662273629165e+01 4.110763575951183668e+01 4.231773919629461034e+01 4.235162023968603506e+01 4.436787652879867494e+01 4.381399526437902381e+01 4.256538609184025290e+01 4.335373600235886471e+01
+2.205651986033115719e+01 2.120265792590074483e+01 2.336191921645851721e+01 2.413032342274142650e+01 2.336546065455608456e+01 2.412175223624674913e+01 2.198496081103737154e+01 2.078158485354430596e+01 2.368975473698796108e+01 2.180237252570777073e+01
+4.911444034146751392e+01 4.594435093381427038e+01 4.850570565691788261e+01 4.645321484653265287e+01 4.648746334996334184e+01 4.648174038440290445e+01 4.862784123779974266e+01 4.614913020896268137e+01 4.500452917623044868e+01 4.857618426741316853e+01
+3.664660638741251830e+01 3.521100234290648956e+01 3.748147562750320105e+01 3.772230666074584349e+01 3.584220275565957792e+01 3.880232303138033245e+01 3.992464554220745754e+01 3.972887358504230804e+01 3.598553019411826170e+01 3.937681619950380707e+01
+3.908952088416219794e+01 3.519181930677850545e+01 3.935398586169056756e+01 3.756374949896964921e+01 3.699125117431706400e+01 3.748583640358842928e+01 3.833707765266915857e+01 3.506382713258948769e+01 3.935775928229124077e+01 3.723369762655696036e+01
+3.044386633478116266e+01 3.432497488103888372e+01 3.160309953275113415e+01 3.089165756214108072e+01 3.119684918171023114e+01 3.208984254006943360e+01 3.125596002302233600e+01 3.160283793008249376e+01 3.067489243035820934e+01 3.148088382779499383e+01
+2.087204633555749922e+01 2.235824745375297695e+01 2.045710995908569174e+01 2.312840956130676418e+01 2.275265840298112607e+01 2.203682762106416249e+01 2.260688510736870427e+01 2.448287329234505094e+01 2.098147151155533408e+01 2.011282255852673728e+01
+3.327717989220330708e+01 3.116593777210808014e+01 3.432201493597198549e+01 3.154684281040006510e+01 3.347065826988118431e+01 3.008062323186107534e+01 3.186328564947073616e+01 3.175854908979404101e+01 3.271742214291506912e+01 3.036368130888598316e+01
+1.295318916997318937e+01 1.330507127123660105e+01 1.039227908158562030e+01 1.272248479551932476e+01 1.354660414236304788e+01 1.083660652000530256e+01 1.390315858712778585e+01 1.291886390257055872e+01 1.476110892848797285e+01 1.021211149103445770e+01
+4.078165719196419303e+01 4.218516862724885641e+01 4.198444696544520127e+01 4.371772134818647260e+01 4.290368569898676299e+01 4.194066540501124507e+01 4.085380141725192971e+01 4.113418551162747860e+01 4.287750509234529517e+01 4.211719402449896421e+01
+1.123670157909541700e+01 1.320307591774443701e+01 1.333300239523309649e+01 1.081349871904282978e+01 1.282542656226378242e+01 1.385813455489303792e+01 1.249447832267970959e+01 1.006051558388053735e+01 1.004519234539646177e+01 1.178514671985006146e+01
+3.891985925252794942e+01 3.697403641439127853e+01 3.823023472048298288e+01 3.575305476534259697e+01 3.966324050271239088e+01 3.691529403210501670e+01 3.864760710988219472e+01 3.510170540941089001e+01 3.602593571452403864e+01 3.743541272161789379e+01
+6.106047209098011130e+00 9.938340039983234675e+00 9.720296698433067206e+00 5.197134056842529048e+00 8.527875862578442323e+00 9.626241587078329331e+00 5.902876725636668098e+00 7.839726152763146771e+00 9.577441487940209441e+00 5.169729892928994097e+00
+1.707887551761660916e+01 1.714472166715072277e+01 1.770452501919040600e+01 1.848214903518053731e+01 1.851073048090914597e+01 1.585846953852724717e+01 1.750056376038313388e+01 1.705979047517050873e+01 1.935263483134692208e+01 1.815709460609188142e+01
+4.447906050699289437e+01 4.028894098509932320e+01 4.070326669616833470e+01 4.358315968351016068e+01 4.218640824122309141e+01 4.201774310406844393e+01 4.068483317272117716e+01 4.253385020358894053e+01 4.063272655598188976e+01 4.238310228155270210e+01
+3.973037809034416057e+01 3.622357798511850291e+01 3.565782653319677564e+01 3.651138350248223929e+01 3.947542586383157470e+01 3.986026737311743773e+01 3.929662475535238286e+01 3.555008860563771833e+01 3.973713999029896371e+01 3.711679013675392724e+01
+2.583269256748635101e+01 2.993088398641847192e+01 2.910424504631564346e+01 2.640738651225459677e+01 2.535034347860594650e+01 2.528312778688778906e+01 2.560189074752766913e+01 2.790384291807210815e+01 2.964381710602746267e+01 2.748371714002992405e+01
+6.903116467382900190e+00 9.389871602225348113e+00 9.340283450537251397e+00 9.029627000588106966e+00 8.950152181535306894e+00 6.523395695490203927e+00 5.404596415256261110e+00 7.014900893825807060e+00 5.867622574932543245e+00 8.474755444512307889e+00
+2.843884603182867465e+01 2.636737257687489944e+01 2.868236587309536390e+01 2.525828678557320472e+01 2.524647246382208365e+01 2.693143852572772801e+01 2.676736596030360360e+01 2.657816607683576038e+01 2.745509881334454860e+01 2.660366791155785648e+01
+3.564518204444712524e+01 3.715158214021195704e+01 3.637352516403571911e+01 3.943875762335844115e+01 3.520292856067347742e+01 3.956863747003230003e+01 3.916497069276500298e+01 3.648785358220407460e+01 3.894645327338552221e+01 3.515606780169373735e+01
+3.459896285889718115e+01 3.047424596626578008e+01 3.272063000981550829e+01 3.370254760609159206e+01 3.378463422563506668e+01 3.303358100985001755e+01 3.083393667591836973e+01 3.398710276970832211e+01 3.360055666757472892e+01 3.043067885774518189e+01
+4.770255136293611642e+00 3.030873172254400227e+00 1.143214027517313713e+00 3.358503422029283758e+00 3.090641202289479139e+00 1.790813590164202385e+00 5.677879609981451026e-01 3.357865977963998105e+00 2.601538504518966732e+00 3.861591958678196601e+00
+3.094249926397780470e+01 3.402483416940842886e+01 3.483664055676734961e+01 3.134299466457298777e+01 3.247412975800273216e+01 3.043058055253186822e+01 3.279568328231484031e+01 3.251391720923340500e+01 3.072218242077538974e+01 3.221033106559037407e+01
+8.668679764737741156e-01 4.483827123132125614e+00 4.011687283082110422e-01 2.622556947851273357e+00 2.051984134948307670e+00 4.911893084543032195e+00 5.601945108402617279e-01 1.989277995228708296e+00 4.847352166376844629e+00 4.327535629469901224e+00
+3.376363568912987745e+01 3.236886646257211453e+01 3.223386079419803707e+01 3.003548266247443621e+01 3.409699115483246601e+01 3.179912450318283135e+01 3.270382815650271624e+01 3.338650343167829959e+01 3.351314788218957830e+01 3.477990029413036410e+01
+4.346014404371184581e-01 2.685532709092739001e+00 2.934205590104395522e+00 3.727197370921650155e+00 2.158297731148397069e+00 6.379015139778188015e-01 1.418879528993622241e+00 1.815411481993175480e+00 3.229586206658006109e+00 2.853891523344559644e+00
+1.433385177253000009e+01 1.141239371988513263e+01 1.475229585287647893e+01 1.290811146494596784e+01 1.218307094884383091e+01 1.290044417334727278e+01 1.258349192613133916e+01 1.379388126878662568e+01 1.141248032986426075e+01 1.176525195800151202e+01
+1.265468839206046958e+01 1.297565837452840753e+01 1.004961910563917726e+01 1.232047579726751962e+01 1.481749620443794058e+01 1.259516140064774348e+01 1.338771133729476581e+01 1.155931928958441546e+01 1.386995689076381311e+01 1.386460740938057512e+01
+3.286141907271000662e+01 3.220926854045531940e+01 3.173359380617955594e+01 3.373226064428556725e+01 3.446754985696659190e+01 3.378394611451198415e+01 3.166000351058839613e+01 3.372221083918776685e+01 3.075990091237025581e+01 3.065158994045645358e+01
+2.866580189068399775e+01 2.997710756462728199e+01 2.643755599691879610e+01 2.769110050934237677e+01 2.766661773929802592e+01 2.702822629723618775e+01 2.584580946921209943e+01 2.988728281591921387e+01 2.926658593333293013e+01 2.749166514147118789e+01
+3.827387875642130410e+01 3.614212926154210237e+01 3.637005890192773450e+01 3.657420577704368014e+01 3.558402053866976189e+01 3.636579810184972672e+01 3.604759612156266257e+01 3.727664374904301070e+01 3.954218773936132436e+01 3.552240158376979196e+01
+1.790475189944089607e+01 1.995339578532882996e+01 1.878365083534283997e+01 1.721146902725567784e+01 1.853698500016463768e+01 1.694615235845894219e+01 1.614437731241749674e+01 1.798425938443879701e+01 1.964091049056975891e+01 1.964569760007731247e+01
+4.721078069056405724e+01 4.535751512165817445e+01 4.694828711144057820e+01 4.870801509868604029e+01 4.693221675465408538e+01 4.665147087734067100e+01 4.797677861255155563e+01 4.936102264499447756e+01 4.523791596273056115e+01 4.692735217349867582e+01
+2.578181070822437704e+01 2.875899081793466650e+01 2.784134308134384028e+01 2.637332934893952796e+01 2.737217457073587212e+01 2.666888298534898993e+01 2.789656701394230254e+01 2.944500305407332874e+01 2.784652492206101115e+01 2.815861209163292145e+01
+4.058222762042355924e+01 4.298237288771976239e+01 4.137489595986819779e+01 4.039822564517383086e+01 4.214801371724273338e+01 4.277161299041827647e+01 4.164372994174803466e+01 4.360216851112888747e+01 4.321885304050622523e+01 4.166409180545836222e+01
+2.519973986643047326e+01 2.681146745000102527e+01 2.913195155800277547e+01 2.850749550732583160e+01 2.729671827796978079e+01 2.527550767579415592e+01 2.713447363911651422e+01 2.734512469858941586e+01 2.964277766447067819e+01 2.820543051791079847e+01
+1.902545159247831208e+01 1.911491902520883812e+01 1.966355254066380809e+01 1.772126983056848815e+01 1.600141008933812969e+01 1.808391803926270569e+01 1.871440746833969371e+01 1.868958696677012554e+01 1.760724512083439919e+01 1.534229359666788994e+01
+2.596338198243349993e+01 2.564535623465440750e+01 2.648929699195105769e+01 2.890024043520021735e+01 2.735813182597630799e+01 2.613740801846769912e+01 2.583092499804874720e+01 2.666364738255189692e+01 2.969962186442854346e+01 2.671513356295012187e+01
+1.882176693218213615e+01 1.811871542432004389e+01 1.881151312250479890e+01 1.519469008343832783e+01 1.918559813915326018e+01 1.809763100018151505e+01 1.781697675356319976e+01 1.812307024057265892e+01 1.932216623434182168e+01 1.793468253279453606e+01
+7.776817754688156725e+00 8.596008891361318405e+00 6.142273706656493637e+00 9.981669580283709209e+00 9.873965810733915660e+00 8.251628431734683744e+00 5.997712254645725771e+00 8.401141212156456817e+00 5.360992044895879438e+00 5.153262511029030435e+00
+4.098476815104361037e+01 4.206379160138696705e+01 4.113889170808900531e+01 4.291929133654007700e+01 4.185731669667235622e+01 4.224455861296394943e+01 4.268584660802014241e+01 4.101767761240902388e+01 4.077875811432765119e+01 4.440210951436802134e+01
+2.278283763928564909e+00 3.100662989007683557e+00 1.386905914905663284e+00 9.406057986188065545e-01 2.318492024699910559e+00 1.766761140130264085e+00 2.918280559254360362e+00 3.886731848249241894e-01 4.871974038330832535e+00 4.931053722398014649e+00
+5.289213382816981834e+00 9.845513150704057637e+00 9.418929424817129359e+00 9.638761415976064839e+00 9.974539113232175680e+00 5.869476246097436345e+00 6.981210094513293996e+00 8.791192378520456430e+00 8.480103090268961807e+00 5.769479531699275299e+00
+2.538484591504008847e+01 2.835382512721517756e+01 2.910629710186422869e+01 2.622327527302356387e+01 2.710650440816682405e+01 2.919419668382635180e+01 2.938560233831143975e+01 2.621589990132113002e+01 2.775285317270682128e+01 2.596246575317913496e+01
+2.162164688675758839e+01 2.338241874760302252e+01 2.297120913654298491e+01 2.301575060061473366e+01 2.341266229768860896e+01 2.287679586564549084e+01 2.214531184651333007e+01 2.137961347190273287e+01 2.384290665456601133e+01 2.113136215001593143e+01
+2.003491130940173903e+01 2.201740484513499752e+01 2.117377210862485626e+01 2.409434635260235780e+01 2.168665304422882656e+01 2.413761846976908743e+01 2.000298969417397643e+01 2.153909575013059552e+01 2.120582607153880872e+01 2.116783680534305390e+01
+3.265669976618304560e+01 3.199859775487213653e+01 3.476851813245853862e+01 3.321055117512760546e+01 3.149075178138277664e+01 3.063232122701785443e+01 3.421277250732590858e+01 3.181090801397075651e+01 3.330234860682215725e+01 3.235408209682949376e+01
+2.428615468684895617e+01 2.382325475192436670e+01 2.073347557007590680e+01 2.345161423450364424e+01 2.472512032290284267e+01 2.341270239383578655e+01 2.165808424553916822e+01 2.250289658715415442e+01 2.322862521675526892e+01 2.255285204364251683e+01
+1.559945546736356015e+01 1.867462923697447152e+01 1.765727457094652664e+01 1.643972671337996161e+01 1.746409792266412353e+01 1.649971034888511312e+01 1.798040977619152869e+01 1.716921961427622279e+01 1.582202764539439421e+01 1.558291537277848349e+01
+2.059109311145544297e+01 2.000015359422691219e+01 2.356068522940302401e+01 2.178298087993102783e+01 2.127240665809130249e+01 2.006448734894762609e+01 2.270149703380749884e+01 2.425575367712990982e+01 2.478815823136293872e+01 2.282872475306644588e+01
+8.478090732484034220e+00 5.016091318021393519e+00 8.097946687299202750e+00 6.777465052206786744e+00 8.970986656385420588e+00 5.464953199115660354e+00 7.941011334741952865e+00 7.404864449430618834e+00 8.211627629526137895e+00 5.324267972414841843e+00
+4.972814838874498378e+01 4.721468560867217690e+01 4.799646783155239405e+01 4.738169146747183191e+01 4.966423110680149478e+01 4.538042363382753308e+01 4.750559850412673768e+01 4.843476220692718925e+01 4.895953269211118197e+01 4.791509323722068103e+01
+1.741590431656834426e+01 1.919115210540900307e+01 1.680701889533593274e+01 1.929897337405822810e+01 1.703402400475861711e+01 1.664116552839169572e+01 1.726994955599849391e+01 1.881223479337434412e+01 1.563001013931997107e+01 1.598209607936008680e+01
+3.300267384103207746e+01 3.265026169606190365e+01 3.013920525631293046e+01 3.123328223422388916e+01 3.229807375866462849e+01 3.314251950041784056e+01 3.278625916659205330e+01 3.371317994840845245e+01 3.139883465443520549e+01 3.282476303826236830e+01
+7.130906511179864182e+00 7.256935121648377063e+00 5.818119105958345472e+00 8.974047743749647310e+00 8.468411128907442631e+00 6.103848063943802416e+00 5.411905228079213259e+00 8.402496510373564931e+00 8.272556071405675837e+00 6.366297634991046728e+00
+1.656937748361235307e+01 1.769011352681951621e+01 1.920054039219600028e+01 1.994725565482528395e+01 1.944759655521881569e+01 1.685733631312188407e+01 1.597583258609325263e+01 1.744696268703294351e+01 1.870820725918021310e+01 1.746284535376648961e+01
+4.092762987628859861e+01 4.325839897439213644e+01 4.356300703649196748e+01 4.344015259475990831e+01 4.159658440010687031e+01 4.126101201079665515e+01 4.477959399981021704e+01 4.461649754134964496e+01 4.228658304946409885e+01 4.423096933077187032e+01
+3.774466262249669057e+01 3.609660200605691216e+01 3.714443715675105295e+01 3.826132002971885271e+01 3.863565598440963811e+01 3.500358429353289580e+01 3.968426715045507791e+01 3.582262686196406065e+01 3.616790217111179828e+01 3.631736722846924437e+01
+3.146993190676312668e+00 3.478743444923085626e+00 2.272705323838866143e+00 3.137790400420317205e+00 2.921571559615501190e+00 4.505790052454944572e+00 2.272319017072893521e-01 1.404815947961151501e+00 4.752057420382794106e+00 4.451318919454581469e+00
+4.088044643971927172e+01 4.371666456782828192e+01 4.126034943425085544e+01 4.227083735083881777e+01 4.192929723418054522e+01 4.491038689317815624e+01 4.195546122074109974e+01 4.039991241398377042e+01 4.044912876286041836e+01 4.295376860676532260e+01
+2.746133323530602244e+00 3.572979613500311569e+00 3.300986883588656440e+00 1.399669484729714197e+00 4.774326403315970246e+00 3.689484583478842339e+00 2.771770262557003317e+00 3.058603731171761098e+00 2.098000312138949663e+00 1.238654947505787307e+00
+1.329270257835027458e+01 1.383057966397793059e+01 1.422960719838865984e+01 1.306802057118729188e+01 1.044302356984839619e+01 1.243813904833605477e+01 1.038824667335802587e+01 1.203771515516215374e+01 1.203553244562813873e+01 1.033004922070120735e+01
+3.391461807128786177e+01 3.221327424130216599e+01 3.242633371171310586e+01 3.388954703374268718e+01 3.191181665530814016e+01 3.221563672661457645e+01 3.188095234384811150e+01 3.183670257638640066e+01 3.262973288450729825e+01 3.404399722250575167e+01
+3.132614261251337240e+01 3.343045576971743316e+01 3.474395248845959117e+01 3.134023593689318687e+01 3.405732969575841196e+01 3.027679908469204761e+01 3.269060505019906770e+01 3.035275031854947159e+01 3.467016495565319900e+01 3.383175640278695084e+01
+4.458549252585896738e+01 4.066987433374890770e+01 4.335755903640518483e+01 4.002179789978290358e+01 4.462325552702590414e+01 4.056252066619045848e+01 4.047442115073787505e+01 4.166503816526122250e+01 4.186783143019540177e+01 4.107150036161439033e+01
+4.042799776411384016e+01 4.091728942379432254e+01 4.379201836517101754e+01 4.010993261019661560e+01 4.408438992946891233e+01 4.006974509345955937e+01 4.328559419530636632e+01 4.182546960115902834e+01 4.305747426359599217e+01 4.348015703494557016e+01
+4.315517129377967720e+00 3.116490634137789595e+00 1.654490124263245932e+00 3.177917514301181745e-01 1.554911608578311011e+00 1.625916610133735229e+00 3.648030891690320132e+00 3.187787356776065728e+00 4.436063712881632703e+00 2.361074625809746586e+00
+2.442239363798379514e+01 2.276996627751565327e+01 2.267279609578154265e+01 2.097729000184200032e+01 2.083114681025829285e+01 2.458244575557757017e+01 2.163919099425017123e+01 2.186041127481448143e+01 2.379911829214194086e+01 2.169411741211403566e+01
+3.201759996220105364e+01 3.166649929935262620e+01 3.245964012019564393e+01 3.286386254868554602e+01 3.119168605313998555e+01 3.396977542357794988e+01 3.243241382866211353e+01 3.167022774209979730e+01 3.053410496481995295e+01 3.119422580201803541e+01
+3.028549539222588294e+01 3.055271583154290127e+01 3.109694694598123021e+01 3.232175124941070976e+01 3.216625466154513902e+01 3.399845931001395627e+01 3.369737326942056654e+01 3.213159146995350568e+01 3.166852103787815054e+01 3.158234392030749405e+01
+1.643259774463561484e+01 1.901320156176464948e+01 1.998618949951801227e+01 1.515013002664696451e+01 1.948682932895465925e+01 1.811315266799329038e+01 1.986691309582410625e+01 1.732504758763213815e+01 1.923693965285686858e+01 1.531197034299138693e+01
+3.003678914812707390e+01 3.259102866091260609e+01 3.018764328765901439e+01 3.284615106045723820e+01 3.460385424818037592e+01 3.484209565250203866e+01 3.270276337694462399e+01 3.229102402626107704e+01 3.472508547124247258e+01 3.336804915998347809e+01
+4.716486524919853451e+01 4.535512283824663626e+01 4.743938302999029588e+01 4.851082164324156309e+01 4.756609987913909521e+01 4.936053031873290564e+01 4.644468508328791501e+01 4.543124585651982272e+01 4.968282805829002768e+01 4.689098174764109217e+01
+1.609357806498963583e+01 1.797651632963744461e+01 1.632317513462678704e+01 1.830984472396934137e+01 1.907469864270269611e+01 1.889012621572326722e+01 1.880425665465390850e+01 1.593861202846126091e+01 1.544192473492259410e+01 1.849474414243692877e+01
+4.231180723623869255e+01 4.195033032873813994e+01 4.431788501569572958e+01 4.464630487598945763e+01 4.151726608224802817e+01 4.431967903729977110e+01 4.390761564766533809e+01 4.465403836172380636e+01 4.122875156092943882e+01 4.288479575060489424e+01
+1.721959727253188888e+01 1.510956664387504489e+01 1.650523038917156526e+01 1.751315621315065130e+01 1.528088038673719495e+01 1.745547864691582518e+01 1.963555314429213539e+01 1.552696609053902677e+01 1.882220364037752347e+01 1.704835526687996250e+01
+4.196585217282132163e+01 4.193882164264874746e+01 4.143433437491397342e+01 4.134289802166482986e+01 4.430531468239859549e+01 4.034930960342330764e+01 4.338805591049796817e+01 4.086410025728226003e+01 4.172252946697031462e+01 4.030771517067418586e+01
+4.632561630722869950e+01 4.747527972827292331e+01 4.923267246561702848e+01 4.752582855761366432e+01 4.874017369670794153e+01 4.569479952624458008e+01 4.626206906488280168e+01 4.865888047518836146e+01 4.582367004443862157e+01 4.675677967327463591e+01
+4.772265646452254373e+01 4.766155131689955482e+01 4.537935820612023718e+01 4.849107726747236313e+01 4.811886095325426282e+01 4.594508641373248281e+01 4.734717431077022098e+01 4.860161458239279852e+01 4.764717870270638400e+01 4.697744538091784960e+01
+4.961249448151251329e+01 4.926333076550860568e+01 4.887441716126474489e+01 4.696367557112113644e+01 4.752190352149383301e+01 4.732165872397576578e+01 4.626699053779686466e+01 4.752514023074383687e+01 4.515248273926377465e+01 4.565905186748729250e+01
+4.585592371917562815e+01 4.552241197653917482e+01 4.618758060297029999e+01 4.689950261161352074e+01 4.737953163736600004e+01 4.522285020356315499e+01 4.985286666313680115e+01 4.858031526709778802e+01 4.661597032662167805e+01 4.659348628642698742e+01
+3.622999870153397239e+01 3.766043411969005916e+01 3.741178104291376627e+01 3.851433222025050895e+01 3.534005115976210476e+01 3.596894565011677258e+01 3.607282410046424559e+01 3.869075377420844575e+01 3.594569348163369682e+01 3.786745881945488179e+01
+4.604830461055850321e+01 4.942337492476674754e+01 4.808112125803476289e+01 4.714362570875740488e+01 4.591167591789109537e+01 4.971150468950603596e+01 4.877534102065812505e+01 4.604012281366624393e+01 4.668855387362112452e+01 4.904837129044036459e+01
+3.837093474414806593e+01 3.816634458668744401e+01 3.549748113090318924e+01 3.802086969086295909e+01 3.560480331119246244e+01 3.539348837597699315e+01 3.763655447821196276e+01 3.701392767023247643e+01 3.794405135078111613e+01 3.544611084028619530e+01
+3.519399727364443464e+01 3.593386264115564899e+01 3.915622902544971140e+01 3.883384178169168166e+01 3.675321345728573164e+01 3.688405313887106018e+01 3.766777216776790027e+01 3.500120502342567619e+01 3.620622168019013998e+01 3.604115904304106976e+01
+1.496924194449849210e+01 1.440157381074463494e+01 1.311702979079720066e+01 1.284688680591141363e+01 1.310330239912292072e+01 1.100656053911216681e+01 1.197568871632159215e+01 1.019729766445449570e+01 1.237773018743413367e+01 1.271512291978831577e+01
+2.786385138343472789e+01 2.909747842693026243e+01 2.663369445284316939e+01 2.674807199403861091e+01 2.798173248748387820e+01 2.637106444562073548e+01 2.513304183038842154e+01 2.867614259050797898e+01 2.812824956470726434e+01 2.790377999527829544e+01
+3.763728231860866202e+01 3.570563059149660745e+01 3.500394755546609105e+01 3.905070045372730902e+01 3.543787281493118968e+01 3.816924909367661911e+01 3.957308227257595945e+01 3.604325956579215529e+01 3.832636418118455168e+01 3.539349288353754730e+01
+1.774209581496781141e+01 1.533231662888135993e+01 1.883257524766292335e+01 1.791856793865682107e+01 1.890979988578979487e+01 1.875873496197920076e+01 1.901501035978918708e+01 1.759004033202312556e+01 1.570162259096757573e+01 1.835578736689844348e+01
+4.127360250228774419e+01 4.131623087415272266e+01 4.278118197012886270e+01 4.205705465880232907e+01 4.473866402003152842e+01 4.063185070973502633e+01 4.486846067425099704e+01 4.115319320107131773e+01 4.386436968190926677e+01 4.169484963086410545e+01
+2.171365462713953676e+01 2.067288133552053964e+01 2.047209448830240319e+01 2.415759166556111737e+01 2.459198771040778908e+01 2.324894023382149655e+01 2.051717057430241553e+01 2.201013608444120351e+01 2.364469600052578713e+01 2.389910442005034241e+01
+4.885044515627041051e+01 4.731164248729641031e+01 4.857043511342508424e+01 4.867967695968722808e+01 4.569137763838904220e+01 4.983089012417268293e+01 4.910515973548215385e+01 4.602241730597911840e+01 4.593082517873035187e+01 4.562830572789791717e+01
+4.473585308421696993e+01 4.067966373683660208e+01 4.248824777252609408e+01 4.107088126369793457e+01 4.030036584177491221e+01 4.162751669063067794e+01 4.071843812592106104e+01 4.354966536717122949e+01 4.266862706835722463e+01 4.071917235495155296e+01
+4.249809205999380879e+01 4.152607265064429498e+01 4.486871291019247110e+01 4.331681305478246458e+01 4.204118759673148986e+01 4.140231612102326153e+01 4.365551491501781101e+01 4.121091722796883516e+01 4.085854994486844305e+01 4.264916944481035443e+01
+4.436695728954609308e+01 4.197495135274516542e+01 4.167504284978848261e+01 4.103641261274867702e+01 4.188898411954706091e+01 4.158342178008462753e+01 4.338651979649070256e+01 4.144791352335363399e+01 4.288599873211281022e+01 4.032946082515986319e+01
+1.325573792440837018e+01 1.310464283739215574e+01 1.176187473304827158e+01 1.420723776542380001e+01 1.235643583699082271e+01 1.489552469007577251e+01 1.317071069147868378e+01 1.063132370782251357e+01 1.338088781037717112e+01 1.162552007715849456e+01
+3.206008869475828504e+01 3.069198792984062152e+01 3.332882620132683371e+01 3.262336153342810974e+01 3.319687400271387645e+01 3.168999390514245107e+01 3.453433288669917545e+01 3.293684934287788479e+01 3.042701242145436780e+01 3.224901995352214357e+01
+4.212246416338267352e+01 4.154662112179111233e+01 4.140317789938257675e+01 4.486114854608178604e+01 4.076682413707872854e+01 4.366663954358430999e+01 4.000205144719587480e+01 4.298091334701188515e+01 4.457971501977026207e+01 4.143967047046609764e+01
+1.472244460347928552e+00 1.925488643009626299e+00 4.255683357584284288e+00 1.584610025781388210e+00 8.474637334304624403e-01 2.784006312291750884e+00 4.680773870803904835e+00 3.480148983374864891e+00 2.850305850446824607e+00 4.858824688538426750e-01
+1.898120725270684162e+01 1.635973019709224374e+01 1.846179461230529029e+01 1.632030992346859222e+01 1.969534239725145852e+01 1.818187140766687193e+01 1.662255900087670923e+01 1.634755931146136376e+01 1.595463292535821687e+01 1.847320479446863928e+01
+2.616439573075907532e+01 2.578380214325819608e+01 2.841714707578635313e+01 2.796842309954366712e+01 2.877413729181165536e+01 2.654731288223091212e+01 2.723985828191094782e+01 2.702735838165209259e+01 2.992044731983257222e+01 2.646124478369694089e+01
+1.187276443510060631e+01 1.083430100849376387e+01 1.215264669231103767e+01 1.071297072040954390e+01 1.445048517591904158e+01 1.172938730368928617e+01 1.077229873611661937e+01 1.012723879952875450e+01 1.322911193143242059e+01 1.318451158727371642e+01
+1.509572433998418362e+01 1.889551293197893500e+01 1.804848712576308145e+01 1.849819784811060686e+01 1.919077487494321232e+01 1.901405467412250161e+01 1.980460073464412218e+01 1.767967539426059176e+01 1.744247816329952627e+01 1.700943599945365037e+01
+2.582749887331827665e+01 2.853302064497108859e+01 2.767673884030828191e+01 2.817661673354160712e+01 2.598243483478105631e+01 2.605872931026209827e+01 2.520748662754953173e+01 2.661033767597864852e+01 2.779872330666837499e+01 2.928967456998664431e+01
+2.659019805847259832e+01 2.962320895564318235e+01 2.528112147425486000e+01 2.742817149206670280e+01 2.956400400203930801e+01 2.805181503909078344e+01 2.773203537106066108e+01 2.624872089614677506e+01 2.671637744532224090e+01 2.926024207902346319e+01
+2.433050772688917363e+01 2.144719760809744002e+01 2.233840606242438653e+01 2.309694984683250851e+01 2.205595237934745612e+01 2.213743227045134176e+01 2.165142333751042258e+01 2.282115908342267829e+01 2.425287264007558008e+01 2.100764189003156446e+01
+1.589682341006105304e+01 1.985338272704872153e+01 1.556651752363732122e+01 1.701800501180795777e+01 1.868942492417303214e+01 1.852277214013722784e+01 1.711364318446966237e+01 1.673262083976359094e+01 1.698806189276435319e+01 1.632138131579319662e+01
+2.359359056631101126e+01 2.055301799436580268e+01 2.017795115403238171e+01 2.497165151342857570e+01 2.116364174457775960e+01 2.026915262454229705e+01 2.094937664547959955e+01 2.019478923174231966e+01 2.195905447308585678e+01 2.401200892225661931e+01
+4.956789005701347151e+01 4.762680240909749330e+01 4.862455135918042259e+01 4.718024148986293653e+01 4.815017288771218773e+01 4.670287968710559312e+01 4.650579509892722996e+01 4.789114893084757085e+01 4.749064837091989943e+01 4.789768184574990784e+01
+2.038379030944368964e+01 2.002093721813978888e+01 2.335217166898458885e+01 2.320909758400717493e+01 2.205394404999805857e+01 2.244822038016016208e+01 2.207721500296044681e+01 2.012002522422444528e+01 2.167685803108731335e+01 2.088541127698644928e+01
+4.760041341608292242e+01 4.915125096390692505e+01 4.709624624659483061e+01 4.596996978111698695e+01 4.642426338305306643e+01 4.752582009146657072e+01 4.765665396336587634e+01 4.902790413220616728e+01 4.895676361826167522e+01 4.790683278602287487e+01
+2.210005502147831535e+01 2.289179881558269969e+01 2.416305886663065650e+01 2.402082782491942226e+01 2.433211591769850202e+01 2.029808662672329689e+01 2.346025276519872449e+01 2.069993688360881379e+01 2.207909284009205564e+01 2.274294207527344369e+01
+1.511853876822259224e+01 1.917473602847201875e+01 1.987345298024275664e+01 1.567729768397345325e+01 1.615737606882649047e+01 1.934204761973467157e+01 1.963231898978092360e+01 1.709813691403405045e+01 1.525311236134537118e+01 1.519695916846409744e+01
+2.060181788104992862e+01 2.033802374736191609e+01 2.362014594386460686e+01 2.464403980343942635e+01 2.215267910456518408e+01 2.059570335998024149e+01 2.256196410366053229e+01 2.174415953729315021e+01 2.187412462174998851e+01 2.310665312077853528e+01
+4.408113925931399990e+01 4.494131057571593146e+01 4.194425748237058116e+01 4.023707818070042208e+01 4.400585751647662391e+01 4.302190359541403808e+01 4.099271429434100611e+01 4.247414228310709916e+01 4.371155122766862178e+01 4.385205893534321575e+01
+1.318048023204771013e+01 1.456643473788118470e+01 1.306286734172409680e+01 1.436849296733172565e+01 1.361986527733046870e+01 1.060279208201845158e+01 1.451226653642920894e+01 1.033221922177887464e+01 1.266983736273881789e+01 1.071068561896728788e+01
+1.605253469832671342e+01 1.904511820145838286e+01 1.573460961791885460e+01 1.671322573261260658e+01 1.932329460929069853e+01 1.577462655571721406e+01 1.541368417809094993e+01 1.742268997540005415e+01 1.651209755639268195e+01 1.781704182241927015e+01
+4.156625370244410789e+01 4.376833068954790917e+01 4.110033127392345875e+01 4.194265574003021158e+01 4.432863618553396634e+01 4.362211170134657579e+01 4.201905502623749555e+01 4.107372251204179037e+01 4.177984195416118496e+01 4.142052074613716428e+01
+1.766252033207990735e+01 1.557697321089458597e+01 1.802818944661705558e+01 1.558601952840116667e+01 1.668603287782876166e+01 1.571420982407165923e+01 1.846036823512184455e+01 1.603126056918076259e+01 1.695929686594012864e+01 1.947837388809389125e+01
+4.737971108773862028e+01 4.561291578253591439e+01 4.963967100618511097e+01 4.727048296688768403e+01 4.867243520161201786e+01 4.683586907215646278e+01 4.509440439288117375e+01 4.550265179345917943e+01 4.748109739744962354e+01 4.844982178563181208e+01
+4.241885704259595880e-01 4.933197892505877036e+00 1.871353978780601501e+00 1.853210735334454462e+00 4.063997836287512655e+00 4.736242886919293404e+00 4.930005319114354023e+00 3.766890926294708120e+00 1.881297927654578928e+00 4.175035834933438217e-01
+4.541329429833268705e+00 1.197809453334861995e+00 7.244743604561154626e-01 2.447263801387815185e+00 4.928252270553003633e+00 1.210276357557502180e+00 3.360677737029392986e+00 3.808098076643587682e+00 1.188187719961998345e+00 3.641081743059297882e+00
+3.099464889897519271e+01 3.300843304310232895e+01 3.030341534475341092e+01 3.206671229935596301e+01 3.273307469831835448e+01 3.218023487059289778e+01 3.374336087625495395e+01 3.413962477272656315e+01 3.385621537016589144e+01 3.019406473905901223e+01
+1.901902445241737638e+01 1.568574244076371649e+01 1.790349542277142447e+01 1.752754380194932082e+01 1.572039393006599717e+01 1.811999242764491314e+01 1.636820208930385689e+01 1.743917159272006145e+01 1.541136162138530885e+01 1.729792028606811627e+01
+4.489867167386930191e+01 4.134138010226778448e+01 4.020489111124945225e+01 4.352531642102689347e+01 4.225493251324171951e+01 4.050376421979787978e+01 4.353761409489021617e+01 4.015587454555960534e+01 4.435098345246120743e+01 4.069326264556652006e+01
+1.038119608986782261e+01 1.137351907523946082e+01 1.403482745441996826e+01 1.229832435201330654e+01 1.273288571016147408e+01 1.216408001104734637e+01 1.021949971321502559e+01 1.082874889910078053e+01 1.222770819370945361e+01 1.104592732703963875e+01
+2.135977279699099185e+01 2.108945689813371871e+01 2.330917292556998888e+01 2.316855799882764444e+01 2.296730691352361831e+01 2.008121721604726773e+01 2.364389027225323758e+01 2.161765206242745663e+01 2.332527994503315583e+01 2.278289214251076800e+01
+1.818844123447967576e+01 1.621011039990438718e+01 1.857026361689063521e+01 1.545695743165888203e+01 1.599635168233400329e+01 1.938735023327241080e+01 1.869361575363283379e+01 1.506872777005672681e+01 1.624188130184900203e+01 1.607203241496582180e+01
+1.708833497908497279e+01 1.558179242582247959e+01 1.806397917768255112e+01 1.969241079107077397e+01 1.830888866235819279e+01 1.538401524157210787e+01 1.677333102492541528e+01 1.775331689720425743e+01 1.701603878066626052e+01 1.916822005237586168e+01
+2.652245212177015077e+01 2.991473439777350407e+01 2.821388706739963936e+01 2.858838078896749835e+01 2.988308818657504418e+01 2.688600891228819378e+01 2.900920084226402906e+01 2.717265481652247772e+01 2.934766835907489835e+01 2.590328770655651525e+01
+1.639184240831328410e+01 1.899146598604593450e+01 1.663126959020573281e+01 1.649691686852674266e+01 1.616252996103915507e+01 1.564839489112117654e+01 1.628231530508383074e+01 1.677659874236943693e+01 1.836997104072865028e+01 1.531282421109725789e+01
+3.504582775091908076e+01 3.600699551396943576e+01 3.979512087986483238e+01 3.806700923261085734e+01 3.630835683318753127e+01 3.533495547197923514e+01 3.514095670223611023e+01 3.622372539818463366e+01 3.940742909794455073e+01 3.707956827148754542e+01
+1.089627805953895034e+01 1.400001740881840817e+01 1.276353537859272613e+01 1.198276840994981640e+01 1.065857514289546870e+01 1.432647879454456330e+01 1.078636604089857620e+01 1.154893929604549641e+01 1.145022765981218527e+01 1.435707017095427140e+01
+4.643665166613824624e+01 4.580947805026179509e+01 4.624647675002305647e+01 4.612443390112765940e+01 4.759724393195618575e+01 4.781344377895364772e+01 4.972473710410752545e+01 4.597785323550761660e+01 4.820837855080748113e+01 4.908629634493761529e+01
+3.383616697079611413e+01 3.102943655383299770e+01 3.160843184350654766e+01 3.232743486219849416e+01 3.471597924846725647e+01 3.465865712376912455e+01 3.103435937711143922e+01 3.179109520621536333e+01 3.074699694226886137e+01 3.254992539656748818e+01
+2.237550170345860323e+01 2.448977608092509684e+01 2.262524670122692427e+01 2.353639455952833615e+01 2.126086438747764973e+01 2.223363234351320372e+01 2.061724932905177710e+01 2.102990017938480705e+01 2.000471707633815655e+01 2.019632525824330216e+01
+1.097620301478245963e+01 1.172670976122443953e+01 1.167805227134921253e+01 1.489262734194570292e+01 1.428268611873963323e+01 1.350584930795129779e+01 1.363528380807695051e+01 1.281036397201285482e+01 1.473545333554259429e+01 1.248129376441180760e+01
+4.037200775820312337e+00 4.480456499617465838e+00 1.590017374859319377e+00 5.502596226383837941e-01 1.139675812709708413e+00 2.135538943131281453e+00 4.090073829612465239e+00 4.303652916281716756e+00 3.476065265595351672e-02 2.553736512887828880e+00
+3.251536300135804680e+01 3.041457290697240623e+01 3.310000666738704211e+01 3.170111497225628483e+01 3.427962594795648954e+01 3.217339074158235235e+01 3.096419804471122816e+01 3.095552811345572408e+01 3.384382090360580264e+01 3.132793799153679970e+01
+1.016806800091641350e+01 1.031326601727677250e+01 1.453218726672205463e+01 1.069622685558797670e+01 1.266210341137608530e+01 1.205547801300353328e+01 1.173671663129421283e+01 1.449916672843636256e+01 1.010911698387744728e+01 1.331894843087794555e+01
+4.009805266237126631e+01 4.335684004448398099e+01 4.261579074908820530e+01 4.449319464150551795e+01 4.082196342164206726e+01 4.402054623030565494e+01 4.395980507233358026e+01 4.063590594608443496e+01 4.199279612072064083e+01 4.085076320572258624e+01
+1.149026104319721497e+01 1.052682461125428226e+01 1.390911931672467716e+01 1.322074610737957912e+01 1.024093006196648048e+01 1.180025232950489134e+01 1.478399907742143071e+01 1.250200572855100667e+01 1.216364568009852221e+01 1.228849802579646955e+01
+4.511555334233896275e+01 4.686503549939280333e+01 4.574394141924576473e+01 4.779192238785110902e+01 4.958674450753374430e+01 4.695739865167007565e+01 4.922475188636302335e+01 4.500120437258933492e+01 4.584257321729592149e+01 4.515211769827043042e+01
+1.419669246178001210e+01 1.001909961329291576e+01 1.123411934600951056e+01 1.370452028076035766e+01 1.158135074864653369e+01 1.050946194033006797e+01 1.180116959400213972e+01 1.135196643192262833e+01 1.421355951080277435e+01 1.156673958792571533e+01
+4.533313999205187628e+01 4.988039843110733784e+01 4.978495884435220376e+01 4.530218272470281704e+01 4.721626720737481264e+01 4.593122469149887621e+01 4.742672448567208932e+01 4.915088621499793931e+01 4.975305887371445124e+01 4.817126326725768592e+01
+4.837000685534926703e+01 4.770753141061243952e+01 4.921713897854524333e+01 4.880871353234758203e+01 4.529148601931178320e+01 4.999210616961887155e+01 4.876201226859733850e+01 4.931951658147056605e+01 4.825598856047673024e+01 4.928142564023381311e+01
+3.026412946954301120e+01 3.312920597491187635e+01 3.027254638706859780e+01 3.418219868688061780e+01 3.255969315340963988e+01 3.263503812290766604e+01 3.280797253856097484e+01 3.085406853153105544e+01 3.098845151557243938e+01 3.159408661436502186e+01
+4.196859584826518841e+01 4.113710864361764408e+01 4.085662272227187231e+01 4.333800856791617662e+01 4.304722648663639717e+01 4.321776061493708454e+01 4.044003013755725817e+01 4.446767291749218742e+01 4.194633198404524421e+01 4.156684703215179155e+01
+1.715650853170507162e+01 1.689520242691517637e+01 1.957530366258611210e+01 1.625584633774200682e+01 1.922106162643071769e+01 1.742010286254701867e+01 1.757047721275629826e+01 1.654234140744742021e+01 1.786521100309507659e+01 1.662605598138105734e+01
+4.622308137026133323e+01 4.873065489119321114e+01 4.760407793072040761e+01 4.634278570310320333e+01 4.888303419898195301e+01 4.776111140086923257e+01 4.830486910324837879e+01 4.661450534288950820e+01 4.740636975913802331e+01 4.808677125494033788e+01
+3.405983871195400781e+01 3.433576075500560876e+01 3.336504083144338750e+01 3.023482211203833714e+01 3.283161440083266314e+01 3.381647455998641050e+01 3.068251506041790932e+01 3.114335375692301611e+01 3.441247552534068177e+01 3.010060860926537174e+01
+3.180884155961283000e+01 3.262127360268868159e+01 3.335363662721300670e+01 3.134719723151827608e+01 3.138761402451196147e+01 3.466706563511727524e+01 3.361767286665543963e+01 3.288593338111654418e+01 3.323860027210305645e+01 3.014649721551709050e+01
+4.822975765556022765e+01 4.986447194693847251e+01 4.527867763250701216e+01 4.786980758750814857e+01 4.931514389625142769e+01 4.740691355874213997e+01 4.539263592970786476e+01 4.780269676208385476e+01 4.666036945411909898e+01 4.577470892668967650e+01
+2.324382693079692785e+01 2.477282964429405254e+01 2.075716157184981725e+01 2.238708094740177046e+01 2.300903366972723774e+01 2.290868323710593302e+01 2.200730889544521673e+01 2.169042204683130848e+01 2.063412011275209323e+01 2.195871225281139161e+01
+4.916389535511647324e+01 4.536135854505675979e+01 4.845350519749582929e+01 4.767013865192358679e+01 4.689580431989971743e+01 4.670137491117015571e+01 4.810416316387096458e+01 4.945497687322132663e+01 4.748087963050557647e+01 4.912361582038460028e+01
+1.386939827865078101e+01 1.300961715507565764e+01 1.446261644977423089e+01 1.221690007189593885e+01 1.303544789359376921e+01 1.315653776545994447e+01 1.295848581153162726e+01 1.351316886542758056e+01 1.118716734187403183e+01 1.256181888772895405e+01
+9.754317811252050774e+00 5.755289458904501387e+00 7.161674005213010119e+00 9.718079600837993937e+00 7.098636584630611424e+00 8.192629738320427180e+00 6.987971989813971163e+00 6.371076011743349810e+00 9.919888239799140806e+00 7.046670031575215098e+00
+9.137689477834371132e+00 8.668071902807010787e+00 8.846524468206698799e+00 5.055156322143235847e+00 7.080769990898807542e+00 7.406720758176618347e+00 5.095961384115283543e+00 6.299066043725170871e+00 8.801449115610674667e+00 5.685548528644995159e+00
+3.143701266922741411e+01 3.278939591788942920e+01 3.152153795910432166e+01 3.043228753560076072e+01 3.000714171539588193e+01 3.224791676460131384e+01 3.418431711113296245e+01 3.286157592815037987e+01 3.499603649471720246e+01 3.143423322823599975e+01
+1.162647567011515548e+01 1.356310666549256361e+01 1.408389733252818132e+01 1.090806983878301395e+01 1.185470504078882570e+01 1.450970098374575024e+01 1.403346759847369540e+01 1.492429201381238002e+01 1.377124129841040379e+01 1.196597600513961090e+01
+4.065465626063388527e+01 4.348110718060636515e+01 4.103036889968587531e+01 4.220614834545858685e+01 4.032500394474444505e+01 4.412654201211491056e+01 4.062970320523750445e+01 4.451548753524654956e+01 4.432115301130778562e+01 4.232291382219622733e+01
+4.249518086452040677e+01 4.465767524577631065e+01 4.291666454994258828e+01 4.269192093448216951e+01 4.227241366477678497e+01 4.104643880765060260e+01 4.001859830409029684e+01 4.120753113428030900e+01 4.254861585801782553e+01 4.189979976129876604e+01
+4.667367663289639523e+01 4.847744229588825249e+01 4.849317794715977925e+01 4.851967953663915267e+01 4.746260927010253994e+01 4.957443075060751880e+01 4.744598258990307471e+01 4.725132596748319003e+01 4.599690409505313227e+01 4.653827543678168155e+01
+1.413759461053151512e+01 1.382263897327358748e+01 1.286764475727786561e+01 1.478023571805966441e+01 1.100237257764201360e+01 1.054632105154810695e+01 1.426980983477711007e+01 1.219574908316874229e+01 1.423484427103530336e+01 1.446545102597707455e+01
+1.875384824605527712e+01 1.562743148399575333e+01 1.886385709832539703e+01 1.618466662453324290e+01 1.838696564944436318e+01 1.782890777420498196e+01 1.964572358605843760e+01 1.693661258987657092e+01 1.533082594417220257e+01 1.509577742775626419e+01
+1.453805501278277390e+01 1.357016322233428163e+01 1.303952607045351897e+01 1.154686358931390977e+01 1.411895192110647379e+01 1.477530255742494347e+01 1.410599141275113233e+01 1.000782552595736519e+01 1.318200685091703406e+01 1.025567690721050340e+01
+1.029224714790122341e-01 4.849549260809971507e+00 4.162213204002108924e+00 1.061695553391380775e+00 9.091248360355030922e-01 9.170225492671690848e-01 1.521211214797688616e+00 2.623782158161189315e+00 2.159725093210578706e+00 1.456145700990209679e+00
+1.653231734021410304e+01 1.911190605592677372e+01 1.528489363498684206e+01 1.709303637459164804e+01 1.729215712065719046e+01 1.862503038149559487e+01 1.787143787545105411e+01 1.833606168597090402e+01 1.888524642825878175e+01 1.931101486829094327e+01
+5.157930724128210187e+00 9.681061231218450303e+00 5.259856418257362165e+00 7.706481676505352318e+00 8.545302597254583077e+00 9.354845618730427859e+00 8.570434660662138882e+00 9.008640415348960317e+00 6.697250962714029754e+00 9.074125568732561931e+00
+9.373508363420997469e+00 7.644685670136059485e+00 9.695338492564481214e+00 8.993916178868326838e+00 9.989670552666687797e+00 6.753559077258550758e+00 8.835941444655635024e+00 7.009654568046210343e+00 7.399378101519544337e+00 8.137527316091849983e+00
+3.035953358658222712e+01 3.454502794417851419e+01 3.478883329088111509e+01 3.038856209195862590e+01 3.266180117430657504e+01 3.151682141107085044e+01 3.196419538240701286e+01 3.089825608977670868e+01 3.289036051006205952e+01 3.478989676624445337e+01
+2.815772189338080267e+01 2.771470222244663972e+01 2.564690308483350378e+01 2.687910609503970605e+01 2.549573056138811822e+01 2.811477022091690969e+01 2.723437097600219658e+01 2.888992485785468389e+01 2.610235240499685005e+01 2.582283029214667636e+01
+3.231904912337188307e+01 3.086988699760901866e+01 3.168738522856486028e+01 3.009040546102842839e+01 3.200164934205378842e+01 3.274938460578105293e+01 3.309791296413543193e+01 3.331745172564355073e+01 3.418145656551229905e+01 3.107731453637865116e+01
+2.621997651176236133e+01 2.983367113767554102e+01 2.979069059902248284e+01 2.623815821535719195e+01 2.674025977738660131e+01 2.947777870436942393e+01 2.983311110448053682e+01 2.721719551418021865e+01 2.660498522820449097e+01 2.763047006625771118e+01
+5.959336623593714855e+00 6.616857810577603694e+00 6.133282011134939538e+00 6.774981529159687099e+00 5.347119213730467280e+00 7.595298954541352288e+00 5.338062817961074735e+00 9.001782539111808035e+00 6.168560409552164892e+00 7.700059573022553394e+00
+9.343115839778054266e+00 8.882984263958707771e+00 8.854609223220260006e+00 9.223916140584439205e+00 8.805119954714994535e+00 8.131101608157077720e+00 5.656224388411938087e+00 5.162630897456259582e+00 9.604239239078435020e+00 8.083251572603689539e+00
+6.767106896513590542e+00 6.184352794872410186e+00 8.902627576219309447e+00 6.374030177740680259e+00 9.113071592568392276e+00 7.118691268243813930e+00 8.337749496457352194e+00 5.477676569173341115e+00 8.119296623382865619e+00 7.258838393686145807e+00
+2.124986445434414861e+01 2.036682033729801233e+01 2.331573124487604431e+01 2.297683185078436452e+01 2.207572826996372939e+01 2.211096116940338874e+01 2.392531960523215417e+01 2.097856320049824674e+01 2.410126659472444999e+01 2.324373556947509201e+01
+1.965606992054946822e-01 3.997051994545213205e+00 3.139501947454538922e+00 4.087951597443595375e-01 4.367893120533886453e+00 4.604362002659065922e+00 3.053897992743187517e-01 1.384388240736018627e+00 4.031006398965306659e+00 3.741298451918291690e+00
+4.909553663088843933e+01 4.773563821284450626e+01 4.520392506717759318e+01 4.657504137594887084e+01 4.787774753915551429e+01 4.975296982965561909e+01 4.929565179875616820e+01 4.614177807089424022e+01 4.610054915009581578e+01 4.600586483556950412e+01
+4.248934590257159272e+01 4.420904354514409818e+01 4.400676029135124168e+01 4.205252410674178520e+01 4.115042245928737685e+01 4.203041066279885740e+01 4.413108687887610415e+01 4.113816267909696478e+01 4.262218172928874793e+01 4.403048373980373498e+01
+4.136233592016547789e+01 4.415892650092579430e+01 4.490235398891535823e+01 4.246923507370780726e+01 4.004850177461521099e+01 4.070022406067114673e+01 4.161040287658133252e+01 4.289292674296474672e+01 4.037546822902656629e+01 4.471678649354940660e+01
+3.712092527872987802e+01 3.723344360872332715e+01 3.627073640063907334e+01 3.912567437830709594e+01 3.742627802073620558e+01 3.771702926099131759e+01 3.652380456398663000e+01 3.590904232833474907e+01 3.542955194101410399e+01 3.857059570462457998e+01
+1.642879162296353002e+01 1.716383439799631461e+01 1.842721941610950864e+01 1.666228078574356175e+01 1.528292828073357867e+01 1.686960523506406773e+01 1.972224291347151848e+01 1.820867198649279217e+01 1.835739574333603485e+01 1.816141076818819755e+01
+2.052741713730517858e+01 2.292793841936306265e+01 2.272172443817160570e+01 2.116870396018371991e+01 2.318887070922795601e+01 2.410033751027824778e+01 2.020789479923296739e+01 2.249064971774021160e+01 2.344655206051345075e+01 2.126155963534843352e+01
+4.460728868108265033e+01 4.489252983466344915e+01 4.005335063503081727e+01 4.311370638188738980e+01 4.206419698879453506e+01 4.429927245167560557e+01 4.125907351004565982e+01 4.490514744557538052e+01 4.306853984771873911e+01 4.396768701114415734e+01
+2.392202736606398616e+01 2.299281496608880104e+01 2.207070534107833026e+01 2.478972929963068594e+01 2.270556912439422348e+01 2.302544759270269026e+01 2.110243819707374513e+01 2.312825394713638261e+01 2.285803824741471857e+01 2.092419198973512451e+01
+1.346266215768553920e+01 1.067217564704060884e+01 1.149697794185840571e+01 1.179357762708506741e+01 1.402218603839752475e+01 1.139379936207276600e+01 1.105352481933601538e+01 1.478724009519048010e+01 1.004431642556734516e+01 1.498910427840989001e+01
+1.411211186834139220e+01 1.428781168830641946e+01 1.458317617920603659e+01 1.215492610256648121e+01 1.159433409160569362e+01 1.291099373297056907e+01 1.185586211718813843e+01 1.300537083400116423e+01 1.352792931321912206e+01 1.344202509246068544e+01
+1.401292839789906353e+01 1.286024321684650396e+01 1.256333862978208238e+01 1.146744411604060865e+01 1.465876859716408198e+01 1.198507520618595734e+01 1.043546383397885791e+01 1.308533258058900728e+01 1.056919196738300748e+01 1.172611571400846131e+01
+5.817619362925113613e+00 6.955407683258803431e+00 9.847061611676437565e+00 6.290667163505637483e+00 8.283683322706460572e+00 6.625950321123474041e+00 8.867365628433002911e+00 5.654368303591748912e+00 9.849105225392722929e+00 7.268947706918195806e+00
+2.998112246522319424e+01 2.737266781311220498e+01 2.908028378557161631e+01 2.716033642533308878e+01 2.898195361309854334e+01 2.797707400810054068e+01 2.943297720751199265e+01 2.705471276175055095e+01 2.802152209910739344e+01 2.815009340309413588e+01
+6.730498632688927785e+00 9.878051004299575055e+00 8.204860386726659627e+00 9.112402818171805308e+00 5.662623363709242241e+00 9.310072411363112366e+00 9.613785952566971105e+00 7.435309594094679397e+00 8.031264688754887970e+00 8.824049004514977312e+00
+2.430832442349550604e+01 2.288558541193953388e+01 2.445329227730921318e+01 2.298472611706586122e+01 2.405080544979851354e+01 2.214836681677574148e+01 2.374929965644134455e+01 2.456520733444927984e+01 2.286061481861103317e+01 2.090392575281189735e+01
+9.079165624953088098e+00 6.122202859183303758e+00 6.119088074113115283e+00 7.684872114467067306e+00 7.964699674208516100e+00 7.900431039189055760e+00 5.457434186988773916e+00 9.387304313151901169e+00 6.328000212943530656e+00 5.647574606414020870e+00
+1.785630234968548535e+01 1.571500561332863199e+01 1.687274121689790718e+01 1.898866131674106938e+01 1.683695364348535151e+01 1.543508609151394317e+01 1.778392455464094013e+01 1.922560425748017465e+01 1.897963193571751361e+01 1.587561570065176575e+01
+2.550939382069778105e+01 2.955560250695978652e+01 2.910253752116054571e+01 2.880017450901586784e+01 2.524383159406570343e+01 2.921864396355128690e+01 2.719022037952692017e+01 2.671197561647929675e+01 2.773238180512688089e+01 2.545676621361777947e+01
+1.505142247967846103e+01 1.858024986621072117e+01 1.853123081277631101e+01 1.811344770474898525e+01 1.995054423043432834e+01 1.655939717881862805e+01 1.669985931896624010e+01 1.539469701473277752e+01 1.721399068271868771e+01 1.630524263117424155e+01
+3.289885720881240161e+01 3.270108633389309460e+01 3.025161466467331906e+01 3.031453738009011900e+01 3.093673395663394388e+01 3.016235385845874006e+01 3.371676447785006303e+01 3.361665151996981393e+01 3.068028117215821382e+01 3.418039450397640167e+01
+1.671219454084804212e+00 3.854561018729109723e+00 5.329912656688590156e-01 3.756889086790438093e-01 3.640943781018016523e+00 2.477456581030992311e+00 3.442011982138680093e+00 2.174136693018731137e+00 1.232010166195534051e+00 4.095511588370998268e+00
+2.221288672966407773e+01 2.024181355524390469e+01 2.410243792240137495e+01 2.413170405475093361e+01 2.294000231714814220e+01 2.176551444469194863e+01 2.399891682222891731e+01 2.277343512394183733e+01 2.412966154275008179e+01 2.315729396291510511e+01
+3.545467724956520783e+01 3.961611873492614677e+01 3.844639660612918419e+01 3.563551306885370451e+01 3.678361584654453509e+01 3.796241496950798222e+01 3.917785852545324587e+01 3.521830464356504109e+01 3.618316565735004531e+01 3.944874495147689686e+01
+4.087005224008061788e+01 4.380379654193475147e+01 4.007919035472436775e+01 4.278905062867717390e+01 4.189730690296732263e+01 4.253274999954273738e+01 4.281415118607301196e+01 4.156683847228639195e+01 4.147554430092142752e+01 4.366700924667453165e+01
+8.545231308612162735e+00 5.534384615473719293e+00 7.836561098144517956e+00 6.282813918506819029e+00 9.814634376187900244e+00 7.417728233599623522e+00 9.029962748875790979e+00 7.751132710781308610e+00 5.217062664274095596e+00 8.165756877970110850e+00
+2.700178313419915455e+01 2.973576468003177453e+01 2.703231358976035992e+01 2.885918017615054865e+01 2.741938632282129618e+01 2.948766163261041839e+01 2.953880621825089392e+01 2.543708403935541895e+01 2.968246665655112793e+01 2.912767420760207671e+01
+2.696817760138721098e+01 2.736717829687510672e+01 2.927273696601090336e+01 2.670002193029946014e+01 2.934824842406085565e+01 2.544067215488345823e+01 2.888399218604315166e+01 2.923773816527368297e+01 2.590908826418669264e+01 2.715173266186100420e+01
+9.782506991497399440e+00 8.687541797295034840e+00 6.766257042510321007e+00 6.482677906438276239e+00 6.748516148729247988e+00 8.873267655905909379e+00 8.306853055352071635e+00 5.925977839337339681e+00 5.870546676670421959e+00 5.491978248566987020e+00
+4.635454611623435284e+01 4.927704081052144147e+01 4.515942397604295877e+01 4.538049994490387462e+01 4.636957435314951681e+01 4.599936487324721668e+01 4.615929806941424118e+01 4.898971594626650017e+01 4.781563296946023200e+01 4.502885330646483908e+01
+2.666086261030866211e+01 2.850404209000870281e+01 2.882658149762693256e+01 2.964701741924577050e+01 2.602401204528104728e+01 2.898999017609612139e+01 2.869273026698481743e+01 2.531897278126798767e+01 2.693611570605103367e+01 2.641382728530049206e+01
+1.052112401404173880e+01 1.192255663822406220e+01 1.243833534310632238e+01 1.326112129772736203e+01 1.475265526293101814e+01 1.300325533274178014e+01 1.371796958088279794e+01 1.253133029747601412e+01 1.317052015688165767e+01 1.035466108066886726e+01
+1.003559888886318419e-01 1.610395827915891420e+00 1.057240034982723120e+00 1.637486760889573123e+00 5.988106590962560816e-01 4.452636403699474776e+00 2.967962267770243301e+00 3.395511595722448206e+00 3.945856193036691550e+00 2.492210994645286171e+00
+1.618739278376128610e+01 1.524807186669418790e+01 1.862299143423814485e+01 1.555796499978623793e+01 1.804159750003885776e+01 1.640524875083444556e+01 1.586748025177510968e+01 1.689875761459658676e+01 1.900722888111477005e+01 1.696046788452286336e+01
+7.485873820042137083e+00 8.089236201006070104e+00 9.344524922393590671e+00 7.853048733194148312e+00 5.151935298484183967e+00 9.654743477534889706e+00 8.447633755157806235e+00 8.382566928886232560e+00 6.078375761988585424e+00 8.294427351163285778e+00
+3.600234523883179349e+01 3.706732883355080332e+01 3.603101357950889394e+01 3.938280245394359014e+01 3.579143128029549104e+01 3.727830410776545733e+01 3.802849620229937955e+01 3.845931954080422344e+01 3.691534684863253091e+01 3.934549534362363943e+01
+4.750675496816872823e+01 4.521698589289280079e+01 4.674238987897827968e+01 4.589589837312661302e+01 4.823535083129436885e+01 4.732136184662169853e+01 4.747658823466954203e+01 4.713845894016730398e+01 4.978009855243283255e+01 4.607367562560781948e+01
+4.481092954745899704e+01 4.450742925550374451e+01 4.135191617655328145e+01 4.401770888413214067e+01 4.497802100901753164e+01 4.126331501085640951e+01 4.218388584661659735e+01 4.260090368283379547e+01 4.147465567901932104e+01 4.007632419823014658e+01
+2.515681292900438404e+00 4.282449205941611048e+00 3.293468158094725151e+00 8.146721354071484456e-01 3.528437370021492159e-01 3.212096391031578069e+00 1.325565527081090655e-01 2.928877906367316264e+00 4.701151207124787845e+00 2.877370889379395003e+00
+5.876312338855244066e-01 3.246051510580318045e+00 3.730224396327116665e+00 2.916843825485798014e+00 4.810862742372709278e+00 1.874352897618520419e+00 1.428560431409303666e+00 4.342995640947301617e+00 1.117979192597263083e+00 4.816112697203056570e+00
+3.683584812847511358e+01 3.771149987810539272e+01 3.574050399313563986e+01 3.873156906284538081e+01 3.504177352086069419e+01 3.584299524217018273e+01 3.790398414926738013e+01 3.857193781018646206e+01 3.958321551346958245e+01 3.852748325967311871e+01
+1.253705969358904326e+01 1.437111262342587992e+01 1.246773290170059312e+01 1.351129383015832097e+01 1.496408419499535114e+01 1.065744559948990755e+01 1.137365762759759846e+01 1.197288037798823268e+01 1.210914089269415683e+01 1.205510537632772916e+01
+1.575236135502998813e+01 1.984038190725366846e+01 1.723357263629260316e+01 1.750758980175083224e+01 1.623329307902703178e+01 1.735480126217366603e+01 1.830956816318505886e+01 1.875588568477021312e+01 1.876934041354956406e+01 1.788945556347044175e+01
+6.288414442556068629e+00 7.313114783696581966e+00 9.341362527041901842e+00 8.635845348831541202e+00 8.713532605999905201e+00 7.127466672240377221e+00 6.729674962734814692e+00 6.855193814923013385e+00 9.938247818680288503e+00 5.200545957062412405e+00
+1.875132881969421206e+01 1.576024283712245833e+01 1.729161797293787828e+01 1.675609693674390499e+01 1.546888263128508179e+01 1.743065242607461940e+01 1.960369825171317615e+01 1.520029559525347196e+01 1.645730456746897019e+01 1.603770468102851865e+01
+2.250029129595543509e+01 2.337446601527077306e+01 2.119533192037514979e+01 2.379020210505608190e+01 2.380002772481049078e+01 2.156299012454149988e+01 2.205341316505141336e+01 2.104845138715100461e+01 2.488280511661452010e+01 2.322801288529205976e+01
+4.406346521687891027e+01 4.066301995373405731e+01 4.116698134729063696e+01 4.226685302802079036e+01 4.258560444056665517e+01 4.381805239807079033e+01 4.223666213333093822e+01 4.394932310517769736e+01 4.309173153522728938e+01 4.056549869711911072e+01
+3.060240911219234050e+01 3.425768585948962652e+01 3.078306407446325110e+01 3.487380040668097791e+01 3.421269114699318692e+01 3.250438302944799318e+01 3.490710712461012832e+01 3.048688364554002206e+01 3.151532880587550878e+01 3.319112207520305446e+01
+3.412944113213407604e+01 3.151751954573975922e+01 3.199239381054607279e+01 3.158456506909272221e+01 3.233693667723962761e+01 3.142789808119318096e+01 3.480805721127223507e+01 3.156422314002833929e+01 3.049022269055469891e+01 3.263408583025206866e+01
+5.185038173577463105e+00 7.981349392410264976e+00 6.150044186438515581e+00 5.602834428886394491e+00 5.384766008146045557e+00 8.481443879390699436e+00 6.699374818840331258e+00 8.623833857643807832e+00 5.326781703994711847e+00 6.576451689153051561e+00
+4.892441491693897149e+01 4.600004460556373687e+01 4.565421180674410095e+01 4.837905817871366310e+01 4.779941582788492127e+01 4.894836806896378079e+01 4.869402525039343033e+01 4.812605766928757589e+01 4.993191085814446240e+01 4.766794865055204156e+01
+4.137272292370222004e+01 4.412047245242187188e+01 4.002662095285532473e+01 4.282409581443197766e+01 4.169601715635958783e+01 4.161341853538910129e+01 4.322453161932458698e+01 4.425742224656997337e+01 4.304597695696663351e+01 4.426586489323361207e+01
+4.951990848294642689e+01 4.507821647653717179e+01 4.966929397892869957e+01 4.904894264344052601e+01 4.918609571479349540e+01 4.546643692360984090e+01 4.869389014459299148e+01 4.979958344821045557e+01 4.839273670709080477e+01 4.785280702312303447e+01
+2.601997301804693663e+01 2.913232304746091472e+01 2.778844345592726484e+01 2.527305151606734412e+01 2.985922650662742228e+01 2.756307622051599893e+01 2.645438427115791313e+01 2.734703420994629042e+01 2.928928891758744513e+01 2.652451562192531753e+01
+2.029793548676572001e+01 2.302179659857385730e+01 2.381846134675160442e+01 2.261700685461003957e+01 2.113386312659822863e+01 2.333260988346517451e+01 2.040052863304801178e+01 2.220916852400977248e+01 2.081683379199209938e+01 2.092229525529941725e+01
+6.967803703641206603e-01 4.174651183996495263e+00 4.922010903517760383e+00 2.628450911513429133e+00 8.583964292415174890e-01 1.361536632596844765e+00 9.195338273733366652e-02 4.571494032802495333e+00 5.887554144507056719e-01 2.882582377571267784e+00
+5.120958819456776112e+00 9.158485218378867643e+00 6.365354049864062169e+00 7.590393831194077734e+00 6.493627867943865262e+00 9.703396225576703671e+00 6.296483794328868733e+00 7.148284063694675616e+00 9.363651252423009552e+00 9.209667833959043648e+00
+2.099315806930934514e+01 2.391693609997919268e+01 2.454626347218496107e+01 2.185116092842288538e+01 2.375639462186883577e+01 2.448497644682205632e+01 2.423062105265115918e+01 2.091406694269613098e+01 2.478145940756680687e+01 2.188338220214731322e+01
+2.360078730465470187e+01 2.143610604602575265e+01 2.439876201147171741e+01 2.024610457270380692e+01 2.115540426437248200e+01 2.448692858731857314e+01 2.128095757219677608e+01 2.110325529810874201e+01 2.069062646570123576e+01 2.429555878823458315e+01
+2.130581216255430022e+01 2.347476559671523688e+01 2.283695472078036559e+01 2.398121804728193496e+01 2.367512593094911821e+01 2.305053961018117192e+01 2.244088837655407076e+01 2.066591062833761683e+01 2.130666508942691806e+01 2.209549736458542668e+01
+4.702292921764571254e+00 4.769642885012936873e+00 4.574321951102242600e+00 1.850793501277221864e+00 7.728308264433714214e-02 4.641592812938626800e+00 2.140920741586571641e+00 4.833274095218348165e+00 4.818099885446263997e+00 4.265047277336800668e+00
+1.081116702891239711e+01 1.006303759987879509e+01 1.279877841819191175e+01 1.263699811061338174e+01 1.359676811184579392e+01 1.445129026508901049e+01 1.039703292321514816e+01 1.365748245170181185e+01 1.093705972048791075e+01 1.429088526578581941e+01
+4.708984771793263491e+01 4.971456355695877960e+01 4.860755889921711770e+01 4.544063284750279053e+01 4.923159006390437042e+01 4.866150385304090520e+01 4.805473262851326410e+01 4.910146480304588579e+01 4.702054923871478564e+01 4.610750525426926316e+01
+2.621807395991097067e+01 2.899277919065299614e+01 2.553514567105519006e+01 2.890349652085814469e+01 2.955098062072348242e+01 2.691416697384217471e+01 2.815317647491540143e+01 2.715071366048413282e+01 2.718882527494064050e+01 2.655185444554059870e+01
+1.765786076343365707e+01 1.516329530392247982e+01 1.737798095911004026e+01 1.703874052501366165e+01 1.580609405987561189e+01 1.828204801750328556e+01 1.985575453684143099e+01 1.781094405532262570e+01 1.857376638221973053e+01 1.534225226283008325e+01
+3.469742222335500337e+00 2.713622216737980875e+00 1.258995294534763776e+00 1.728479967519597205e+00 9.079885840071283409e-01 4.542252806668141574e+00 2.916958973830602098e+00 2.004257083818199447e+00 2.310029018220663311e+00 4.736416698059076502e+00
+3.643112153619997429e+01 3.730051313278843850e+01 3.596723614005968983e+01 3.605186040764917976e+01 3.511523544203303970e+01 3.948373274953872425e+01 3.605353332537453070e+01 3.613766938468231871e+01 3.639800716322565677e+01 3.563704035847714380e+01
+7.271886672799804607e+00 9.221785413698079026e+00 5.490412903921223275e+00 7.441205685108890577e+00 5.750243323469921286e+00 6.623379634450300202e+00 8.686785386938998599e+00 7.380090646843832758e+00 6.879441425728846760e+00 6.972381392850176773e+00
+1.699759392293467286e+01 1.663397352928888751e+01 1.505405541817598092e+01 1.913275537095731949e+01 1.900490350201682332e+01 1.552227259050075681e+01 1.788428690566350099e+01 1.731990849083443607e+01 1.559354547754555753e+01 1.990284113530361765e+01
+4.818186352854795018e+01 4.875636558468873005e+01 4.839258534742207019e+01 4.599205050596781064e+01 4.746993590071745928e+01 4.895820036091531335e+01 4.737852039094528322e+01 4.768311639867746976e+01 4.885568024085411309e+01 4.830632653132546039e+01
+4.556191487464354850e+01 4.673868917779658005e+01 4.938210471802246104e+01 4.600827605633445927e+01 4.539121049290011456e+01 4.894059469972609122e+01 4.917743077821648257e+01 4.581326109094950283e+01 4.927172991391357471e+01 4.843383897798585025e+01
+3.026166428650331497e+01 3.391424308993328651e+01 3.422755405420279828e+01 3.399541072885977400e+01 3.254239517654013270e+01 3.116450919324740809e+01 3.422664987844363083e+01 3.363581404870069491e+01 3.490380587194425743e+01 3.077846298877966547e+01
+2.026817395760415508e+01 2.358732495305956078e+01 2.237737857616366810e+01 2.424549009979337910e+01 2.191698570529129597e+01 2.084139294253856534e+01 2.418221096234934819e+01 2.274454815820035947e+01 2.094597896195177356e+01 2.360191999293222764e+01
+3.176264620650258763e+01 3.361341787237243039e+01 3.159612648893094189e+01 3.452955835617323999e+01 3.063318562759187103e+01 3.089259894636299464e+01 3.246515062579400990e+01 3.040969219519072908e+01 3.097990092350880786e+01 3.471883191106007160e+01
+1.130852841867952918e+01 1.123489399535999844e+01 1.453127290260518301e+01 1.124773099924752984e+01 1.135974863064315521e+01 1.379699131208981910e+01 1.224869921225269920e+01 1.388355278477590637e+01 1.032683078782192609e+01 1.243785596836692164e+01
+2.285997939141796564e+01 2.402716164649993047e+01 2.380080464895079473e+01 2.076949952346886974e+01 2.074624734870737086e+01 2.134087183872456706e+01 2.180537363170518717e+01 2.204227790704241130e+01 2.339848608416672704e+01 2.028340216082917635e+01
+2.900068791376038035e+01 2.620829460409592571e+01 2.534018657045834999e+01 2.658452068860312423e+01 2.633397274716915604e+01 2.752962900073196906e+01 2.888863955033896502e+01 2.929161469439429055e+01 2.922432042705254318e+01 2.679837780611534015e+01
+2.135279628243995731e+01 2.124395894369588689e+01 2.471029109744297614e+01 2.149136227117061537e+01 2.387752648359499830e+01 2.196560899103539555e+01 2.069627035392351999e+01 2.005357648847679641e+01 2.272128668507625449e+01 2.487889409274466246e+01
+3.579141525349686503e+01 3.844058829603174843e+01 3.564094036405230526e+01 3.712678248134992032e+01 3.623603036869438654e+01 3.874187624714091527e+01 3.631017502253437357e+01 3.940858653197697947e+01 3.945910105703306670e+01 3.598220657611393136e+01
+4.171522002896504944e+01 4.205350200293271712e+01 4.360208034546171518e+01 4.255768097117395854e+01 4.471782608578488549e+01 4.020940196919387688e+01 4.251534161316013893e+01 4.292112394415858745e+01 4.460098493037136791e+01 4.024579261810713859e+01
+3.660356082492146612e+01 3.981958006036594355e+01 3.820789840621696953e+01 3.511716477683694393e+01 3.715087954222156696e+01 3.937504349871984743e+01 3.650728093205334090e+01 3.547278172387193962e+01 3.879192385794959108e+01 3.803006915968040857e+01
+3.067075979678949516e+00 2.091215181453094374e+00 4.663642416770066745e+00 4.330319447502041896e+00 2.260933505309470348e-01 1.318348724862600241e-01 1.882316834390247884e+00 4.052766653909164241e+00 4.936380646574722419e+00 7.520844555176409152e-01
+2.138534624856699651e+01 2.470440084779602330e+01 2.062172920715435254e+01 2.437566809310575877e+01 2.485470124802309400e+01 2.088576761611312804e+01 2.361033032101892815e+01 2.020142759388999210e+01 2.202711412569577476e+01 2.258141649598837120e+01
+2.970653576760675652e+00 1.904454283155107674e+00 4.849571989073016454e+00 4.210594615678543207e+00 4.191643523555689477e+00 2.343465798974851300e+00 2.074097511688326012e+00 1.367035359653531179e+00 2.818774832546355746e-01 4.323611881275265745e+00
+1.132663068777733528e+01 1.300776939649912123e+01 1.148279956102965293e+01 1.357212082035621137e+01 1.379502641260965490e+01 1.051257982033237148e+01 1.256927232103383929e+01 1.254445277795527858e+01 1.184640385107770477e+01 1.466462431284836043e+01
+2.640912501647736121e+01 2.592150698475049353e+01 2.519680939909864748e+01 2.510923355993100969e+01 2.887242801559895611e+01 2.567216713684775087e+01 2.733860307985575488e+01 2.802948407589741464e+01 2.714175900284423193e+01 2.513553326168116442e+01
+3.823918519304113062e+01 3.856035996123965504e+01 3.589225337049187203e+01 3.539794073686021392e+01 3.970198516972772040e+01 3.630333191281050631e+01 3.926673248804361549e+01 3.931745725231409239e+01 3.886261295881271849e+01 3.584416803326285361e+01
+3.682523783346300661e+01 3.716218583358251237e+01 3.811586212266093554e+01 3.537214209219257555e+01 3.751845880618722617e+01 3.591312565126550282e+01 3.786987587515871212e+01 3.818702306130591495e+01 3.778354628276427007e+01 3.869147755239153952e+01
+1.853314934939354686e+01 1.805003708539742746e+01 1.656453697106823952e+01 1.635548126882032705e+01 1.798834141351351690e+01 1.933047816805845542e+01 1.973366864461697645e+01 1.552952902201878871e+01 1.577414306298859970e+01 1.972368129391539782e+01
+1.396297558144191697e+01 1.453949396889809620e+01 1.471850796410110362e+01 1.480067802202723648e+01 1.260729819360735959e+01 1.488653953995751777e+01 1.378655103567219342e+01 1.080835718118481026e+01 1.238450053233984960e+01 1.359165587686002041e+01
+4.983606603404134461e+01 4.719327690675187625e+01 4.696676419373881117e+01 4.923275387909931311e+01 4.713452660318151999e+01 4.776009086147825400e+01 4.615470832299372006e+01 4.871751267889537473e+01 4.765994159135390618e+01 4.904517275120170439e+01
+2.612191489899897689e+01 2.752251462027417972e+01 2.630424622981044536e+01 2.504543517475608283e+01 2.824148763649400706e+01 2.755546910736198996e+01 2.722758907246580407e+01 2.983484257309157783e+01 2.785599591981456769e+01 2.931715788894692309e+01
+3.230291275347333624e+01 3.450380081225365814e+01 3.465002688895536664e+01 3.191783695503646001e+01 3.245868971509494827e+01 3.448118124573066723e+01 3.403353903872530850e+01 3.001828155672324527e+01 3.160029782091791262e+01 3.210887120968062902e+01
+2.859349632986398149e+01 2.793117749390381022e+01 2.746183524350624339e+01 2.596157886392175129e+01 2.731968131727445481e+01 2.622909293511287387e+01 2.957421074925827398e+01 2.667703406748173478e+01 2.976132007266686230e+01 2.766527645047355577e+01
+5.760124265643240093e+00 5.306748135553340795e+00 8.903807930342200194e+00 7.299002118846600773e+00 5.290818977527378841e+00 9.974331585848835502e+00 5.288902804981833405e+00 8.475176144292765557e+00 9.918394626317066809e+00 6.195900521079628298e+00
+3.667804622120450375e+01 3.882553295816565253e+01 3.716383540854096879e+01 3.742092249161298412e+01 3.824051063630535907e+01 3.509179191999611902e+01 3.826997110710124161e+01 3.809292574536057430e+01 3.654923558376639647e+01 3.542897142449744763e+01
+4.504672476743122189e+01 4.516488471841296359e+01 4.925943991235191532e+01 4.842012430846035898e+01 4.632684866560172310e+01 4.843981420059354548e+01 4.896228334569631357e+01 4.653397141555050354e+01 4.518018688749593537e+01 4.966389562343866970e+01
+9.335157480612242153e+00 7.893377042861967396e+00 7.193077095947952415e+00 8.626288302075682424e+00 7.433344707123514361e+00 9.367116190408303567e+00 9.503509320056291898e+00 7.108604634367276631e+00 6.384138986175257990e+00 7.961751642966810927e+00
+2.101146974579101823e+01 2.193353528521988949e+01 2.025575102810198658e+01 2.198896720464549048e+01 2.255853723557350321e+01 2.241647142483162725e+01 2.191392050201520192e+01 2.419573304035376182e+01 2.072663346210251945e+01 2.252848371890686963e+01
+2.693986377198943316e+01 2.914782915714184242e+01 2.566847827199718068e+01 2.967697244833899362e+01 2.875711658765651180e+01 2.970667196393450737e+01 2.838308616776253146e+01 2.681701965999713622e+01 2.969090586262361242e+01 2.637783388154589304e+01
+3.285606458875758307e+01 3.372698869570769631e+01 3.189477954906253743e+01 3.151383803808712614e+01 3.229673005086411308e+01 3.408981747174576782e+01 3.464960881572832108e+01 3.272541706429944952e+01 3.330733102661825740e+01 3.451636811119457349e+01
+2.092638425166769878e+01 2.270635055470838992e+01 2.322786090713714202e+01 2.022792578974334532e+01 2.472985444922799658e+01 2.421082688325190446e+01 2.148306241078546464e+01 2.038593765113234113e+01 2.084943536609528536e+01 2.063472206877486315e+01
+3.885734579637183828e+00 2.792021248679025014e+00 2.121110046234881530e+00 4.531771925473679907e+00 5.559874115307567033e-01 2.463125521454295530e+00 5.676822383709534403e-02 2.343303209970631240e+00 2.815163784091867516e-01 5.940895813403596071e-01
+1.123024114699909815e+00 2.262197580663467100e+00 7.042851018989992884e-01 8.819349325311165444e-01 2.491838863697398487e+00 2.094627247522739655e+00 4.574229505340499990e+00 1.811969495583165557e+00 2.902941751390217373e+00 3.161321439597651661e+00
+2.061641889649473569e+01 2.259280844332867133e+01 2.122923721246700168e+01 2.179069858264572090e+01 2.494752666692161114e+01 2.342157124462672257e+01 2.474490333523500851e+01 2.071278277516557864e+01 2.191069737416284724e+01 2.277365901641177004e+01
+1.411267397192098372e+01 1.401979253776260137e+01 1.276250483703944560e+01 1.260084946155375540e+01 1.071437980669705858e+01 1.387673075201567841e+01 1.135704690223357183e+01 1.248347711408973382e+01 1.142137046463758310e+01 1.066914181499846492e+01
+4.355086633295080389e+01 4.338670923040758254e+01 4.012213441470316866e+01 4.205873833795121897e+01 4.166475123481186671e+01 4.334706032126821640e+01 4.108067906155460491e+01 4.295435961487129362e+01 4.456602980907086220e+01 4.398901186104303918e+01
+5.156193441796630417e-01 4.512764533397833233e+00 2.526261862239285616e+00 4.132287330538708225e+00 1.600248005153058761e+00 4.477616142481002370e+00 1.946008393670815462e+00 5.418825740149180170e-02 4.526909882096318505e+00 4.564333839306677909e-01
+1.952179887496928501e+01 1.908703923653054702e+01 1.878524057349312670e+01 1.527802760840230256e+01 1.503438981109824724e+01 1.606223638597736425e+01 1.831761796956726229e+01 1.705598744441272885e+01 1.701203129649655921e+01 1.942293444114806888e+01
+2.337831451103536651e+01 2.197968613097975066e+01 2.378126895711217159e+01 2.227091831368353070e+01 2.206139863915832677e+01 2.467364957744150544e+01 2.125439549945350137e+01 2.060223669998282858e+01 2.292271556629729190e+01 2.484660906142089232e+01
+3.611545009222678004e+01 3.528257845398378834e+01 3.551697468315020956e+01 3.715754059923821018e+01 3.614959185430816291e+01 3.757972939262711520e+01 3.626746876628595118e+01 3.970268650551474110e+01 3.952971983963132629e+01 3.783403052505232722e+01
+4.101496779595598241e+01 4.225934522326139131e+01 4.398473752007822668e+01 4.295213051553945860e+01 4.048458663533497770e+01 4.274010748614567490e+01 4.351369149644793310e+01 4.396351702890375890e+01 4.314558789317133147e+01 4.076329082270391524e+01
+2.921472741228098613e+01 2.722943309929904032e+01 2.854291772883912515e+01 2.865936368643250276e+01 2.586981852951669225e+01 2.680608029487905952e+01 2.818651078269012089e+01 2.535348304092183014e+01 2.680770093881478289e+01 2.767399733140596396e+01
+4.046805777392568082e+00 4.050566973395904213e+00 4.335361592900518701e+00 4.566202762782356928e+00 2.556711994304689206e+00 2.507581473435998021e+00 3.991475894833875770e+00 3.249819653888825766e+00 3.509834386288516850e+00 3.978963347180505039e+00
+2.102043830577880001e+01 2.234520373759076861e+01 2.400469360770715355e+01 2.090079323866309480e+01 2.054931556870391418e+01 2.441841983843994868e+01 2.171464831379597982e+01 2.341935062454516014e+01 2.012674302131969384e+01 2.345023444204724683e+01
+1.305390035537884152e+01 1.140341607757987141e+01 1.103496289219213367e+01 1.258286314222989510e+01 1.002752899580210411e+01 1.003832016324612653e+01 1.109534404550928954e+01 1.018360681250410593e+01 1.054012877065345677e+01 1.169430324669375842e+01
+2.600817505559966936e+00 4.260907501592700264e+00 2.759534193872427821e+00 2.804689857676931464e+00 4.383268013291725218e+00 2.017414331061985422e+00 6.700761422532036660e-01 1.439133815666948646e-01 3.775686278368095117e+00 3.101547756767323527e+00
+2.169620330586918300e+01 2.031215663638890234e+01 2.243086827052441379e+01 2.054506807820464331e+01 2.124269910463712918e+01 2.158471310883640726e+01 2.404413161745841876e+01 2.437744325197948214e+01 2.151233158730734729e+01 2.429349060622286771e+01
+7.899918937140656183e+00 7.807422939797618255e+00 7.803300472080854533e+00 8.017438332982273153e+00 8.382339686131810907e+00 9.024944998403849894e+00 6.349103600641071488e+00 9.125247050900309631e+00 7.491278411317267683e+00 5.385291395671655934e+00
+9.899851646794253668e+00 8.009407948181610948e+00 7.912113291036232177e+00 8.740365897147661656e+00 9.058848940450687337e+00 8.282393036657513363e+00 5.640478731831000125e+00 6.691337529972491538e+00 9.640418201630248873e+00 6.123078059219260183e+00
+1.846005627973327279e+01 1.728964497217014085e+01 1.613260813018052886e+01 1.806985153162616342e+01 1.626429059125055687e+01 1.788815877172211444e+01 1.679604373491345015e+01 1.911776113305909419e+01 1.910348080383389657e+01 1.738675199061200516e+01
+2.989515920395833604e+01 2.710368281284308267e+01 2.750972702565920969e+01 2.954965079079859436e+01 2.858630937932878169e+01 2.791035065562111583e+01 2.898902340670536404e+01 2.932183133227986715e+01 2.728444035868633577e+01 2.737554182465917663e+01
+3.771439066180402477e+01 3.916446797443614969e+01 3.562544454918202064e+01 3.564891482861305860e+01 3.778409180139153989e+01 3.973189326679185740e+01 3.707498879185376950e+01 3.663471050127347439e+01 3.803344661598942622e+01 3.965224300272515734e+01
+1.675409554667507805e+01 1.681279898279547425e+01 1.902857262834108809e+01 1.664089741398806055e+01 1.604529686853422987e+01 1.542344170937653480e+01 1.733346560442204165e+01 1.741066049459920961e+01 1.920454355201453467e+01 1.610619348223032077e+01
+1.836382307206233477e+01 1.610252131717823687e+01 1.609103767276086216e+01 1.937035886652592609e+01 1.624834476370115155e+01 1.631623673259005614e+01 1.500326695380649866e+01 1.935334517062758763e+01 1.896297406604567470e+01 1.813664467545338965e+01
+2.059976470865484899e+01 2.156032022326010278e+01 2.401198015276816378e+01 2.430709023047758777e+01 2.068650016357785049e+01 2.476193376199362461e+01 2.164411308924304578e+01 2.331156869365359796e+01 2.375912572978340620e+01 2.405973117318941590e+01
+2.779609065884228869e+01 2.757371096878389949e+01 2.549789856770014396e+01 2.508014078227561683e+01 2.981842594343524411e+01 2.688493083643420789e+01 2.801606531049752036e+01 2.539857536593642351e+01 2.841557142861523388e+01 2.966283354352980339e+01
+3.075036133495848922e+00 4.950269250521316167e+00 7.004200761826201438e-01 2.591648261818683796e+00 4.386865359639776862e+00 3.703843088771022085e+00 3.485078704976340092e+00 3.512420419935546434e+00 1.797455756098775836e+00 1.467959221322466812e+00
+2.170622224878860251e+01 2.222091703439183163e+01 2.337793386783719285e+01 2.254447035034939972e+01 2.430722843010661904e+01 2.433017837522878324e+01 2.004955347745576688e+01 2.389023153241599573e+01 2.230366800120836857e+01 2.494420270651831473e+01
+2.350869136938628401e+01 2.278232318674410806e+01 2.179310790976795786e+01 2.455669595039315567e+01 2.010467058913366500e+01 2.157886575624748104e+01 2.028440698888823235e+01 2.383263658110813665e+01 2.351053727056896392e+01 2.165676109368158464e+01
+1.073651522139485159e+01 1.003920795385958442e+01 1.315460895114581774e+01 1.223836712705209173e+01 1.067137425451137744e+01 1.478967060528385247e+01 1.264829861972809866e+01 1.120946647056444689e+01 1.250301785577353719e+01 1.339810166367553990e+01
+2.049212094550684427e+01 2.478360216944674832e+01 2.299679862521082896e+01 2.364328142118301201e+01 2.157681871633058890e+01 2.196573564747007623e+01 2.118461996948361659e+01 2.048482835482712261e+01 2.089515818720791884e+01 2.398757022648242909e+01
+2.134398807515098895e+01 2.099322288448702878e+01 2.123428513797866302e+01 2.153207724675518264e+01 2.277566893376594237e+01 2.293995814731916383e+01 2.213249873620930686e+01 2.307710389910417703e+01 2.040787462805683106e+01 2.043894118529080117e+01
+4.505935673334679592e+01 4.650327820280372038e+01 4.789037524592416162e+01 4.687969187701646945e+01 4.767436377879377574e+01 4.938299059417509085e+01 4.956242527115184515e+01 4.632987032327056198e+01 4.731070236634950277e+01 4.774572007620725600e+01
+3.387821809211412294e+00 8.293914463928075964e-02 2.560465291496405005e+00 1.132478875989689771e+00 3.225863952047249406e+00 8.718321450249572058e-01 3.454688690512329963e+00 1.933676731502687041e+00 4.683649943683672490e+00 6.876047207299662567e-01
+1.170302083290645889e+01 1.035855944423825470e+01 1.204814447447616033e+01 1.155608747531696778e+01 1.338560319867504589e+01 1.302889624726345197e+01 1.182296864098769973e+01 1.108946277127495073e+01 1.494017983077795897e+01 1.227000810598057434e+01
+1.580182703059871585e+01 1.836822708737453880e+01 1.589626627869640352e+01 1.846974795255078305e+01 1.614799080376984364e+01 1.558775650075109986e+01 1.582642245071478726e+01 1.500996067609535167e+01 1.859369808926765089e+01 1.866200524529189408e+01
+5.531586847760361358e-01 4.232261458672590848e+00 6.374433116599120819e-01 1.986436452801836339e+00 3.986476828897767888e+00 7.495871367438688981e-01 1.146256976163207320e+00 3.611262841965331205e+00 3.600182682730372008e+00 3.205738164426486403e+00
+4.943294798084473030e+01 4.875839883515711648e+01 4.711434204529543734e+01 4.758575181141938515e+01 4.684999442979988515e+01 4.870389933580336361e+01 4.892093589616040106e+01 4.881642595101579474e+01 4.861305862417224688e+01 4.602252169346397892e+01
+4.812236474710555711e+00 1.258911479126820776e+00 2.486242529461927475e+00 1.504391549083848201e+00 1.424202471887338062e+00 1.844347367726639764e-01 3.047821669899484220e+00 2.513395116144307551e+00 2.573937562499467591e-01 1.393232321183057287e+00
+1.376980951798391928e+01 1.402453388420719271e+01 1.009003277800227316e+01 1.481405178537012901e+01 1.363335496035161576e+01 1.152375547693066693e+01 1.414697332429423504e+01 1.140760599207465020e+01 1.436376919783063855e+01 1.056290195205968452e+01
+3.440854484819292480e+01 3.470952793630210209e+01 3.369781624055634239e+01 3.043309880427347025e+01 3.334577077767425379e+01 3.205151860936331332e+01 3.235350499745531039e+01 3.024574195172588631e+01 3.095531069673178948e+01 3.395256803766823595e+01
+2.554741183034496999e+01 2.982918334403791860e+01 2.587392493941683114e+01 2.824015159027607069e+01 2.622727231269465165e+01 2.858780691324268020e+01 2.888410683620140418e+01 2.836709864455716357e+01 2.807249730127596266e+01 2.946234546976005930e+01
+2.987800959578326143e+01 2.532638378783232014e+01 2.910919661376451373e+01 2.823154966828690604e+01 2.823671067186545613e+01 2.564174963307347355e+01 2.825093583222826510e+01 2.991241290300623845e+01 2.955909284769723655e+01 2.719565330402425118e+01
+4.360133961973697581e+01 4.343641502206563842e+01 4.047877099331678608e+01 4.461286202452900085e+01 4.284236101078409575e+01 4.181862760567842230e+01 4.378269291747653114e+01 4.128682729200816937e+01 4.346754918523160427e+01 4.019855603786123766e+01
+4.419704018804635837e+01 4.224085423510659609e+01 4.318346457178970610e+01 4.110618909903341489e+01 4.338536856329223923e+01 4.386120137946637954e+01 4.236606593442199653e+01 4.308863462030897296e+01 4.228162961911199602e+01 4.447045684628922402e+01
+4.962177173096900162e+01 4.774541611284361409e+01 4.791499239859157910e+01 4.700826562882190274e+01 4.974539801591408406e+01 4.888592954719804595e+01 4.642702645151420882e+01 4.922104792888116265e+01 4.716198180092545300e+01 4.914333571766796638e+01
+3.085542983428581110e+01 3.056621725819909940e+01 3.285093607899901968e+01 3.430921911647414646e+01 3.238554908846963087e+01 3.497282128342262553e+01 3.339585849768996439e+01 3.037037453605223902e+01 3.496416065840987386e+01 3.203947118390095028e+01
+7.697456461876686085e+00 8.953615824194818273e+00 6.593762514660349794e+00 8.129456882185046140e+00 9.429888741180935341e+00 8.079315940911522276e+00 6.164797373768168498e+00 5.122003907782690213e+00 9.350494369504648517e+00 5.106347054251935802e+00
+3.288064461501716718e+00 2.841543016677357869e+00 4.683738391404623780e-01 1.838579015297167718e+00 1.326011838408627241e+00 1.219948216895417881e+00 4.865052773762228000e+00 1.965488623333802032e+00 4.460232775885566880e+00 3.155693129986314460e+00
+2.170924520958629245e+01 2.216847165660190200e+01 2.424235887203132478e+01 2.181627675837905045e+01 2.396967566725925636e+01 2.470496161287218584e+01 2.311605186534003309e+01 2.370813643725944431e+01 2.402548656020567464e+01 2.422519824448321302e+01
+1.705595758997293032e+01 1.565040334914473519e+01 1.511212944581027529e+01 1.680213413570742986e+01 1.891869125537618146e+01 1.783090345612535543e+01 1.656388994605176990e+01 1.827171002746359818e+01 1.616009090154405214e+01 1.507190723036042534e+01
+7.835081304933338764e+00 8.692246046256633107e+00 9.392577806506739790e+00 7.020701608255164317e+00 6.635165807816193251e+00 8.337966927817923590e+00 9.039229709706292581e+00 8.811425673883078957e+00 8.989068244293171972e+00 7.177916574064664879e+00
+4.135029233050777719e+01 4.103418555308304150e+01 4.327011538829380299e+01 4.208108515516157411e+01 4.089829644514956186e+01 4.344554540743411764e+01 4.282536141518346540e+01 4.429336027464748327e+01 4.058737949438246773e+01 4.392833300972228017e+01
+3.625241473374881451e+01 3.902952921266720665e+01 3.639836928273221872e+01 3.595760661025074256e+01 3.752131730396515508e+01 3.932822518186365812e+01 3.620674851918749937e+01 3.539268121396399636e+01 3.678202367924832572e+01 3.873825912282488559e+01
+1.635403164018486422e+01 1.623779885139943246e+01 1.531263147871422881e+01 1.729470258298410101e+01 1.866366737393082431e+01 1.803365862358718275e+01 1.836435834299039982e+01 1.540574589268119610e+01 1.975745355088393751e+01 1.919245916921512318e+01
+2.147033731088388819e+01 2.105159278142896895e+01 2.382681681929020456e+01 2.126513170460126645e+01 2.432781191586101954e+01 2.051421296078738266e+01 2.062977598189679185e+01 2.489575777550307834e+01 2.336919449135002225e+01 2.423443612214476417e+01
+4.714661382852097660e+01 4.703942463425179454e+01 4.556972634722271920e+01 4.838070894300728497e+01 4.851048594189745700e+01 4.860446609526049144e+01 4.864235472779296288e+01 4.500026413466148512e+01 4.976960401923361133e+01 4.907104383527331493e+01
+3.318355826813240483e+00 4.684148696623790187e+00 3.662860486051251474e+00 1.074701892953783933e+00 1.559156753064233625e-01 1.311320221499125527e+00 2.975389653501274267e+00 2.571290674212517446e-01 2.481831236006181829e+00 2.984214244584446174e+00
+2.905341785168796065e+01 2.974184776394459462e+01 2.545662867166778653e+01 2.580723843016460606e+01 2.980373151385677488e+01 2.768770071820173229e+01 2.507098317235861984e+01 2.628815999381764712e+01 2.724971837134429720e+01 2.846454455512383674e+01
+8.541814883575174377e+00 9.185066641818359301e+00 8.487357308346417994e+00 8.400703858801502832e+00 8.093056891075921300e+00 8.763583197788205936e+00 5.793025526465368280e+00 9.404353795994641274e+00 9.359217638726160970e+00 5.146236415172795731e+00
+3.728158410275481316e+01 3.585384130001668268e+01 3.633604947743037172e+01 3.754556692593760658e+01 3.573726958713067603e+01 3.805827837823007087e+01 3.782873653275572678e+01 3.857351158191129059e+01 3.968852307689683556e+01 3.956127280550578007e+01
+2.398220280761738721e+01 2.369734616619363621e+01 2.322767178205261018e+01 2.077886630290085179e+01 2.273522672807789036e+01 2.043723250899942556e+01 2.188681588398325317e+01 2.206758265144979703e+01 2.019905719722876825e+01 2.136994049734985879e+01
+2.634071614805960593e+01 2.657834240582032947e+01 2.562625615548104108e+01 2.827754985923056097e+01 2.519898563667826252e+01 2.798841167761729665e+01 2.934847942425816925e+01 2.945416074144816676e+01 2.724518880184980674e+01 2.729651844106536984e+01
+2.272847984406512722e+01 2.102032194273300192e+01 2.145955586748903698e+01 2.374304354290916308e+01 2.241300617830760444e+01 2.108015720196535980e+01 2.483635595185148759e+01 2.357562509908444071e+01 2.478567416269898160e+01 2.213552522680171464e+01
+3.784159575538962628e+01 3.719753890223775983e+01 3.533620317026018398e+01 3.732344734222582616e+01 3.910367920407865228e+01 3.807270509110657741e+01 3.916081226864559284e+01 3.747005835299653143e+01 3.559230852547241142e+01 3.506819922917940602e+01
+2.201369742373415406e+01 2.259805837901503622e+01 2.498263154399309371e+01 2.067608656856427274e+01 2.337728022668212802e+01 2.198000483192807764e+01 2.066504899453664379e+01 2.079368381687154610e+01 2.474636553122808635e+01 2.439800748355881055e+01
+8.213289896549647029e-01 4.072873601156910439e+00 3.325986103481000544e+00 2.615327123845596624e+00 1.794152420617512345e+00 4.386002704065541380e+00 1.962225537113176932e+00 4.082997197357885355e+00 2.195674542851091982e+00 1.884722147124537894e+00
+7.771132570660083339e+00 5.026148067714563794e+00 8.804953800140468800e+00 5.176556774701195351e+00 8.728668913656161266e+00 6.012402800826187388e+00 9.790367400596901248e+00 6.839703756510422394e+00 6.634658081690395726e+00 5.744440251662223496e+00
+4.139933396256323395e-01 3.015760547331940877e+00 1.226745548406604769e+00 1.946478070209882727e+00 1.443468683853499357e+00 1.778363582324745673e+00 3.595229525921227243e+00 1.485608578115875211e+00 2.832023201484485941e+00 2.380252010995498324e+00
+5.750845004085208600e+00 8.687168843607427249e+00 7.561109604063371847e+00 8.401138896041766557e+00 5.208364503011921443e+00 5.423960080229016434e+00 8.581616940313411490e+00 5.360421679993367050e+00 5.356283638826292659e+00 5.060542376174437251e+00
+1.463097034215891057e+01 1.114338389801804396e+01 1.317181844435843630e+01 1.111037935346660355e+01 1.160834994829774303e+01 1.424021044800742075e+01 1.364430721134973368e+01 1.047699638656605359e+01 1.214351010493216876e+01 1.014584881822632312e+01
+9.470496018395671456e+00 6.149773029455430695e+00 6.065523520125416290e+00 5.155670414422556469e+00 8.258334126879425696e+00 6.842631718618806147e+00 9.321791249198184914e+00 7.366049533457785792e+00 9.840967139573608691e+00 5.927627578515605400e+00
+1.447047151266625420e+01 1.473228256575202622e+01 1.446279113743237232e+01 1.209723996978656757e+01 1.390182751503440883e+01 1.238167866650549342e+01 1.248769926073051195e+01 1.102340054528641922e+01 1.295565151629258338e+01 1.093067948876674045e+01
+4.758332129921937081e+01 4.868008684182667878e+01 4.778422206567281449e+01 4.964510442858400552e+01 4.688984177820641719e+01 4.731837902886589120e+01 4.544261157607364510e+01 4.804499555525963927e+01 4.644105984224052719e+01 4.580154519757784470e+01
+1.413753159936610615e+01 1.348604690954818430e+01 1.357163317867498797e+01 1.230858071906559559e+01 1.460497260548287812e+01 1.347297713626642590e+01 1.364490530827908188e+01 1.430845451893672582e+01 1.137035794671095523e+01 1.403535451933351474e+01
+1.378375752844317503e+01 1.259692929751968649e+01 1.102440637075356378e+01 1.438915039076020363e+01 1.439790927475764626e+01 1.435289212523003499e+01 1.119398105690769540e+01 1.225619672090494028e+01 1.492494828070437585e+01 1.386006238154995174e+01
+4.883012949759648080e+01 4.669400584963556611e+01 4.587813232784001372e+01 4.710688470606927325e+01 4.896917956074307909e+01 4.732424901852026267e+01 4.768761550101524449e+01 4.997579705100060465e+01 4.699554649778713156e+01 4.807700377354619548e+01
+4.126090990909634826e+01 4.101858696638833379e+01 4.170192418838774273e+01 4.238283971790009019e+01 4.148032755019473683e+01 4.257464747696241147e+01 4.082685212756592819e+01 4.488856406412750033e+01 4.053962277482497001e+01 4.465972069827186175e+01
+1.373722203298346933e+01 1.236904914198973415e+01 1.028922224723580214e+01 1.478894900494102060e+01 1.471362159547056159e+01 1.392594771574204238e+01 1.495663950782110163e+01 1.272241166400131362e+01 1.481384175126603076e+01 1.037802520308375342e+01
+4.521167246259151540e+01 4.816767646808084891e+01 4.624267871963546384e+01 4.652077627242732660e+01 4.885407260832160858e+01 4.663610591580727061e+01 4.621097946006570822e+01 4.584528874566852608e+01 4.887429201090977671e+01 4.564853128995013520e+01
+3.741507056421975363e+01 3.943415769734479426e+01 3.689173790841323353e+01 3.874862873391771956e+01 3.548409365493609613e+01 3.738028351075530509e+01 3.995843070196367819e+01 3.885218901396168434e+01 3.605264244220306580e+01 3.750720736848955283e+01
+3.160281612180462218e+01 3.046760061798954666e+01 3.213556223209666740e+01 3.064377218684027682e+01 3.473811829260333184e+01 3.237585433011314251e+01 3.158629587178433695e+01 3.383152035559449899e+01 3.248974296291132191e+01 3.155017012006225130e+01
+6.029206050183841370e+00 5.559598096988639604e+00 6.348748057584947979e+00 5.285434280446573929e+00 7.655847640005159604e+00 9.683028461474807003e+00 5.196717703342548234e+00 5.610549570050133994e+00 7.260995141417176058e+00 9.669375087639524580e+00
+1.370276103436030013e+00 2.770890012578966832e+00 3.257101941759321218e+00 4.148709018536008486e+00 1.032106358803015933e+00 5.497914329240238818e-02 6.844281503440363679e-01 4.500093209240525027e+00 4.369450387812576331e+00 2.987065510851541372e+00
+1.260648023827069508e+01 1.488006911639606855e+01 1.062775107381326656e+01 1.008473832444790474e+01 1.385079105878547878e+01 1.403577768682441373e+01 1.060103614560288143e+01 1.132791416479303059e+01 1.008776181683314377e+01 1.146654305390282325e+01
+3.974056517708242087e+00 2.513185465525960449e+00 2.884519423131795435e+00 2.462588469094319610e+00 9.762149389902224916e-01 3.612260576307526616e+00 1.403861812204278969e+00 1.215798321572691965e-01 3.227361479535839184e+00 8.855533970352447160e-01
+4.171237609593151774e+01 4.053981224055417698e+01 4.034822933874132644e+01 4.294468011281274045e+01 4.260327676867055402e+01 4.371100504560565980e+01 4.254867755001968277e+01 4.211222895015439605e+01 4.199043589118115705e+01 4.013223451298834021e+01
+2.346177153077207223e+01 2.116666411324663244e+01 2.312665084977226826e+01 2.373539133564514358e+01 2.109356944453269733e+01 2.029971650430654151e+01 2.065486871497087051e+01 2.302998483635512628e+01 2.424723203112867864e+01 2.022498410617712139e+01
+1.607456318518197946e+01 1.712425421434043571e+01 1.953919256941767202e+01 1.753529823369359164e+01 1.593960190407661592e+01 1.538485834690436960e+01 1.848078072568962682e+01 1.691399382218193992e+01 1.910915473292679678e+01 1.829755384320385048e+01
+1.128803610166860949e+01 1.029762350173885821e+01 1.301897726474693862e+01 1.343294956746303370e+01 1.057243819032952636e+01 1.191919441522489720e+01 1.228118254477771032e+01 1.184526510880458261e+01 1.060512500242596445e+01 1.209473895093737639e+01
+1.202551347263783299e+01 1.453055501066248567e+01 1.160747850623940991e+01 1.238218493171895851e+01 1.113014498907999794e+01 1.320238021087921965e+01 1.489490557587404496e+01 1.301746548021689343e+01 1.178907042056774479e+01 1.323908722995264142e+01
+1.397289139350095155e+01 1.017335133363241617e+01 1.291403417541744858e+01 1.497718758095654934e+01 1.427848046918769676e+01 1.260722844521794705e+01 1.031820454643321128e+01 1.415686757192854905e+01 1.299489254088605250e+01 1.057466498529783472e+01
+3.494185283360785377e+01 3.232638765637961598e+01 3.029118915410137447e+01 3.131137160907492500e+01 3.218035240109656314e+01 3.078451312073060109e+01 3.473782563162021120e+01 3.383424448908886717e+01 3.134143600213886316e+01 3.295402266758957666e+01
+1.394466235888003602e+01 1.445936072405367412e+01 1.216908709788264709e+01 1.454971571927196017e+01 1.188659026981596512e+01 1.482039208245054063e+01 1.044644762262786486e+01 1.343509633251621338e+01 1.246907020228464447e+01 1.193824402727823575e+01
+3.681757228684633532e+01 3.820503028660350253e+01 3.950629603898281772e+01 3.581960131023472371e+01 3.690704404951561912e+01 3.570434301975430458e+01 3.812471885203915889e+01 3.864435254744297765e+01 3.965956366298728142e+01 3.639435963130482321e+01
+3.229816377178229914e+01 3.111801274161835451e+01 3.466727552624926290e+01 3.172298297863486027e+01 3.080492215843687376e+01 3.281582194226977123e+01 3.471887060172407757e+01 3.001915145250161387e+01 3.119062421626999537e+01 3.469223820205203879e+01
+3.824931960851287727e+01 3.512348648843055798e+01 3.905129565258643254e+01 3.768289095014310419e+01 3.639108593534410829e+01 3.530803992646234946e+01 3.581249207737220530e+01 3.947516929426718235e+01 3.843012111967945543e+01 3.624950860818444909e+01
+4.637130925079449639e+01 4.773805992071405058e+01 4.572257611953475021e+01 4.566970609700000239e+01 4.971894444603979224e+01 4.902101453648890583e+01 4.590327451045585150e+01 4.703283903952745248e+01 4.677810999628782440e+01 4.895502037032703413e+01
+2.031020708478277115e+01 2.035577839438954939e+01 2.286932924838548331e+01 2.283009212443910485e+01 2.439016756422228482e+01 2.278936837830036666e+01 2.479895510202425157e+01 2.024347424199964962e+01 2.049003842390370522e+01 2.022032930785190530e+01
+3.595936592202250637e+01 3.530608329071785789e+01 3.795458046413613573e+01 3.994608341710293331e+01 3.583414852475131340e+01 3.523342409949636789e+01 3.889765840911966421e+01 3.626293003342362198e+01 3.914821902676464305e+01 3.851968333517258003e+01
+4.454777714218601403e+01 4.009016004912614761e+01 4.278523793096117345e+01 4.393674424204853324e+01 4.270667691350633532e+01 4.161947776290189438e+01 4.068125282545988597e+01 4.443781535908095748e+01 4.235381196193801401e+01 4.439057598492850332e+01
+4.682622100807685683e+01 4.696392823164352137e+01 4.847820376722704339e+01 4.968943488047441548e+01 4.771179475246160706e+01 4.884199964474390043e+01 4.544603279408482166e+01 4.605579018715963713e+01 4.751065820459766087e+01 4.510005861814387629e+01
+4.969292797889252711e+01 4.526949145196894619e+01 4.506089917708271031e+01 4.830669056918106463e+01 4.644676205111122869e+01 4.626750508052886346e+01 4.665443543846897256e+01 4.634898028946182080e+01 4.755718203150793499e+01 4.720074223612066078e+01
+2.712752829635921259e+01 2.782707969876268805e+01 2.510504578493180361e+01 2.517215654286657411e+01 2.722912774913508116e+01 2.908327621600811597e+01 2.942619439353782695e+01 2.543353283797820197e+01 2.769181551050511558e+01 2.956614843139635340e+01
+4.366145283712847913e+01 4.388473194196260607e+01 4.436231407541836802e+01 4.107819881362924264e+01 4.041902079547530491e+01 4.241447218299299493e+01 4.257040347809636671e+01 4.414590889974958543e+01 4.221891789641168202e+01 4.285426512772156116e+01
+7.699785651402797804e+00 9.210166471882105910e+00 7.604789886360210360e+00 8.117928440013798763e+00 5.445622160580082749e+00 8.776352102484040074e+00 5.638567418176173796e+00 9.130338151262641588e+00 8.910140438351929149e+00 8.543723488714881853e+00
+2.081330407552742656e+01 2.367182838246109355e+01 2.104415467747294954e+01 2.029282652642266882e+01 2.276183068908617102e+01 2.297614866359700869e+01 2.435956530640252637e+01 2.288490806208841022e+01 2.172740426861722796e+01 2.401505940763160396e+01
+6.969322028270791947e+00 8.256164885207461168e+00 5.532965151539953830e+00 8.289226523015180703e+00 9.997068628853332584e+00 5.241060194302780140e+00 9.885870921106587161e+00 7.034539803614352493e+00 9.353767251686296191e+00 8.911927420291366531e+00
+2.833463723729340344e+01 2.717698161699875570e+01 2.976560057197068687e+01 2.859622600287915972e+01 2.965082601431274867e+01 2.763793986636082778e+01 2.629452137396569711e+01 2.526413343182360904e+01 2.863042425741925356e+01 2.560651499002766940e+01
+4.060135481564303461e+01 4.351764170090765305e+01 4.322428021714863178e+01 4.186969356801887443e+01 4.475470675932917430e+01 4.011101406493925481e+01 4.151861925815912713e+01 4.460534743149790415e+01 4.160467719159720446e+01 4.126126416927585439e+01
+2.816589337447886265e+01 2.860527330448935857e+01 2.628576175554547945e+01 2.859694077787410293e+01 2.514060753138961957e+01 2.687660672886507029e+01 2.813376674271165712e+01 2.573048282770660222e+01 2.911501787223467375e+01 2.617515649405959266e+01
+4.655138390294960571e-01 4.486078789766633435e+00 4.502090285816652049e+00 3.165507286366339823e+00 1.695148955243503508e+00 1.746047873063304445e+00 3.629778394351196980e+00 4.485551299762885691e+00 4.435432121325586508e+00 3.899377729288119099e+00
+1.133796338363985789e+01 1.417740112871097224e+01 1.007346694327477010e+01 1.189547024335968040e+01 1.168672773384546382e+01 1.009663815458800507e+01 1.062184199500255133e+01 1.206821337459317611e+01 1.246432292223723337e+01 1.202144873627434585e+01
+4.572643004872893613e+01 4.658146174362812530e+01 4.988035293015951765e+01 4.628415787283529426e+01 4.728063604473316417e+01 4.515010112858668379e+01 4.698613764783116409e+01 4.785660007716551689e+01 4.976562306253982371e+01 4.758368022470032344e+01
+3.926697866768471101e+01 3.957170221333241500e+01 3.632642544543026020e+01 3.951976532594945013e+01 3.660331377368216010e+01 3.776169006727751309e+01 3.525253735416141154e+01 3.521940544184371902e+01 3.860186606366101358e+01 3.722239988988895476e+01
+1.386570936959335754e+01 1.258980263856289383e+01 1.174047796584144088e+01 1.185869647453165143e+01 1.000676812857733999e+01 1.149900263782618026e+01 1.323229370818965300e+01 1.487097221908178568e+01 1.423530413491949709e+01 1.011797482322764630e+01
+3.112832291526027717e+01 3.105899074940751348e+01 3.396269883810668233e+01 3.093453648225058927e+01 3.033329914911653091e+01 3.499280403292814157e+01 3.012408605722574606e+01 3.417622030079432704e+01 3.182683420775326510e+01 3.420807729878907821e+01
+5.711246843435980658e+00 5.606924697112144251e+00 6.516375737837977411e+00 5.505229055053233012e+00 8.460806708470659743e+00 5.311458990650313794e+00 7.547110640748948995e+00 9.983484269264884858e+00 9.069851347530093477e+00 8.076097191155053423e+00
+3.616812381824283307e+01 3.704780463631254861e+01 3.890042011867482330e+01 3.885612407645201927e+01 3.614050188951192411e+01 3.961111659077430147e+01 3.796284091382413095e+01 3.689962145481007383e+01 3.750967790390430423e+01 3.802535626718871953e+01
+4.724271274684229383e+01 4.813122411381516486e+01 4.573186533294483525e+01 4.594464906882475930e+01 4.929717291416775282e+01 4.628127461944536236e+01 4.690097498987589120e+01 4.935635925475058627e+01 4.831573914699911398e+01 4.670855939670844492e+01
+3.801139299448432762e+00 2.978193703039221596e+00 2.357880942750791853e+00 2.059204570736342887e+00 1.744341332714976378e+00 4.647645721239129557e+00 4.153097038938645902e+00 4.825134553332563137e+00 6.214861174277236389e-01 3.654337376018221395e+00
+1.602666469353399847e+01 1.741519848779444857e+01 1.634266878033803749e+01 1.643730832448624923e+01 1.828378031737278420e+01 1.984268665849945990e+01 1.801818600279687388e+01 1.538489733532483150e+01 1.537791806927033456e+01 1.975711610422782982e+01
+4.095644578348257170e+01 4.203702635805674248e+01 4.468474626954347428e+01 4.188625992857847535e+01 4.332037060599917311e+01 4.127543611210698771e+01 4.063516787986615952e+01 4.029268300040025252e+01 4.152706749271375486e+01 4.078830513398453661e+01
+4.725191606519504006e+01 4.662566464200132543e+01 4.735555177498876844e+01 4.909368995227325883e+01 4.562307103853760282e+01 4.928827994120914013e+01 4.948754417554177110e+01 4.973353957516944490e+01 4.698743996211313600e+01 4.608570202018835715e+01
+3.744302462938992448e+01 3.801611067828982016e+01 3.662790566259505454e+01 3.991798649869387106e+01 3.833675581525197629e+01 3.521923426248314826e+01 3.663310952874004300e+01 3.811657216879528676e+01 3.528166638899620011e+01 3.511942095659571095e+01
+3.281055441311615084e+01 3.002932363943580540e+01 3.039254934226804750e+01 3.440629033881505450e+01 3.038939494545645204e+01 3.353401798105252851e+01 3.460019082054526507e+01 3.135341802150865576e+01 3.185245718529757042e+01 3.284460702922358166e+01
+4.085265194696887647e+01 4.448709525039086543e+01 4.328073045923721196e+01 4.440927400410341619e+01 4.242640358555099311e+01 4.271016672548601179e+01 4.459519138514335168e+01 4.449954771677335685e+01 4.224080436684501194e+01 4.137206315817840618e+01
+1.751213643583188073e+01 1.865743179851557798e+01 1.979059004459716675e+01 1.610223002122709346e+01 1.943090886064672418e+01 1.967152057083745120e+01 1.958210272266033058e+01 1.817707178430955040e+01 1.814910327217353725e+01 1.701605316591911432e+01
+1.725127123071445112e+01 1.978790507541908639e+01 1.699517658821217481e+01 1.919900803332213357e+01 1.594270302874625500e+01 1.836230249012514548e+01 1.988503477219471804e+01 1.550946550436468385e+01 1.504159971113596050e+01 1.716791396316307328e+01
+3.918463916422312110e+01 3.997741805366609924e+01 3.511284291601188556e+01 3.556429072356380772e+01 3.804733881683311125e+01 3.910288219666924903e+01 3.642622171153383448e+01 3.619605544017109366e+01 3.893487899690600784e+01 3.528190926926615845e+01
+3.332006114033801225e+01 3.169183932962607742e+01 3.467761511379428896e+01 3.456103785624591040e+01 3.104674199692049541e+01 3.019708792560181365e+01 3.370654354175380973e+01 3.413805130674576560e+01 3.483932282975677452e+01 3.444918197044155761e+01
+4.974556228444123462e+01 4.999308659582192149e+01 4.617703624420763475e+01 4.863489935672907905e+01 4.689015531116597657e+01 4.504054098443106824e+01 4.504626261217951111e+01 4.730283003781127604e+01 4.744167456502167113e+01 4.511284848286721427e+01
+1.773347841036065020e+01 1.951206516643051714e+01 1.671978843278842675e+01 1.866500053611311571e+01 1.829330677469883426e+01 1.965777457154740659e+01 1.910490508649570529e+01 1.783302629452731480e+01 1.828515249117053543e+01 1.949193233292017524e+01
+4.539137240364937753e+01 4.966706660224777181e+01 4.681566295129731259e+01 4.922354583537931205e+01 4.709191668856635715e+01 4.720427556351258147e+01 4.817121545488771517e+01 4.887238709637991718e+01 4.516894575474124451e+01 4.796577997763566970e+01
+8.780816644476230337e+00 6.737857621194910607e+00 8.324558622436089905e+00 8.977249803948645024e+00 9.635889097397264180e+00 6.173210409277267274e+00 6.996579579046541042e+00 5.762080066652087496e+00 9.962417510791876651e+00 9.635004839621476691e+00
+9.064928693580467822e+00 8.590615381132472805e+00 9.777618479774673688e+00 5.091162913381808153e+00 5.978889928417730815e+00 5.037814374890710489e+00 8.237373570773014464e+00 9.490152744749934755e+00 6.217411482881496809e+00 9.635172723981533238e+00
+1.194082853063497751e+01 1.337065147768031537e+01 1.129952489621416412e+01 1.172596104247105231e+01 1.458742921565995232e+01 1.145252252835710216e+01 1.234994134078968386e+01 1.445070568698007207e+01 1.353860675133763714e+01 1.031101613082351420e+01
diff --git a/src/test/java/org/numenta/nupic/ConnectionsTest.java b/src/test/java/org/numenta/nupic/ConnectionsTest.java
index 8cb18589..ab0e9c05 100644
--- a/src/test/java/org/numenta/nupic/ConnectionsTest.java
+++ b/src/test/java/org/numenta/nupic/ConnectionsTest.java
@@ -589,11 +589,14 @@ public void testGetPrintString() {
TemporalMemory.init(con);
String output = con.getPrintString();
- assertEquals(1371, output.length());
+ assertEquals(1369, output.length());
Set fieldSet = Parameters.getEncoderDefaultParameters().keys().stream().
map(k -> k.getFieldName()).collect(Collectors.toCollection(LinkedHashSet::new));
+ fieldSet.addAll(Parameters.getKNNDefaultParameters().keys().stream().
+ map(k -> k.getFieldName()).collect(Collectors.toCollection(LinkedHashSet::new)));
+
for(KEY k : p.keys()) {
// Exclude Encoder fields
if(fieldSet.contains(k.getFieldName())) {
diff --git a/src/test/java/org/numenta/nupic/ParametersTest.java b/src/test/java/org/numenta/nupic/ParametersTest.java
index 1339bf89..0735fe1b 100644
--- a/src/test/java/org/numenta/nupic/ParametersTest.java
+++ b/src/test/java/org/numenta/nupic/ParametersTest.java
@@ -37,6 +37,7 @@
import org.junit.Test;
import org.numenta.nupic.Parameters.KEY;
+import org.numenta.nupic.algorithms.KNNClassifier;
import org.numenta.nupic.util.MersenneTwister;
import org.numenta.nupic.util.Tuple;
@@ -153,6 +154,31 @@ public void setPotentialPct(double potentialPct) {
}
}
+ @Test
+ public void testKNNEnumAndConstantFields() {
+ Parameters params = Parameters.getKNNDefaultParameters();
+ KNNClassifier knn = KNNClassifier.builder().apply(params);
+ try {
+ params.apply(knn);
+ assertTrue(knn.getNumSVDDims() == Constants.KNN.ADAPTIVE);
+ assertTrue(knn.getDistanceMethod() == DistanceMethod.NORM); // the default
+ }catch(Exception e) {
+ fail();
+ }
+
+ params = Parameters.getKNNDefaultParameters();
+ params.set(KEY.NUM_SVD_DIMS, Constants.KNN.ADAPTIVE);
+ params.set(KEY.DISTANCE_METHOD, DistanceMethod.PCT_INPUT_OVERLAP);
+ knn = KNNClassifier.builder().apply(params);
+ try {
+ params.apply(knn);
+ assertTrue(knn.getNumSVDDims() == Constants.KNN.ADAPTIVE);
+ assertTrue(knn.getDistanceMethod() == DistanceMethod.PCT_INPUT_OVERLAP);
+ }catch(Exception e) {
+ fail();
+ }
+ }
+
@Test
public void testUnion() {
Parameters params = Parameters.getAllDefaultParameters();
@@ -244,13 +270,13 @@ public void testCheckRange() {
@Test
public void testSize() {
Parameters params = Parameters.getAllDefaultParameters();
- assertEquals(47, params.size());
+ assertEquals(64, params.size());
}
@Test
public void testKeys() {
Parameters params = Parameters.getAllDefaultParameters();
- assertTrue(params.keys() != null && params.keys().size() == 47);
+ assertTrue(params.keys() != null && params.keys().size() == 64);
}
@Test
diff --git a/src/test/java/org/numenta/nupic/algorithms/KNNClassifierIntegrationTest.java b/src/test/java/org/numenta/nupic/algorithms/KNNClassifierIntegrationTest.java
new file mode 100644
index 00000000..657d9124
--- /dev/null
+++ b/src/test/java/org/numenta/nupic/algorithms/KNNClassifierIntegrationTest.java
@@ -0,0 +1,52 @@
+package org.numenta.nupic.algorithms;
+
+import org.junit.Test;
+import org.numenta.nupic.Constants;
+import org.numenta.nupic.datagen.KNNDataArray;
+import org.numenta.nupic.datagen.PCAKNNData;
+
+
+public class KNNClassifierIntegrationTest {
+
+ private PCAKNNData knnData = new PCAKNNData();
+
+ private static final int TRAIN = 0;
+ private static final int TEST = 1;
+
+ @Test
+ public void testPCAKNNShort() {
+ runTestPCAKNN(0);
+ }
+
+ private void runTestPCAKNN(int _short) {
+ System.out.println("\nTesting PCA/k-NN classifier");
+ System.out.println("Mode=" + _short);
+
+ int numClasses = 10;
+ int k = 10;
+ int numPatternsPerClass = 100;
+ int numPatterns = (int)Math.rint(.9 * numClasses * numPatternsPerClass);
+ int numTests = numClasses * numPatternsPerClass - numPatterns;
+ int numSVDSamples = (int)Math.rint(.1 * numPatterns);
+ int keep = 1;
+
+ KNNClassifier pcaknn = KNNClassifier.builder()
+ .k(k)
+ .numSVDSamples(numSVDSamples)
+ .numSVDDims(Constants.KNN.ADAPTIVE)
+ .build();
+
+ KNNClassifier knn = KNNClassifier.builder()
+ .k(k)
+ .build();
+
+ System.out.println("Training PCA k-NN");
+
+ double[][] trainData = knnData.getPCAKNNShortData()[TRAIN].getDataArray();
+ int[] trainClass = knnData.getPCAKNNShortData()[TRAIN].getClassArray();
+ for(int i = 0;i < numPatterns;i++) {
+ knn.learn(trainData[i], trainClass[i], -1, 0, -1);
+ }
+ }
+
+}
diff --git a/src/test/java/org/numenta/nupic/algorithms/KNNClassifierTest.java b/src/test/java/org/numenta/nupic/algorithms/KNNClassifierTest.java
new file mode 100644
index 00000000..deb0741e
--- /dev/null
+++ b/src/test/java/org/numenta/nupic/algorithms/KNNClassifierTest.java
@@ -0,0 +1,159 @@
+package org.numenta.nupic.algorithms;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+
+import org.junit.Test;
+import org.numenta.nupic.Constants;
+import org.numenta.nupic.DistanceMethod;
+import org.numenta.nupic.Parameters;
+import org.numenta.nupic.Parameters.KEY;
+
+
+public class KNNClassifierTest {
+
+ private KNNClassifier initClassifier(Parameters p) {
+ KNNClassifier.Builder builder = KNNClassifier.builder();
+ KNNClassifier knn = builder.build();
+ p.apply(knn);
+
+ return knn;
+ }
+
+ @Test
+ public void testBuilder() {
+ KNNClassifier.Builder builder = KNNClassifier.builder();
+
+ builder.k(42)
+ .exact(true)
+ .distanceNorm(12.5)
+ .distanceMethod(DistanceMethod.PCT_INPUT_OVERLAP)
+ .distanceThreshold(2.3)
+ .doBinarization(true)
+ .binarizationThreshold(3.0)
+ .useSparseMemory(true)
+ .sparseThreshold(349.0)
+ .relativeThreshold(true)
+ .numWinners(100)
+ .numSVDSamples(4)
+ .numSVDDims(Constants.KNN.ADAPTIVE)
+ .fractionOfMax(.84)
+ .maxStoredPatterns(30)
+ .replaceDuplicates(true)
+ .cellsPerCol(32);
+
+ KNNClassifier knn = builder.build();
+
+ assertEquals(knn.getK(), 42);
+ assertTrue(knn.isExact());
+ assertEquals(12.5, knn.getDistanceNorm(), 0.0);
+ assertEquals(DistanceMethod.PCT_INPUT_OVERLAP, knn.getDistanceMethod());
+ assertEquals(2.3, knn.getDistanceThreshold(), 0.0);
+ assertTrue(knn.isDoBinarization());
+ assertEquals(3.0, knn.getBinarizationThreshold(), 0.0);
+ assertTrue(knn.isRelativeThreshold());
+ assertTrue(knn.isUseSparseMemory());
+ assertEquals(349.0, knn.getSparseThreshold(), 0.0);
+ assertEquals(100, knn.getNumWinners());
+ assertEquals(4, knn.getNumSVDSamples());
+ assertEquals(Constants.KNN.ADAPTIVE, knn.getNumSVDDims());
+ assertEquals(.84, knn.getFractionOfMax(), 0.0);
+ assertEquals(30, knn.getMaxStoredPatterns());
+ assertTrue(knn.isReplaceDuplicates());
+ assertEquals(32, knn.getCellsPerCol());
+ }
+
+ @Test
+ public void testParameterBuild() {
+ Parameters p = Parameters.getKNNDefaultParameters();
+ p.set(KEY.DISTANCE_METHOD, DistanceMethod.NORM);
+ p.set(KEY.DISTANCE_NORM, 12.5);
+ p.set(KEY.K, 42);
+ p.set(KEY.EXACT, true);
+ p.set(KEY.DISTANCE_THRESHOLD, 2.3);
+ p.set(KEY.DO_BINARIZATION, true);
+ p.set(KEY.BINARIZATION_THRESHOLD, 3.0);
+ p.set(KEY.RELATIVE_THRESHOLD, true);
+ p.set(KEY.USE_SPARSE_MEMORY, true);
+ p.set(KEY.SPARSE_THRESHOLD, 349.0);
+ p.set(KEY.NUM_WINNERS, 100);
+ p.set(KEY.NUM_SVD_SAMPLES, 4);
+ p.set(KEY.NUM_SVD_DIMS, Constants.KNN.ADAPTIVE);
+ p.set(KEY.FRACTION_OF_MAX, .84);
+ p.set(KEY.MAX_STORED_PATTERNS, 30);
+ p.set(KEY.REPLACE_DUPLICATES, true);
+ p.set(KEY.KNN_CELLS_PER_COL, 32);
+
+ KNNClassifier knn = initClassifier(p);
+
+ assertEquals(knn.getK(), 42);
+ assertTrue(knn.isExact());
+ assertEquals(12.5, knn.getDistanceNorm(), 0.0);
+ assertEquals(DistanceMethod.NORM, knn.getDistanceMethod());
+ assertEquals(2.3, knn.getDistanceThreshold(), 0.0);
+ assertTrue(knn.isDoBinarization());
+ assertEquals(3.0, knn.getBinarizationThreshold(), 0.0);
+ assertTrue(knn.isRelativeThreshold());
+ assertTrue(knn.isUseSparseMemory());
+ assertEquals(349.0, knn.getSparseThreshold(), 0.0);
+ assertEquals(100, knn.getNumWinners());
+ assertEquals(4, knn.getNumSVDSamples());
+ assertEquals(Constants.KNN.ADAPTIVE, knn.getNumSVDDims());
+ assertEquals(.84, knn.getFractionOfMax(), 0.0);
+ assertEquals(30, knn.getMaxStoredPatterns());
+ assertTrue(knn.isReplaceDuplicates());
+ assertEquals(32, knn.getCellsPerCol());
+ }
+
+ @Test
+ public void sparsifyVector() {
+ Parameters p = Parameters.getKNNDefaultParameters();
+ p.set(KEY.DISTANCE_METHOD, DistanceMethod.NORM);
+ p.set(KEY.DISTANCE_NORM, 2.0);
+
+ KNNClassifier classifier = initClassifier(p);
+ double[] inputPattern = { 0, 1, 3, 7, 11 };
+ double[] outputPattern = classifier.sparsifyVector(inputPattern, true);
+ assertTrue(Arrays.equals(inputPattern, outputPattern));
+
+ p.set(KEY.RELATIVE_THRESHOLD, true);
+ p.set(KEY.SPARSE_THRESHOLD, 0.2);
+ classifier = initClassifier(p);
+ outputPattern = classifier.sparsifyVector(inputPattern, true);
+ assertTrue(Arrays.equals(new double[] { 0, 0, 3, 7, 11 }, outputPattern));
+
+ p.set(KEY.RELATIVE_THRESHOLD, true);
+ p.set(KEY.SPARSE_THRESHOLD, 0.2);
+ p.set(KEY.NUM_WINNERS, 2);
+ classifier = initClassifier(p);
+ outputPattern = classifier.sparsifyVector(inputPattern, true);
+ assertTrue(Arrays.equals(new double[] { 0, 0, 0, 0, 0 }, outputPattern));
+
+ p.set(KEY.RELATIVE_THRESHOLD, true);
+ p.set(KEY.SPARSE_THRESHOLD, 0.2);
+ p.set(KEY.DO_BINARIZATION, true);
+ p.clearParameter(KEY.NUM_WINNERS);
+ classifier = initClassifier(p);
+ outputPattern = classifier.sparsifyVector(inputPattern, true);
+ assertTrue(Arrays.equals(new double[] { 0., 0., 1., 1., 1. }, outputPattern));
+ }
+
+ @Test
+ public void testDistanceMetrics() {
+ Parameters p = Parameters.getKNNDefaultParameters();
+ p.set(KEY.DISTANCE_METHOD, DistanceMethod.NORM);
+ p.set(KEY.DISTANCE_NORM, 2.0);
+
+ KNNClassifier classifier = initClassifier(p);
+
+ int dimensionality = 40;
+ double[] protoA = { 0, 1, 3, 7, 11 };
+ double[] protoB = { 20, 28, 30 };
+
+ classifier.learn(protoA, 0, -1, dimensionality, -1);
+ classifier.learn(protoB, 0, -1, dimensionality, -1);
+ }
+
+}
diff --git a/src/test/java/org/numenta/nupic/datagen/PCAKNNDataTest.java b/src/test/java/org/numenta/nupic/datagen/PCAKNNDataTest.java
new file mode 100644
index 00000000..c15a8914
--- /dev/null
+++ b/src/test/java/org/numenta/nupic/datagen/PCAKNNDataTest.java
@@ -0,0 +1,36 @@
+package org.numenta.nupic.datagen;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+
+public class PCAKNNDataTest {
+
+ @Test
+ public void testGenerateForPCAKNNShort() {
+ PCAKNNData data = new PCAKNNData();
+ KNNDataArray[] dataArray = data.getPCAKNNShortData();
+ assertNotNull(dataArray);
+ assertEquals(2, dataArray.length);
+ for(int i = 0;i < 2;i++) {
+ switch(i) {
+ case 0: { // Training Data
+ assertNotNull(dataArray[i].getClassArray());
+ assertEquals(900, dataArray[i].getClassArray().length);
+ assertNotNull(dataArray[i].getDataArray());
+ assertEquals(900, dataArray[i].getDataArray().length);
+ break;
+ }
+ case 1: { // Actual Data
+ assertNotNull(dataArray[i].getClassArray());
+ assertEquals(100, dataArray[i].getClassArray().length);
+ assertNotNull(dataArray[i].getDataArray());
+ assertEquals(100, dataArray[i].getDataArray().length);
+ break;
+ }
+ }
+ }
+ }
+
+}
diff --git a/src/test/java/org/numenta/nupic/encoders/CoordinateEncoderTest.java b/src/test/java/org/numenta/nupic/encoders/CoordinateEncoderTest.java
index 1c76d63b..32b07e93 100644
--- a/src/test/java/org/numenta/nupic/encoders/CoordinateEncoderTest.java
+++ b/src/test/java/org/numenta/nupic/encoders/CoordinateEncoderTest.java
@@ -365,7 +365,7 @@ public double[] overlapsForRelativeAreas(int n, int w, int[] initPosition, int i
int[] newPosition;
for(int i = 0;i < num;i++) {
newPosition = dPosition == null ? initPosition :
- ArrayUtils.i_add(
+ ArrayUtils.add(
newPosition = Arrays.copyOf(initPosition, initPosition.length),
ArrayUtils.multiply(dPosition, (i + 1)));
int newRadius = initRadius + (i + 1) * dRadius;
diff --git a/src/test/java/org/numenta/nupic/network/PersistenceAPITest.java b/src/test/java/org/numenta/nupic/network/PersistenceAPITest.java
index 1c4d915a..975a7741 100644
--- a/src/test/java/org/numenta/nupic/network/PersistenceAPITest.java
+++ b/src/test/java/org/numenta/nupic/network/PersistenceAPITest.java
@@ -1673,6 +1673,9 @@ public void testCheckPointHierarchies() {
private void deepCompare(Object obj1, Object obj2) {
try {
assertTrue(DeepEquals.deepEquals(obj1, obj2));
+ if(obj1 == null) {
+ System.out.println("obj1 = " + obj1);
+ }
System.out.println("expected(" + obj1.getClass().getSimpleName() + "): " + obj1 + " actual: (" + obj1.getClass().getSimpleName() + "): " + obj2);
}catch(AssertionError ae) {
System.out.println("expected(" + obj1.getClass().getSimpleName() + "): " + obj1 + " but was: (" + obj1.getClass().getSimpleName() + "): " + obj2);
diff --git a/src/test/java/org/numenta/nupic/util/ArrayUtilsTest.java b/src/test/java/org/numenta/nupic/util/ArrayUtilsTest.java
index 769c92b8..1fc6e3cb 100644
--- a/src/test/java/org/numenta/nupic/util/ArrayUtilsTest.java
+++ b/src/test/java/org/numenta/nupic/util/ArrayUtilsTest.java
@@ -40,7 +40,6 @@
public class ArrayUtilsTest {
- @Test
public void testToBytes() {
boolean[] ba = { true, true, };
byte[] bytes = ArrayUtils.toBytes(ba);
@@ -79,52 +78,178 @@ public void testToBytes() {
}
@Test
- public void testSubst() {
- int[] original = new int[] { 30, 30, 30, 30, 30 };
- int[] substitutes = new int[] { 0, 1, 2, 3, 4 };
- int[] substInds = new int[] { 4, 1, 3 };
-
- int[] expected = { 30, 1, 30, 3, 4 };
+ public void testAdd() {
+ int[] ia = { 1, 1, 1, 1 };
+ int[] expected = { 2, 2, 2, 2};
+ assertTrue(Arrays.equals(expected, ArrayUtils.add(ia, 1)));
+
+ // add one array to another
+ expected = new int[] { 4, 4, 4, 4 };
+ assertTrue(Arrays.equals(expected, ArrayUtils.add(ia, ia)));
+
+ ///////// double version //////////
+ double[] da = { 1., 1., 1., 1. };
+ double[] d_expected = { 2., 2., 2., 2.};
+ assertTrue(Arrays.equals(d_expected, ArrayUtils.d_add(da, 1.)));
+
+ // add one array to another
+ d_expected = new double[] { 4., 4., 4., 4. };
+ assertTrue(Arrays.equals(d_expected, ArrayUtils.d_add(da, da)));
+ }
+
+ @Test
+ public void testDSubtract() {
+ double[] da = { 2., 2., 2., 2. };
+ double[] d_expected = { 1.5, 1.5, 1.5, 1.5};
+ assertTrue(Arrays.equals(d_expected, ArrayUtils.d_sub(da, 0.5)));
+
+ da = new double[] { 2., 2., 2., 2. };
+ double[] sa = new double[] { 1., 1., 1., 1. };
+ assertTrue(Arrays.equals(sa, ArrayUtils.d_sub(da, sa)));
+ }
+
+ @Test
+ public void testTranspose_int() {
+ int[][] a = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } };
+ int[][] expected = { { 1, 5 }, { 2, 6, }, { 3, 7, }, { 4, 8 } };
+
+ int[][] result = ArrayUtils.transpose(a);
+ for(int i = 0;i < expected.length;i++) {
+ for(int j = 0;j < expected[i].length;j++) {
+ assertEquals(expected[i][j], result[i][j]);
+ }
+ }
- assertTrue(Arrays.equals(expected, ArrayUtils.subst(original, substitutes, substInds)));
+ int[][] zero = { {} };
+ expected = new int[0][0];
+ result = ArrayUtils.transpose(zero);
+ assertEquals(expected.length, result.length);
+ assertEquals(0, result.length);
}
@Test
- public void testMaxIndex() {
- int max = ArrayUtils.maxIndex(new int[] { 2, 4, 5 });
- assertEquals(39, max);
+ public void testTranspose_double() {
+ double[][] a = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } };
+ double[][] expected = { { 1, 5 }, { 2, 6, }, { 3, 7, }, { 4, 8 } };
+
+ double[][] result = ArrayUtils.transpose(a);
+ for(int i = 0;i < expected.length;i++) {
+ for(int j = 0;j < expected[i].length;j++) {
+ assertEquals(expected[i][j], result[i][j], 0.);
+ }
+ }
+
+ double[][] zero = { {} };
+ expected = new double[0][0];
+ result = ArrayUtils.transpose(zero);
+ assertEquals(expected.length, result.length);
+ assertEquals(0, result.length);
}
@Test
- public void testToCoordinates() {
- int[] coords = ArrayUtils.toCoordinates(19, new int[] { 2, 4, 5 }, false);
- assertTrue(Arrays.equals(new int[] { 0, 3, 4 }, coords));
+ public void testDot_int() {
+ int[][] a = new int[][] { { 1, 2 }, { 3, 4 } };
+ int[][] b = new int[][] { { 1, 1 }, { 1, 1 } };
- coords = ArrayUtils.toCoordinates(19, new int[] { 2, 4, 5 }, true);
- assertTrue(Arrays.equals(new int[] { 4, 3, 0 }, coords));
+ int[][] c = ArrayUtils.dot(a, b);
+
+ assertEquals(3, c[0][0]);
+ assertEquals(3, c[0][1]);
+ assertEquals(7, c[1][0]);
+ assertEquals(7, c[1][1]);
+
+ // Single dimension
+ int[][] x = new int[][] { { 2, 2, 2 } };
+ b = new int[][] { { 3 }, { 3 }, { 3 } };
+
+ c = ArrayUtils.dot(x, b);
+
+ assertTrue(c.length == 1);
+ assertTrue(c[0].length == 1);
+ assertEquals(c[0][0], 18);
+
+
+ // Ensure un-aligned dimensions get reported
+ b = new int[][] { { 0, 0 }, { 0, 0 }, { 0, 0 } };
+ try {
+ ArrayUtils.dot(a, b);
+ fail();
+ }catch(Exception e) {
+ assertTrue(e.getClass().equals(IllegalArgumentException.class));
+ assertEquals("Matrix inner dimensions must agree.", e.getMessage());
+ }
+
+ // Test 2D.1d
+ a = new int[][] { { 1, 2 }, { 3, 4 } };
+ int[] b2 = new int[] { 2, 2 };
+ int[] result = ArrayUtils.dot(a, b2);
+ assertTrue(Arrays.equals(new int[] { 6, 14 }, result));
}
@Test
- public void testArgsort() {
- int[] args = ArrayUtils.argsort(new int[] { 11, 2, 3, 7, 0 });
- assertTrue(Arrays.equals(new int[] {4, 1, 2, 3, 0}, args));
+ public void testDot_double() {
+ double[][] a = new double[][] { { 1., 2. }, { 3., 4. } };
+ double[][] b = new double[][] { { 1., 1. }, { 1., 1. } };
- args = ArrayUtils.argsort(new int[] { 11, 2, 3, 7, 0 }, -1, -1);
- assertTrue(Arrays.equals(new int[] {4, 1, 2, 3, 0}, args));
+ double[][] c = ArrayUtils.dot(a, b);
- args = ArrayUtils.argsort(new int[] { 11, 2, 3, 7, 0 }, 0, 3);
- assertTrue(Arrays.equals(new int[] {4, 1, 2}, args));
+ assertEquals(3, c[0][0], 0.);
+ assertEquals(3, c[0][1], 0.);
+ assertEquals(7, c[1][0], 0.);
+ assertEquals(7, c[1][1], 0.);
+
+ // Single dimension
+ double[][] x = new double[][] { { 2., 2., 2. } };
+ b = new double[][] { { 3. }, { 3. }, { 3. } };
+
+ c = ArrayUtils.dot(x, b);
+
+ assertTrue(c.length == 1);
+ assertTrue(c[0].length == 1);
+ assertEquals(c[0][0], 18., 0.);
+
+
+ // Ensure un-aligned dimensions get reported
+ b = new double[][] { { 0., 0. }, { 0., 0. }, { 0., 0. } };
+ try {
+ ArrayUtils.dot(a, b);
+ fail();
+ }catch(Exception e) {
+ assertTrue(e.getClass().equals(IllegalArgumentException.class));
+ assertEquals("Matrix inner dimensions must agree.", e.getMessage());
+ }
+
+ // Test 2D.1d
+ a = new double[][] { { 1., 2. }, { 3., 4. } };
+ double[] b2 = new double[] { 2., 2. };
+ double[] result = ArrayUtils.dot(a, b2);
+ assertTrue(Arrays.equals(new double[] { 6., 14. }, result));
}
@Test
- public void testShape() {
- int[][] inputPattern = { { 2, 3, 4, 5 }, { 6, 7, 8, 9} };
- int[] shape = ArrayUtils.shape(inputPattern);
- assertTrue(Arrays.equals(new int[] { 2, 4 }, shape));
+ public void testTo1D() {
+ int[][] test = { { 1, 2 }, { 3, 4 } };
+ int[] expected = { 1, 2, 3, 4 };
+ int[] result = ArrayUtils.to1D(test);
+ assertTrue(Arrays.equals(expected, result));
+
+ // Test double version
+ double[][] d_test = { { 1., 2. }, { 3., 4. } };
+ double[] d_expected = { 1., 2., 3., 4. };
+ double[] d_result = ArrayUtils.to1D(d_test);
+ assertTrue(Arrays.equals(d_expected, d_result));
+ }
+
+ @Test
+ public void testFromCoordinate() {
+ int[] shape = { 2, 2 };
+ int[] testCoord = { 1, 1 };
+ int result = ArrayUtils.fromCoordinate(testCoord, shape);
+ assertEquals(3, result);
}
@Test
- public void testReshape() {
+ public void testReshape_int() {
int[][] test = {
{ 0, 1, 2, 3, 4, 5 },
{ 6, 7, 8, 9, 10, 11 }
@@ -153,9 +278,56 @@ public void testReshape() {
}
// Test zero-length case
- int[] result4 = ArrayUtils.unravel(new int[0][]);
+ int[][] result4 = ArrayUtils.reshape(new int[0][], 5);
+ assertNotNull(result4);
+ assertTrue(result4.length == 0);
+
+ // Test empty array arg
+ test = new int[][]{};
+ expected = new int[0][0];
+ result = ArrayUtils.reshape(test, 1);
+ assertTrue(Arrays.equals(expected, result));
+ }
+
+ @Test
+ public void testReshape_double() {
+ double[][] test = {
+ { 0, 1, 2, 3, 4, 5 },
+ { 6, 7, 8, 9, 10, 11 }
+ };
+
+ double[][] expected = {
+ { 0, 1, 2 },
+ { 3, 4, 5 },
+ { 6, 7, 8 },
+ { 9, 10, 11 }
+ };
+
+ double[][] result = ArrayUtils.reshape(test, 3);
+ for(int i = 0;i < result.length;i++) {
+ for(int j = 0;j < result[i].length;j++) {
+ assertEquals(expected[i][j], result[i][j], 0.);
+ }
+ }
+
+ // Unhappy case
+ try {
+ ArrayUtils.reshape(test, 5);
+ }catch(Exception e) {
+ assertTrue(e instanceof IllegalArgumentException);
+ assertEquals("12 is not evenly divisible by 5", e.getMessage());
+ }
+
+ // Test zero-length case
+ double[][] result4 = ArrayUtils.reshape(new double[0][], 5);
assertNotNull(result4);
assertTrue(result4.length == 0);
+
+ // Test empty array arg
+ test = new double[][]{};
+ expected = new double[0][0];
+ result = ArrayUtils.reshape(test, 1);
+ assertTrue(Arrays.equals(expected, result));
}
@Test
@@ -214,6 +386,12 @@ public void testRotateRight() {
assertEquals(result[i][j], expected[i][j]);
}
}
+
+ // Test empty array arg
+ test = new int[][]{};
+ expected = new int[0][0];
+ result = ArrayUtils.rotateRight(test);
+ assertTrue(Arrays.equals(expected, result));
}
@Test
@@ -238,6 +416,143 @@ public void testRotateLeft() {
assertEquals(result[i][j], expected[i][j]);
}
}
+
+ // Test empty array arg
+ test = new int[][]{};
+ expected = new int[0][0];
+ result = ArrayUtils.rotateLeft(test);
+ assertTrue(Arrays.equals(expected, result));
+ }
+
+ @Test
+ public void testSubst() {
+ int[] original = new int[] { 30, 30, 30, 30, 30 };
+ int[] substitutes = new int[] { 0, 1, 2, 3, 4 };
+ int[] substInds = new int[] { 4, 1, 3 };
+
+ int[] expected = { 30, 1, 30, 3, 4 };
+
+ assertTrue(Arrays.equals(expected, ArrayUtils.subst(original, substitutes, substInds)));
+ }
+
+ @Test
+ public void testSubst_doubles() {
+ double[] original = new double[] { 30, 30, 30, 30, 30 };
+ double[] substitutes = new double[] { 0, 1, 2, 3, 4 };
+ int[] substInds = new int[] { 4, 1, 3 };
+
+ double[] expected = { 30, 1, 30, 3, 4 };
+
+ assertTrue(Arrays.equals(expected, ArrayUtils.subst(original, substitutes, substInds)));
+ }
+
+ @Test
+ public void testMin_int() {
+ int[][] protoA = { { 49, 2, 3, 4, 5, 6, 7, 8, 9, 10} };
+ int[][] resh = ArrayUtils.reshape(protoA, 5);
+ int[] a = ArrayUtils.min(resh, 0);
+ int[] b = ArrayUtils.min(resh, 1);
+ assertTrue(Arrays.equals(new int[] { 6, 2, 3, 4, 5 }, a));
+ assertTrue(Arrays.equals(new int[] { 2, 6 }, b));
+
+ try {
+ ArrayUtils.min(resh, 3);
+ fail();
+ }catch(Exception e) {
+ assertEquals(IllegalArgumentException.class, e.getClass());
+ assertEquals("axis must be either '0' or '1'", e.getMessage());
+ }
+ }
+
+ @Test
+ public void testMin_double() {
+ double[][] protoA = { { 49, 2, 3, 4, 5, 6, 7, 8, 9, 10} };
+ double[][] resh = ArrayUtils.reshape(protoA, 5);
+ double[] a = ArrayUtils.min(resh, 0);
+ double[] b = ArrayUtils.min(resh, 1);
+ assertTrue(Arrays.equals(new double[] { 6, 2, 3, 4, 5 }, a));
+ assertTrue(Arrays.equals(new double[] { 2, 6 }, b));
+
+ try {
+ ArrayUtils.min(resh, 3);
+ fail();
+ }catch(Exception e) {
+ assertEquals(IllegalArgumentException.class, e.getClass());
+ assertEquals("axis must be either '0' or '1'", e.getMessage());
+ }
+ }
+
+ /**
+ * This test has two purposes:
+ * 1. Test specific branch in KNNClassifier learn() method
+ * 2. Test its name sake: ArrayUtils.setRangeTo()
+ */
+ @Test
+ public void testSetRangeTo() {
+ double[] thresholdedInput = { 49, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
+ int cellsPerCol = 5;
+
+ // Make thresholdedInput into 2D array for calling ArrayUtils.min()
+ // thresholdedInput = { { 49, 2, 3, 4, 5 }, { 6, 7, 8, 9, 10 } };
+ double[][] burstingCols = ArrayUtils.reshape(new double[][] { thresholdedInput }, cellsPerCol);
+ // get minimum values in each row = { 2, 6 }
+ double[] bc = ArrayUtils.min(burstingCols, 1);
+ // get indexes of min = { 0, 1 }
+ bc = ArrayUtils.toDoubleArray(ArrayUtils.where(bc, ArrayUtils.GREATER_THAN_0));
+
+ // Use produced indexes to test setRangeTo in complicated manner,
+ // setting each value not in the calculated indexes to "0"
+ for(double col : bc) {
+ ArrayUtils.setRangeTo(
+ thresholdedInput,
+ (((int)col) * cellsPerCol) + 1,
+ (((int)col) * cellsPerCol) + cellsPerCol,
+ 0
+ );
+ }
+ // Every index set to zero except range start - 1 and stop
+ assertTrue(Arrays.equals(new double[] { 49, 0, 0, 0, 0, 6, 0, 0, 0, 0 }, thresholdedInput));
+ }
+
+ @Test
+ public void testMaxIndex() {
+ int max = ArrayUtils.maxIndex(new int[] { 2, 4, 5 });
+ assertEquals(39, max);
+ }
+
+ @Test
+ public void testToCoordinates() {
+ int[] coords = ArrayUtils.toCoordinates(19, new int[] { 2, 4, 5 }, false);
+ assertTrue(Arrays.equals(new int[] { 0, 3, 4 }, coords));
+
+ coords = ArrayUtils.toCoordinates(19, new int[] { 2, 4, 5 }, true);
+ assertTrue(Arrays.equals(new int[] { 4, 3, 0 }, coords));
+ }
+
+ @Test
+ public void testArgsort() {
+ int[] args = ArrayUtils.argsort(new int[] { 11, 2, 3, 7, 0 });
+ assertTrue(Arrays.equals(new int[] {4, 1, 2, 3, 0}, args));
+
+ args = ArrayUtils.argsort(new int[] { 11, 2, 3, 7, 0 }, -1, -1);
+ assertTrue(Arrays.equals(new int[] {4, 1, 2, 3, 0}, args));
+
+ args = ArrayUtils.argsort(new int[] { 11, 2, 3, 7, 0 }, 0, 3);
+ assertTrue(Arrays.equals(new int[] {4, 1, 2}, args));
+
+ // Test double version
+ int[] d_args = ArrayUtils.argsort(new double[] { 11, 2, 3, 7, 0 }, 0, 3);
+ assertTrue(Arrays.equals(new int[] {4, 1, 2}, d_args));
+
+ d_args = ArrayUtils.argsort(new double[] { 11, 2, 3, 7, 0 }, -1, 3);
+ assertTrue(Arrays.equals(new int[] {4, 1, 2, 3, 0}, d_args));
+ }
+
+ @Test
+ public void testShape() {
+ int[][] inputPattern = { { 2, 3, 4, 5 }, { 6, 7, 8, 9} };
+ int[] shape = ArrayUtils.shape(inputPattern);
+ assertTrue(Arrays.equals(new int[] { 2, 4 }, shape));
}
@Test
@@ -465,16 +780,18 @@ public void testRecursiveCoordinatesAssemble() throws InterruptedException {
int dimSize = 14, dimNumber = 5;
int[] dimCoordinates = new int[dimSize];
List dimensions = new ArrayList();
+
for (int i = 0; i < dimNumber; i++) {
for (int j = 0; j < dimSize; j++) {
dimCoordinates[j] = j;
}
dimensions.add(dimCoordinates);
}
- long startTime = System.currentTimeMillis();
+ long startTime = System.currentTimeMillis();
List neighborList = ArrayUtils.dimensionsToCoordinateList(dimensions);
long take = System.currentTimeMillis() - startTime;
+
System.out.print("Execute in:" + take + " milliseconds");
assertEquals(neighborList.size(), 537824);
diff --git a/src/test/java/org/numenta/nupic/util/BeanUtilTest.java b/src/test/java/org/numenta/nupic/util/BeanUtilTest.java
new file mode 100644
index 00000000..c10cd135
--- /dev/null
+++ b/src/test/java/org/numenta/nupic/util/BeanUtilTest.java
@@ -0,0 +1,79 @@
+package org.numenta.nupic.util;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+
+public class BeanUtilTest {
+
+ @Test
+ public void testGetSimpleProperty() {
+ BeanUtil beanUtil = BeanUtil.getInstance();
+
+ @SuppressWarnings("unused")
+ class Tester {
+ private int testInt;
+ public void setTestInt(int t) {
+ this.testInt = t;
+ }
+ }
+
+ try {
+ beanUtil.getSimpleProperty(new Tester(), "testInt");
+ }catch(Exception e) {
+ assertEquals("Property 'testInt' of bean " +
+ "org.numenta.nupic.util.BeanUtilTest$1Tester does not have getter method", e.getMessage());
+ }
+ }
+
+ @Test
+ public void testSetSimpleProperty() {
+ BeanUtil beanUtil = BeanUtil.getInstance();
+
+ @SuppressWarnings("unused")
+ class Tester {
+ private int testInt;
+ public void setTestInt(int t) {
+ this.testInt = t;
+ }
+ }
+
+ try {
+ beanUtil.setSimpleProperty(new Tester(), "testInt", 50);
+ }catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ class TesterNoWrite {
+ private int testInt;
+ @SuppressWarnings("unused")
+ public int getTestInt() {
+ return this.testInt;
+ }
+ }
+
+ try {
+ beanUtil.setSimpleProperty(new TesterNoWrite(), "testInt", "50");
+ }catch(Exception e) {
+ assertEquals("Property 'testInt' of bean "+
+ "org.numenta.nupic.util.BeanUtilTest$1TesterNoWrite does not have setter method", e.getMessage());
+ }
+ }
+
+ @Test
+ public void testGetPropertyInfoRequired() {
+ BeanUtil beanUtil = BeanUtil.getInstance();
+
+ class TesterNoWrite {
+ @SuppressWarnings("unused")
+ private int testInt;
+ }
+
+ try {
+ beanUtil.getPropertyInfoRequired(new TesterNoWrite(), "testInt");
+ }catch(Exception e) {
+ assertEquals("Bean org.numenta.nupic.util.BeanUtilTest$2TesterNoWrite does not have property 'testInt'", e.getMessage());
+ }
+ }
+}
diff --git a/src/test/java/org/numenta/nupic/util/NearestNeighborTest.java b/src/test/java/org/numenta/nupic/util/NearestNeighborTest.java
index 526b453c..a988e6e8 100644
--- a/src/test/java/org/numenta/nupic/util/NearestNeighborTest.java
+++ b/src/test/java/org/numenta/nupic/util/NearestNeighborTest.java
@@ -5,8 +5,35 @@
import org.junit.Test;
+import no.uib.cipr.matrix.Matrices;
+import no.uib.cipr.matrix.sparse.FlexCompRowMatrix;
+
public class NearestNeighborTest {
+
+ @Test
+ public void testAddRow() {
+// double[] sample = new double[] { 0, 1, 3, 7, 11 };
+// NearestNeighbor nn = new NearestNeighbor(40, true);
+// nn.addRow(sample);
+// double[] data = nn.getRow(0);
+// System.out.println("data = " + Arrays.toString(data));
+// //assertTrue(Arrays.equals(sample, data));
+// System.out.println("rows = " + nn.size());
+// nn.addRow(new double[] { 0, 1, 3, 7, 11 });
+// System.out.println("rows = " + nn.size());
+// nn.addRow(new double[] { 0, 1, 3, 7, 11 });
+// System.out.println("rows = " + nn.size());
+
+ FlexCompRowMatrix matrix = new FlexCompRowMatrix(1, 40);
+ System.out.println("matrix = " + Matrices.cardinality(matrix));
+ matrix.add(0, 2, 1);
+ System.out.println("matrix = " + Matrices.cardinality(matrix));
+ matrix.add(0, 4, 1);
+ System.out.println("matrix = " + Matrices.cardinality(matrix));
+ matrix.add(0, 3, 0);
+ System.out.println("matrix = " + Matrices.cardinality(matrix));
+ }
@Test
public void testVecLpDist() {
diff --git a/vocabulary.dictionary b/vocabulary.dictionary
index 50ba0428..fc6bd256 100644
--- a/vocabulary.dictionary
+++ b/vocabulary.dictionary
@@ -221,6 +221,8 @@ savvy
uninstall
popout
draggable
+luminance
+payload
exec
terminable
foreach
@@ -239,3 +241,4 @@ unserialized
deserializes
george
xorshift
+