diff --git a/src/main/java/evaluation/ClassifierResultsAnalysis.java b/src/main/java/evaluation/ClassifierResultsAnalysis.java index 88abdec52..b8ec29fb5 100644 --- a/src/main/java/evaluation/ClassifierResultsAnalysis.java +++ b/src/main/java/evaluation/ClassifierResultsAnalysis.java @@ -19,7 +19,7 @@ import ResultsProcessing.ResultColumn; import ResultsProcessing.ResultTable; import evaluation.MultipleClassifiersPairwiseTest; -import experiments.DataSets; +import experiments.data.DatasetLists; import experiments.Experiments; import static experiments.Experiments.setupAndRunMultipleExperimentsThreaded; import fileIO.OutFile; diff --git a/src/main/java/evaluation/MultipleClassifierEvaluation.java b/src/main/java/evaluation/MultipleClassifierEvaluation.java index 11ae57968..7eef1fc15 100644 --- a/src/main/java/evaluation/MultipleClassifierEvaluation.java +++ b/src/main/java/evaluation/MultipleClassifierEvaluation.java @@ -85,21 +85,40 @@ public class MultipleClassifierEvaluation implements DebugPrinting { */ private boolean testResultsOnly; + /** + * if true, will basically just transpose the results, and swap the dataset names for the classifiernames. + * ranks, sig tests, etc, will then compare the 'performance of datasets'. Intended use when comparing + * e.g. different preprocessing techniques which are saved as arffs and then a collection of classifiers + * are evaluated on each. + */ + private boolean evaluateDatasetsOverClassifiers; + /** * if true, will perform xmeans clustering on the classifierXdataset results, to find data-driven datasetgroupings, as well * as any extra dataset groupings you've defined. * * 1) for each dataset, each classifier's [stat] is replaced by its difference to the util_mean for that dataset - e.g if scores of 3 classifiers on a dataset are { 0.8, 0.7, 0.6 }, the new vals will be { 0.1, 0, -0.1 } - - 2) weka instances are formed from this data, with classifiers as atts, datasets as insts - - 3) xmeans clustering performed, as a (from a human input pov) quick way of determining number of clusters + those clusters - - 4) perform the normal grouping analysis based on those clusters + * e.g if scores of 3 classifiers on a dataset are { 0.8, 0.7, 0.6 }, the new vals will be { 0.1, 0, -0.1 } + * + * 2) weka instances are formed from this data, with classifiers as atts, datasets as insts + * + * 3) xmeans clustering performed, as a (from a human input pov) quick way of determining number of clusters + those clusters + * + * 4) perform the normal grouping analysis based on those clusters */ private boolean performPostHocDsetResultsClustering; + + /** + * if true, will fill in missing probability distributions with one-hot vectors + * for files read in that are missing them. intended for very old files, where you still + * want to calc auroc etc (metrics that need dists) for all the other classifiers + * that DO provide them, but also want to compare e.g accuracy with classifier that don't + * + * defaults to false + */ + private boolean ignoreMissingDistributions; + /** * if true, will close the matlab connected once analysis complete (if it was opened) * if false, will allow for multiple stats runs in a single execution, but the @@ -120,13 +139,24 @@ public MultipleClassifierEvaluation(String writePath, String experimentName, int this.cleanResults = true; this.testResultsOnly = true; this.performPostHocDsetResultsClustering = false; - + this.ignoreMissingDistributions = false; + this.datasets = new ArrayList<>(); this.datasetGroupings = new HashMap<>(); this.classifiersResults = new HashMap<>(); this.metrics = PerformanceMetric.getDefaultStatistics(); } + + /** + * if true, will basically just transpose the results, and swap the dataset names for the classifiernames. + * ranks, sig tests, etc, will then compare the 'performance of datasets'. Intended use when comparing + * e.g. different preprocessing techniques which are saved as arffs and then a collection of classifiers + * are evaluated on each. + */ + public void setEvaluateDatasetsOverClassifiers(boolean evaluateDatasetsOverClassifiers) { + this.evaluateDatasetsOverClassifiers = evaluateDatasetsOverClassifiers; + } /** * if true, will not attempt to load trainFold results, and will not produce stats for train or traintestdiffs results @@ -162,6 +192,11 @@ public MultipleClassifierEvaluation setCleanResults(boolean b) { return this; } + public MultipleClassifierEvaluation setIgnoreMissingDistributions(boolean ignoreMissingDistributions) { + this.ignoreMissingDistributions = ignoreMissingDistributions; + return this; + } + /** * if true, will perform xmeans clustering on the classifierXdataset results, to find data-driven datasetgroupings, as well * as any extra dataset groupings you've defined. @@ -438,6 +473,11 @@ public MultipleClassifierEvaluation readInClassifier(String classifierNameInStor if (testResultsOnly) results[0]=null; //crappy but w/e + //train files may be produced via TrainAccuracyEstimate, older code + //while test files likely by experiments, but still might be a very old file + //so having separate checks for each. + boolean ignoringDistsFirstTimeFlagTrain = true; + boolean ignoringDistsFirstTimeFlagTest = true; for (int d = 0; d < datasets.size(); d++) { for (int f = 0; f < numFolds; f++) { @@ -446,6 +486,14 @@ public MultipleClassifierEvaluation readInClassifier(String classifierNameInStor String trainFile = baseReadPath + classifierNameInStorage + "/Predictions/" + datasets.get(d) + "/trainFold" + f + ".csv"; try { results[0][d][f] = new ClassifierResults(trainFile); + if (ignoreMissingDistributions) { + boolean wasMissing = results[0][d][f].populateMissingDists(); + if (wasMissing && ignoringDistsFirstTimeFlagTrain) { + System.out.println("---------Probability distributions missing, but ignored: " + + classifierNameInStorage + " - " + datasets.get(d) + " - " + f + " - train"); + ignoringDistsFirstTimeFlagTrain = false; + } + } results[0][d][f].findAllStatsOnce(); if (cleanResults) results[0][d][f].cleanPredictionInfo(); @@ -458,6 +506,14 @@ public MultipleClassifierEvaluation readInClassifier(String classifierNameInStor String testFile = baseReadPath + classifierNameInStorage + "/Predictions/" + datasets.get(d) + "/testFold" + f + ".csv"; try { results[1][d][f] = new ClassifierResults(testFile); + if (ignoreMissingDistributions) { + boolean wasMissing = results[1][d][f].populateMissingDists(); + if (wasMissing && ignoringDistsFirstTimeFlagTest) { + System.out.println("---------Probability distributions missing, but ignored: " + + classifierNameInStorage + " - " + datasets.get(d) + " - " + f + " - test"); + ignoringDistsFirstTimeFlagTest = false; + } + } results[1][d][f].findAllStatsOnce(); if (cleanResults) results[1][d][f].cleanPredictionInfo(); @@ -479,7 +535,7 @@ public MultipleClassifierEvaluation readInClassifier(String classifierNameInStor /** * Read in the results from file from a common base path * - * @param classifierName Should exactly match the directory name of the results to use + * @param classifierNames Should exactly match the directory name of the results to use * @param baseReadPath Should be a directory containing subdirectories with the names in classifierNames * @return */ @@ -490,7 +546,7 @@ public MultipleClassifierEvaluation readInClassifiers(String[] classifierNames, /** * Read in the results from file from a common base path * - * @param classifierName Should exactly match the directory name of the results to use + * @param classifierNamesInOutput Should exactly match the directory name of the results to use * @param baseReadPath Should be a directory containing subdirectories with the names in classifierNames * @return */ @@ -521,7 +577,73 @@ public MultipleClassifierEvaluation clearClassifiers() { return this; } + private void transposeEverything() { + //need to put the classifier names into the datasets list + //repalce the entries of the classifier results map with entries for each dataset + //to go from this: Map classifiersResults; + // and a list of datasetnames + //to this: Map classifiersResults; + // and a list of classifiernames + + int numClassifiers = classifiersResults.size(); + int numDatasets = datasets.size(); + + //going to pull everything out into parallel arrays and work that way... + //innefficient, but far more likely to actually work + String[] origClassifierNames = new String[numClassifiers]; + ClassifierResults[][][][] origClassifierResults = new ClassifierResults[numClassifiers][][][]; + + int i = 0; + for (Map.Entry origClassiiferResultsEntry : classifiersResults.entrySet()) { + origClassifierNames[i] = origClassiiferResultsEntry.getKey(); + origClassifierResults[i] = origClassiiferResultsEntry.getValue(); + i++; + } + + ClassifierResults[][][][] newDataseResultsArr = new ClassifierResults[numDatasets][2][numClassifiers][numFolds]; + + + //do the transpose + for (int dset = 0; dset < numDatasets; dset++) { + + int splitStart = 0; + if (testResultsOnly) { + newDataseResultsArr[dset][0] = null; //no train results + splitStart = 1; //dont try and copythem over + } + + for (int split = splitStart; split < 2; split++) { + for (int classifier = 0; classifier < numClassifiers; classifier++) { + //leaving commented for reference, but can skip this loop, and copy across fold array refs instead of individual fold refs + //for (int fold = 0; fold < numFolds; fold++) + // newDataseResultsArr[dset][split][classifier][fold] = origClassifierResults[classifier][split][dset][fold]; + +// System.out.println("newDataseResultsArr[dset]" + newDataseResultsArr[dset].toString().substring(0, 30)); +// System.out.println("newDataseResultsArr[dset][split]" + newDataseResultsArr[dset][split].toString().substring(0, 30)); +// System.out.println("newDataseResultsArr[dset][split][classifier]" + newDataseResultsArr[dset][split][classifier].toString().substring(0, 30)); +// System.out.println("origClassifierResults[classifier]" + origClassifierResults[classifier].toString().substring(0, 30)); +// System.out.println("origClassifierResults[classifier][split]" + origClassifierResults[classifier][split].toString().substring(0, 30)); +// System.out.println("origClassifierResults[classifier][split][dset]" + origClassifierResults[classifier][split][dset].toString().substring(0, 30)); + + newDataseResultsArr[dset][split][classifier] = origClassifierResults[classifier][split][dset]; + } + } + } + + //and put back into a map + Map newDsetResultsMap = new HashMap<>(); + for (int dset = 0; dset < numDatasets; dset++) + newDsetResultsMap.put(datasets.get(dset), newDataseResultsArr[dset]); + + this.classifiersResults = newDsetResultsMap; + this.datasets = Arrays.asList(origClassifierNames); + } + public void runComparison() { + if (evaluateDatasetsOverClassifiers) { + transposeEverything(); + } + ArrayList results = new ArrayList<>(classifiersResults.size()); for (Map.Entry classifier : classifiersResults.entrySet()) results.add(new ClassifierResultsAnalysis.ClassifierEvaluation(classifier.getKey(), classifier.getValue()[1], classifier.getValue()[0])); @@ -591,25 +713,27 @@ public static void workingExampleCodeRunnableOnTSCServerMachine() throws FileNot //The majority of this time is eaten up by reading the results from the server. If you have results on your local PC, this runs in a second. //to rerun this from a clean slate to check validity, delete any existing 'Example1' folder in here: - String folderToWriteAnalysisTo = "Z:/Results_7_2_19/FinalisedUCIContinuousAnalysis/WORKINGEXAMPLE/"; - String nameOfAnalysisWhichWillBecomeFolderName = "Example4"; + String folderToWriteAnalysisTo = "Z:/Backups/Results_7_2_19/FinalisedUCIContinuousAnalysis/WORKINGEXAMPLE/"; + String nameOfAnalysisWhichWillBecomeFolderName = "ExampleTranspose"; int numberOfFoldsAKAResamplesOfEachDataset = 10; MultipleClassifierEvaluation mce = new MultipleClassifierEvaluation(folderToWriteAnalysisTo, nameOfAnalysisWhichWillBecomeFolderName, numberOfFoldsAKAResamplesOfEachDataset); //10 folds only to make faster... - String aFileWithListOfDsetsToUse = "Z:/Results_7_2_19/FinalisedUCIContinuousAnalysis/WORKINGEXAMPLE/dsets.txt"; + String aFileWithListOfDsetsToUse = "Z:/Backups/Results_7_2_19/FinalisedUCIContinuousAnalysis/WORKINGEXAMPLE/dsets.txt"; mce.setDatasets(aFileWithListOfDsetsToUse); - String aDirectoryContainingFilesThatDefineDatasetGroupings = "Z:/Results_7_2_19/FinalisedUCIContinuousAnalysis/WORKINGEXAMPLE/dsetGroupings/evenAndOddDsets/"; - String andAnother = "Z:/Results_7_2_19/FinalisedUCIContinuousAnalysis/WORKINGEXAMPLE/dsetGroupings/topAndBotHalves/"; + String aDirectoryContainingFilesThatDefineDatasetGroupings = "Z:/Backups/Results_7_2_19/FinalisedUCIContinuousAnalysis/WORKINGEXAMPLE/dsetGroupings/evenAndOddDsets/"; + String andAnother = "Z:/Backups/Results_7_2_19/FinalisedUCIContinuousAnalysis/WORKINGEXAMPLE/dsetGroupings/topAndBotHalves/"; mce.addDatasetGroupingFromDirectory(aDirectoryContainingFilesThatDefineDatasetGroupings); mce.addDatasetGroupingFromDirectory(andAnother); mce.setPerformPostHocDsetResultsClustering(true); //will create 3rd data-driven grouping automatically String[] classifiers = new String[] {"1NN", "C4.5", "NB"}; - String directoryWithResultsClassifierByClassifier = "Z:/Results_7_2_19/FinalisedUCIContinuous/"; + String directoryWithResultsClassifierByClassifier = "Z:/Backups/Results_7_2_19/FinalisedUCIContinuous/"; mce.readInClassifiers(classifiers, directoryWithResultsClassifierByClassifier); +// mce.setEvaluateDatasetsOverClassifiers(true); //cannot use with the dataset groupings, in this example. could define classifier groupings though ! + mce.runComparison(); //minimal version of above: diff --git a/src/main/java/evaluation/ROCDiagramMaker.java b/src/main/java/evaluation/ROCDiagramMaker.java index 71daf5428..279c5e2e9 100644 --- a/src/main/java/evaluation/ROCDiagramMaker.java +++ b/src/main/java/evaluation/ROCDiagramMaker.java @@ -161,7 +161,7 @@ public static void matlab_buildROCDiagrams(String outPath, String expName, Strin //function [f] = roccurves(filepathandname,classifierNames,classValues,posClassProbs,posClassLabel,visible) proxy.eval("roccurves(m_fname, m_cnames, m_cvals, m_posClassProbs, m_posClass, 'off')"); proxy.eval("clear"); - + proxy.discconnectMatlab(); } catch (Exception io) { System.out.println("matlab_buildROCDiagrams failed while building " +targetFile+ "\n" + io); } diff --git a/src/main/java/evaluation/evaluators/CrossValidationEvaluator.java b/src/main/java/evaluation/evaluators/CrossValidationEvaluator.java index 61653fb23..02a48a97b 100644 --- a/src/main/java/evaluation/evaluators/CrossValidationEvaluator.java +++ b/src/main/java/evaluation/evaluators/CrossValidationEvaluator.java @@ -17,6 +17,7 @@ import evaluation.storage.ClassifierResults; import experiments.ClassifierLists; import experiments.Experiments; +import experiments.data.DatasetLoading; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -38,7 +39,10 @@ * @author James Large (james.large@uea.ac.uk) */ public class CrossValidationEvaluator extends SamplingEvaluator { - + + //cursed code to allow tuning of regressors, should be removed if we ever delve deeper into regression stuff + public static boolean REGRESSION_HACK = false; + private String previousRelationName = "EmPtY"; private ArrayList folds; @@ -77,7 +81,7 @@ private void checkNumCVFolds(int numInstances) { @Override public ClassifierResults evaluate(Classifier classifier, Instances dataset) throws Exception { ClassifierResults res = crossValidateWithStats(classifier, dataset); - res.findAllStatsOnce(); + if (!REGRESSION_HACK) res.findAllStatsOnce(); return res; } @@ -163,8 +167,9 @@ public ClassifierResults[] crossValidateWithStats(Classifier[] classifiers, Inst allFolds_distsForInsts[classifierIndex][instIndex] = dist; allFolds_predTimes[classifierIndex][instIndex] = predTime; - - classifierFoldRes.addPrediction(classVal, dist, indexOfMax(dist), predTime, ""); + + if(REGRESSION_HACK) classifierFoldRes.addPrediction(classVal, dist, Double.isNaN(dist[0]) ? 0 : dist[(int) indexOfMax(dist)], predTime, ""); + else classifierFoldRes.addPrediction(classVal, dist, indexOfMax(dist), predTime, ""); } long foldBuildTime = System.nanoTime() - t1; @@ -173,7 +178,7 @@ public ClassifierResults[] crossValidateWithStats(Classifier[] classifiers, Inst classifierFoldRes.setBuildTime(foldBuildTime); classifierFoldRes.turnOnZeroTimingsErrors(); classifierFoldRes.finaliseResults(); - classifierFoldRes.findAllStatsOnce(); + if(!REGRESSION_HACK) classifierFoldRes.findAllStatsOnce(); resultsPerFold[classifierIndex][fold] = classifierFoldRes; if (cloneClassifiers && !maintainClassifiers) @@ -195,7 +200,11 @@ public ClassifierResults[] crossValidateWithStats(Classifier[] classifiers, Inst results[c].turnOffZeroTimingsErrors(); results[c].setBuildTime(totalBuildTimes[c]); for (int i = 0; i < dataset.numInstances(); i++) { - double tiesResolvedRandomlyPred = indexOfMax(allFolds_distsForInsts[c][i]); + double tiesResolvedRandomlyPred; + + if(REGRESSION_HACK) tiesResolvedRandomlyPred = Double.isNaN(allFolds_distsForInsts[c][i][0]) ? 0 : allFolds_distsForInsts[c][i][(int)indexOfMax(allFolds_distsForInsts[c][i])]; + else tiesResolvedRandomlyPred = indexOfMax(allFolds_distsForInsts[c][i]); + results[c].addPrediction(allFolds_distsForInsts[c][i], tiesResolvedRandomlyPred, allFolds_predTimes[c][i], ""); } results[c].turnOnZeroTimingsErrors(); @@ -262,7 +271,11 @@ public void buildFolds(Instances dataset) throws Exception { } for (int i = 0; i < instanceIds.size(); ++i) { int instIndex = instanceIds.get(i); - int instClassVal = (int)dataset.instance(instIndex).classValue(); + int instClassVal; + + if (REGRESSION_HACK) instClassVal = 0; + else instClassVal = (int)dataset.instance(instIndex).classValue(); + byClass.get(instClassVal).add(dataset.instance(instIndex)); byClassIndices.get(instClassVal).add(instIndex); } @@ -325,7 +338,7 @@ public static void classifierCloningTest() throws Exception { for (String classifierName : classifierNames) { System.out.println(classifierName); for (int resample = 0; resample < numResamples; resample++) { - Instances[] data = Experiments.sampleDataset(dataLoc, dset, resample); + Instances[] data = DatasetLoading.sampleDataset(dataLoc, dset, resample); Classifier classifier = ClassifierLists.setClassifierClassic(classifierName, resample); CrossValidationEvaluator cv = new CrossValidationEvaluator(resample, true, false, true, true); @@ -359,7 +372,7 @@ public static void buildFoldsTest() throws Exception { String dset = "lenses"; // String dset = "balloons"; // String dset = "acute-inflammation"; - Instances insts = ClassifierTools.loadData("C:/UCI Problems/"+dset+"/"+dset); + Instances insts = DatasetLoading.loadDataNullable("C:/UCI Problems/"+dset+"/"+dset); System.out.println("Full data:"); System.out.println("numinsts="+insts.numInstances()); diff --git a/src/main/java/evaluation/storage/ClassifierResults.java b/src/main/java/evaluation/storage/ClassifierResults.java index 50a687c55..cfc215da1 100644 --- a/src/main/java/evaluation/storage/ClassifierResults.java +++ b/src/main/java/evaluation/storage/ClassifierResults.java @@ -216,6 +216,30 @@ private enum FileType { */ private long memoryUsage = -1; + + /** + * todo initially intended as a temporary measure, but might stay here until a switch + * over to json etc is made + * + * See the experiments parameter trainEstimateMethod + * + * This defines the method and parameter of train estimate used, if one was done + */ + private String errorEstimateMethod = ""; + + /** + * todo initially intended as a temporary measure, but might stay here until a switch + * over to json etc is made + * + * This defines the total time taken to estimate the classifier's error. This currently + * does not mean anything for classifiers implementing the TrainAccuracyEstimate interface, + * and as such would need to set this themselves (but likely do not) + * + * For those classifiers that do not implement that, Experiments.findOrSetupTrainEstimate(...) will set this value + * as a wrapper around the entire evaluate call for whichever errorEstimateMethod is being used + */ + private long errorEstimateTime = -1; + //REMAINDER OF THE FILE - 1 prediction per line //raw performance data. currently just four parallel arrays private ArrayList trueClassValues; @@ -319,6 +343,14 @@ private enum FileType { public static final Function GETTER_Recall = (ClassifierResults cr) -> {return cr.recall;}; public static final Function GETTER_Sensitivity = (ClassifierResults cr) -> {return cr.sensitivity;}; public static final Function GETTER_Specificity = (ClassifierResults cr) -> {return cr.specificity;}; + + public static final Function NegMAA = (ClassifierResults cr) -> { + double MAA = 0; + for (int i = 0; i < cr.numInstances; i++){ + MAA += Math.abs(cr.trueClassValues.get(i) - cr.predClassValues.get(i)); + } + return -(MAA/cr.numInstances); + }; //todo revisit these when more willing to refactor stats pipeline to avoid assumption of doubles. //a double can accurately (except for the standard double precision problems) hold at most ~7 weeks worth of nano seconds @@ -768,7 +800,63 @@ public long getBenchmarkTime() { public void setBenchmarkTime(long benchmarkTime) { this.benchmarkTime = benchmarkTime; } + + /** + * todo initially intended as a temporary measure, but might stay here until a switch + * over to json etc is made + * + * See the experiments parameter trainEstimateMethod + * + * This defines the method and parameter of train estimate used, if one was done + */ + public String getErrorEstimateMethod() { + return errorEstimateMethod; + } + + /** + * todo initially intended as a temporary measure, but might stay here until a switch + * over to json etc is made + * + * See the experiments parameter trainEstimateMethod + * + * This defines the method and parameter of train estimate used, if one was done + */ + public void setErrorEstimateMethod(String errorEstimateMethod) { + this.errorEstimateMethod = errorEstimateMethod; + } + + /** + * todo initially intended as a temporary measure, but might stay here until a switch + * over to json etc is made + * + * This defines the total time taken to estimate the classifier's error. This currently + * does not mean anything for classifiers implementing the TrainAccuracyEstimate interface, + * and as such would need to set this themselves (but likely do not) + * + * For those classifiers that do not implement that, Experiments.findOrSetupTrainEstimate(...) will set this value + * as a wrapper around the entire evaluate call for whichever errorEstimateMethod is being used + */ + public long getErrorEstimateTime() { + return errorEstimateTime; + } + + /** + * todo initially intended as a temporary measure, but might stay here until a switch + * over to json etc is made + * + * This defines the total time taken to estimate the classifier's error. This currently + * does not mean anything for classifiers implementing the TrainAccuracyEstimate interface, + * and as such would need to set this themselves (but likely do not) + * + * For those classifiers that do not implement that, Experiments.findOrSetupTrainEstimate(...) will set this value + * as a wrapper around the entire evaluate call for whichever errorEstimateMethod is being used + */ + public void setErrorEstimateTime(long errorEstimateTime) { + this.errorEstimateTime = errorEstimateTime; + } + + /**************************** * @@ -939,12 +1027,58 @@ public void finaliseResults() throws Exception { finalised = true; } + public boolean hasProbabilityDistributionInformation() { + return predDistributions != null && + !predDistributions.isEmpty() && + predDistributions.size() == predClassValues.size() && + predDistributions.get(0) != null; + } - - - - - + /** + * If this results object does not contain probability distributions but does + * contain predicted classes, this will infer distributions as one-hot vectors + * from the predicted class values, i.e if class 0 is predicted in a three class + * problem, dist would be [ 1.0, 0.0, 0.0 ] + * + * If this object already contains distributions, this method will do nothing + * + * Returns whether or not values were missing but have been populated + * + * The number of classes is inferred from via length(unique(trueclassvalues)). As a + * reminder of why this method should not generally be used unless you have a specific + * reason, this may not be entirely correct, if e.g a particular cv fold of a particular + * subsample does not contain instances of every class. And also in general it assumes + * that the true class values supplied (as they would be if read from file) Consider yourself warned + * + * Intended to help with old results files that may not have distributions stored. + * Should not be used by default anywhere and everywhere to overcome laziness in + * newly generated results, thus in part it's implementation as a single method applied + * to an already populated set of results. + * + * Intended usage: + * res.loadFromFile(someOldFilePotentiallyMissingDists); + * if (ignoreMissingDists) { + * res.populateMissingDists(); + * } + * // res.findAllStats() etcetcetc + */ + public boolean populateMissingDists() { + if (this.hasProbabilityDistributionInformation()) + return false; + + if (this.numClasses <= 0) + //ayyyy java8 being used for something + numClasses = (int) trueClassValues.stream().distinct().count(); + + predDistributions = new ArrayList<>(predClassValues.size()); + for (double d : predClassValues) { + double[] dist = new double[numClasses]; + dist[(int)d] = 1; + predDistributions.add(dist); + } + + return true; + } /****************************** * @@ -1415,6 +1549,10 @@ private double parseThirdLine(String line) { memoryUsage = Long.parseLong(parts[4]); if (parts.length > 5) numClasses = Integer.parseInt(parts[5]); + if (parts.length > 6) + errorEstimateMethod = parts[6]; + if (parts.length > 7) + errorEstimateTime = Long.parseLong(parts[7]); return acc; } @@ -1424,7 +1562,10 @@ private String generateThirdLine() { + "," + testTime + "," + benchmarkTime + "," + memoryUsage - + "," + numClasses(); + + "," + numClasses() + + "," + errorEstimateMethod + + "," + errorEstimateTime; + return res; } @@ -1755,7 +1896,7 @@ protected long findMedianPredTime() { int mid = copy.size()/2; if (copy.size() % 2 == 0) - return (copy.get(mid) + copy.get(mid+1)) / 2; + return (copy.get(mid) + copy.get(mid-1)) / 2; else return copy.get(mid); } diff --git a/src/main/java/evaluation/storage/ClassifierResultsCollection.java b/src/main/java/evaluation/storage/ClassifierResultsCollection.java index 7e1ad71f6..230eabd68 100644 --- a/src/main/java/evaluation/storage/ClassifierResultsCollection.java +++ b/src/main/java/evaluation/storage/ClassifierResultsCollection.java @@ -14,111 +14,872 @@ */ package evaluation.storage; +import experiments.data.DatasetLists; +import java.io.File; import java.io.FileNotFoundException; +import java.util.Arrays; +import java.util.function.Function; import utilities.DebugPrinting; import utilities.ErrorReport; /** - * Essentially just a wrapper for all results of a single classifier over some set of datasets/folds, - * with train and test splits. Functionality to read all results in, in a batch + * Essentially a loader for many results over a given set of classifiers, datasets, folds, and splits + * + * This as been implemented as barebones arrays instead of large collections for speed (of execution and implementation) + * and memory efficiency, however depending on demand, use cases and time could be redone to be represented by e.g. maps underneath + * + * Usage: + * Construct the object + * Set classifiers, datasets, folds and splits to read at MINIMUM + * Set any optional settings on how to read and store the results + * Call LOAD() + * Either use the big old ClassifierResults[][][][] returned, or interact with the + * collection via the SLICE or RETRIEVE methods + * + * SLICE...() methods get subsets of the results already loaded into memory + * RETRIEVE...(...) methods get a particular stat or info from each results object + * retrieveAccuracies() wraps the accuracies getter as a shortcut/example + * + * todo integrate into multipleclassifierevaluation/classifierresultsanalysis + * todo replace old DebugPrinting stuff with loggers if/when going full enterprise + * todo proper missing results summaries, option to reduce to largest complete subset + * of split/classifier/dataset/folds + * todo maybe use this class for other things to, e.g. instead of loading results, just check + * existence, large-scale zipping/copying/moving of results files, etc * * @author James Large (james.large@uea.ac.uk) */ -public class ClassifierResultsCollection implements DebugPrinting { - public ClassifierResults[][] trainResults = null; - public ClassifierResults[][] testResults = null; - - public String[] datasets; - public String classifierName; - public int numFolds; - - public String baseReadPath; - public boolean testResultsOnly; - public boolean cleanResults; - public boolean allowMissingResults; +public class ClassifierResultsCollection implements DebugPrinting { + + /** + * ClassifierResults[split][classifier][dataset][fold] + * Split taken to be first dimension for easy retrieval of a single split if only one is loaded + * and you want results in the 3d form [classifier][dataset][fold] + */ + private ClassifierResults[][][][] allResults; + private int numDatasets; + private String[] datasetNamesInStorage; + private String[] datasetNamesInOutput; + + private int numClassifiers; + private String[] classifierNamesInStorage; + private String[] classifierNamesInOutput; + + private int numFolds; + private int[] folds; + + private int numSplits; + private String[] splits; + + private int numMissingResults; + /** + * A path to a directory containing all the classifierNamesInStorage directories + * with the results, in format {baseReadPath}/{classifiers}/Predictions/{datasets}/{split}Fold{folds}.csv + */ + private String baseReadPath; + + + + /** + * If true, will null the individual prediction info of each ClassifierResults object after stats are found for it * - * @param classifierName - * @param datasets - * @param numFolds - * @param baseReadPath - * @param testResultsOnly if true, won't bother looking for/loading trainFold files - * @param cleanResults if true, will delete the individual instance prediction info of each ClassifierResults object, - * saving majority of mem requirements - * @param allowMissingResults if false, missing fold files are reported and exception thrown, - * else if true, will report results to debugprinting but just leave missing results as null. - * MOST other functionality here will not perform null checks. set to true mainly if just using - * the batch file-reading functionality then doing your own stuff once loaded in + * Defaults to true + */ + private boolean cleanResults = true; + + /** + * If true, the returned lists are guaranteed to be of size numClassifiers*numDsets*numFolds*2, + * but entries may be null; + * + * Defaults to false + */ + private boolean allowMissingResults = false; + + /** + * If true, will fill in missing probability distributions with one-hot vectors + * for files read in that are missing them. intended for very old files, where you still + * want to calc auroc etc (metrics that need dists) for all the other classifiers + * that DO provide them, but also want to compare e.g accuracy with classifier that don't * - * @throws Exception + * Defaults to false + */ + private boolean ignoreMissingDistributions = false; + + public ClassifierResultsCollection() { + + } + + /** + * Creates complete copy of the other collection, but keeps the subResults instead of the + * other's results. Intended for use when slicing, and then manually edit the particular + * bit of meta info that was sliced */ - public ClassifierResultsCollection(String classifierName, String[] datasets, int numFolds, String baseReadPath, boolean testResultsOnly, boolean cleanResults, boolean allowMissingResults) throws Exception { - this.classifierName = classifierName; - this.datasets = datasets; - this.numFolds = numFolds; + private ClassifierResultsCollection(ClassifierResultsCollection other, ClassifierResults[][][][] subResults) { + this.allResults = subResults; + + this.numDatasets = other.numDatasets; + this.datasetNamesInStorage = other.datasetNamesInStorage; + this.datasetNamesInOutput = other.datasetNamesInOutput; + + this.numClassifiers = other.numClassifiers; + this.classifierNamesInStorage = other.classifierNamesInStorage; + this.classifierNamesInOutput = other.classifierNamesInOutput; + + this.numFolds = other.numFolds; + this.folds = other.folds; + this.numSplits = other.numSplits; + this.splits = other.splits; + + this.baseReadPath = other.baseReadPath; + + this.cleanResults = other.cleanResults; + this.allowMissingResults = other.allowMissingResults; + this.ignoreMissingDistributions = other.ignoreMissingDistributions; + } + + /** + * Sets the number folds/resamples to read in for each classifier/dataset. + * Will create a range of fold ids from 0(inclusive) to maxFolds(exclusive) + */ + public void setFolds(int maxFolds) { + setFolds(0, maxFolds); + } + + /** + * Sets the folds/resamples to read in for each classifier/dataset + * Will create a range of fold ids from minFolds(inclusive) to maxFolds(exclusive) + */ + public void setFolds(int minFolds, int maxFolds) { + setFolds(buildRange(minFolds, maxFolds)); + } + + /** + * Sets the specific folds/resamples to read in for each classifier/dataset, + * to be used if the folds wanted to not lie in a continuous range for example + */ + public void setFolds(int[] foldIds) { + this.folds = foldIds; + this.numFolds = foldIds.length; + } + + + /** + * Sets the classifiers to be read in. Names must correspond to directory names + * in which {classifiers}/Predictions/{datasets}/{split}Fold{folds}.csv directories/files exist + */ + public void setClassifiers(String[] classifierNames) { + setClassifiers(classifierNames, classifierNames); + } + + /** + * Sets the classifiers to be read in. classifierNamesInStorage must correspond to directory names + * in which {classifiers}/Predictions/{datasets}/{split}Fold{folds}.csv directories/files exist, + * while classifierNamesInOutputs can be 'cleaner' names intended for image or spreadsheet + * outputs. The two arrays should be parallel + */ + public void setClassifiers(String[] classifierNamesInStorage, String[] classifierNamesInOutput) { + if (classifierNamesInStorage.length != classifierNamesInOutput.length) + throw new IllegalArgumentException("Classifier names lengths not equal, " + + "classifierNamesInStorage.length="+classifierNamesInStorage.length + + " classifierNamesInOutput.length="+classifierNamesInOutput.length); + + this.numClassifiers = classifierNamesInOutput.length; + this.classifierNamesInStorage = classifierNamesInStorage; + this.classifierNamesInOutput = classifierNamesInOutput; + + } + + /** + * Sets the datasets to be read in for each classifier. Names must correspond to directory names + * in which {datasets}/{split}Fold{folds}.csv directories/files exist for each classifier, + */ + public void setDatasets(String[] datasetNames) { + setDatasets(datasetNames, datasetNames); + } + + /** + * Sets the datasets to be read in for each classifier. datasetNamesInStorage must correspond to directory names + * in which {datasets}/{split}Fold{folds}.csv directories/files exist for each classifier, + * while classifierNamesInOutputs can be 'cleaner' names intended for image or spreadsheet + * outputs. The two arrays should be parallel + */ + public void setDatasets(String[] datasetNamesInStorage, String[] datasetNamesInOutput) { + if (datasetNamesInStorage.length != datasetNamesInStorage.length) + throw new IllegalArgumentException("Classifier datasetNamesInOutput lengths not equal, " + + "datasetNamesInStorage.length="+datasetNamesInStorage.length + + " datasetNamesInOutput.length="+datasetNamesInOutput.length); + + this.numDatasets = datasetNamesInStorage.length; + this.datasetNamesInStorage = datasetNamesInStorage; + this.datasetNamesInOutput = datasetNamesInOutput; + } + + /** + * Set to look for train fold files only for each classifier/dataset/fold + */ + public void setSplit_Train() { + setSplit("train"); + } + + /** + * Sets to look for test fold files only for each classifier/dataset/fold + */ + public void setSplit_Test() { + setSplit("test"); + } + + /** + * Sets to look for train AND test fold files for each classifier/dataset/fold + */ + public void setSplit_TrainTest() { + setSplits(new String[] { "train", "test" }); + } + + /** + * Sets to look for a particular dataset split, test and test are currently + * the only options generated by e.g. Experiments.java. In the future, things + * like validation, cvFoldX, etc might be possible + */ + public void setSplit(String split) { + this.splits = new String[] { split }; + this.numSplits = 1; + } + + /** + * Sets to look for a particular dataset split, test and test are currently + * the only options generated by e.g. Experiments.java. In the future, things + * like validation, cvFoldX, etc might be possible + */ + public void setSplits(String[] splits) { + this.splits = splits; + this.numSplits = splits.length; + } + + /** + * Sets the path to a directory containing all the classifierNamesInStorage directories + * with the results, in format {baseReadPath}/{classifiers}/Predictions/{datasets}/{split}Fold{folds}.csv + */ + public void setBaseReadPath(String baseReadPath) { + baseReadPath.replace("\\", "/"); + if (baseReadPath.charAt(baseReadPath.length()-1) != '/') + baseReadPath += "/"; + this.baseReadPath = baseReadPath; - this.testResultsOnly = testResultsOnly; + } + + /** + * Sets the path to a directory containing all the classifierNamesInStorage directories + * with the results, in format {baseReadPath}/{classifiers}/Predictions/{datasets}/{split}Fold{folds}.csv + */ + public void setBaseReadPath(File baseReadPath) { + setBaseReadPath(baseReadPath.getAbsoluteFile()); + } + + /** + * if true, will null the individual prediction info of each ClassifierResults object after stats are found for it + * + * defaults to true + */ + public void setCleanResults(boolean cleanResults) { this.cleanResults = cleanResults; + } + + /** + * if true, the returned lists are guaranteed to be of size numClassifiers*numDsets*numFolds*2, + * but entries may be null; + * + * defaults to false + */ + public void setAllowMissingResults(boolean allowMissingResults) { this.allowMissingResults = allowMissingResults; + } - readInAllClassifierResults(); + /** + * if true, will fill in missing probability distributions with one-hot vectors + * for files read in that are missing them. intended for very old files, where you still + * want to calc auroc etc (metrics that need dists) for all the other classifiers + * that DO provide them, but also want to compare e.g accuracy with classifier that don't + * + * defaults to false + */ + public void setIgnoreMissingDistributions(boolean ignoreMissingDistributions) { + this.ignoreMissingDistributions = ignoreMissingDistributions; + } + + public int getNumDatasets() { + return numDatasets; } - private void readInAllClassifierResults() throws Exception { - if (baseReadPath.charAt(baseReadPath.length()-1) != '/') - baseReadPath += "/"; + public String[] getDatasetNamesInStorage() { + return datasetNamesInStorage; + } + + public String[] getDatasetNamesInOutput() { + return datasetNamesInOutput; + } + + public int getNumClassifiers() { + return numClassifiers; + } + + public String[] getClassifierNamesInStorage() { + return classifierNamesInStorage; + } + + public String[] getClassifierNamesInOutput() { + return classifierNamesInOutput; + } + + public int getNumFolds() { + return numFolds; + } + + public int[] getFolds() { + return folds; + } + + public int getNumSplits() { + return numSplits; + } + + public String[] getSplits() { + return splits; + } + + public String getBaseReadPath() { + return baseReadPath; + } + + public int getNumMissingResults() { + return numMissingResults; + } + + /** + * If true, will null the individual prediction info of each ClassifierResults object after stats are found for it + * + * Defaults to true + */ + public boolean getCleanResults() { + return cleanResults; + } + + /** + * If true, the returned lists are guaranteed to be of size numClassifiers*numDsets*numFolds*2, + * but entries may be null; + * + * Defaults to false + */ + public boolean getAllowMissingResults() { + return allowMissingResults; + } - (new ClassifierResults()).printlnDebug(classifierName + " reading"); - - int totalFnfs = 0; - ErrorReport er = new ErrorReport("FileNotFoundExceptions thrown (### total):\n"); - - testResults = new ClassifierResults[datasets.length][numFolds]; - if (testResultsOnly) - trainResults=null; //crappy but w/e - else - trainResults = new ClassifierResults[datasets.length][numFolds]; - - for (int d = 0; d < datasets.length; d++) { - for (int f = 0; f < numFolds; f++) { - - if (!testResultsOnly) { - String trainFile = baseReadPath + classifierName + "/Predictions/" + datasets[d] + "/trainFold" + f + ".csv"; - try { - trainResults[d][f] = new ClassifierResults(trainFile); - trainResults[d][f].findAllStatsOnce(); - if (cleanResults) - trainResults[d][f].cleanPredictionInfo(); - } catch (FileNotFoundException ex) { - er.log(trainFile + "\n"); - totalFnfs++; - trainResults[d][f] = null; + /** + * If true, will fill in missing probability distributions with one-hot vectors + * for files read in that are missing them. intended for very old files, where you still + * want to calc auroc etc (metrics that need dists) for all the other classifiers + * that DO provide them, but also want to compare e.g accuracy with classifier that don't + * + * Defaults to false + */ + public boolean getIgnoreMissingDistributions() { + return ignoreMissingDistributions; + } + + + public int getTotalNumResultsIgnoreMissing() { + return (numSplits * numClassifiers * numDatasets * numFolds); + } + + public int getTotalNumResults() { + return getTotalNumResultsIgnoreMissing() - numMissingResults; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("ClassifierResultsCollection: " + getTotalNumResults() + " total, " + numMissingResults + " missing"); + sb.append("\n\tSplits: ").append(Arrays.toString(splits)); + sb.append("\n\tClassifiers: ").append(Arrays.toString(classifierNamesInOutput)); + sb.append("\n\tDatasets: ").append(Arrays.toString(datasetNamesInOutput)); + sb.append("\n\tFolds: ").append(Arrays.toString(folds)); + + return sb.toString(); + } + + + private void confirmMinimalInfoGivenAndValid() throws Exception { + ErrorReport err = new ErrorReport("Required results collection info missing:\n"); + + if (baseReadPath == null) + err.log("\tBase path to read results from not set\n"); + else if (!(new File(baseReadPath).exists())) + err.log("\tBase path to read results from cannot be found: " + baseReadPath + "\n"); + + if (classifierNamesInStorage == null || classifierNamesInStorage.length == 0) + err.log("\tClassifiers to read not set\n"); + + if (datasetNamesInStorage == null || datasetNamesInStorage.length == 0) + err.log("\tDatasets to read not set\n"); + + if (folds == null || folds.length == 0) + err.log("\tFolds to read not set\n"); + + if (splits == null || splits.length == 0) + err.log("\tSplits to read not set\n"); + + err.throwIfErrors(); + } + + private static int[] buildRange(int minFolds, int maxFolds) { + int[] folds = new int[maxFolds - minFolds]; + + int c = minFolds; + for (int i = 0; i < maxFolds - minFolds; i++, c++) + folds[i] = c; + + return folds; + } + + private static int find(String[] arr, String k) { + for (int i = 0; i < arr.length; i++) + if (arr[i].equals(k)) + return i; + return -1; + } + + private static int find(int[] arr, int k) { + for (int i = 0; i < arr.length; i++) + if (arr[i] == (k)) + return i; + return -1; + } + + private static String buildFileName(String baseReadPath, String classifier, String dataset, String split, int fold) { + return baseReadPath + classifier + "/Predictions/" + dataset + "/" + split + "Fold" + fold + ".csv"; + } + + private static void throwSliceError(String str, String[] arr, String key) throws Exception { + throw new Exception("SLICE ERROR: Attempted to slice " + str + " by " + key + " but that does not exist in " + Arrays.toString(arr)); + } + + private static void throwSliceError(String str, int[] arr, int key) throws Exception { + throw new Exception("SLICE ERROR: Attempted to slice " + str + " by " + key + " but that does not exist in " + Arrays.toString(arr)); + } + + + /** + * Loads the splits, classifiers, datasets, and folds specified from disk into memory + * subject to the options set. + * + * @return the ClassifierResults[splits][classifiers][datasets][folds] loaded in, also accessible after the call with retrieveResults() + * @throws Exception on any number of missing file if allowMissingResults is false + */ + public ClassifierResults[][][][] load() throws Exception { + confirmMinimalInfoGivenAndValid(); + + ErrorReport masterError = new ErrorReport("Results files not found:\n"); + + allResults = new ClassifierResults[numSplits][numClassifiers][numDatasets][numFolds]; + numMissingResults = 0; + + //train files may be produced via TrainAccuracyEstimate, older code + //while test files likely by experiments, but still might be a very old file + //so having separate checks for each. + boolean ignoringDistsFirstTime = true; + + for (int c = 0; c < numClassifiers; c++) { + String classifierStorage = classifierNamesInStorage[c]; + String classifierOutput = classifierNamesInOutput[c]; + printlnDebug(classifierStorage + "(" + classifierOutput + ") reading"); + + int classifierFnfs = 0; + try { + ErrorReport perClassifierError = new ErrorReport("FileNotFoundExceptions thrown:\n"); + + for (int d = 0; d < numDatasets; d++) { + String datasetStorage = datasetNamesInStorage[d]; + String datasetOutput = datasetNamesInOutput[d]; + printlnDebug("\t" + datasetStorage + "(" + datasetOutput + ") reading"); + + for (int f = 0; f < numFolds; f++) { + int fold = folds[f]; + printlnDebug("\t\t" + fold + " reading"); + + for (int s = 0; s < numSplits; s++) { + String split = splits[s]; + printlnDebug("\t\t\t" + split + " reading"); + + String fileName = buildFileName(baseReadPath, classifierStorage, datasetStorage, split, fold); + try { + allResults[s][c][d][f] = new ClassifierResults(fileName); + if (ignoreMissingDistributions) { + boolean wasMissing = allResults[s][c][d][f].populateMissingDists(); + if (wasMissing && ignoringDistsFirstTime) { + System.out.println("---------Probability distributions missing, but ignored: " + + classifierStorage + " - " + datasetStorage + " - " + f + " - train"); + ignoringDistsFirstTime = false; + } + } + allResults[s][c][d][f].findAllStatsOnce(); + if (cleanResults) + allResults[s][c][d][f].cleanPredictionInfo(); + } catch (FileNotFoundException ex) { + if (allowMissingResults) { + allResults[s][c][d][f] = null; + System.out.println("Failed to load " + fileName); + } + else { + perClassifierError.log(fileName + "\n"); + } + + classifierFnfs++; + } + + printlnDebug("\t\t\t" + split + " successfully read in"); + } + printlnDebug("\t\t" + fold + " successfully read in"); } + printlnDebug("\t" + datasetStorage + "(" + datasetOutput + ") successfully read in"); } - String testFile = baseReadPath + classifierName + "/Predictions/" + datasets[d] + "/testFold" + f + ".csv"; - try { - testResults[d][f] = new ClassifierResults(testFile); - testResults[d][f].findAllStatsOnce(); - if (cleanResults) - testResults[d][f].cleanPredictionInfo(); - } catch (FileNotFoundException ex) { - er.log(testFile + "\n"); - totalFnfs++; - testResults[d][f] = null; + if (!perClassifierError.isEmpty()) + perClassifierError.log("Total num errors for " + classifierStorage + ": " + classifierFnfs); + perClassifierError.throwIfErrors(); + printlnDebug(classifierStorage + "(" + classifierOutput + ") successfully read in"); + } catch (Exception e) { + masterError.log("Classifier Errors: " + classifierNamesInStorage[c] + "\n" + e); + } + + numMissingResults += classifierFnfs; + } + + masterError.throwIfErrors(); + + return allResults; + } + + + + /** + * Returns a new ClassifierResultsCollection that is identical to this one (in terms of + * settings etc) aside from only the results of the provided split is returned for each classifier/dataset/fold + * + * @param split split to keep + * @return new ClassifierResultsCollection with results for all classifiers/datasets/folds, but only the split given + * @throws java.lang.Exception if the split searched for was not loaded into this collection + */ + public ClassifierResultsCollection sliceSplit(String split) throws Exception { + return sliceSplits(new String[] { split }); + } + + /** + * Returns a new ClassifierResultsCollection that is identical to this one (in terms of + * settings etc) aside from only the results of the provided splits are returned for each classifier/dataset/fold + * + * @param splitsToSlice splits to keep + * @return new ClassifierResultsCollection with results for all classifiers/datasets/folds, but only the splits given + * @throws java.lang.Exception if any of the splits were not loaded into this collection + */ + public ClassifierResultsCollection sliceSplits(String[] splitsToSlice) throws Exception { + //perform existence checks before allocating the mem + for (String split : splitsToSlice) + if (find(splits, split) == -1) + throwSliceError("splits", splits, split); + + //copy across the results, for splits it's nice and easy + ClassifierResults[][][][] subResults = new ClassifierResults[splitsToSlice.length][][][]; + for (int sts = 0; sts < splitsToSlice.length; sts++) { + int sidOrig = find(splits, splitsToSlice[sts]); //know it exists, did checks above + subResults[sts] = this.allResults[sidOrig]; + } + + //copy across the meta info to neew collection object + ClassifierResultsCollection newCol = new ClassifierResultsCollection(this, subResults); + newCol.setSplits(splitsToSlice); //checking the particular meta info sliced + return newCol; + } + + /** + * Returns a new ClassifierResultsCollection that is identical to this one (in terms of + * settings etc) aside from only the results of the provided classifier is returned for each split/dataset/fold + * + * If different names were provided for storage and output, the name in storage should be provided + * + * @param classifier to keep + * @return new ClassifierResultsCollection with results for all split/datasets/folds, but only the classifier given + * @throws java.lang.Exception if the classifier searched for was not loaded into this collection + */ + public ClassifierResultsCollection sliceClassifier(String classifier) throws Exception { + return sliceClassifiers(new String[] { classifier }); + } + + /** + * Returns a new ClassifierResultsCollection that is identical to this one (in terms of + * settings etc) aside from only the results of the provided classifiers are returned for each split/dataset/fold + * + * If different names were provided for storage and output, the name in storage should be provided + * + * @param classifiersToSlice classifiers to keep + * @return new ClassifierResultsCollection with results for all split/datasets/folds, but only the classifiers given + * @throws java.lang.Exception if the classifiers searched for were not loaded into this collection + */ + public ClassifierResultsCollection sliceClassifiers(String[] classifiersToSlice) throws Exception { + //perform existence checks before allocating the mem + for (String classifier : classifiersToSlice) + if (find(classifierNamesInStorage, classifier) == -1) + throwSliceError("classifiers", classifierNamesInStorage, classifier); + + //copy across the results + ClassifierResults[][][][] subResults = new ClassifierResults[numSplits][classifiersToSlice.length][][]; + for (int s = 0; s < numSplits; s++) { + for (int cts = 0; cts < classifiersToSlice.length; cts++) { + int cidOrig = find(classifierNamesInStorage, classifiersToSlice[cts]); //know it exists, did checks above + subResults[s][cts] = this.allResults[s][cidOrig]; + } + } + + //copy across the meta info to neew collection object + ClassifierResultsCollection newCol = new ClassifierResultsCollection(this, subResults); + newCol.setClassifiers(classifiersToSlice); //checking the particular meta info sliced + return newCol; + } + + /** + * Returns a new ClassifierResultsCollection that is identical to this one (in terms of + * settings etc) aside from only the results of the provided dataset is returned for each split/classifier/fold + * + * If different names were provided for storage and output, the name in storage should be provided + * + * @param dataset dataset to keep + * @return new ClassifierResultsCollection with results for all split/classifier/folds, but only the dataset given + * @throws java.lang.Exception if the dataset searched for was not loaded into this collection + */ + public ClassifierResultsCollection sliceDataset(String dataset) throws Exception { + return sliceDatasets(new String[] { dataset }); + } + + /** + * Returns a new ClassifierResultsCollection that is identical to this one (in terms of + * settings etc) aside from only the results of the provided datasets are returned for each split/classifier/fold + * + * If different names were provided for storage and output, the name in storage should be provided + * + * @param datasetsToSlice datasets to keep + * @return new ClassifierResultsCollection with results for all split/classifier/folds, but only the datasets given + * @throws java.lang.Exception if the datasets searched for were not loaded into this collection + */ + public ClassifierResultsCollection sliceDatasets(String[] datasetsToSlice) throws Exception { + //perform existence checks before allocating the mem + for (String dataset : datasetsToSlice) + if (find(datasetNamesInStorage, dataset) == -1) + throwSliceError("datasets", datasetNamesInStorage, dataset); + + //copy across the results + ClassifierResults[][][][] subResults = new ClassifierResults[numSplits][numClassifiers][datasetsToSlice.length][]; + for (int s = 0; s < numSplits; s++) { + for (int c = 0; c < numClassifiers; c++) { + for (int dts = 0; dts < datasetsToSlice.length; dts++) { + int didOrig = find(datasetNamesInStorage, datasetsToSlice[dts]); //know it exists, did checks above + subResults[s][c][dts] = this.allResults[s][c][didOrig]; } } } + + //copy across the meta info to neew collection object + ClassifierResultsCollection newCol = new ClassifierResultsCollection(this, subResults); + newCol.setDatasets(datasetsToSlice); //checking the particular meta info sliced + return newCol; + } + + /** + * Returns a new ClassifierResultsCollection that is identical to this one (in terms of + * settings etc) aside from only the results of the provided fold is returned for each split/classifier/dataset + * + * @param fold fold to keep + * @return new ClassifierResultsCollection with results for all split/classifier/dataset, but only the fold given + * @throws java.lang.Exception if the fold searched for was not loaded into this collection + */ + public ClassifierResultsCollection sliceFold(int fold) throws Exception { + return sliceFolds(new int[] { fold }); + } + + /** + * Returns a new ClassifierResultsCollection that is identical to this one (in terms of + * settings etc) aside from only the results of the folds in the provided range are returned for each split/classifier/dataset + * + * @param minFolds bottom of range, inclusive + * @param maxFolds top of range, exclusive + * @return new ClassifierResultsCollection with results for all split/classifier/datasets, but only the fold range given + * @throws java.lang.Exception if the fold range searched for was not loaded into this collection + */ + public ClassifierResultsCollection sliceFolds(int minFolds, int maxFolds) throws Exception { + return sliceFolds(buildRange(minFolds, maxFolds)); + } + + /** + * Returns a new ClassifierResultsCollection that is identical to this one (in terms of + * settings etc) aside from only the results of the folds provided are returned for each split/classifier/dataset + * + * @param foldsToSlice individual fold ids to keep + * @return new ClassifierResultsCollection with results for all split/classifier/datasets, but only the folds given + * @throws java.lang.Exception if any of the folds searched for was not loaded into this collection + */ + public ClassifierResultsCollection sliceFolds(int[] foldsToSlice) throws Exception { + //perform existence checks before allocating the mem + for (int fold : foldsToSlice) + if (find(folds, fold) == -1) + throwSliceError("folds", folds, fold); + + //copy across the results + ClassifierResults[][][][] subResults = new ClassifierResults[numSplits][numClassifiers][numDatasets][foldsToSlice.length]; + for (int s = 0; s < numSplits; s++) { + for (int c = 0; c < numClassifiers; c++) { + for (int d = 0; d < numDatasets; d++) { + for (int fts = 0; fts < foldsToSlice.length; fts++) { + int fidOrig = find(folds, foldsToSlice[fts]); //know it exists, did checks above + subResults[s][c][d][fts] = this.allResults[s][c][d][fidOrig]; + } + } + } + } + + //copy across the meta info to neew collection object + ClassifierResultsCollection newCol = new ClassifierResultsCollection(this, subResults); + newCol.setFolds(foldsToSlice); //checking the particular meta info sliced + return newCol; + } - er.setLog(er.getLog().replace("###", totalFnfs+"")); - if (allowMissingResults) - if (!er.isEmpty()) - printlnDebug(er.getLog()); - else - er.throwIfErrors(); + + - (new ClassifierResults()).printlnDebug(classifierName + " successfully read in"); + + + + + /** + * Returns the accuracy of each result object loaded in as a large array + double[split][classifier][dataset][fold] + + Wrapper retrieveDoubles for accuracies + + * @return Array [split][classifier][dataset][fold] of doubles with accuracy from each result + */ + public double[][][][] retrieveAccuracies() { + return retrieveDoubles(ClassifierResults.GETTER_Accuracy); + } + + /** + * Given a function that extracts information in the form of a double from a results object, + * returns a big array [split][classifier][dataset][fold] of that information from + * every result object loaded + * + * todo make generic + * + * @param getter function that takes a ClassifierResults object, and returns a Double + * @return Array [split][classifier][dataset][fold] of doubles with info from each result + */ + public double[][][][] retrieveDoubles(Function getter) { + double[][][][] info = new double[numSplits][numClassifiers][numDatasets][numFolds]; + for (int i = 0; i < numSplits; i++) + for (int j = 0; j < numClassifiers; j++) + for (int k = 0; k < numDatasets; k++) + for (int l = 0; l < numFolds; l++) + info[i][j][k][l] = getter.apply(allResults[i][j][k][l]); + return info; + } + + /** + * Given a function that extracts information in the form of a String from a results object, + * returns a big array [split][classifier][dataset][fold] of that information from + * every result object loaded + * + * todo make generic + * + * @param getter function that takes a ClassifierResults object, and returns a String + * @return Array [split][classifier][dataset][fold] of String with info from each result + */ + public String[][][][] retrieveStrings(Function getter) { + String[][][][] info = new String[numSplits][numClassifiers][numDatasets][numFolds]; + for (int i = 0; i < numSplits; i++) + for (int j = 0; j < numClassifiers; j++) + for (int k = 0; k < numDatasets; k++) + for (int l = 0; l < numFolds; l++) + info[i][j][k][l] = getter.apply(allResults[i][j][k][l]); + return info; + } + + /** + * Simply get all of the results in their raw/complete form. If allowMissingResults was set to true when loading results, + * one or more entries may be null, otherwise each should be complete (the loading would have failed + * otherwise). If cleanResults was set to true when loading results, each results object will contain the + * evaluation statistics and meta info for that split/classifier/dataset/fold, but not the individual + * predictions. + * + * @return the big ClassifierResults[split][classifier][dataset][fold] arrays in its raw form + */ + public ClassifierResults[][][][] retrieveResults() { + return allResults; + } + + + + + + + + + + public static void main(String[] args) throws Exception { + ClassifierResultsCollection col = new ClassifierResultsCollection(); + col.setBaseReadPath("C:/JamesLPHD/CAWPEExtension/Results/"); + col.setClassifiers(new String[] { "Logistic", "SVML", "MLP" }); + col.setDatasets(Arrays.copyOfRange(DatasetLists.ReducedUCI, 0, 5)); + col.setFolds(10); + col.setSplit_Test(); + + ClassifierResults[][][][] res = col.load(); + System.out.println(res.length); + System.out.println(res[0].length); + System.out.println(res[0][0].length); + System.out.println(res[0][0][0].length); + System.out.println(res[0][0][0][0].getAcc()); + System.out.println(""); + + double[][][][] accs = col.retrieveAccuracies(); + System.out.println(accs.length); + System.out.println(accs[0].length); + System.out.println(accs[0][0].length); + System.out.println(accs[0][0][0].length); + System.out.println(accs[0][0][0][0]); + System.out.println(""); + + ClassifierResultsCollection subcol = col.sliceClassifier("Logistic"); + ClassifierResults[][][][] subres = subcol.retrieveResults(); + System.out.println(subres.length); + System.out.println(subres[0].length); + System.out.println(subres[0][0].length); + System.out.println(subres[0][0][0].length); + System.out.println(subres[0][0][0][0].getAcc()); + System.out.println(""); + + subcol = col.sliceDataset(DatasetLists.ReducedUCI[0]); + subres = subcol.retrieveResults(); + System.out.println(subres.length); + System.out.println(subres[0].length); + System.out.println(subres[0][0].length); + System.out.println(subres[0][0][0].length); + System.out.println(subres[0][0][0][0].getAcc()); + System.out.println(""); + + subcol = col.sliceFolds(new int[] { 0, 3 }); + subres = subcol.retrieveResults(); + System.out.println(subres.length); + System.out.println(subres[0].length); + System.out.println(subres[0][0].length); + System.out.println(subres[0][0][0].length); + System.out.println(subres[0][0][0][0].getAcc()); + System.out.println(""); } } diff --git a/src/main/java/evaluation/storage/MultipleClassifierResultsCollection.java b/src/main/java/evaluation/storage/MultipleClassifierResultsCollection.java deleted file mode 100644 index 83406492c..000000000 --- a/src/main/java/evaluation/storage/MultipleClassifierResultsCollection.java +++ /dev/null @@ -1,161 +0,0 @@ -/* - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package evaluation.storage; - -import evaluation.storage.ClassifierResultsCollection; -import experiments.DataSets; -import evaluation.MultipleClassifierEvaluation; -import java.io.File; -import java.io.FilenameFilter; -import java.util.Arrays; -import java.util.function.Function; -import statistics.tests.TwoSampleTests; -import utilities.DebugPrinting; -import utilities.ErrorReport; -import utilities.StatisticalUtilities; -import vector_classifiers.ChooseDatasetFromFile; - -/** - * Essentially wrapper for reading in/editing a 4d list of classifier results, implemented as a list of ClassifierResultsCollection - * convertToBigOlArray() to get into the basic ClassifierResults[][][][] format - * - * @author James Large (james.large@uea.ac.uk) - */ -public class MultipleClassifierResultsCollection implements DebugPrinting { - public String[] datasets; - public String[] classifierNames; - public ClassifierResultsCollection[] allResults; - public int numFolds; - - public String baseReadPath; - public boolean testResultsOnly; - public boolean cleanResults; - public boolean allowMissingResults; - - /** - * - * @param classifierNames - * @param datasets - * @param numFolds - * @param baseReadPath - * @param testResultsOnly if true, won't bother looking for/loading trainFold files - * @param cleanResults if true, will delete the individual instance prediction info of each ClassifierResults object, - * saving majority of mem requirements - * @param allowMissingResults if false, missing fold files are reported and exception thrown, - * else if true, will report results to debugprinting but just leave missing results as null. - * MOST other functionality here will not perform null checks. set to true mainly if just using - * the batch file-reading functionality then doing your own stuff once loaded in - * - * @throws Exception - */ - public MultipleClassifierResultsCollection(String[] classifierNames, String[] datasets, int numFolds, String baseReadPath, boolean testResultsOnly, boolean cleanResults, boolean allowMissingResults) throws Exception { - this.classifierNames = classifierNames; - this.datasets = datasets; - this.numFolds = numFolds; - - this.baseReadPath = baseReadPath; - this.testResultsOnly = testResultsOnly; - this.cleanResults = cleanResults; - this.allowMissingResults = allowMissingResults; - - this.allResults = new ClassifierResultsCollection[classifierNames.length]; - - ErrorReport er = new ErrorReport("Results files not found:\n"); - for (int i = 0; i < classifierNames.length; i++) { - try { - allResults[i] = new ClassifierResultsCollection(classifierNames[i], datasets, numFolds, baseReadPath, testResultsOnly, cleanResults, allowMissingResults); - } catch (Exception e) { - er.log("Classifier Errors: " + classifierNames[i] + "\n" + e); - } - } - - if (allowMissingResults) { - if (!er.isEmpty()) - printlnDebug(er.getLog()); - } - else - er.throwIfErrors(); - } - - /** - * Train/test is outermost array to make it easier to ignore the null train results - * in the case that they aren't available, i.e - * - * ClassifierResults[][][][] allRes = mcrc.convertToBigOlArray(); - * ClassifierResults[][][] testOnly = allRes[1]; - * - * @return ClassifierResults[train/test][classifier][dataset][fold] - */ - public ClassifierResults[][][][] convertToBigOlArray() { - ClassifierResults[][][][] res = new ClassifierResults[2][allResults.length][][]; - - for (int i = 0; i < classifierNames.length; i++) { - res[0][i] = allResults[i].trainResults; - res[1][i] = allResults[i].testResults; - } - - return res; - } - - /** - * Classifiers will line up with the ordering of the classifierNames field - * - * @return ClassifierResults[train/test][classifier][fold] - */ - public ClassifierResults[][][] getAllResultsForDataset(String dataset) throws Exception { - ClassifierResults[][][] res = new ClassifierResults[2][allResults.length][]; - - int dsetIndex = Arrays.asList(datasets).indexOf(dataset); - if (dsetIndex == -1) - throw new Exception("(getAllResultsForDataset) Results not loaded for dataset: " + dataset); - - for (int i = 0; i < classifierNames.length; i++) { - res[0][i] = allResults[i].trainResults[dsetIndex]; - res[1][i] = allResults[i].testResults[dsetIndex]; - } - - return res; - } - - /** - * @return ClassifierResults[train/test][dataset][fold] - */ - public ClassifierResults[][][] getAllResultsForClassifier(String classifierName) throws Exception { - int clsIndex = Arrays.asList(classifierNames).indexOf(classifierName); - if (clsIndex == -1) - throw new Exception("(getAllResultsForDataset) Results not loaded for dataset: " + classifierName); - - ClassifierResults[][][] res = new ClassifierResults[][][] { allResults[clsIndex].trainResults, allResults[clsIndex].testResults }; - return res; - } - - - public double[][][][] getAccuracies() { - return getInfo((ClassifierResults cr) -> {return cr.getAcc();}); - } - - public double[][][][] getInfo(Function getter) { - ClassifierResults[][][][] allRes = convertToBigOlArray(); - double[][][][] info = new double[2][classifierNames.length][datasets.length][numFolds]; - for (int i = testResultsOnly?1:0; i < 2; i++) - for (int j = 0; j < classifierNames.length; j++) - for (int k = 0; k < datasets.length; k++) - for (int l = 0; l < numFolds; l++) - info[i][j][k][l] = getter.apply(allRes[i][j][k][l]); - return info; - } - - -} \ No newline at end of file diff --git a/src/main/java/evaluation/tuning/Tuner.java b/src/main/java/evaluation/tuning/Tuner.java index a130d4312..0533d6399 100644 --- a/src/main/java/evaluation/tuning/Tuner.java +++ b/src/main/java/evaluation/tuning/Tuner.java @@ -19,6 +19,7 @@ import evaluation.evaluators.Evaluator; import evaluation.tuning.searchers.GridSearcher; import evaluation.tuning.searchers.ParameterSearcher; +import experiments.data.DatasetLoading; import java.io.File; import java.util.ArrayList; import java.util.Iterator; @@ -26,23 +27,23 @@ import java.util.Random; import java.util.concurrent.TimeUnit; import java.util.function.Function; -import timeseriesweka.classifiers.CheckpointClassifier; -import timeseriesweka.classifiers.contract_interfaces.TrainTimeContractClassifier; import utilities.ClassifierTools; import utilities.FileHandlingTools; import utilities.InstanceTools; -import vector_classifiers.SaveEachParameter; +import weka_uea.classifiers.SaveEachParameter; import weka.classifiers.AbstractClassifier; import weka.classifiers.functions.SMO; import weka.classifiers.functions.supportVector.PolyKernel; import weka.core.Instances; +import timeseriesweka.classifiers.Checkpointable; +import timeseriesweka.classifiers.TrainTimeContractable; /** * * @author James Large (james.large@uea.ac.uk) */ public class Tuner - implements SaveEachParameter,CheckpointClassifier, TrainTimeContractClassifier { + implements SaveEachParameter,Checkpointable, TrainTimeContractable { //Main 3 design choices. private ParameterSearcher searcher = new GridSearcher(); @@ -438,7 +439,7 @@ public static void main(String[] args) throws Exception { tuner.setSeed(seed); String dataset = "hayes-roth"; - Instances all = ClassifierTools.loadData("Z:\\Data\\UCIDelgado\\"+dataset+"\\"+dataset+".arff"); + Instances all = DatasetLoading.loadDataNullable("Z:\\Data\\UCIDelgado\\"+dataset+"\\"+dataset+".arff"); Instances[] data = InstanceTools.resampleInstances(all, seed, 0.5); System.out.println(tuner.tune(svm, data[0], space)); diff --git a/src/main/java/examples/Ex01_Datahandling.java b/src/main/java/examples/Ex01_Datahandling.java new file mode 100644 index 000000000..ef2c1ad0b --- /dev/null +++ b/src/main/java/examples/Ex01_Datahandling.java @@ -0,0 +1,131 @@ +/* + * Copyright (C) 2019 xmw13bzu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package examples; + +import experiments.data.DatasetLoading; +import utilities.InstanceTools; +import weka.core.Instance; +import weka.core.Instances; + +/** + * Examples to show different ways of loading and basic handling of datasets + * + * @author James Large (james.large@uea.ac.uk) + */ +public class Ex01_Datahandling { + + public static void main(String[] args) throws Exception { + + // We'll be loading the ItalyPowerDemand dataset which is distributed with this codebase + String basePath = "src/main/java/experiments/data/tsc/"; + String dataset = "ItalyPowerDemand"; + int seed = 1; + + Instances train; + Instances test; + Instances[] trainTest; + + + + + ///////////// Loading method 1: loading individual files + // DatasetLoading.loadData...(...) + // For loading in a single arff without performing any kind of sampling. Class value is + // assumed to be the last attribute + + train = DatasetLoading.loadDataThrowable(basePath + dataset + "/" + dataset + "_TRAIN.arff"); + test = DatasetLoading.loadDataThrowable(basePath + dataset + "/" + dataset + "_TEST.arff"); + + // We could then resample these, while maintaining train/test distributions, using this + + trainTest = InstanceTools.resampleTrainAndTestInstances(train, test, 1); + train = trainTest[0]; + test = trainTest[1]; + + + + + + + ///////////// Loading method 2: sampling directly + // DatasetLoading.sampleDataset(...) + // Wraps the data loading and sampling performed above. Read in a dataset either + // from a single complete file (e.g. uci data) or a predefined split (e.g. ucr/tsc data) + // and resamples it according to the seed given. If the resampled fold can already + // be found in the read location ({dsetname}{foldid}_TRAIN and _TEST) then it will + // load those. See the sampleDataset(...) javadoc + + trainTest = DatasetLoading.sampleDataset(basePath, dataset, seed); + train = trainTest[0]; + test = trainTest[1]; + + + + + + + ///////////// Loading method 3: sampling the built in dataset + // DatasetLoading.sampleDataset(...) + // Because ItalyPowerDemand is distributed with the codebase, there's a wrapper + // to sample it directly for quick testing + + trainTest = DatasetLoading.sampleItalyPowerDemand(seed); + train = trainTest[0]; + test = trainTest[1]; + + + + + + + //////////// Data inspection and handling: + // We can look at the basic meta info + + System.out.println("train.relationName() = " + train.relationName()); + System.out.println("train.numInstances() = " + train.numInstances()); + System.out.println("train.numAttributes() = " + train.numAttributes()); + System.out.println("train.numClasses() = " + train.numClasses()); + + // And the individual instances + + for (Instance inst : train) + System.out.print(inst.classValue() + ", "); + System.out.println(""); + + + + + + + + + + // Often for speed we just want the data in a primitive array + // We can go to and from them using this sort of procedure + + // Lets keeps the class labels separate in this example + double[] classLabels = train.attributeToDoubleArray(train.classIndex()); // aka y_train + + boolean removeLastVal = true; + double[][] data = InstanceTools.fromWekaInstancesArray(train, removeLastVal); // aka X_train + + // We can then do whatever fast array-optimised stuff, and shove it back into an instances object + Instances reformedTrain = InstanceTools.toWekaInstances(data, classLabels); + } + +} diff --git a/src/main/java/examples/Ex02_Classifiers.java b/src/main/java/examples/Ex02_Classifiers.java new file mode 100644 index 000000000..3f00a829f --- /dev/null +++ b/src/main/java/examples/Ex02_Classifiers.java @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2019 xmw13bzu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package examples; + +import experiments.ClassifierLists; +import experiments.data.DatasetLoading; +import weka.classifiers.Classifier; +import weka.classifiers.trees.RandomForest; +import weka.core.Instance; +import weka.core.Instances; + +/** + * Examples to show different ways of constructing classifiers, and basic usage + * + * @author James Large (james.large@uea.ac.uk) + */ +public class Ex02_Classifiers { + + public static void main(String[] args) throws Exception { + + // We'll use this data throughout, see Ex01_Datahandling + int seed = 0; + Instances[] trainTest = DatasetLoading.sampleItalyPowerDemand(seed); + Instances train = trainTest[0]; + Instances test = trainTest[1]; + + // Here's the super basic workflow, this is pure weka: + RandomForest randf = new RandomForest(); + randf.setNumTrees(500); + randf.setSeed(seed); + + randf.buildClassifier(train); //aka fit, train + + double acc = .0; + for (Instance testInst : test) { + double pred = randf.classifyInstance(testInst); //aka predict + //double [] dist = randf.distributionForInstance(testInst); //aka predict_proba + + if (pred == testInst.classValue()) + acc++; + } + + acc /= test.numInstances(); + System.out.println("Random Forest accuracy on ItalyPowerDemand: " + acc); + + + + + + + + + + // All classifiers implement the Classifier interface. this guarantees + // the buildClassifier, classifyInstance and distributionForInstance methods, + // which is mainly what we want + // Most if not all classifiers should extend AbstractClassifier, which adds + // on a little extra common functionality + + + // There are also a number of classifiers listed in experiments.ClassifierLists + // This class is updated over time and may eventually turn in to factories etc + // on the backend, but for now what this is just a way to get a classifier + // with defined settings (parameters etc). We use this to record the exact + // parameters used in papers for example. We also use this to instantiate + // particular classifiers from a string argument when running on clusters + + Classifier classifier = ClassifierLists.setClassifierClassic("RandF", seed); + classifier.buildClassifier(train); + classifier.distributionForInstance(test.instance(0)); + + + + } + +} diff --git a/src/main/java/examples/Ex03_BasicEvaluation.java b/src/main/java/examples/Ex03_BasicEvaluation.java new file mode 100644 index 000000000..e99eca3ef --- /dev/null +++ b/src/main/java/examples/Ex03_BasicEvaluation.java @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2019 xmw13bzu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package examples; + +import evaluation.evaluators.CrossValidationEvaluator; +import evaluation.evaluators.Evaluator; +import evaluation.evaluators.SamplingEvaluator; +import evaluation.evaluators.SingleTestSetEvaluator; +import evaluation.storage.ClassifierResults; +import experiments.ClassifierLists; +import experiments.data.DatasetLoading; +import weka.classifiers.Classifier; +import weka.core.Instances; + +/** + * Examples to show different ways of evaluating classifiers + * + * @author James Large (james.large@uea.ac.uk) + */ +public class Ex03_BasicEvaluation { + + public static void main(String[] args) throws Exception { + + // We'll use this data throughout, see Ex01_Datahandling + int seed = 0; + Instances[] trainTest = DatasetLoading.sampleItalyPowerDemand(seed); + Instances train = trainTest[0]; + Instances test = trainTest[1]; + + // Let's use Random Forest throughout, see Ex02_Classifiers + Classifier classifier = ClassifierLists.setClassifierClassic("RandF", seed); + + + // We saw in Ex02_Classifiers that we can build on predefined train data, and test + // on predefined test data by looping over the instances + + // We can also evaluate using evaluation.Evaluators to get back an evaluation.storage.ClassifierResults + // object, which we'll discuss further below. This functionality is still being expanded, + // but the API is fairly set. + + // Here's the most basic evaluator, which replaces the looping over the test + // set in the previous example + + // We build the classifier ourselves on the train data + classifier.buildClassifier(train); + + // Setup the evaluator + boolean cloneData = true, setClassMissing = true; + Evaluator testSetEval = new SingleTestSetEvaluator(seed, cloneData, setClassMissing); + + // And, in this case, test on the single held-out test set. + ClassifierResults testResults = testSetEval.evaluate(classifier, test); + System.out.println("Random Forest accuracy on ItalyPowerDemand: " + testResults.getAcc()); + + + + + + + + + + // Other evaluators currently implemented are for cross validation and random stratified resamples + // Instead of building the classifier before-hand and passing that to the evaluator with + // the test data, these will repeatedly build the classifier on each fold or resample. + // Let's generate an estimate of our error from the train data through cross validation. + + boolean cloneClassifier = false, maintainFoldClassifiers = false; + SamplingEvaluator cvEval = new CrossValidationEvaluator(seed, cloneData, setClassMissing, cloneClassifier, maintainFoldClassifiers); + cvEval.setNumFolds(10); + + ClassifierResults trainResults = cvEval.evaluate(classifier, train); + System.out.println("Random Forest average accuracy estimate on ItalyPowerDemand: " + trainResults.getAcc()); + + for (int i = 0; i < 10; i++) + System.out.println("\tCVFold " + i + " accuracy: " + cvEval.getFoldResults()[i].getAcc()); + + + // We've used ClassifierResults so far to retrieve the accuracy of a set of predictions + // This is a general purpose predictions-storage class, which gets updated relatively + // often. It stores predictions, meta info and timings, can calculate eval metrics + // over them (accuracy, auroc, f1, etc.), and supports reading/writing to file. + + String mockFile = trainResults.writeFullResultsToString(); + System.out.println("\n\n" + mockFile); + } + +} diff --git a/src/main/java/examples/Ex04_ThoroughExperiments.java b/src/main/java/examples/Ex04_ThoroughExperiments.java new file mode 100644 index 000000000..33d79d5c7 --- /dev/null +++ b/src/main/java/examples/Ex04_ThoroughExperiments.java @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2019 xmw13bzu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package examples; + +import experiments.Experiments; +import experiments.Experiments.ExperimentalArguments; + +/** + * Examples showing how to use the Experiments class + * + * @author James Large (james.large@uea.ac.uk) + */ +public class Ex04_ThoroughExperiments { + + public static void main(String[] args) throws Exception { + // NOTE: If you want to run this file, you'll need to define an + // acceptable location to write some small files as examples: + String resultsPath = "C:/Temp/ueatscExamples/"; + + + + // We've seen how to load data, construct a classifer, and evaluate it in our own code + // Our main use case however is running distributed experiments of many classifiers + // over many datasets and resamples of each dataset in order to compare them. + + // The experiments class handles this main use case. It will take a classifier, dataset, + // resample id, and read/write locations at minimum, perform the evaluation, and write + // the results in the ClassifierResults format. + + ///////// Running a job from command line: + + String[] exampleMinimalArgs = { + "--dataPath=src/main/java/experiments/data/tsc/", // where to read data from + "--resultsPath="+resultsPath, // where to write results to + "--classifierName=RandF", // loaded from ClassifierLists.setClassifier, see Ex02_Classifiers + "--datasetName=ItalyPowerDemand", // loaded using sampleDataset, see Ex01_DataHandling + "--fold=1", // used as the seed. Because of our cluster, this is one-indexed on input, but immediately decremented to be zero-indexed + + // above are the required args, all others are optional + // for this run, we'll also forceEvaluation since, the experiment + // by default will abort if the result file already exists + "--force=true" + }; + + Experiments.main(exampleMinimalArgs); + // or actually from command line e.g.: + // java -jar ueatsc.jar -dp=src/main/java/experiments/data/tsc/ ... + + + + + + + ///////// Running a job from code: + + // When running locally from code, it may be easier to just set up the + // ExperimentalArguments object yourself + + ExperimentalArguments exp = new ExperimentalArguments(); + exp.dataReadLocation = "src/main/java/experiments/data/tsc/"; + exp.resultsWriteLocation = resultsPath; + exp.classifierName = "RandF"; + exp.datasetName = "ItalyPowerDemand"; + exp.foldId = 0; // note that since we're now setting the fold directly, we can resume zero-indexing + + // here, we wont force the evaluation. see the difference + Experiments.setupAndRunExperiment(exp); + + + + + + + + // Running many jobs from code: + + // Here, we'll set up to run the jobs threaded. You can also easily imagine + // just setting up a loop over each classifier, dataset, fold and calling setupAndRunExperiment above + + String[] classifiers = { "SVML", "ED", "C45" }; // with entries in ClassifierLists.setClassifier, see Ex02_Classifiers + String[] datasets = { "ItalyPowerDemand", "Beef" }; // both available at the dataReadLocation + int numFolds = 3; + + ExperimentalArguments expThreaded = new ExperimentalArguments(); + expThreaded.dataReadLocation = "src/main/java/experiments/data/tsc/"; // set the common data read location + expThreaded.resultsWriteLocation = resultsPath; // set the common results write location + // set any other common settings you want here, e.g. force + // classifier, dataset, fold shall be assigned internally across threads + + // will use one thread per core by default + Experiments.setupAndRunMultipleExperimentsThreaded(expThreaded, classifiers, datasets, 0, numFolds); + + } + +} diff --git a/src/main/java/examples/Ex05_ThoroughEvaluation.java b/src/main/java/examples/Ex05_ThoroughEvaluation.java new file mode 100644 index 000000000..c968f56eb --- /dev/null +++ b/src/main/java/examples/Ex05_ThoroughEvaluation.java @@ -0,0 +1,149 @@ +/* + * Copyright (C) 2019 xmw13bzu + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package examples; + +import evaluation.MultipleClassifierEvaluation; +import evaluation.storage.ClassifierResults; +import evaluation.storage.ClassifierResultsCollection; +import experiments.Experiments; +import java.util.Arrays; + +/** + * Examples on how to handle collections of results and use the MultipleClassifierEvaluation pipeline + * + * @author James Large (james.large@uea.ac.uk) + */ +public class Ex05_ThoroughEvaluation { + + public static void main(String[] args) throws Exception { + + // First of all, let's generate some results. You'll already have these if you ran Ex04_ThoroughExperiments, + // but we'll do it here if not. + + // NOTE: Again, if you want to run this file, you'll need to define an + // acceptable location to write some small files as examples: + String resultsPath = "C:/Temp/ueatscExamples/"; + String[] classifiers = { "SVML", "ED", "C45" }; + String[] datasets = { "ItalyPowerDemand", "Beef" }; + int numFolds = 3; + + Experiments.ExperimentalArguments expThreaded = new Experiments.ExperimentalArguments(); + expThreaded.dataReadLocation = "src/main/java/experiments/data/tsc/"; + expThreaded.resultsWriteLocation = resultsPath; + + Experiments.setupAndRunMultipleExperimentsThreaded(expThreaded, classifiers, datasets, 0, numFolds); + + + + + + + + + // We have a lot of various tools for handling results that have built up over time + // and are continuing to be developed. These results analysis tools in particular + // are firstly built with our own research output in mind, public usabiltiy second. + // The apis and functionality are updated over time. + + // Let's load back in all the results files we made: + + ClassifierResultsCollection crc = new ClassifierResultsCollection(); + crc.setClassifiers(classifiers); + crc.setDatasets(datasets); + crc.setFolds(numFolds); + crc.setSplit_Test(); + crc.setBaseReadPath(resultsPath); + + crc.load(); + System.out.println(crc); + + // We now basically have a brutally simple primitive array of results, organised as + // [split][classifier][dataset][fold] + // Functionality to interact with these is in its infancy, but there are two + // main operations: SLICE and RETRIEVE + + // slice...() will give you a sub-collection of all results of that particular + // split/classifier/dataset/fold + + ClassifierResultsCollection subCrc = crc.sliceDataset("ItalyPowerDemand"); + subCrc = subCrc.sliceClassifier("ED"); + System.out.println(subCrc); + + // retrieve...() will get some piece of information, e.g. an eval metric, + // from each ClassifierResults object in the collection and return it to + // you in a parallel array format + + double[][][][] subCrcAccs = subCrc.retrieveAccuracies(); + + // We know there are only the three folds of ItalyPowerDemand in here, let's get those + double[] accs = subCrcAccs[0][0][0]; + System.out.println("ED test accs on ItalyPowerDemand: " + Arrays.toString(accs)); + + + + + + + + + + + // The MultipleClassifierEvaluation (MCE) pipeline is a bit of a beast, and is itself + // only a front end-api for ClassifierResultsAnalysis, which is an absolute monster. + // These especialy will get updated over time when desire/need/motivation for + // software engineering is found + + // Broadly, give it results (we plan to update MCE to take results via a ClassifierResultsCollection, + // but at present you load results in a very similar way), give it evaluation metrics + // to compare on and settings for things like diagram creation etc., call runComparison() + // and let it split out a LOT of csv and xls files, and matlab figs + pdf files if diagram + // creation is turned on + + // See MCE.main and examples for more indepth stuff and different options + + // Tycally we'd write somewhere else, but for this example we'll write into the resultsPath again. + MultipleClassifierEvaluation mce = new MultipleClassifierEvaluation(resultsPath, "Ex05_ThoroughEvaluation", numFolds); + + mce.setTestResultsOnly(true); // We didnt also produce e.g. train data estimates + mce.setBuildMatlabDiagrams(false); // turning this off for example, see *1 below + mce.setCleanResults(true); // deletes the individual predictions once per-object evals are found (acc in this case) to save memory + mce.setDebugPrinting(true); + mce.setUseAccuracyOnly(); // using accuracy only to reduce number of files produced in this example + mce.setDatasets(datasets); + + //general rule of thumb: set/add/read the classifiers as the last thing before running + mce.readInClassifiers(classifiers, resultsPath); + + mce.runComparison(); + + // A whole bunch of files should now have been spat out. Have a poke around them. + // There's little documentation on exactly what each output represents, but most + // should be clear from their file names and locations + // Main file of interest really is the ...ResultsSheet.xls on the top level, which is + // a summary of the rest of it. + + // *1. I have MATLAB 2016b. There's nothing particularly bespoke about the things we're doing in + // these scripts so all newer versions of MATLAB should run them, and maybe some older. + // I don't have a list of versions it runs on, unfortunately. + // If you'd like to reimplement these diagrams in python, you're more than welcome to. + // Note that despite turning figure creation off, directories and supporting files + // for the creation of them were still made, to more easily be able to make the figures + // afterwards. + } + +} diff --git a/src/main/java/experiments/ClassifierLists.java b/src/main/java/experiments/ClassifierLists.java index 9a2538934..18c7db527 100644 --- a/src/main/java/experiments/ClassifierLists.java +++ b/src/main/java/experiments/ClassifierLists.java @@ -15,21 +15,36 @@ package experiments; +import experiments.Experiments.ExperimentalArguments; +import timeseriesweka.classifiers.dictionary_based.*; +import timeseriesweka.classifiers.hybrids.FlatCote; +import timeseriesweka.classifiers.hybrids.HiveCote; +import timeseriesweka.classifiers.shapelet_based.ShapeletTransformClassifier; +import timeseriesweka.classifiers.shapelet_based.FastShapelets; +import timeseriesweka.classifiers.shapelet_based.LearnShapelets; +import timeseriesweka.classifiers.interval_based.TSF; +import timeseriesweka.classifiers.interval_based.TSBF; +import timeseriesweka.classifiers.interval_based.LPS; +import timeseriesweka.classifiers.frequency_based.RISE; +import timeseriesweka.classifiers.distance_based.SlowDTW_1NN; +import timeseriesweka.classifiers.distance_based.NN_CID; +import timeseriesweka.classifiers.distance_based.ElasticEnsemble; +import timeseriesweka.classifiers.distance_based.DTD_C; +import timeseriesweka.classifiers.distance_based.DD_DTW; import multivariate_timeseriesweka.classifiers.MultivariateShapeletTransformClassifier; import multivariate_timeseriesweka.classifiers.NN_DTW_A; import multivariate_timeseriesweka.classifiers.NN_DTW_D; import multivariate_timeseriesweka.classifiers.NN_DTW_I; import multivariate_timeseriesweka.classifiers.NN_ED_I; -import timeseriesweka.classifiers.*; -import timeseriesweka.classifiers.FastWWS.FastDTWWrapper; -import timeseriesweka.classifiers.ensembles.elastic_ensemble.DTW1NN; -import timeseriesweka.classifiers.ensembles.elastic_ensemble.ED1NN; -import timeseriesweka.classifiers.ensembles.elastic_ensemble.MSM1NN; -import timeseriesweka.classifiers.ensembles.elastic_ensemble.WDTW1NN; -import timeseriesweka.classifiers.proximityForest.ProximityForestWeka; -import vector_classifiers.CAWPE; -import vector_classifiers.PLSNominalClassifier; -import vector_classifiers.TunedXGBoost; +import timeseriesweka.classifiers.distance_based.FastDTW; +import timeseriesweka.classifiers.distance_based.elastic_ensemble.DTW1NN; +import timeseriesweka.classifiers.distance_based.elastic_ensemble.ED1NN; +import timeseriesweka.classifiers.distance_based.elastic_ensemble.MSM1NN; +import timeseriesweka.classifiers.distance_based.elastic_ensemble.WDTW1NN; +import timeseriesweka.classifiers.distance_based.ProximityForestWrapper; +import weka_uea.classifiers.ensembles.CAWPE; +import weka_uea.classifiers.PLSNominalClassifier; +import weka_uea.classifiers.tuned.TunedXGBoost; import weka.classifiers.Classifier; import weka.classifiers.bayes.BayesNet; import weka.classifiers.bayes.NaiveBayes; @@ -38,11 +53,10 @@ import weka.classifiers.functions.SMO; import weka.classifiers.functions.supportVector.PolyKernel; import weka.classifiers.functions.supportVector.RBFKernel; -import weka.classifiers.lazy.kNN; +import weka_uea.classifiers.kNN; import weka.classifiers.meta.RotationForest; import weka.classifiers.trees.J48; import weka.classifiers.trees.RandomForest; -import weka.classifiers.trees.RandomTree; import weka.core.EuclideanDistance; /** @@ -50,39 +64,34 @@ * @author James Large (james.large@uea.ac.uk) */ public class ClassifierLists { - //leaving in for now, in case particular classifiers require it. - //eventually should be removed in favour of using the info in the experimental settings passed - //in the newer setClassifier - public static String horribleGlobalPath=""; - public static String nastyGlobalDatasetName=""; - public static String[] bakeOffClassifierList = { }; //todo, as an example of the kind of thing we could do with this class public static String[] CAWPE_fig1Ensembles = { }; //todo, as an example of the kind of thing we could do with this class /** - * This method is currently a placeholder that simply call setClassifierClassic(classifierName, fold), - * exactly where to take this newer method is still up for debate * - * This shall be the start of the newer setClassifier, which take the experimental + * setClassifier, which takes the experimental * arguments themselves and therefore the classifiers can take from them whatever they * need, e.g the dataset name, the fold id, separate checkpoint paths, etc. * * To take this idea further, to be honest each of the TSC-specific classifiers * could/should have a constructor and/or factory that builds the classifier - * from the experimental args. - */ - public static Classifier setClassifier(Experiments.ExperimentalArguments exp){ - return setClassifierClassic(exp.classifierName, exp.foldId); - } - - /** - * This is the method exactly as it was in old experiments.java. + * from the experimental args. + * + * previous usage was setClassifier(String classifier name, int fold). + * this can be reproduced with setClassifierClassic below. * - * @param classifier - * @param fold - * @return */ - public static Classifier setClassifierClassic(String classifier, int fold){ + public static Classifier setClassifier(Experiments.ExperimentalArguments exp){ + String classifier=exp.classifierName; + int fold=exp.foldId; + String resultsPath="", dataset=""; + boolean canLoadFromFile=true; + if(exp.resultsWriteLocation==null || exp.datasetName==null) + canLoadFromFile=false; + else{ + resultsPath=exp.resultsWriteLocation; + dataset=exp.datasetName; + } Classifier c=null; switch(classifier){ case "XGBoostMultiThreaded": @@ -98,7 +107,7 @@ public static Classifier setClassifierClassic(String classifier, int fold){ ((TunedXGBoost)c).setSmallParaSearchSpace_64paras(); break; case "ProximityForest": - c = new ProximityForestWeka(); + c = new ProximityForestWrapper(); break; case "ShapeletI": case "Shapelet_I": case "ShapeletD": case "Shapelet_D": case "Shapelet_Indep"://Multivariate version 1 c=new MultivariateShapeletTransformClassifier(); @@ -199,24 +208,48 @@ public static Classifier setClassifierClassic(String classifier, int fold){ ((CAWPE)c).setAdvancedCAWPESettings(); break; case "CAWPEFROMFILE": - String[] classifiers={"XGBoost","RandF","RotF"}; - c=new CAWPE(); - ((CAWPE)c).setRandSeed(fold); - ((CAWPE)c).setBuildIndividualsFromResultsFiles(true); - ((CAWPE)c).setResultsFileLocationParameters(horribleGlobalPath, nastyGlobalDatasetName, fold); - - ((CAWPE)c).setClassifiersNamesForFileRead(classifiers); - - + if(canLoadFromFile){ + String[] classifiers={"TSF","BOSS","RISE","ST"}; + c=new CAWPE(); + ((CAWPE)c).setRandSeed(fold); + ((CAWPE)c).setBuildIndividualsFromResultsFiles(true); + ((CAWPE)c).setResultsFileLocationParameters(resultsPath, dataset, fold); + ((CAWPE)c).setClassifiersNamesForFileRead(classifiers); + } + else + throw new UnsupportedOperationException("ERROR: Cannot load CAWPE from file since no results file path has been set. " + + "Call setClassifier with an ExperimentalArguments object exp with exp.resultsWriteLocation (contains component classifier results) and exp.datasetName set"); break; case "CAWPE_AS_COTE": - String[] cls={"TSF","ST","SLOWDTWCV","BOSS"}; - c=new CAWPE(); - ((CAWPE)c).setRandSeed(fold); - ((CAWPE)c).setBuildIndividualsFromResultsFiles(true); - ((CAWPE)c).setResultsFileLocationParameters(horribleGlobalPath, nastyGlobalDatasetName, fold); - ((CAWPE)c).setClassifiersNamesForFileRead(cls); + if(canLoadFromFile){ + String[] cls={"TSF","BOSS","RISE","ST","ElasticEnsemble"};//RotF for ST + c=new CAWPE(); + ((CAWPE)c).setFillMissingDistsWithOneHotVectors(true); + ((CAWPE)c).setRandSeed(fold); + ((CAWPE)c).setBuildIndividualsFromResultsFiles(true); + ((CAWPE)c).setResultsFileLocationParameters(resultsPath, dataset, fold); + ((CAWPE)c).setClassifiersNamesForFileRead(cls); + } + else + throw new UnsupportedOperationException("ERROR: currently only loading from file for CAWPE and no results file path has been set. " + + "Call setClassifier with an ExperimentalArguments object exp with exp.resultsWriteLocation (contains component classifier results) and exp.datasetName set"); + break; + case "CAWPE_AS_COTE_NO_EE": + if(canLoadFromFile){ + String[] cls2={"TSF","BOSS","RISE","ST"}; + c=new CAWPE(); + ((CAWPE)c).setFillMissingDistsWithOneHotVectors(true); + ((CAWPE)c).setRandSeed(fold); + ((CAWPE)c).setBuildIndividualsFromResultsFiles(true); + ((CAWPE)c).setResultsFileLocationParameters(resultsPath, dataset, fold); + ((CAWPE)c).setClassifiersNamesForFileRead(cls2); + } + else + throw new UnsupportedOperationException("ERROR: currently only loading from file for CAWPE and no results file path has been set. " + + "Call setClassifier with an ExperimentalArguments object exp with exp.resultsWriteLocation (contains component classifier results) and exp.datasetName set"); break; + + //ELASTIC CLASSIFIERS case "EE": case "ElasticEnsemble": c=new ElasticEnsemble(); @@ -236,7 +269,7 @@ public static Classifier setClassifierClassic(String classifier, int fold){ // ((FastDTW_1NN)c).optimiseWindow(true); // break; // case "FastDTWWrapper": - c= new FastDTWWrapper(); + c= new FastDTW(); break; case "DD_DTW": c=new DD_DTW(); @@ -264,14 +297,8 @@ public static Classifier setClassifierClassic(String classifier, int fold){ case "FastShapelets": case "FS": c=new FastShapelets(); break; - case "FullShapeletTransformClassifier": - c=new ShapeletTransformClassifier(); - ((ShapeletTransformClassifier)c).setSeed(fold); - break; case "ShapeletTransform": case "ST": case "ST_Ensemble": case "ShapeletTransformClassifier": c=new ShapeletTransformClassifier(); -//Default to 1 day max run: could do this better -// ((ShapeletTransformClassifier)c).setOneDayLimit(); ((ShapeletTransformClassifier)c).setSeed(fold); break; case "TSBF": @@ -282,16 +309,12 @@ public static Classifier setClassifierClassic(String classifier, int fold){ break; case "BOSS": case "BOSSEnsemble": c=new BOSS(); + ((BOSS) c).setSeed(fold); break; case "RBOSS": - c = new BOSS(); - ((BOSS) c).setEnsembleSize(250); - ((BOSS) c).setMaxEnsembleSize(50); - ((BOSS) c).setRandomCVAccEnsemble(true); - ((BOSS) c).useCAWPE(true); - ((BOSS) c).setSeed(fold); - ((BOSS) c).setReduceTrainInstances(true); - ((BOSS) c).setTrainProportion(0.7); + c = new RBOSS(); + ((RBOSS) c).setSeed(fold); + ((RBOSS) c).useRecommendedSettingsRBOSS(); break; case "WEASEL": c = new WEASEL(); @@ -326,11 +349,27 @@ public static Classifier setClassifierClassic(String classifier, int fold){ break; default: - System.out.println("UNKNOWN CLASSIFIER "+classifier); + System.out.println("UNKNOWN CLASSIFIER IN LocalClassifierLists"+classifier); System.exit(0); // throw new Exception("Unknown classifier "+classifier); } - return c; + return c; + } + /** + * This method redproduces the old usage exactly as it was in old experiments.java. + * If you try build any classifier that uses any experimental info other than + * exp.classifierName or exp.foldID, an exception will be thrown. + * In particular, any classifier that needs access to the results from others + * e.g. CAWPEFROMFILE, will throw an UnsupportedOperationException if you try use it like this. + * * @param classifier + * @param fold + * @return + */ + public static Classifier setClassifierClassic(String classifier, int fold){ + Experiments.ExperimentalArguments exp=new ExperimentalArguments(); + exp.classifierName=classifier; + exp.foldId=fold; + return setClassifier(exp); } public static void main(String[] args) throws Exception { diff --git a/src/main/java/experiments/CollateResults.java b/src/main/java/experiments/CollateResults.java index a8dbad787..901b59f5b 100644 --- a/src/main/java/experiments/CollateResults.java +++ b/src/main/java/experiments/CollateResults.java @@ -694,7 +694,7 @@ public static void multipleClassifierFullStats(String[] args) throws Exception{ m.setBuildMatlabDiagrams(true); m.setDebugPrinting(true); m.setUseAllStatistics(); - m.setDatasets(Arrays.copyOfRange(experiments.DataSets.UCIContinuousWithoutBigFour, 0, 117)); + m.setDatasets(Arrays.copyOfRange(experiments.data.DatasetLists.UCIContinuousWithoutBigFour, 0, 117)); m.readInClassifiers(new String[] {"MLP2","SVMRBF","SVMP","RandF","RotF","XGBoost"}, "E://Results/UCI/Tuned"); m.runComparison(); @@ -756,7 +756,7 @@ public static void singleClassifiervsReferenceResults(String[] args) throws Exce f=new File(fullPath+"/Predictions"); System.out.println(fullPath+"/Predictions"); File[] fileList=f.listFiles(); - System.out.println("File names in primary : has "+f.length()+" files "); + System.out.println("File names in "+fullPath+"/Predictions : has "+f.length()+" files "); for(File t:fileList){ System.out.println("\t"+t.getName()); @@ -1051,7 +1051,8 @@ public static void main(String[] args) throws Exception { if (args.length == 0) {//Local run bakeOffPath=bakeOffPathBeast; hiveCotePath=hiveCotePathBeast; - quickStats("E:/Results/UCR Debug/Python/PF",false,30,false,"Bakeoff,EE","HIVE-COTE,HIVE-COTE"); + quickStats("C:/Temp/CNN/CNN10hours",false,1,false); + //,"HIVE-COTE,ST","HIVE-COTE,HIVE-COTE"); // quickStats("Z:/Results/BOSS variants/Univariate/RBOSS250",false,30,false,"HIVE-COTE,BOSS"); //TunedTSF // quickStats("E:/Results/UCR Debug/Java/TunedTSF",false,30,"Bakeoff,ST","Bakeoff,TSF","Bakeoff,BOSS","Bakeoff,DTWCV"); @@ -1088,7 +1089,7 @@ public static void main(String[] args) throws Exception { System.out.println(s); singleClassifiervsReferenceResults(args); } - + System.exit(0); boolean singleClassifierStats=true; if(singleClassifierStats) diff --git a/src/main/java/experiments/Experiments.java b/src/main/java/experiments/Experiments.java index 06a8ba362..57564b409 100644 --- a/src/main/java/experiments/Experiments.java +++ b/src/main/java/experiments/Experiments.java @@ -14,6 +14,9 @@ */ package experiments; +import weka_uea.classifiers.SaveEachParameter; +import weka_uea.classifiers.tuned.TunedRandomForest; +import experiments.data.DatasetLists; import com.beust.jcommander.JCommander; import com.beust.jcommander.JCommander.Builder; import com.beust.jcommander.Parameter; @@ -27,18 +30,15 @@ import java.util.TreeMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import java.util.logging.ConsoleHandler; import java.util.logging.Level; import java.util.logging.Logger; import timeseriesweka.classifiers.ParameterSplittable; -import utilities.ClassifierTools; import evaluation.evaluators.CrossValidationEvaluator; -import utilities.InstanceTools; import timeseriesweka.classifiers.SaveParameterInfo; -import utilities.TrainAccuracyEstimate; import weka.classifiers.Classifier; import evaluation.storage.ClassifierResults; import evaluation.evaluators.SingleTestSetEvaluator; +import experiments.data.DatasetLoading; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.ObjectOutputStream; @@ -46,14 +46,10 @@ import java.util.Arrays; import java.util.Random; import java.util.concurrent.TimeUnit; -import java.util.logging.FileHandler; -import timeseriesweka.classifiers.ensembles.SaveableEnsemble; -import static utilities.GenericTools.indexOfMax; -import utilities.multivariate_tools.MultivariateInstanceTools; -import vector_classifiers.*; -import weka.core.Attribute; -import weka.core.Instance; +import utilities.InstanceTools; +import weka_uea.classifiers.ensembles.SaveableEnsemble; import weka.core.Instances; +import timeseriesweka.classifiers.TrainAccuracyEstimator; /** * The main experimental class of the timeseriesclassification codebase. The 'main' method to run is @@ -87,7 +83,7 @@ Para name (short/long) | Example If running locally, it may be easier to build the ExperimentalArguments object yourself and call setupAndRunExperiment(...) directly, instead of building the String[] args and calling main like a lot of legacy code does. * - * @author Tony Bagnall (anthony.bagnall@uea.ac.uk), James Large (james.large@uea.ac.uk) + * @author James Large (james.large@uea.ac.uk), Tony Bagnall (anthony.bagnall@uea.ac.uk) */ public class Experiments { @@ -96,9 +92,7 @@ public class Experiments { public static boolean debug = false; //A few 'should be final but leaving them not final just in case' public static settings - public static String LOXO_ATT_ID = "experimentsSplitAttribute"; public static int numCVFolds = 10; - public static double proportionKeptForTraining = 0.5; @Parameters(separators = "=") public static class ExperimentalArguments implements Runnable { @@ -186,9 +180,12 @@ public static class ExperimentalArguments implements Runnable { + "THIS IS A PLACEHOLDER PARAMETER. TO BE FULLY IMPLEMENTED") public boolean serialiseTrainedClassifier = false; + @Parameter(names={"--force"}, arity=1, description = "(boolean) If true, the evaluation will occur even if what would be the resulting file already exists. The old file will be overwritten with the new evaluation results.") + public boolean forceEvaluation = false; - - + @Parameter(names={"-tem --trainEstimateMethod"}, arity=1, description = "(String) Defines the method and parameters of the evaluation method used to estimate error on the train set, if --genTrainFiles == true. Current implementation is a hack to get the option in for" + + " experiment running in the short term. Give one of 'cv' and 'hov' for cross validation and hold-out validation set respectively, and a number of folds (e.g. cv_10) or train set proportion (e.g. hov_0.7) respectively. Default is a 10 fold cv, i.e. cv_10.") + public String trainEstimateMethod = "cv_10"; public ExperimentalArguments() { @@ -367,7 +364,7 @@ public static void main(String[] args) throws Exception { settings[4]="-dn="+"ItalyPowerDemand"; //Problem file settings[5]="-f=1";//Fold number (fold number 1 is stored as testFold0.csv, its a cluster thing) ExperimentalArguments expSettings = new ExperimentalArguments(settings); - setupAndRunMultipleExperimentsThreaded(expSettings, new String[]{settings[3]},DataSets.tscProblems78,0,folds); + setupAndRunMultipleExperimentsThreaded(expSettings, new String[]{settings[3]},DatasetLists.tscProblems78,0,folds); }else{//Local run without args, mainly for debugging String[] settings=new String[6]; //Location of data set @@ -375,7 +372,7 @@ public static void main(String[] args) throws Exception { settings[1]="-rp=E:/Results/";//Where to write results settings[2]="-gtf=false"; //Whether to generate train files or not settings[3]="-cn=TunedTSF"; //Classifier name -// for(String str:DataSets.tscProblems78){ +// for(String str:DatasetLists.tscProblems78){ settings[4]="-dn="+"ItalyPowerDemand"; //Problem file settings[5]="-f=2";//Fold number (fold number 1 is stored as testFold0.csv, its a cluster thing) System.out.println("Manually set args:"); @@ -409,14 +406,29 @@ public static void setupAndRunExperiment(ExperimentalArguments expSettings) thro // LOGGER.addHandler(new FileHandler()); if (debug) LOGGER.setLevel(Level.FINEST); - else + else LOGGER.setLevel(Level.INFO); + DatasetLoading.setDebug(false); //TODO when we got full enterprise and figure out how to properly do logging, clean this up LOGGER.log(Level.FINE, expSettings.toString()); //TODO still setting these for now, since maybe certain classfiiers still use these "global" //paths. would rather just use the expSettings to do it all though - DataSets.resultsPath = expSettings.resultsWriteLocation; - experiments.DataSets.problemPath = expSettings.dataReadLocation; + DatasetLists.resultsPath = expSettings.resultsWriteLocation; + experiments.data.DatasetLists.problemPath = expSettings.dataReadLocation; + + //2019_06_03: cases in the classifier can now change the classifier name to reflect + //paritcular parameters wanting to be represented as different classifiers + //e.g. a case ShapletsContracted might take a contract time (e.g. 1 day) from the args and set up the + //shapelet transform, but also change the classifier name stored in the experimentalargs to e.g. Shapelets_1day + //such that if the experimenter is looping over contract times, they need only create one case + //in the setclassifier switch and pass one classifier name, but loop over contract time directly + // + //so, the setClassifier has been moved to up here, previously only done after the check for + //whether we abort due to the results file already existing. the instantiation of a classifier + //shouldn't be too much work, so despite it looking a little ugly, the call is + //moved to here before the first proper usage of classifiername, such that it can + //be updated first if need be + Classifier classifier = ClassifierLists.setClassifier(expSettings); //Build/make the directory to write the train and/or testFold files to String fullWriteLocation = expSettings.resultsWriteLocation + expSettings.classifierName + "/Predictions/" + expSettings.datasetName + "/"; @@ -427,15 +439,12 @@ public static void setupAndRunExperiment(ExperimentalArguments expSettings) thro String targetFileName = fullWriteLocation + "testFold" + expSettings.foldId + ".csv"; //Check whether fold already exists, if so, dont do it, just quit - if (experiments.CollateResults.validateSingleFoldFile(targetFileName)) { + if (!expSettings.forceEvaluation && experiments.CollateResults.validateSingleFoldFile(targetFileName)) { LOGGER.log(Level.INFO, expSettings.toShortString() + " already exists at "+targetFileName+", exiting."); return; } - else { -// Classifier classifier = ClassifierLists.setClassifierClassic(expSettings.classifierName, expSettings.foldId); - Classifier classifier = ClassifierLists.setClassifier(expSettings); - - Instances[] data = sampleDataset(expSettings.dataReadLocation, expSettings.datasetName, expSettings.foldId); + else { + Instances[] data = DatasetLoading.sampleDataset(expSettings.dataReadLocation, expSettings.datasetName, expSettings.foldId); //If needed, build/make the directory to write the train and/or testFold files to if (expSettings.supportingFilePath == null || expSettings.supportingFilePath.equals("")) @@ -467,141 +476,6 @@ public static void setupAndRunExperiment(ExperimentalArguments expSettings) thro } } - /** - * This method will return a train/test split of the problem, resampled with the fold ID given. - * - * Currently, there are four ways to load datasets. These will be attempted from - * top to bottom, in an order designed to make the fewest assumptions - * possible about the nature of the split, in terms of potential differences in class distributions, - * train and test set sizes, etc. - * - * 1) if predefined splits are found at the specified location, in the form dataLocation/dsetName/dsetName0_TRAIN and TEST, - * these will be loaded and used as they are, OTHERWISE... - * 2) if a predefined fold0 split is given as in the UCR archive, and fold0 is being experimented on, the split exactly as it is defined will be used. - * For fold != 0, the fold0 split is combined and resampled, maintaining the original train and test distributions. OTHERWISE... - * 3) if only a single file is found containing all the data, this dataset is stratified randomly resampled with proportionKeptForTraining (default=0.5) - * instances reserved for the _TRAIN_ set. OTHERWISE... - * 4) if the dataset loaded has a first attribute whose name _contains_ the string "experimentsSplitAttribute".toLowerCase() - * then it will be assumed that we want to perform a leave out one X cross validation. Instances are sampled such that fold N is comprised of - * a test set with all instances with first-attribute equal to the Nth unique value in a sorted list of first-attributes. The train - * set would be all other instances. The first attribute would then be removed from all instances, so that they are not given - * to the classifier to potentially learn from. It is up to the user to ensure the the foldID requested is within the range of possible - * values 1 to numUniqueFirstAttValues OTHERWISE... - * 5) error - * - * TODO: potentially just move to development.experiments.DataSets once we clean up that - * - * @return new Instances[] { trainSet, testSet }; - */ - public static Instances[] sampleDataset(String parentFolder, String problem, int fold) throws Exception { - Instances[] data = new Instances[2]; - - File trainFile = new File(parentFolder + problem + "/" + problem + fold + "_TRAIN.arff"); - File testFile = new File(parentFolder + problem + "/" + problem + fold + "_TEST.arff"); - - boolean predefinedSplitsExist = (trainFile.exists() && testFile.exists()); - if (predefinedSplitsExist) { - // CASE 1) - data[0] = ClassifierTools.loadData(trainFile); - data[1] = ClassifierTools.loadData(testFile); - LOGGER.log(Level.FINE, problem + " loaded from predfined folds."); - } else { - trainFile = new File(parentFolder + problem + "/" + problem + "_TRAIN.arff"); - testFile = new File(parentFolder + problem + "/" + problem + "_TEST.arff"); - boolean predefinedFold0Exists = (trainFile.exists() && testFile.exists()); - if (predefinedFold0Exists) { - // CASE 2) - data[0] = ClassifierTools.loadData(trainFile); - data[1] = ClassifierTools.loadData(testFile); - if (data[0].checkForAttributeType(Attribute.RELATIONAL)) - data = MultivariateInstanceTools.resampleMultivariateTrainAndTestInstances(data[0], data[1], fold); - else - data = InstanceTools.resampleTrainAndTestInstances(data[0], data[1], fold); - - LOGGER.log(Level.FINE, problem + " resampled from predfined fold0 split."); - } - else { - // We only have a single file with all the data - Instances all = null; - try { - all = ClassifierTools.loadDataThrowable(parentFolder + problem + "/" + problem); - } catch (IOException io) { - String msg = "Could not find the dataset \"" + problem + "\" in any form at the path\n"+ - parentFolder+"\n" - +"The IOException: " + io; - LOGGER.log(Level.SEVERE, msg, io); - } - - - boolean needToDefineLeaveOutOneXFold = all.attribute(0).name().toLowerCase().contains(LOXO_ATT_ID.toLowerCase()); - if (needToDefineLeaveOutOneXFold) { - // CASE 4) - data = splitDatasetByFirstAttribute(all, fold); - LOGGER.log(Level.FINE, problem + " resampled from full data file."); - } - else { - // CASE 3) - if (all.checkForAttributeType(Attribute.RELATIONAL)) - data = MultivariateInstanceTools.resampleMultivariateInstances(all, fold, proportionKeptForTraining); - else - data = InstanceTools.resampleInstances(all, fold, proportionKeptForTraining); - LOGGER.log(Level.FINE, problem + " resampled from full data file."); - } - } - } - return data; - } - - /** - * If the dataset loaded has a first attribute whose name _contains_ the string "experimentsSplitAttribute".toLowerCase() - * then it will be assumed that we want to perform a leave out one X cross validation. Instances are sampled such that fold N is comprised of - * a test set with all instances with first-attribute equal to the Nth unique value in a sorted list of first-attributes. The train - * set would be all other instances. The first attribute would then be removed from all instances, so that they are not given - * to the classifier to potentially learn from. It is up to the user to ensure the the foldID requested is within the range of possible - * values 1 to numUniqueFirstAttValues - * - * TODO: potentially just move to experiments.DataSets once we clean up that - * - * @return new Instances[] { trainSet, testSet }; - */ - public static Instances[] splitDatasetByFirstAttribute(Instances all, int foldId) { - TreeMap splitVariables = new TreeMap<>(); - for (int i = 0; i < all.numInstances(); i++) { - //even if it's a string attribute, this val corresponds to the index into the array of possible strings for this att - double key= all.instance(i).value(0); - Integer val = splitVariables.get(key); - if (val == null) - val = 0; - splitVariables.put(key, ++val); - } - - //find the split attribute value to keep for testing this fold - double idToReserveForTestSet = -1; - int testSize = -1; - int c = 0; - for (Map.Entry splitVariable : splitVariables.entrySet()) { - if (c++ == foldId) { - idToReserveForTestSet = splitVariable.getKey(); - testSize = splitVariable.getValue(); - } - } - - //make the split - Instances train = new Instances(all, all.size() - testSize); - Instances test = new Instances(all, testSize); - for (int i = 0; i < all.numInstances(); i++) - if (all.instance(i).value(0) == idToReserveForTestSet) - test.add(all.instance(i)); - train.addAll(all); - - //delete the split attribute - train.deleteAttributeAt(0); - test.deleteAttributeAt(0); - - return new Instances[] { train, test }; - } - - /** * Perform an actual experiment, using the loaded classifier and resampled dataset given, writing to the specified results location. * @@ -657,7 +531,7 @@ public static double runExperiment(ExperimentalArguments expSettings, Instances //Write train results if (expSettings.generateErrorEstimateOnTrainSet) { - if (!(classifier instanceof TrainAccuracyEstimate)) { + if (!(classifier instanceof TrainAccuracyEstimator)) { assert(trainResults.getTimeUnit().equals(TimeUnit.NANOSECONDS)); //should have been set as nanos in the crossvalidation trainResults.turnOffZeroTimingsErrors(); trainResults.setBuildTime(buildTime); @@ -672,10 +546,10 @@ public static double runExperiment(ExperimentalArguments expSettings, Instances //And now evaluate on the test set, if this wasn't a single parameter fold if (expSettings.singleParameterID == null) { //This is checked before the buildClassifier also, but - //a) another process may have been doign the same experiment + //a) another process may have been doing the same experiment //b) we have a special case for the file builder that copies the results over in buildClassifier (apparently?) //no reason not to check again - if (!CollateResults.validateSingleFoldFile(resultsPath + testFoldFilename)) { + if (expSettings.forceEvaluation || !CollateResults.validateSingleFoldFile(resultsPath + testFoldFilename)) { long testBenchmark = findBenchmarkTime(expSettings); testResults = evaluateClassifier(expSettings, classifier, testSet); @@ -684,7 +558,7 @@ public static double runExperiment(ExperimentalArguments expSettings, Instances testResults.turnOffZeroTimingsErrors(); testResults.setBenchmarkTime(testBenchmark); - if (classifier instanceof TrainAccuracyEstimate) { + if (classifier instanceof TrainAccuracyEstimator) { //if this classifier is recording it's own results, use the build time it found //this is because e.g ensembles that read from file (e.g cawpe) will calculate their build time //as the sum of their modules' buildtime plus the time to define the ensemble prediction forming @@ -692,7 +566,7 @@ public static double runExperiment(ExperimentalArguments expSettings, Instances //the i/o time for reading in the modules' results, + the ensemble scheme time //therefore the general assumption here is that the classifier knows its own buildtime //better than we do here - testResults.setBuildTime(((TrainAccuracyEstimate)classifier).getTrainResults().getBuildTime()); + testResults.setBuildTime(((TrainAccuracyEstimator)classifier).getTrainResults().getBuildTime()); } else { //else use the buildtime calculated here in experiments @@ -750,9 +624,9 @@ private static String setupParameterSavingInfo(ExperimentalArguments expSettings private static ClassifierResults findOrSetUpTrainEstimate(ExperimentalArguments exp, Classifier classifier, Instances train, int fold, String fullTrainWritingPath) throws Exception { ClassifierResults trainResults = null; - if (classifier instanceof TrainAccuracyEstimate) { + if (classifier instanceof TrainAccuracyEstimator) { //Classifier will perform cv internally while building, probably as part of a parameter search - ((TrainAccuracyEstimate) classifier).writeCVTrainToFile(fullTrainWritingPath); + ((TrainAccuracyEstimator) classifier).writeTrainEstimatesToFile(fullTrainWritingPath); File f = new File(fullTrainWritingPath); if (f.exists()) f.setWritable(true, false); @@ -760,12 +634,55 @@ private static ClassifierResults findOrSetUpTrainEstimate(ExperimentalArguments else { long trainBenchmark = findBenchmarkTime(exp); - CrossValidationEvaluator cv = new CrossValidationEvaluator(); - cv.setSeed(fold); - int numFolds = Math.min(train.numInstances(), numCVFolds); - cv.setNumFolds(numFolds); - trainResults = cv.crossValidateWithStats(classifier, train); - trainResults.setBenchmarkTime(trainBenchmark); + //todo clean up this hack. default is cv_10, as with all old trainFold results pre 2019/07/19 + String[] parts = exp.trainEstimateMethod.split("_"); + String method = parts[0]; + + String para = null; + if (parts.length > 1) + para = parts[1]; + + long estimateTimeStart = System.nanoTime(); + + switch (method) { + case "cv": + case "CV": + case "CrossValidationEvaluator": + int numFolds = Experiments.numCVFolds; + if (para != null) + numFolds = Integer.parseInt(para); + numFolds = Math.min(train.numInstances(), numFolds); + + CrossValidationEvaluator cv = new CrossValidationEvaluator(); + cv.setSeed(fold); + cv.setNumFolds(numFolds); + trainResults = cv.crossValidateWithStats(classifier, train); + break; + + case "hov": + case "HOV": + case "SingleTestSetEvaluator": + double trainProp = DatasetLoading.getProportionKeptForTraining(); + if (para != null) + trainProp = Double.parseDouble(para); + + Instances[] trainVal = InstanceTools.resampleInstances(train, exp.foldId, trainProp); + classifier.buildClassifier(trainVal[0]); + + SingleTestSetEvaluator hov = new SingleTestSetEvaluator(); + hov.setSeed(fold); + trainResults = hov.evaluate(classifier, trainVal[1]); + break; + + default: + throw new Exception("Unrecognised method to estimate error on the train given: " + exp.trainEstimateMethod); + } + + long estimateTime = System.nanoTime() - estimateTimeStart; + + trainResults.setErrorEstimateMethod(exp.trainEstimateMethod); + trainResults.setErrorEstimateTime(estimateTime); + trainResults.setBenchmarkTime(trainBenchmark); } return trainResults; diff --git a/src/main/java/experiments/SimulationExperiments.java b/src/main/java/experiments/SimulationExperiments.java index b5efaf8a5..39e52235d 100644 --- a/src/main/java/experiments/SimulationExperiments.java +++ b/src/main/java/experiments/SimulationExperiments.java @@ -14,21 +14,21 @@ */ package experiments; -import experiments.DataSets; -import timeseriesweka.classifiers.FlatCote; -import timeseriesweka.classifiers.LearnShapelets; -import timeseriesweka.classifiers.FastShapelets; -import timeseriesweka.classifiers.TSBF; -import timeseriesweka.classifiers.TSF; -import timeseriesweka.classifiers.DTD_C; -import timeseriesweka.classifiers.BOSS; -import timeseriesweka.classifiers.RISE; -import timeseriesweka.classifiers.ShapeletTransformClassifier; -import timeseriesweka.classifiers.LPS; -import timeseriesweka.classifiers.ElasticEnsemble; -import timeseriesweka.classifiers.DD_DTW; -import timeseriesweka.classifiers.BagOfPatterns; -import timeseriesweka.classifiers.HiveCote; +import experiments.data.DatasetLists; +import timeseriesweka.classifiers.hybrids.FlatCote; +import timeseriesweka.classifiers.shapelet_based.LearnShapelets; +import timeseriesweka.classifiers.shapelet_based.FastShapelets; +import timeseriesweka.classifiers.interval_based.TSBF; +import timeseriesweka.classifiers.interval_based.TSF; +import timeseriesweka.classifiers.distance_based.DTD_C; +import timeseriesweka.classifiers.dictionary_based.BOSS; +import timeseriesweka.classifiers.frequency_based.RISE; +import timeseriesweka.classifiers.shapelet_based.ShapeletTransformClassifier; +import timeseriesweka.classifiers.interval_based.LPS; +import timeseriesweka.classifiers.distance_based.ElasticEnsemble; +import timeseriesweka.classifiers.distance_based.DD_DTW; +import timeseriesweka.classifiers.dictionary_based.BagOfPatterns; +import timeseriesweka.classifiers.hybrids.HiveCote; import fileIO.InFile; import fileIO.OutFile; import java.io.File; @@ -48,15 +48,15 @@ import utilities.InstanceTools; import timeseriesweka.classifiers.SaveParameterInfo; import weka.classifiers.Classifier; -import timeseriesweka.classifiers.FastDTW_1NN; +import timeseriesweka.classifiers.distance_based.FastDTW_1NN; import weka.classifiers.meta.RotationForest; -import vector_classifiers.CAWPE; -import timeseriesweka.classifiers.ensembles.SaveableEnsemble; -import timeseriesweka.classifiers.ensembles.elastic_ensemble.DTW1NN; +import weka_uea.classifiers.ensembles.CAWPE; +import weka_uea.classifiers.ensembles.SaveableEnsemble; +import timeseriesweka.classifiers.distance_based.elastic_ensemble.DTW1NN; import timeseriesweka.filters.MatrixProfile; import weka.core.Instances; import utilities.ClassifierTools; -import weka.classifiers.lazy.kNN; +import weka_uea.classifiers.kNN; import weka.core.Instance; import timeseriesweka.filters.NormalizeCase; /* @@ -329,10 +329,10 @@ public static double runSimulationExperiment(String[] args,boolean useStandard) //Set up the train and test files - File f=new File(experiments.DataSets.resultsPath+simulator); + File f=new File(experiments.data.DatasetLists.resultsPath+simulator); if(!f.exists()) f.mkdir(); - String predictions= experiments.DataSets.resultsPath+simulator+"/"+classifier; + String predictions= experiments.data.DatasetLists.resultsPath+simulator+"/"+classifier; f=new File(predictions); if(!f.exists()) f.mkdir(); @@ -378,7 +378,7 @@ public static void pairwiseTests(){ } public static void combineTestResults(String classifier, String simulator){ int folds=200; - File f=new File(experiments.DataSets.resultsPath+"/"+simulator); + File f=new File(experiments.data.DatasetLists.resultsPath+"/"+simulator); if(!f.exists() || !f.isDirectory()){ f.mkdir(); } @@ -386,18 +386,18 @@ public static void combineTestResults(String classifier, String simulator){ boolean results=false; for(int i=0;i0){ - InFile inf=new InFile(experiments.DataSets.resultsPath+"/"+simulator+"/"+classifier+"/testFold"+i+".csv"); + InFile inf=new InFile(experiments.data.DatasetLists.resultsPath+"/"+simulator+"/"+classifier+"/testFold"+i+".csv"); inf.readLine(); inf.readLine(); of.writeLine(i+","+inf.readDouble()); @@ -459,7 +459,7 @@ else if(c instanceof SaveableEnsemble) } public static void collateAllResults(){ - experiments.DataSets.resultsPath="C:\\Users\\ajb\\Dropbox\\Results\\SimulationExperiments\\BasicExperiments\\"; + experiments.data.DatasetLists.resultsPath="C:\\Users\\ajb\\Dropbox\\Results\\SimulationExperiments\\BasicExperiments\\"; for(String s:allClassifiers){ for(String a:allSimulators){ // String a="WholeSeriesElastic"; @@ -468,21 +468,21 @@ public static void collateAllResults(){ } int folds=200; for(String a:allSimulators){ - if(new File(experiments.DataSets.resultsPath+a).exists()){ + if(new File(experiments.data.DatasetLists.resultsPath+a).exists()){ System.out.println(" Simulation = "+a); - OutFile of=new OutFile(DataSets.resultsPath+a+"CombinedResults.csv"); + OutFile of=new OutFile(DatasetLists.resultsPath+a+"CombinedResults.csv"); InFile[] ins=new InFile[allClassifiers.length]; int count=0; of.writeString(","); for(String s:allClassifiers){ - File f=new File(experiments.DataSets.resultsPath+a+"\\"+s+".csv"); + File f=new File(experiments.data.DatasetLists.resultsPath+a+"\\"+s+".csv"); if(f.exists()){ - InFile inf=new InFile(experiments.DataSets.resultsPath+a+"\\"+s+".csv"); + InFile inf=new InFile(experiments.data.DatasetLists.resultsPath+a+"\\"+s+".csv"); int lines=inf.countLines(); if(lines>=folds){ System.out.println(" Doing "+a+" and "+s); of.writeString(s+","); - ins[count++]=new InFile(experiments.DataSets.resultsPath+a+"\\"+s+".csv"); + ins[count++]=new InFile(experiments.data.DatasetLists.resultsPath+a+"\\"+s+".csv"); } } } @@ -583,13 +583,13 @@ public static void runErrorExperiment(String[] args){ int e=Integer.parseInt(args[2])-1; int fold=Integer.parseInt(args[3])-1; //Set up the train and test files - File f=new File(experiments.DataSets.resultsPath+"Error"); + File f=new File(experiments.data.DatasetLists.resultsPath+"Error"); if(!f.exists()) f.mkdir(); - f=new File(experiments.DataSets.resultsPath+"Error/"+simulator); + f=new File(experiments.data.DatasetLists.resultsPath+"Error/"+simulator); if(!f.exists()) f.mkdir(); - String predictions= experiments.DataSets.resultsPath+"Error/"+simulator+"/"+classifier; + String predictions= experiments.data.DatasetLists.resultsPath+"Error/"+simulator+"/"+classifier; f=new File(predictions); if(!f.exists()) f.mkdir(); @@ -620,10 +620,10 @@ public static void runLengthExperiment(String[] args){ int l=Integer.parseInt(args[2]); seriesLength=10+(1+l)*50; //l from 1 to 50 //Set up the train and test files - File f=new File(experiments.DataSets.resultsPath+simulator+"Length"); + File f=new File(experiments.data.DatasetLists.resultsPath+simulator+"Length"); if(!f.exists()) f.mkdir(); - String predictions= experiments.DataSets.resultsPath+simulator+"Length/"+classifier; + String predictions= experiments.data.DatasetLists.resultsPath+simulator+"Length/"+classifier; f=new File(predictions); if(!f.exists()) f.mkdir(); @@ -655,10 +655,10 @@ public static void trainSetSizeExperiment(String[] args){ int l=Integer.parseInt(args[2]); trainProp=(double)(l/10.0); //l from 1 to 9 //Set up the train and test files - File f=new File(experiments.DataSets.resultsPath+simulator+"Length"); + File f=new File(experiments.data.DatasetLists.resultsPath+simulator+"Length"); if(!f.exists()) f.mkdir(); - String predictions= experiments.DataSets.resultsPath+simulator+"Length/"+classifier; + String predictions= experiments.data.DatasetLists.resultsPath+simulator+"Length/"+classifier; f=new File(predictions); if(!f.exists()) f.mkdir(); @@ -942,7 +942,7 @@ public static void main(String[] args) throws Exception{ smoothingTests(); System.exit(0); if(args.length>0){ - experiments.DataSets.resultsPath= experiments.DataSets.clusterPath+"Results/SimulationExperiments/"; + experiments.data.DatasetLists.resultsPath= experiments.data.DatasetLists.clusterPath+"Results/SimulationExperiments/"; if(args.length==3){//Base experiment double b=runSimulationExperiment(args,true); System.out.println(args[0]+","+args[1]+","+","+args[2]+" Acc ="+b); @@ -953,9 +953,9 @@ public static void main(String[] args) throws Exception{ // runLengthExperiment(paras); } else{ -// DataSets.resultsPath="C:\\Users\\ajb\\Dropbox\\Results\\MatrixProfileExperiments\\"; +// DatasetLists.resultsPath="C:\\Users\\ajb\\Dropbox\\Results\\MatrixProfileExperiments\\"; local=true; - experiments.DataSets.resultsPath="C:\\temp\\"; + experiments.data.DatasetLists.resultsPath="C:\\temp\\"; String[] algos={"ED"};//,,"MP_RotF","MP_DTW"}; double[] meanAcc=new double[algos.length]; diff --git a/src/main/java/experiments/TransformExperiments.java b/src/main/java/experiments/TransformExperiments.java index 1b1f412d0..e3b394f0d 100644 --- a/src/main/java/experiments/TransformExperiments.java +++ b/src/main/java/experiments/TransformExperiments.java @@ -15,7 +15,7 @@ package experiments; import experiments.Experiments.ExperimentalArguments; -import static experiments.Experiments.sampleDataset; +import experiments.data.DatasetLoading; import java.io.File; import java.math.BigDecimal; import java.math.BigInteger; @@ -98,7 +98,7 @@ public static void SetupTransformExperiment(ExperimentalArguments expSettings) t } else{ SimpleBatchFilter transformer = TransformLists.setTransform(expSettings); - Instances[] data = sampleDataset(expSettings.dataReadLocation, expSettings.datasetName, expSettings.foldId); + Instances[] data = DatasetLoading.sampleDataset(expSettings.dataReadLocation, expSettings.datasetName, expSettings.foldId); runExperiment(expSettings, data[0], data[1], transformer, transformWriteLocation, additionalWriteLocation); LOGGER.log(Level.INFO, "Experiment finished {0}", expSettings.toShortString()); diff --git a/src/main/java/experiments/DataSets.java b/src/main/java/experiments/data/DatasetLists.java similarity index 91% rename from src/main/java/experiments/DataSets.java rename to src/main/java/experiments/data/DatasetLists.java index d7f47aac5..e3e6db36a 100644 --- a/src/main/java/experiments/DataSets.java +++ b/src/main/java/experiments/data/DatasetLists.java @@ -12,38 +12,38 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package experiments; +package experiments.data; +import experiments.data.DatasetLoading; import fileIO.InFile; import fileIO.OutFile; +import timeseriesweka.filters.SummaryStats; +import utilities.ClassifierTools; +import weka.classifiers.Classifier; +import weka.classifiers.lazy.IBk; +import weka.core.Attribute; +import weka.core.Instance; +import weka.core.Instances; + import java.io.File; import java.io.IOException; import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; -import java.util.Random; import java.util.TreeSet; -import utilities.ClassifierTools; -import weka.core.Attribute; -import weka.core.Instance; -import weka.core.Instances; -import timeseriesweka.filters.SummaryStats; -import java.net.URI; -import java.nio.file.Path; -import java.nio.file.*; -import java.util.HashMap; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; -import weka.classifiers.Classifier; -import weka.classifiers.lazy.IBk; + /** * Class containing lists of data sets in the UCR and UEA archive. * @author ajb */ -public class DataSets { +public class DatasetLists { public static String clusterPath="/gpfs/home/ajb/"; public static String dropboxPath="C:/Users/ajb/Dropbox/"; @@ -458,6 +458,133 @@ public class DataSets { // + + + + //TSC data sets for relaunch in 2018 + // + public static String[] tscProblems114={ + //Train Size, Test Size, Series Length, Nos Classes + "ACSF1", + "Adiac", // 390,391,176,37 + "ArrowHead", // 36,175,251,3 + "Beef", // 30,30,470,5 + "BeetleFly", // 20,20,512,2 + "BirdChicken", // 20,20,512,2 + "BME", + "Car", // 60,60,577,4 + "CBF", // 30,900,128,3 + "Chinatown", + "ChlorineConcentration", // 467,3840,166,3 + "CinCECGTorso", // 40,1380,1639,4 + "Coffee", // 28,28,286,2 + "Computers", // 250,250,720,2 + "CricketX", // 390,390,300,12 + "CricketY", // 390,390,300,12 + "CricketZ", // 390,390,300,12 + "Crop", + "DiatomSizeReduction", // 16,306,345,4 + "DistalPhalanxOutlineAgeGroup", // 400,139,80,3 + "DistalPhalanxOutlineCorrect", // 600,276,80,2 + "DistalPhalanxTW", // 400,139,80,6 + "Earthquakes", // 322,139,512,2 + "ECG200", //100, 100, 96 + "ECG5000", //4500, 500,140 + "ECGFiveDays", // 23,861,136,2 + "ElectricDevices", // 8926,7711,96,7 + "EOGHorizontalSignal", + "EOGVerticalSignal", + "EthanolLevel", + "FaceAll", // 560,1690,131,14 + "FaceFour", // 24,88,350,4 + "FacesUCR", // 200,2050,131,14 + "FiftyWords", // 450,455,270,50 + "Fish", // 175,175,463,7 + "FordA", // 3601,1320,500,2 + "FordB", // 3636,810,500,2 + "FreezerRegularTrain", + "FreezerSmallTrain", + "Fungi", + "GunPoint", // 50,150,150,2 + "GunPointAgeSpan", + "GunPointMaleVersusFemale", + "GunPointOldVersusYoung", + "Ham", //105,109,431 + "HandOutlines", // 1000,370,2709,2 + "Haptics", // 155,308,1092,5 + "Herring", // 64,64,512,2 + "HouseTwenty", + "InlineSkate", // 100,550,1882,7 + "InsectEPGRegularTrain", + "InsectEPGSmallTrain", + "InsectWingbeatSound",//1980,220,256 + "ItalyPowerDemand", // 67,1029,24,2 + "LargeKitchenAppliances", // 375,375,720,3 + "Lightning2", // 60,61,637,2 + "Lightning7", // 70,73,319,7 + "Mallat", // 55,2345,1024,8 + "Meat",//60,60,448 + "MedicalImages", // 381,760,99,10 + "MelbournePedestrian", + "MiddlePhalanxOutlineAgeGroup", // 400,154,80,3 + "MiddlePhalanxOutlineCorrect", // 600,291,80,2 + "MiddlePhalanxTW", // 399,154,80,6 + "MixedShapesRegularTrain", + "MixedShapesSmallTrain", + "MoteStrain", // 20,1252,84,2 + "NonInvasiveFetalECGThorax1", // 1800,1965,750,42 + "NonInvasiveFetalECGThorax2", // 1800,1965,750,42 + "OliveOil", // 30,30,570,4 + "OSULeaf", // 200,242,427,6 + "PhalangesOutlinesCorrect", // 1800,858,80,2 + "Phoneme",//1896,214, 1024 + "PigAirwayPressure", + "PigArtPressure", + "PigCVP", + "Plane", // 105,105,144,7 + "PowerCons", + "ProximalPhalanxOutlineAgeGroup", // 400,205,80,3 + "ProximalPhalanxOutlineCorrect", // 600,291,80,2 + "ProximalPhalanxTW", // 400,205,80,6 + "RefrigerationDevices", // 375,375,720,3 + "Rock", + "ScreenType", // 375,375,720,3 + "SemgHandGenderCh2", + "SemgHandMovementCh2", + "SemgHandSubjectCh2", + "ShapeletSim", // 20,180,500,2 + "ShapesAll", // 600,600,512,60 + "SmallKitchenAppliances", // 375,375,720,3 + "SmoothSubspace", + "SonyAIBORobotSurface1", // 20,601,70,2 + "SonyAIBORobotSurface2", // 27,953,65,2 + "StarLightCurves", // 1000,8236,1024,3 + "Strawberry",//370,613,235 + "SwedishLeaf", // 500,625,128,15 + "Symbols", // 25,995,398,6 + "SyntheticControl", // 300,300,60,6 + "ToeSegmentation1", // 40,228,277,2 + "ToeSegmentation2", // 36,130,343,2 + "Trace", // 100,100,275,4 + "TwoLeadECG", // 23,1139,82,2 + "TwoPatterns", // 1000,4000,128,4 + "UMD", + "UWaveGestureLibraryAll", // 896,3582,945,8 + "UWaveGestureLibraryX", // 896,3582,315,8 + "UWaveGestureLibraryY", // 896,3582,315,8 + "UWaveGestureLibraryZ", // 896,3582,315,8 + "Wafer", // 1000,6164,152,2 + "Wine",//54 57 234 + "WordSynonyms", // 267,638,270,25 + "Worms", //77, 181,900,5 + "WormsTwoClass",//77, 181,900,5 + "Yoga" // 300,3000,426,2 + }; + // + + + + //Bakeoff data sets, expansded in 2018 // public static String[] tscProblems78={ @@ -1063,7 +1190,7 @@ public class DataSets { //Refactor when repo back public static String[] ReducedUCI={"bank","blood","breast-cancer-wisc-diag", - "breast-tissue","cardiotocography-10clases", + "breast-tissue","cardiotocography-10clases", "conn-bench-sonar-mines-rocks","conn-bench-vowel-deterding", "ecoli","glass","hill-valley", "image-segmentation","ionosphere","iris","libras","magic", @@ -1085,7 +1212,7 @@ public class DataSets { "MoteStrain","PhalangesOutlinesCorrect","PowerCons","ProximalPhalanxOutlineCorrect", "SemgHandGenderCh2","ShapeletSim","SonyAIBORobotSurface1","SonyAIBORobotSurface2", "Strawberry","ToeSegmentation1","ToeSegmentation2","TwoLeadECG","Wafer","Wine", - "WormsTwoClass","Yoga"}; + "WormsTwoClass","Yoga"}; public static String[] notNormalised={"ArrowHead","Beef","BeetleFly","BirdChicken","Coffee","Computers","Cricket_X","Cricket_Y","Cricket_Z","DistalPhalanxOutlineAgeGroup","DistalPhalanxOutlineCorrect","DistalPhalanxTW","ECG200","Earthquakes","ElectricDevices","FordA","FordB","Ham","Herring","LargeKitchenAppliances","Meat","MiddlePhalanxOutlineAgeGroup","MiddlePhalanxOutlineCorrect","MiddlePhalanxTW","OliveOil","PhalangesOutlinesCorrect","Plane","ProximalPhalanxOutlineAgeGroup","ProximalPhalanxOutlineCorrect","ProximalPhalanxTW","RefrigerationDevices","ScreenType","ShapeletSim","ShapesAll","SmallKitchenAppliances","Strawberry","ToeSegmentation1","ToeSegmentation2","UWaveGestureLibraryAll","UWaveGestureLibrary_Z","Wine","Worms","WormsTwoClass","fish"}; @@ -1096,8 +1223,8 @@ public static void processUCRData(){ s=tscProblems46[str]; InFile trainF= new InFile(problemPath+s+"/"+s+"_TRAIN"); InFile testF= new InFile(problemPath+s+"/"+s+"_TEST"); - Instances train= ClassifierTools.loadData(problemPath+s+"/"+s+"_TRAIN"); - Instances test= ClassifierTools.loadData(problemPath+s+"/"+s+"_TEST"); + Instances train= DatasetLoading.loadDataNullable(problemPath+s+"/"+s+"_TRAIN"); + Instances test= DatasetLoading.loadDataNullable(problemPath+s+"/"+s+"_TEST"); int trainSize=trainF.countLines(); int testSize=testF.countLines(); Attribute a=train.classAttribute(); @@ -1184,8 +1311,8 @@ public static void listNotNormalisedList(String[] fileNames) throws Exception{ DecimalFormat df = new DecimalFormat("###.######"); for(String s:fileNames){ //Load test train - Instances train=ClassifierTools.loadData(problemPath+s+"/"+s+"_TRAIN"); - Instances test=ClassifierTools.loadData(problemPath+s+"/"+s+"_TEST"); + Instances train=DatasetLoading.loadDataNullable(problemPath+s+"/"+s+"_TRAIN"); + Instances test=DatasetLoading.loadDataNullable(problemPath+s+"/"+s+"_TEST"); //Find summary SummaryStats ss= new SummaryStats(); train=ss.process(train); @@ -1229,8 +1356,8 @@ public static void dataDescription(String[] fileNames){ for(int i=0;i. + */ + +package experiments.data; + +import experiments.ClassifierLists; +import experiments.Experiments; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.util.Map; +import java.util.TreeMap; +import java.util.logging.Level; +import java.util.logging.Logger; +import utilities.ClassifierTools; +import utilities.InstanceTools; +import utilities.multivariate_tools.MultivariateInstanceTools; +import weka.classifiers.Classifier; +import weka.core.Attribute; +import weka.core.Instances; +import weka.core.converters.ArffSaver; + +/** + * Class for handling the loading of datasets, from disk and the baked-in example datasets + * + * @author James Large (james.large@uea.ac.uk) + */ +public class DatasetLoading { + + private final static Logger LOGGER = Logger.getLogger(Experiments.class.getName()); + + private static final String BAKED_IN_DATA_MASTERPATH = "src/main/java/experiments/data/"; + + private static final String BAKED_IN_UCI_DATA_PATH = BAKED_IN_DATA_MASTERPATH + "uci/"; + private static final String BAKED_IN_TSC_DATA_PATH = BAKED_IN_DATA_MASTERPATH + "tsc/"; + private static final String BAKED_IN_MTSC_DATA_PATH = BAKED_IN_DATA_MASTERPATH + "mtsc/"; + + private static final String[] BAKED_IN_UCI_DATASETS = { "iris" }; + private static final String[] BAKED_IN_TSC_DATASETS = { "ItalyPowerDemand" }; + private static final String[] BAKED_IN_MTSC_DATASETS = { "BasicMotions" }; + + private static String LOXO_ATT_ID = "experimentsSplitAttribute"; + private static double proportionKeptForTraining = 0.5; + + private static boolean debug = false; + + public static String getLeaveOneXOutAttributeID() { + return LOXO_ATT_ID; + } + + public static void setLeaveOneXOutAttributeID(String LOXO_ATT_ID) { + DatasetLoading.LOXO_ATT_ID = LOXO_ATT_ID; + } + + public static double getProportionKeptForTraining() { + return proportionKeptForTraining; + } + + public static void setProportionKeptForTraining(double proportionKeptForTraining) { + DatasetLoading.proportionKeptForTraining = proportionKeptForTraining; + } + + + + public static void setDebug(boolean d) { + debug = d; + + if (debug) + LOGGER.setLevel(Level.FINEST); + else + LOGGER.setLevel(Level.INFO); + } + public static boolean getDebug() { + return debug; + } + + + /** + * Helper function for loading the baked-in ItalyPowerDemand dataset, one of the + * UCR datasets for TSC + * + * http://timeseriesclassification.com/description.php?Dataset=ItalyPowerDemand + * + * UCR data comes with predefined fold 0 splits. If a seed of 0 is given, that exact split is returned. + * Train/test distributions are maintained between resamples. + * + * @param seed the seed for resampling the data. + * @return new Instances[] { trainSet, testSet }; + * @throws Exception if data loading or sampling failed + */ + public static Instances[] sampleItalyPowerDemand(int seed) throws Exception { + return sampleDataset(BAKED_IN_TSC_DATA_PATH, "ItalyPowerDemand", seed); + } + + /** + * Helper function for loading the baked-in Beef dataset, one of the + * UCR datasets for TSC + * + * http://timeseriesclassification.com/description.php?Dataset=Beef + * + * UCR data comes with predefined fold 0 splits. If a seed of 0 is given, that exact split is returned. + * Train/test distributions are maintained between resamples. + * + * @param seed the seed for resampling the data. + * @return new Instances[] { trainSet, testSet }; + * @throws Exception if data loading or sampling failed + */ + public static Instances[] sampleBeef(int seed) throws Exception { + return sampleDataset(BAKED_IN_TSC_DATA_PATH, "Beef", seed); + } + + /** + * Helper function for loading the baked-in BasicMotions dataset, one of the + * UEA datasets for MTSC + * + * http://timeseriesclassification.com/description.php?Dataset=BasicMotions + * + * UEA-MTSC data comes with predefined fold 0 splits. If a seed of 0 is given, that exact split is returned. + * Train/test distributions are maintained between resamples. + * + * @param seed the seed for resampling the data + * @return new Instances[] { trainSet, testSet }; + * @throws Exception if data loading or sampling failed + */ + public static Instances[] sampleBasicMotions(int seed) throws Exception { + return sampleDataset(BAKED_IN_MTSC_DATA_PATH, "BasicMotions", seed); + } + + /** + * Helper function for loading the baked-in Iris dataset, one of the classical + * UCI datasets for general classification + * + * https://archive.ics.uci.edu/ml/datasets/iris + * + * UCI data comes in a single file. The proportion of data kept for training is + * defined by the static proportionKeptForTraining, default = 0.5 + * + * @param seed the seed for resampling the data. + * @return new Instances[] { trainSet, testSet }; + * @throws Exception if data loading or sampling failed + */ + public static Instances[] sampleIris(int seed) throws Exception { + return sampleDataset(BAKED_IN_UCI_DATA_PATH, "iris", seed); + } + + + + /** + * This method will return a train/test split of the problem, resampled with the fold ID given. + * + * Currently, there are four ways to load datasets. These will be attempted from + * top to bottom, in an order designed to make the fewest assumptions + * possible about the nature of the split, in terms of potential differences in class distributions, + * train and test set sizes, etc. + * + * 1) if predefined splits are found at the specified location, in the form dataLocation/dsetName/dsetName0_TRAIN and TEST, + * these will be loaded and used as they are, OTHERWISE... + * 2) if a predefined fold0 split is given as in the UCR archive, and fold0 is being experimented on, the split exactly as it is defined will be used. + * For fold != 0, the fold0 split is combined and resampled, maintaining the original train and test distributions. OTHERWISE... + * 3) if only a single file is found containing all the data, this dataset is stratified randomly resampled with proportionKeptForTraining (default=0.5) + * instances reserved for the _TRAIN_ set. OTHERWISE... + * 4) if the dataset loaded has a first attribute whose name _contains_ the string "experimentsSplitAttribute".toLowerCase() + * then it will be assumed that we want to perform a leave out one X cross validation. Instances are sampled such that fold N is comprised of + * a test set with all instances with first-attribute equal to the Nth unique value in a sorted list of first-attributes. The train + * set would be all other instances. The first attribute would then be removed from all instances, so that they are not given + * to the classifier to potentially learn from. It is up to the user to ensure the the foldID requested is within the range of possible + * values 1 to numUniqueFirstAttValues OTHERWISE... + * 5) error + * + * @return new Instances[] { trainSet, testSet }; + */ + public static Instances[] sampleDataset(String parentFolder, String problem, int fold) throws Exception { + Instances[] data = new Instances[2]; + File trainFile = new File(parentFolder + problem + "/" + problem + fold + "_TRAIN.arff"); + File testFile = new File(parentFolder + problem + "/" + problem + fold + "_TEST.arff"); + boolean predefinedSplitsExist = trainFile.exists() && testFile.exists(); + if (predefinedSplitsExist) { + // CASE 1) + data[0] = loadDataThrowable(trainFile); + data[1] = loadDataThrowable(testFile); + LOGGER.log(Level.FINE, problem + " loaded from predfined folds."); + } else { + trainFile = new File(parentFolder + problem + "/" + problem + "_TRAIN.arff"); + testFile = new File(parentFolder + problem + "/" + problem + "_TEST.arff"); + boolean predefinedFold0Exists = trainFile.exists() && testFile.exists(); + if (predefinedFold0Exists) { + // CASE 2) + data[0] = loadDataThrowable(trainFile); + data[1] = loadDataThrowable(testFile); + if (data[0].checkForAttributeType(Attribute.RELATIONAL)) { + data = MultivariateInstanceTools.resampleMultivariateTrainAndTestInstances(data[0], data[1], fold); + } else { + data = InstanceTools.resampleTrainAndTestInstances(data[0], data[1], fold); + } + LOGGER.log(Level.FINE, problem + " resampled from predfined fold0 split."); + } else { + // We only have a single file with all the data + Instances all = null; + try { + all = DatasetLoading.loadDataThrowable(parentFolder + problem + "/" + problem); + } catch (IOException io) { + String msg = "Could not find the dataset \"" + problem + "\" in any form at the path\n" + parentFolder + "\n" + "The IOException: " + io; + LOGGER.log(Level.SEVERE, msg, io); + } + boolean needToDefineLeaveOutOneXFold = all.attribute(0).name().toLowerCase().contains(LOXO_ATT_ID.toLowerCase()); + if (needToDefineLeaveOutOneXFold) { + // CASE 4) + data = splitDatasetByFirstAttribute(all, fold); + LOGGER.log(Level.FINE, problem + " resampled from full data file."); + } else { + // CASE 3) + if (all.checkForAttributeType(Attribute.RELATIONAL)) { + data = MultivariateInstanceTools.resampleMultivariateInstances(all, fold, proportionKeptForTraining); + } else { + data = InstanceTools.resampleInstances(all, fold, proportionKeptForTraining); + } + LOGGER.log(Level.FINE, problem + " resampled from full data file."); + } + } + } + return data; + } + + /** + * If the dataset loaded has a first attribute whose name _contains_ the string "experimentsSplitAttribute".toLowerCase() + * then it will be assumed that we want to perform a leave out one X cross validation. Instances are sampled such that fold N is comprised of + * a test set with all instances with first-attribute equal to the Nth unique value in a sorted list of first-attributes. The train + * set would be all other instances. The first attribute would then be removed from all instances, so that they are not given + * to the classifier to potentially learn from. It is up to the user to ensure the the foldID requested is within the range of possible + * values 1 to numUniqueFirstAttValues + * + * @return new Instances[] { trainSet, testSet }; + */ + public static Instances[] splitDatasetByFirstAttribute(Instances all, int foldId) { + TreeMap splitVariables = new TreeMap<>(); + for (int i = 0; i < all.numInstances(); i++) { + //even if it's a string attribute, this val corresponds to the index into the array of possible strings for this att + double key= all.instance(i).value(0); + Integer val = splitVariables.get(key); + if (val == null) + val = 0; + splitVariables.put(key, ++val); + } + + //find the split attribute value to keep for testing this fold + double idToReserveForTestSet = -1; + int testSize = -1; + int c = 0; + for (Map.Entry splitVariable : splitVariables.entrySet()) { + if (c++ == foldId) { + idToReserveForTestSet = splitVariable.getKey(); + testSize = splitVariable.getValue(); + } + } + + //make the split + Instances train = new Instances(all, all.size() - testSize); + Instances test = new Instances(all, testSize); + for (int i = 0; i < all.numInstances(); i++) + if (all.instance(i).value(0) == idToReserveForTestSet) + test.add(all.instance(i)); + train.addAll(all); + + //delete the split attribute + train.deleteAttributeAt(0); + test.deleteAttributeAt(0); + + return new Instances[] { train, test }; + } + + + /** + * Loads the arff file at the target location and sets the last attribute to be the class value, + * or throws IOException on any error. + * + * @param fullPath path to the file to try and load + * @return Instances from file. + * @throws java.io.IOException if cannot find the file, or file is malformed + */ + public static Instances loadDataThrowable(String fullPath) throws IOException { + if (!fullPath.toLowerCase().endsWith(".arff")) + fullPath += ".arff"; + + return loadDataThrowable(new File(fullPath)); + } + + /** + * Loads the arff file at the target location and sets the last attribute to be the class value, + * or throws IOException on any error. + * + * @param targetFile the file to try and load + * @return Instances from file. + * @throws java.io.IOException if cannot find the file, or file is malformed + */ + public static Instances loadDataThrowable(File targetFile) throws IOException { + FileReader reader = new FileReader(targetFile); + Instances inst = new Instances(reader); + inst.setClassIndex(inst.numAttributes() - 1); + reader.close(); + return inst; + } + + + /** + * Loads the arff file at the target location and sets the last attribute to be the class value, + * or returns null on any error, such as not finding the file or it being malformed + * + * @param fullPath path to the file to try and load + * @return Instances from file. + */ + public static Instances loadDataNullable(String fullPath) { + if (!fullPath.toLowerCase().endsWith(".arff")) + fullPath += ".arff"; + + return loadDataNullable(new File(fullPath)); + } + + /** + * Loads the arff file at the target location and sets the last attribute to be the class value, + * or returns null on any error, such as not finding the file or it being malformed + * + * @param targetFile the file to try and load + * @return Instances from file. + */ + public static Instances loadDataNullable(File targetFile) { + try { + return loadDataThrowable(targetFile); + } catch (IOException e) { + System.out.println("Unable to load data on path " + targetFile.getAbsolutePath() + " Exception thrown =" + e); + return null; + } + } + + /** + * Simple util to saveDatasets out. Useful for shapelet transform. + * + * @param dataSet + * @param fileName + */ + public static void saveDataset(Instances dataSet, String fileName) { + try { + ArffSaver saver = new ArffSaver(); + saver.setInstances(dataSet); + if (fileName.endsWith(".arff")) { + saver.setFile(new File(fileName)); + } else { + saver.setFile(new File(fileName + ".arff")); + } + saver.writeBatch(); + } catch (IOException ex) { + System.out.println("Error saving transformed dataset" + ex); + } + } + + + + + + + + + + + + + + + + + + + + + + + public static void main(String[] args) throws Exception { + tests(); + } + + private static boolean quickEval(Instances insts) throws Exception { + Classifier ed = ClassifierLists.setClassifierClassic("ED", 0); + ed.buildClassifier(insts); + return ClassifierTools.accuracy(insts, ed) == 1.0; + } + + private static void assert_t(boolean result) throws Exception { + if (!result) //todo reassess how the proper assert works... + throw new Exception("Hacky assert failed"); + } + + /** + * Obvious candidate for moving over to proper unit tests when codebase updates + * to incorporate them properly + */ + private static void tests() throws Exception { + + //should handle both with/without extension + String dataPath = BAKED_IN_UCI_DATA_PATH + "iris/iris"; + System.out.println("Testing: testARFFLoad("+dataPath+")"); + if (testARFFLoad(dataPath)) + System.out.println("Passed: testARFFLoad("+dataPath+")\n"); + + dataPath += ".arff"; + System.out.println("Testing: testARFFLoad("+dataPath+")"); + if (testARFFLoad(dataPath)) + System.out.println("Passed: testARFFLoad("+dataPath+")\n"); + + System.out.println("Testing: testUCILoad()"); + if (testUCILoad()) + System.out.println("Passed: testUCILoad()\n"); + + // 0 loads default split, 1 will resample + System.out.println("Testing: testTSCLoad("+0+")"); + if (testTSCLoad(0)) + System.out.println("Passed: testTSCLoad("+0+")\n"); + + System.out.println("Testing: testTSCLoad("+1+")"); + if (testTSCLoad(1)) + System.out.println("Passed: testTSCLoad("+1+")\n"); + + System.out.println("Testing: testMTSCLoad("+0+")"); + if (testMTSCLoad(0)) + System.out.println("Passed: testMTSCLoad("+0+")\n"); + + System.out.println("Testing: testMTSCLoad("+1+")"); + if (testMTSCLoad(1)) + System.out.println("Passed: testMTSCLoad("+1+")\n"); + } + + private static boolean testARFFLoad(String dataPath) throws Exception { + + Instances data = DatasetLoading.loadDataThrowable(dataPath); + + assert_t(data != null); + assert_t(data.relationName().equals("iris")); + assert_t(data.numInstances() == 150); + assert_t(data.numAttributes() == 5); + assert_t(data.numClasses() == 3); + assert_t(data.classIndex() == data.numAttributes()-1); + + assert_t(quickEval(data)); + + return true; + } + + private static boolean testUCILoad() throws Exception { + proportionKeptForTraining = 0.5; + Instances[] data = sampleIris(0); + + assert_t(data != null); + + assert_t(data[0] != null); + assert_t(data[0].relationName().equals("iris")); + assert_t(data[0].numInstances() == 75); + assert_t(data[0].numAttributes() == 5); + assert_t(data[0].numClasses() == 3); + assert_t(data[0].classIndex() == data[0].numAttributes()-1); + + assert_t(data[1] != null); + assert_t(data[1].relationName().equals("iris")); + assert_t(data[1].numInstances() == 75); + assert_t(data[1].numAttributes() == 5); + assert_t(data[1].numClasses() == 3); + assert_t(data[1].classIndex() == data[1].numAttributes()-1); + + assert_t(quickEval(data[0])); + assert_t(quickEval(data[1])); + + return true; + } + + private static boolean testTSCLoad(int seed) throws Exception { + //2 class + Instances[] data = sampleItalyPowerDemand(seed); + + assert_t(data != null); + + assert_t(data[0] != null); + assert_t(data[0].relationName().equals("ItalyPowerDemand")); + assert_t(data[0].numInstances() == 67); + assert_t(data[0].numAttributes() == 25); + assert_t(data[0].numClasses() == 2); + assert_t(data[0].classIndex() == data[0].numAttributes()-1); + + assert_t(data[1] != null); + assert_t(data[1].relationName().equals("ItalyPowerDemand")); + assert_t(data[1].numInstances() == 1029); + assert_t(data[1].numAttributes() == 25); + assert_t(data[1].numClasses() == 2); + assert_t(data[1].classIndex() == data[1].numAttributes()-1); + + assert_t(quickEval(data[0])); + assert_t(quickEval(data[1])); + + return true; + } + + private static boolean testMTSCLoad(int seed) throws Exception { + Instances[] data = sampleBasicMotions(seed); + + assert_t(data != null); + + assert_t(data[0] != null); + assert_t(data[0].relationName().equals("BasicMotions")); + assert_t(data[0].numInstances() == 40); + assert_t(data[0].attribute(0).isRelationValued()); + assert_t(data[0].attribute(0).relation().numAttributes() == 100); + assert_t(data[0].numClasses() == 4); + assert_t(data[0].classIndex() == data[0].numAttributes()-1); + + assert_t(data[1] != null); + assert_t(data[1].relationName().equals("BasicMotions")); + assert_t(data[1].numInstances() == 40); + assert_t(data[1].attribute(0).isRelationValued()); + assert_t(data[1].attribute(0).relation().numAttributes() == 100); + assert_t(data[1].numClasses() == 4); + assert_t(data[1].classIndex() == data[1].numAttributes()-1); + + assert_t(quickEval(data[0])); + assert_t(quickEval(data[1])); + + return true; + } + + +} diff --git a/src/main/java/experiments/data/mtsc/BasicMotions/BasicMotions_TEST.arff b/src/main/java/experiments/data/mtsc/BasicMotions/BasicMotions_TEST.arff new file mode 100644 index 000000000..913609132 --- /dev/null +++ b/src/main/java/experiments/data/mtsc/BasicMotions/BasicMotions_TEST.arff @@ -0,0 +1,151 @@ +%The data was generated as part of a student project where four students performed four activities whilst wearing a smart watch. +%The watch collects 3D accelerometer and a 3D gyroscope It consists of four classes, which are walking, resting, running and +%badminton. Participants were required to record motion a total of five times, and the data is sampled once every tenth of a second, +%for a ten second period. +@relation 'BasicMotions' + +@attribute relationalAtt relational +@attribute att0 numeric +@attribute att1 numeric +@attribute att2 numeric +@attribute att3 numeric +@attribute att4 numeric +@attribute att5 numeric +@attribute att6 numeric +@attribute att7 numeric +@attribute att8 numeric +@attribute att9 numeric +@attribute att10 numeric +@attribute att11 numeric +@attribute att12 numeric +@attribute att13 numeric +@attribute att14 numeric +@attribute att15 numeric +@attribute att16 numeric +@attribute att17 numeric +@attribute att18 numeric +@attribute att19 numeric +@attribute att20 numeric +@attribute att21 numeric +@attribute att22 numeric +@attribute att23 numeric +@attribute att24 numeric +@attribute att25 numeric +@attribute att26 numeric +@attribute att27 numeric +@attribute att28 numeric +@attribute att29 numeric +@attribute att30 numeric +@attribute att31 numeric +@attribute att32 numeric +@attribute att33 numeric +@attribute att34 numeric +@attribute att35 numeric +@attribute att36 numeric +@attribute att37 numeric +@attribute att38 numeric +@attribute att39 numeric +@attribute att40 numeric +@attribute att41 numeric +@attribute att42 numeric +@attribute att43 numeric +@attribute att44 numeric +@attribute att45 numeric +@attribute att46 numeric +@attribute att47 numeric +@attribute att48 numeric +@attribute att49 numeric +@attribute att50 numeric +@attribute att51 numeric +@attribute att52 numeric +@attribute att53 numeric +@attribute att54 numeric +@attribute att55 numeric +@attribute att56 numeric +@attribute att57 numeric +@attribute att58 numeric +@attribute att59 numeric +@attribute att60 numeric +@attribute att61 numeric +@attribute att62 numeric +@attribute att63 numeric +@attribute att64 numeric +@attribute att65 numeric +@attribute att66 numeric +@attribute att67 numeric +@attribute att68 numeric +@attribute att69 numeric +@attribute att70 numeric +@attribute att71 numeric +@attribute att72 numeric +@attribute att73 numeric +@attribute att74 numeric +@attribute att75 numeric +@attribute att76 numeric +@attribute att77 numeric +@attribute att78 numeric +@attribute att79 numeric +@attribute att80 numeric +@attribute att81 numeric +@attribute att82 numeric +@attribute att83 numeric +@attribute att84 numeric +@attribute att85 numeric +@attribute att86 numeric +@attribute att87 numeric +@attribute att88 numeric +@attribute att89 numeric +@attribute att90 numeric +@attribute att91 numeric +@attribute att92 numeric +@attribute att93 numeric +@attribute att94 numeric +@attribute att95 numeric +@attribute att96 numeric +@attribute att97 numeric +@attribute att98 numeric +@attribute att99 numeric +@end relationalAtt +@attribute activity {Standing,Running,Walking,Badminton} + +@data +'-0.740653,-0.740653,10.208449,2.867009,-0.194301,-0.194301,-0.249618,0.516079,-0.255552,-0.319864,0.353982,0.353982,0.106101,0.106101,0.22727,0.22727,-0.119723,-0.236241,-0.237297,-0.185024,-0.000058,-0.279022,-0.120311,-0.146232,-0.127457,-0.130117,-0.052044,-0.280422,-0.296785,-0.135509,-0.164468,-0.22289,-0.016718,-0.225213,-0.3807,-0.266297,-0.190389,-0.170008,-0.020573,-0.15485,-0.106508,-0.241089,-0.21136,-0.21136,-0.235142,-0.297559,-0.159937,-0.019443,-0.207353,-0.096013,-0.024333,-0.136068,-0.16463,-0.252869,-0.029622,-0.153937,-0.158699,-0.036343,-0.058921,-0.172196,-0.153654,-0.159779,-0.275249,-0.064747,-0.045516,-0.20857,-0.257963,-0.257963,-0.127492,-0.371646,-0.371646,-0.420923,-0.106432,-0.106432,-0.192068,-0.192068,-0.096508,-0.124875,0.011774,-0.122395,-0.278119,0.031465,-0.095036,-0.162697,-0.270526,-0.135934,-0.097062,-0.259696,-0.195385,-0.232158,-0.139325,-0.188627,-0.188627,-0.244708,-0.160692,-0.09448,-0.09448,-0.329182,-0.287192,-0.287192\n0.756509,0.756509,-9.21697,-5.977115,-3.711996,-3.711996,0.731686,1.070128,0.582956,0.65684,0.738943,0.738943,0.623878,0.623878,0.342349,0.342349,0.487381,0.480404,0.430157,0.447453,0.249743,0.2423,0.450441,0.309654,0.083404,0.292108,0.311343,0.543993,0.698218,0.475227,0.353672,0.131767,0.076935,0.385646,0.344838,0.21288,0.008026,-0.158244,0.035338,0.508889,0.621322,0.319636,-0.085015,-0.085015,-0.024743,0.275337,0.335378,0.237319,-0.002747,-0.007837,-0.011572,0.101381,0.088272,0.123691,0.001191,0.015601,0.059553,0.090908,0.242394,0.099569,0.045989,0.091239,0.021562,0.097407,0.019493,0.06763,0.024291,0.024291,0.004449,0.200601,0.200601,0.20053,-0.100083,-0.100083,0.005299,0.005299,-0.138594,0.053983,0.304071,0.200452,0.041175,-0.245158,-0.164275,-0.108489,-0.140033,0.15596,-0.102305,-0.049516,0.136662,0.133463,0.069999,0.167304,0.167304,0.138224,0.141726,0.090568,0.090568,-0.046058,0.098725,0.098725\n-0.275809,-0.275809,-12.378901,-6.540994,-0.795126,-0.795126,-0.186745,1.092803,1.325465,1.111255,0.92642,0.92642,0.5679,0.5679,0.268622,0.268622,0.327273,0.40812,0.514076,0.311186,0.134542,0.29389,0.419988,0.300988,0.247305,0.172984,-0.016058,-0.00315,-0.075551,0.061992,0.116625,0.152605,-0.045476,0.054326,-0.237036,-0.135032,-0.03183,0.168093,0.012559,-0.023324,0.092941,0.01773,-0.253982,-0.253982,-0.189144,-0.116966,-0.087871,-0.053194,0.03203,0.039653,-0.039803,-0.13352,-0.16589,-0.123577,-0.113669,-0.166456,-0.14369,0.003189,-0.09395,-0.036416,-0.091092,-0.112569,-0.082327,-0.031153,-0.007581,-0.041635,-0.131761,-0.131761,0.079643,0.03409,0.03409,-0.391085,0.031064,0.031064,0.041021,0.041021,-0.095194,-0.179897,-0.076537,-0.061903,0.095472,-0.001535,-0.071989,-0.196689,-0.216153,-0.049025,0.046421,0.180473,-0.148389,-0.191676,-0.017066,0.083551,0.083551,-0.043955,-0.147532,-0.173679,-0.173679,0.035301,0.02654,0.02654\n-0.423476,-0.423476,-14.699153,5.561122,-1.728529,-1.728529,-0.306288,0.22905,-0.165129,-0.082565,0.047941,0.047941,0.074574,0.074574,-0.053267,-0.053267,-0.02397,0.111862,-0.109198,0.01598,-0.005327,0.029297,0.106535,0.079901,0.101208,0.151812,0.00799,-0.018644,-0.063921,-0.117188,-0.045277,0,-0.00799,-0.050604,-0.085228,-0.063921,0,0.066584,0.010653,-0.029297,0.034624,0.002663,0,0,0.074574,0,0,-0.013317,-0.00799,-0.03196,0.061258,-0.103872,0,-0.002663,0.047941,0.029297,0.013317,0.045277,0.03196,0.055931,0.034624,0.010653,0.013317,-0.029297,0,0.002663,-0.002663,-0.002663,0.037287,-0.053267,-0.053267,-0.165129,-0.101208,-0.101208,-0.117188,-0.117188,-0.005327,-0.01598,-0.095881,-0.154476,-0.183773,-0.119852,-0.090555,0.029297,0.010653,0.005327,0.074574,0.167792,0.149149,0.109198,0.069248,0.042614,0.042614,0.013317,0.010653,0,0,-0.021307,0.002663,0.002663\n0.013317,0.013317,4.578337,2.178639,-1.054696,-1.054696,-0.199753,-0.508704,-0.095881,-0.175783,-0.087891,-0.087891,0.018644,0.018644,-0.002663,-0.002663,-0.018644,-0.02397,-0.042614,0.050604,-0.045277,0.00799,-0.02397,0.013317,0.018644,0.055931,0.02397,0.03196,0.013317,-0.047941,-0.029297,0.013317,0,0.050604,0.055931,-0.026634,-0.053267,-0.039951,0.029297,-0.02397,-0.039951,0.047941,0.005327,0.005327,-0.02397,-0.050604,-0.069248,-0.069248,-0.039951,-0.039951,0.026634,0.026634,0.039951,0.03196,0.037287,0.029297,0.013317,-0.021307,-0.029297,0.018644,0.005327,0,-0.029297,-0.029297,-0.010653,0.005327,0.042614,0.042614,-0.01598,0.050604,0.050604,0.085228,-0.079901,-0.079901,0,0,0.021307,0.037287,-0.021307,-0.00799,0.005327,0.039951,0.037287,0.03196,0.010653,-0.021307,-0.01598,-0.03196,0.050604,-0.010653,-0.029297,-0.029297,-0.029297,0.034624,0.029297,-0.010653,-0.010653,-0.02397,-0.02397,-0.02397\n0.013317,0.013317,-5.055081,-1.624657,-0.276991,-0.276991,0.46609,0.25302,0.181109,0.002663,-0.045277,-0.045277,0.037287,0.037287,0.03196,0.03196,0.026634,0.042614,-0.002663,-0.055931,-0.071911,-0.013317,0,0.013317,0.066584,0.130505,0.173119,0.199753,0.138495,0.061258,0.01598,-0.071911,-0.029297,-0.013317,-0.026634,-0.079901,-0.050604,0,0.090555,0.173119,0.079901,-0.029297,-0.047941,-0.047941,0.058594,0.109198,0.063921,0.013317,0.021307,0.034624,0.037287,0.055931,0.013317,0.010653,-0.045277,-0.029297,-0.010653,-0.002663,-0.01598,-0.058594,-0.055931,-0.013317,-0.002663,0,0.002663,0.00799,0.00799,0.00799,0.047941,0.066584,0.066584,-0.00799,-0.03196,-0.03196,0.010653,0.010653,0.002663,0.029297,0.039951,0.002663,0,-0.034624,0.002663,-0.021307,0.034624,0.053267,-0.026634,0,0.01598,0.047941,0.063921,0.071911,0.071911,0.01598,0,0,0,0.029297,0.02397,0.02397',Standing +'-0.247409,-0.247409,-0.77129,-0.576154,-0.368484,-0.020851,-0.020851,-0.465607,-0.382975,-0.382975,-0.455877,-0.331621,-0.21237,-0.358499,-0.368816,-0.319175,-0.257928,-0.068348,-0.155558,-0.399715,-0.242622,-0.355315,-0.326044,-0.380104,-0.348204,-0.378803,-0.297451,-0.433325,-0.444574,-0.31712,-0.273874,-0.273874,-0.364717,-0.259719,-0.374834,-0.374834,-0.304345,-0.419661,-0.224539,-0.282727,-0.282727,-0.294808,-0.264045,-0.329571,-0.131506,-0.261368,-0.374194,-0.19681,-0.37348,-0.432457,-0.285452,-0.278737,-0.239495,-0.456065,-0.346319,-0.266094,-0.14183,-0.088232,-0.381726,-0.372825,-0.339953,-0.196129,-0.196129,-0.301046,-0.301046,-0.430288,-0.430288,-0.478004,-0.213395,-0.211167,-0.412374,-0.265291,-0.176934,-0.307149,-0.162546,-0.357249,-0.323249,0.074332,-0.37953,-0.408914,-0.364285,-0.392269,-0.238624,-0.260001,-0.32041,-0.234854,-0.386517,-0.386517,-0.227868,-0.191249,-0.191249,-0.213502,-0.251737,-0.251737,-0.299483,-0.299483,-0.371697,-0.408751,-0.408751,-0.376306\n-0.060459,-0.060459,-0.047618,0.230698,0.30101,0.717167,0.717167,0.200864,-0.0082,-0.0082,0.098983,0.156583,0.15911,0.146649,0.122114,-0.051388,-0.236873,-0.082995,0.154988,0.217716,0.274635,0.135222,0.30875,0.139049,0.026158,-0.154961,-0.158089,-0.054615,0.160122,0.205792,0.282582,0.282582,0.11746,-0.072299,-0.099347,-0.099347,-0.123695,0.050379,0.222771,0.399756,0.399756,0.35043,0.167994,0.009618,-0.172793,-0.201072,-0.14933,-0.004602,0.239785,0.390811,0.308315,0.224538,0.106475,-0.055337,-0.413077,-0.650349,-0.368096,0.107438,0.628222,0.728253,0.620374,0.323677,0.323677,-0.593868,-0.593868,-0.386592,-0.386592,-0.170717,0.22921,0.515505,0.570155,0.459649,0.182376,-0.065255,-0.218272,-0.447963,-0.360932,-0.179716,0.273303,0.592016,0.592525,0.52791,0.243884,-0.153822,-0.444062,-0.638954,-0.307086,-0.307086,0.407487,0.723816,0.723816,0.253407,-0.11509,-0.11509,-0.282228,-0.282228,0.041625,0.24765,0.24765,0.273053\n-0.608565,-0.608565,-0.294411,-0.810362,-0.211506,-0.174015,-0.174015,-0.21137,-0.217363,-0.217363,-0.053573,0.020538,0.010841,-0.025632,-0.000778,0.057104,0.040317,-0.155663,-0.237618,-0.117287,0.055303,-0.224196,-0.000385,0.106603,0.043777,0.043748,0.122356,-0.068184,-0.013234,0.005311,-0.137339,-0.137339,-0.009028,0.067746,0.058255,0.058255,0.09203,0.01381,-0.096967,-0.084029,-0.084029,-0.048022,-0.07209,0.178598,0.185036,-0.077034,0.011119,-0.041216,-0.138921,-0.195131,-0.14864,0.030181,0.296462,0.436852,0.084817,-0.097733,0.039934,-0.267591,-0.441751,-0.24199,-0.149125,0.178795,0.178795,0.197043,0.197043,-0.314375,-0.314375,0.027267,0.007336,-0.157603,-0.31925,-0.144522,0.074889,0.281691,0.38342,0.118933,-0.064471,0.049312,-0.322661,-0.467446,-0.281067,-0.128966,0.131193,0.415128,0.403483,0.025529,-0.34,-0.34,-0.163376,-0.030374,-0.030374,-0.027665,0.09889,0.09889,0.045018,0.045018,-0.010239,-0.058686,-0.058686,-0.179022\n-0.02397,-0.02397,-0.269001,0.00799,0.274327,0.111862,0.111862,0.095881,0.034624,0.034624,0.090555,0.053267,0.005327,0.01598,0.047941,0.119852,0.103872,0.098545,0.045277,0.093218,0.063921,-0.074574,0.010653,-0.029297,-0.039951,0.042614,0.02397,0.002663,0.013317,0.02397,-0.01598,-0.01598,-0.029297,-0.010653,-0.018644,-0.018644,0.055931,0.037287,-0.018644,0.026634,0.026634,-0.002663,-0.061258,-0.013317,0.082565,-0.02397,0.106535,0.02397,-0.045277,-0.061258,-0.066584,-0.047941,-0.01598,0.005327,0.021307,0.029297,0.170456,0.013317,0.063921,0.02397,-0.074574,-0.029297,-0.029297,-0.042614,-0.042614,-0.135832,-0.135832,0.095881,0.029297,0.037287,-0.034624,-0.002663,-0.03196,-0.03196,0.01598,0.00799,0.005327,0.058594,-0.183773,0.085228,-0.03196,0.026634,-0.053267,-0.077238,-0.03196,0.005327,-0.063921,-0.063921,0.157139,-0.018644,-0.018644,0.045277,0.074574,0.074574,-0.002663,-0.002663,0.02397,0.090555,0.090555,0.047941\n0.101208,0.101208,0.111862,-0.077238,-0.069248,-0.002663,-0.002663,-0.01598,0,0,-0.02397,-0.037287,-0.037287,0,-0.005327,-0.021307,0,0.013317,0,-0.01598,-0.01598,-0.002663,-0.034624,-0.037287,0.002663,0,0,0.034624,0.01598,0.018644,0.026634,0.026634,-0.026634,-0.03196,-0.00799,-0.00799,0.010653,0.018644,0.005327,0.005327,0.005327,-0.01598,-0.058594,-0.058594,-0.00799,0.018644,0.02397,0.034624,0.013317,-0.010653,-0.063921,-0.077238,-0.061258,0.00799,0.101208,0.111862,0.087891,0.111862,0.021307,-0.053267,-0.098545,-0.135832,-0.135832,0.010653,0.010653,0.077238,0.077238,-0.018644,0.037287,0.042614,-0.03196,-0.109198,-0.127842,-0.093218,-0.013317,0.082565,0.098545,0.077238,0.109198,0.042614,-0.013317,-0.079901,-0.079901,-0.042614,0.069248,0.133169,0.122515,0.122515,-0.055931,-0.037287,-0.037287,-0.085228,-0.045277,-0.045277,0.002663,0.002663,0.053267,0.047941,0.047941,0.02397\n0.071911,0.071911,0.135832,0.066584,0.00799,0.109198,0.109198,0.018644,-0.010653,-0.010653,0.063921,0.058594,0.053267,0.01598,-0.00799,-0.055931,-0.042614,0.066584,0.114525,0.066584,0.026634,0.039951,0.026634,-0.029297,-0.069248,-0.071911,-0.045277,0.061258,0.074574,0.058594,0.029297,0.029297,-0.079901,-0.090555,-0.063921,-0.063921,-0.039951,0.095881,0.101208,0.045277,0.045277,-0.005327,-0.053267,-0.106535,-0.138495,0.005327,0.02397,0.093218,0.157139,0.071911,-0.00799,-0.095881,-0.106535,-0.135832,-0.226387,-0.077238,0.181109,0.284981,0.26101,0.133169,-0.034624,-0.207743,-0.207743,-0.255684,-0.255684,0.117188,0.117188,0.218397,0.183773,0.167792,0.109198,-0.114525,-0.109198,-0.167792,-0.199753,-0.074574,0.047941,0.146486,0.295634,0.143822,0.010653,-0.061258,-0.191763,-0.215733,-0.258347,-0.01598,0.22106,0.22106,0.138495,0.125179,0.125179,-0.21307,-0.20508,-0.20508,-0.005327,-0.005327,0.093218,0.093218,0.093218,0.079901',Standing +'-0.663284,-0.663284,5.393924,3.116671,1.886366,-0.704205,-0.512011,1.048702,0.315625,-0.222813,0.11289,0.100292,-0.075289,-0.115156,-0.200824,-0.461061,0.1817,-0.039907,-0.039907,0.009926,0.077355,0.077355,-0.475009,-0.285656,-0.252349,0.238486,0.39436,-0.088305,-0.051414,-0.114896,-0.114896,0.02226,-0.111519,-0.189248,-0.352287,-0.320463,-0.099255,-0.058693,-0.058693,0.084214,-0.035709,-0.130039,-0.448516,-0.355347,-0.151772,0.369909,-0.14924,-0.042885,-0.007339,-0.007339,-0.190497,-0.354799,-0.147228,-0.358786,-0.049259,-0.239017,0.403204,0.26875,0.017016,0.335301,0.167265,-0.251932,-0.251932,-0.624679,-0.591336,0.03304,-0.319374,-0.291083,-0.291083,0.269629,0.189096,0.055721,0.021957,-0.143196,0.068419,-0.061323,-0.046595,-0.165467,-0.09678,-0.162494,-0.012027,0.043367,0.098286,0.047763,-0.100751,-0.144368,-0.071515,-0.428957,-0.428957,0.047301,0.047301,0.019313,-0.094276,-0.189371,-0.189371,-0.140585,0.152261,-0.538632,-0.096331,-0.224677\n0.27301,0.27301,-3.079673,-6.221935,-4.779886,-3.237779,-2.091732,0.056937,1.040744,1.68393,1.098387,0.853635,-0.542424,-0.849826,-0.956263,-0.804787,0.350094,1.368289,1.368289,1.264988,0.774172,0.774172,-0.681048,-1.505911,-1.053662,-0.107301,0.635992,1.396834,1.54402,1.19241,1.19241,0.394083,-0.575934,-1.164853,-0.928533,-0.40199,0.480131,1.296177,1.296177,0.739256,0.169074,-0.323962,-1.005895,-0.91548,-0.223361,0.385655,1.247511,1.410815,0.957529,0.957529,-0.496462,-1.03655,-1.171575,-0.724587,0.017709,0.595112,1.522549,1.60564,1.341084,0.451631,-0.431451,-0.564003,-0.564003,-0.602231,-0.747115,-0.667291,0.082563,0.270469,0.270469,-0.255369,0.103795,0.528807,1.170237,1.405444,0.92251,0.013049,-0.74041,-1.157894,-1.018876,-0.325281,0.479354,1.205981,1.395917,1.150348,0.630449,0.169624,-0.596197,-0.763453,-0.763453,0.454076,0.454076,-0.038179,0.841613,0.654611,0.654611,0.067746,-0.20044,0.265703,0.480279,0.54216\n-0.160963,-0.160963,-3.175911,-1.572557,-1.27952,0.21644,0.24656,-0.488706,0.17809,0.001733,0.218673,0.616586,0.409762,0.314728,0.117233,-0.128992,-0.05116,0.132839,0.132839,0.384353,0.262441,0.262441,-0.109696,-0.128186,-0.242607,-0.20225,-0.00211,0.30404,0.639318,0.758301,0.758301,0.384957,-0.09118,-0.471097,-0.723112,-0.517194,-0.271158,0.89669,0.89669,0.61775,0.127212,-0.078856,-0.533136,-0.614224,-0.471728,-0.095451,0.393963,0.582809,0.589027,0.589027,-0.100965,-0.384277,-0.48499,-0.380091,-0.220782,0.135759,0.310001,0.14169,0.246222,0.175405,-0.063559,-0.214512,-0.214512,-0.274098,-0.25293,-0.259753,-0.089433,0.243666,0.243666,0.375458,-0.009023,-0.121791,-0.112024,-0.066389,0.129864,0.148417,0.214974,0.043025,-0.231135,-0.162575,-0.091424,0.15209,0.149648,0.049057,0.05701,0.180757,-0.08039,-0.478375,-0.478375,0.448458,0.448458,-0.154181,-0.008225,0.100449,0.100449,0.043841,0.03291,0.058508,0.026352,-0.234033\n-0.24503,-0.24503,-6.408074,-2.23457,-1.291736,0.183773,0.173119,0.135832,-0.021307,-0.335585,-0.103872,-0.207743,0.029297,0.034624,0.103872,-0.111862,0.189099,0.122515,0.122515,0.071911,-0.010653,-0.010653,0.005327,0.165129,0.133169,0.029297,-0.189099,-0.141159,-0.085228,0.061258,0.061258,0.058594,0.034624,0,0.039951,0.061258,0.03196,0.053267,0.053267,0.042614,0.042614,0.119852,0.053267,0.095881,0.037287,0.125179,0.077238,0.045277,-0.010653,-0.010653,0.002663,0.114525,0.186436,0.135832,0.25302,0.356892,0.26101,-0.181109,0,-0.181109,-0.274327,-0.314278,-0.314278,-0.250357,-0.095881,-0.127842,-0.109198,0.127842,0.127842,0.284981,0.034624,-0.026634,-0.063921,-0.149149,0.101208,0.055931,0.111862,0.02397,0.053267,0.058594,0.141159,0.093218,-0.005327,-0.050604,0.122515,-0.22106,-0.972131,-1.395607,-1.395607,1.462192,1.462192,-0.266337,0.24503,0.074574,0.074574,0.167792,0.23704,0.005327,0.053267,-0.109198\n-0.077238,-0.077238,0.471417,2.152005,0.383526,0.061258,-0.01598,0.034624,0.316941,-0.149149,-0.037287,-0.055931,0.087891,0.050604,0.090555,-0.103872,-0.178446,-0.199753,-0.199753,-0.055931,0.087891,0.087891,0.146486,0.01598,0.055931,-0.231713,-0.340912,-0.22106,-0.183773,0.058594,0.058594,0.292971,0.391516,0.22106,0.050604,-0.22905,-0.348902,-0.154476,-0.154476,0.157139,0.298298,0.322268,0.215733,-0.02397,-0.210406,-0.356892,-0.287644,-0.210406,0.101208,0.101208,0.319605,0.250357,0.077238,-0.085228,-0.165129,-0.215733,-0.146486,0,0.079901,0.19709,0.21307,0.194426,0.194426,0.138495,0.095881,-0.045277,-0.103872,-0.127842,-0.127842,-0.226387,0,0.045277,0.005327,-0.034624,-0.03196,0.047941,0.090555,0.109198,0.058594,-0.101208,-0.109198,-0.101208,-0.018644,0.02397,-0.050604,0.090555,0.071911,0.090555,0.090555,-0.074574,-0.074574,-0.095881,-0.143822,-0.021307,-0.021307,0,-0.03196,0.00799,0.050604,0.079901\n-0.018644,-0.018644,-3.59289,-3.036245,-2.138688,-0.351565,0.010653,0.503377,0.724437,0.569962,0.042614,-0.25302,-0.439456,-0.335585,0.061258,0.311615,0.46609,0.415486,0.415486,-0.050604,-0.279654,-0.279654,-0.46609,-0.159802,0.141159,0.6472,0.764388,0.561972,0.202416,-0.266337,-0.266337,-0.636546,-0.681823,-0.314278,0.133169,0.452773,0.593932,0.146486,0.146486,-0.284981,-0.476744,-0.500714,-0.20508,0.178446,0.436793,0.538001,0.48207,0.226387,-0.295634,-0.295634,-0.575289,-0.378199,-0.039951,0.356892,0.572625,0.617902,0.490061,0.218397,-0.250357,-0.615239,-0.612576,-0.375536,-0.375536,-0.295634,-0.159802,0.181109,0.412823,0.234377,0.234377,0.178446,0.327595,0.351565,0.324931,0,-0.444783,-0.615239,-0.540665,-0.290308,0.175783,0.564635,0.652526,0.452773,0.167792,-0.119852,-0.362219,-0.471417,-0.276991,-0.018644,-0.018644,0.077238,0.077238,0.396843,0.343575,0.005327,0.005327,-0.117188,0.181109,0.159802,-0.013317,-0.00799',Standing +'-1.088052,-1.088052,-0.68362,-0.68362,1.732735,-0.360603,-0.107834,-0.107834,-0.23536,0.09832,0.198145,0.275469,-0.171319,-0.20363,-0.00713,0.164785,-0.092744,-0.256458,0.048962,-0.146325,0.020931,-0.059582,-0.45584,0.011893,-0.26288,-0.047556,0.083335,-0.054704,-0.198256,-0.099257,-0.204375,-0.230684,-0.230684,-0.233805,-0.094774,-0.048889,-0.220399,-0.0734,-0.015245,-0.288458,-0.312881,-0.281057,-0.280295,-0.169504,-0.115083,-0.065904,-0.172064,-0.091107,-0.111613,-0.17896,-0.432796,-0.182224,-0.143693,-0.011191,-0.031357,-0.138412,-0.250912,-0.064617,0.059242,-0.235746,-0.184441,0.038116,-0.096405,-0.156801,-0.24748,-0.177016,-0.177016,-0.205014,-0.261278,-0.141164,-0.141164,-0.040212,-0.422964,-0.165152,-0.198107,-0.202684,-0.255019,-0.062876,-0.205484,-0.195659,-0.153576,-0.2818,-0.116173,-0.15805,-0.21416,-0.195743,-0.098529,-0.241566,-0.30415,-0.280846,-0.223275,-0.175446,-0.184812,0.011316,-0.093774,-0.135475,-0.177172,-0.263701,-0.219259,-0.219259\n0.183832,0.183832,-2.909047,-2.909047,0.171792,1.575648,2.256994,2.256994,2.034762,1.259072,-0.604935,-1.651274,-2.39482,-1.808752,-0.690613,0.436873,1.719724,2.07483,1.71658,-0.006784,-0.810478,-1.637586,-1.454906,-0.26457,0.43729,1.375574,1.386308,1.164648,0.311396,-0.497408,-0.854742,-0.804516,-0.804516,-0.309869,0.071417,0.699861,1.028562,0.936066,0.47322,-0.005898,-0.264865,-0.71082,-0.667664,-0.245476,0.501463,0.94089,1.036927,0.853067,0.270227,-0.10748,-0.614584,-0.783646,-0.623229,0.004822,0.508582,1.028448,1.12353,0.868734,0.669165,0.001531,-0.669135,-0.976001,-0.485433,-0.27384,0.289807,0.858229,0.858229,0.989197,0.697865,0.250615,0.250615,-1.211627,-0.562517,0.095517,0.371622,0.573808,0.815762,0.085004,0.044751,-0.003916,-0.17188,0.037441,0.119113,0.081583,0.24176,0.218329,0.287462,0.088809,0.065641,-0.069179,0.054902,-0.0237,0.153952,0.275939,0.116616,0.114351,0.178846,0.0179,0.005191,0.005191\n-0.260871,-0.260871,1.507042,1.507042,0.346195,0.052508,-0.043425,-0.043425,-0.956645,-0.354322,0.163382,0.378252,0.46234,0.342544,-0.108056,0.035609,-0.027154,-0.013682,-0.018139,0.172817,0.569156,0.376128,-0.014319,-0.004044,-0.270471,0.025071,0.094575,0.122629,0.10873,0.224881,0.155127,0.047832,0.047832,0.038158,0.004856,-0.160346,-0.194274,0.106841,0.246011,0.259448,-0.00975,-0.015209,0.049145,0.044098,-0.114242,-0.11409,-0.161749,0.106805,-0.004277,0.143024,0.201311,0.267585,0.116527,0.138298,-0.115281,-0.398109,-0.408463,-0.234337,-0.115017,-0.028501,0.205014,0.677759,0.737595,-0.032072,-0.284129,-0.331972,-0.331972,-0.193358,0.159033,0.487607,0.487607,-0.160431,-0.171485,-0.001569,-0.154681,-0.270756,0.081652,-0.088541,0.179976,0.203954,0.056176,0.100372,-0.049895,-0.034838,0.062544,0.120709,0.104441,-0.028206,0.061446,0.029467,0.024209,0.000341,0.135799,0.196904,-0.010375,-0.045947,-0.020852,-0.034372,-0.026516,-0.026516\n-0.284981,-0.284981,0.415486,0.415486,0.48207,0.093218,0.063921,0.063921,-0.223723,0.170456,-0.079901,-0.109198,-0.135832,-0.090555,-0.095881,0.250357,0.066584,-0.095881,-0.159802,-0.202416,0.138495,-0.247694,-0.151812,0.22905,-0.053267,0.109198,0.170456,-0.018644,0.021307,0.066584,-0.039951,-0.01598,-0.01598,0.090555,0.210406,0.098545,-0.005327,0.047941,-0.013317,-0.127842,-0.22106,-0.005327,0.101208,0.082565,0.138495,0.082565,-0.029297,-0.063921,-0.239704,-0.189099,-0.093218,-0.010653,0.018644,0.098545,0.069248,0.101208,0.087891,-0.042614,-0.535338,-0.65519,0.103872,1.190528,0.039951,-0.157139,-0.037287,0.149149,0.149149,-0.002663,-0.199753,-0.609912,-0.609912,-1.360983,0.101208,0.364882,0.186436,-0.308951,0.207743,0.111862,-0.029297,-0.125179,-0.098545,-0.119852,0.127842,0.02397,0.03196,0.063921,0.00799,0.005327,-0.069248,-0.047941,-0.005327,0.170456,0.511368,0.652526,0.183773,-0.02397,0.00799,-0.00799,-0.01598,-0.01598\n0.487397,0.487397,0.013317,0.013317,0.202416,-0.010653,0.037287,0.037287,-0.199753,-0.370209,-0.125179,-0.101208,-0.066584,0.141159,0.058594,-0.071911,-0.055931,-0.045277,-0.093218,-0.183773,-0.122515,0.079901,0.130505,0.01598,0.058594,-0.079901,-0.039951,-0.00799,0,0,0.053267,0.018644,0.018644,0.010653,0,0.010653,-0.013317,-0.085228,-0.042614,0.071911,0.125179,0.047941,0.002663,0.002663,-0.03196,-0.050604,-0.069248,-0.039951,-0.002663,0.02397,0.039951,0.074574,0.093218,0.087891,0.119852,0.082565,-0.055931,-0.111862,-0.133169,-0.119852,-0.122515,-0.173119,0.074574,0.22905,0.173119,0.130505,0.130505,-0.061258,-0.133169,-0.095881,-0.095881,0.061258,0.114525,0.047941,0.050604,-0.050604,-0.071911,-0.047941,-0.074574,0.026634,0.021307,0.021307,0,-0.03196,-0.018644,-0.03196,0.005327,0,0.02397,-0.00799,-0.042614,-0.039951,-0.055931,-0.02397,-0.01598,0.010653,0.013317,0.026634,0.010653,0.010653\n1.081329,1.081329,0.820319,0.820319,1.60335,1.395607,0.657853,0.657853,-0.194426,-0.830972,-1.187864,-1.094646,-0.338248,0.20508,0.735091,0.897557,0.612576,0.138495,-0.404833,-0.886903,-0.902883,-0.412823,0.039951,0.506041,0.644536,0.436793,0.047941,-0.20508,-0.553982,-0.601922,-0.311615,0.010653,0.010653,0.231713,0.335585,0.402169,0.23704,-0.149149,-0.330258,-0.372872,-0.354229,-0.21307,0.010653,0.303624,0.364882,0.276991,0.071911,-0.258347,-0.380862,-0.396843,-0.303624,-0.130505,0.210406,0.41815,0.407496,0.295634,-0.055931,-0.271664,-0.276991,-0.330258,-0.516694,-0.498051,0.005327,0.364882,0.41815,0.303624,0.303624,-0.157139,-0.295634,-0.306288,-0.306288,0.00799,0.021307,0.037287,0.143822,0.191763,-0.013317,-0.133169,-0.154476,-0.138495,-0.090555,-0.029297,-0.03196,-0.005327,-0.00799,-0.045277,-0.074574,-0.090555,-0.087891,-0.037287,-0.034624,-0.042614,-0.066584,-0.119852,-0.063921,-0.026634,-0.061258,-0.074574,-0.042614,-0.042614',Standing +'0.354481,0.354481,0.449142,1.223386,1.40552,0.570227,-0.423994,-0.423994,-0.116673,0.17267,0.106483,0.106483,-0.233794,-0.233794,-0.0205,-0.040412,-0.30995,-0.009097,-0.335656,-0.262709,-0.250803,-0.144425,0.03665,-0.161448,-0.319828,-0.160338,-0.135138,-0.051248,-0.116319,-0.262599,-0.284932,-0.140744,-0.057615,-0.059037,-0.279177,-0.263317,-0.048141,-0.359039,-0.201221,-0.22142,-0.176942,-0.118896,-0.146204,-0.275851,-0.135594,-0.305547,-0.165769,-0.229079,-0.229079,0.044988,0.044988,0.096336,-0.499277,-0.499277,0.308424,-0.193213,-0.44788,-0.231957,-0.106523,-0.097507,0.178333,0.111369,-0.238491,-0.168306,-0.07882,-0.103817,-0.205497,-0.144695,-0.19577,0.277353,0.036992,-0.344545,-0.300178,-0.073648,0.058264,0.03551,-0.168484,-0.277111,-0.277111,-0.209223,-0.023938,-0.298542,-0.297067,-0.113594,-0.16117,-0.197293,-0.091943,-0.171352,-0.275119,-0.209025,-0.172493,-0.137185,-0.301275,-0.123952,-0.373578,-0.133455,-0.087597,-0.231904,-0.244251,-0.128077\n-0.567671,-0.567671,-1.899854,0.230968,1.358102,2.396704,2.823122,2.823122,0.396251,-0.81918,-1.515272,-1.515272,-0.282237,-0.282237,0.26472,0.811649,0.93858,0.444254,0.434875,-0.189142,-0.471236,-0.33415,-0.054998,0.740777,1.045766,0.868768,0.473781,-0.143273,-0.615968,-0.405388,-0.006046,0.288119,0.454612,0.585681,0.392346,0.103296,-0.057876,-0.267304,-0.042114,-0.000395,0.250784,0.204997,0.160731,0.092037,0.032208,-0.024282,-0.268422,-0.38788,-0.38788,0.103846,0.103846,0.792555,1.093876,1.093876,-0.031668,-0.340163,-1.583677,-1.593612,-1.036692,-0.044372,0.789971,1.44021,1.816513,1.508121,0.612213,-0.382112,-1.239752,-1.918718,-1.556247,-0.58209,0.940502,1.890955,1.94494,1.272903,0.394778,-0.704796,-1.165762,-1.122074,-1.122074,-0.55019,0.286895,0.892768,1.146404,0.943431,0.409171,-0.276589,-1.011306,-1.150512,-0.69432,-0.006697,0.544736,0.954719,0.8337,0.269266,-0.746361,-1.426817,-1.621159,-0.871381,-0.23398,0.319523\n-0.08427,-0.08427,0.913056,-0.212025,0.322977,-1.47863,-0.975064,-0.975064,-0.148594,0.622724,1.05134,1.05134,0.522886,0.522886,0.101407,-0.198331,-0.03952,0.128043,0.229383,0.170392,0.092267,0.038027,-0.050106,0.026973,0.10361,0.102885,0.085911,0.226764,0.071893,-0.089645,-0.148217,-0.025272,0.106997,0.235111,-0.020483,0.069501,0.129152,-0.163032,-0.16695,-0.096603,0.222485,0.259617,0.033862,-0.082317,-0.195728,-0.157596,0.181285,0.377136,0.377136,-0.225769,-0.225769,-0.190162,-0.344466,-0.344466,0.060654,0.423405,0.379896,0.356848,0.109612,-0.284349,-0.446628,-0.562782,-0.534778,-0.282971,0.104526,0.377486,0.521099,0.598337,0.183644,-0.141202,-0.720605,-0.76985,-0.432716,-0.094729,0.356771,0.526889,0.37397,0.014672,0.014672,-0.189527,-0.216026,-0.294559,-0.280288,-0.078112,0.051285,0.286367,0.323055,-0.001329,-0.027272,-0.311378,-0.340295,-0.246261,0.058287,0.187416,0.195977,0.361758,0.233795,-0.04561,-0.156621,-0.261158\n-0.223723,-0.223723,0.692477,0.636546,0.68715,-0.391516,-0.266337,-0.266337,-0.138495,0.117188,-0.090555,-0.090555,-0.173119,-0.173119,-0.090555,-0.167792,0.127842,0.165129,-0.071911,0.279654,-0.02397,0.181109,-0.101208,0.010653,0.010653,-0.013317,0.042614,0.106535,-0.021307,-0.021307,-0.03196,0.045277,0.013317,0.026634,-0.130505,0.119852,0.119852,-0.074574,-0.042614,-0.138495,0.063921,0.005327,-0.01598,0.021307,0.002663,-0.002663,0.223723,0.287644,0.287644,-0.034624,-0.034624,0.20508,-0.127842,-0.127842,-0.018644,0.034624,0.146486,0.223723,0.181109,0.26101,0.476744,0.306288,0.021307,-0.050604,-0.215733,-0.242367,-0.194426,-0.02397,0.018644,0.239704,0.039951,0.106535,0.194426,0.058594,-0.034624,-0.199753,-0.25302,-0.162466,-0.162466,0.01598,0.170456,0.010653,-0.026634,-0.045277,-0.199753,-0.133169,-0.090555,-0.154476,-0.047941,-0.050604,-0.039951,-0.093218,-0.130505,-0.22106,-0.223723,0.037287,-0.053267,0.095881,0.175783,0.25302\n-0.247694,-0.247694,0.149149,0.149149,0.548655,0.601922,0.22905,0.22905,-0.340912,-0.412823,-0.282318,-0.282318,0.114525,0.114525,0.173119,0.133169,-0.026634,-0.018644,0.029297,0.013317,0.026634,0.018644,-0.00799,-0.047941,-0.029297,0.010653,0.010653,0.026634,0.069248,0.018644,-0.010653,-0.055931,-0.079901,-0.042614,0.066584,0.00799,0.066584,0.047941,0,-0.010653,-0.069248,-0.010653,0.050604,0.053267,0.026634,-0.039951,-0.117188,-0.074574,-0.074574,0.063921,0.063921,0.005327,-0.029297,-0.029297,-0.122515,-0.095881,0.01598,0.074574,0.146486,0.194426,0.135832,0.042614,-0.103872,-0.151812,-0.149149,-0.095881,-0.029297,0.103872,0.210406,0.191763,0.125179,-0.095881,-0.183773,-0.22106,-0.189099,-0.013317,0.103872,0.146486,0.146486,0.082565,0.01598,-0.002663,-0.045277,-0.085228,-0.055931,-0.026634,0.093218,0.149149,0.146486,0.085228,0.002663,-0.093218,-0.098545,-0.021307,0.00799,0.021307,0.074574,0.047941,0.01598,-0.02397\n0.050604,0.050604,0.849616,1.249122,1.278419,0.902883,0.255684,0.255684,-0.814992,-0.90022,-0.553982,-0.553982,0.335585,0.335585,0.340912,0.330258,0.077238,-0.159802,-0.202416,-0.335585,-0.141159,0.133169,0.332922,0.420813,0.178446,-0.130505,-0.314278,-0.404833,-0.24503,0.106535,0.181109,0.178446,0.159802,0.066584,-0.058594,-0.22106,-0.20508,-0.010653,0.066584,0.127842,0.042614,-0.002663,-0.02397,-0.090555,-0.114525,-0.122515,-0.141159,-0.095881,-0.095881,0.346238,0.346238,0.199753,-0.231713,-0.231713,-0.631219,-0.572625,-0.41815,-0.02397,0.428803,0.748408,0.660516,0.545991,0.194426,-0.250357,-0.599259,-0.772378,-0.729764,-0.276991,0.279654,0.649863,0.974794,0.599259,0.002663,-0.391516,-0.652526,-0.604586,-0.282318,0.034624,0.034624,0.322268,0.545991,0.4581,0.146486,-0.173119,-0.375536,-0.545991,-0.404833,-0.061258,0.303624,0.394179,0.383526,0.154476,-0.215733,-0.48207,-0.607249,-0.564635,-0.191763,0.346238,0.447447,0.41815',Standing +'-1.182602,-0.765368,-0.519464,0.076611,1.375376,1.887386,1.887386,0.077545,0.257677,0.538609,0.180821,0.068645,0.068645,-0.418919,-0.526638,0.102101,-0.042577,0.171275,0.102192,0.111844,0.208179,-0.012074,-0.059907,-0.318615,-0.307559,-0.199445,0.232118,0.39544,-0.047093,0.016644,0.036844,0.132076,-0.202972,-0.179331,-0.225283,-0.225283,-0.019672,-0.176466,0.19171,0.19171,-0.049586,0.092793,0.092793,-0.15107,-0.15107,-0.177807,-0.147135,-0.145269,0.074619,-0.06667,-0.109621,-0.101725,0.032536,-0.167924,-0.229441,-0.314542,-0.284413,-0.011115,-0.111608,-0.117218,0.015032,-0.049334,0.034427,-0.128616,-0.127677,-0.135219,-0.260233,-0.260233,0.106299,0.030081,-0.073229,-0.052023,-0.052023,-0.0901,-0.0901,-0.18127,-0.180374,-0.147104,-0.318691,-0.029968,-0.126451,-0.190463,-0.285295,-0.143456,-0.175885,-0.151098,-0.170092,-0.002563,-0.14102,-0.275569,-0.195436,-0.069654,-0.076682,-0.058164,-0.222662,-0.262798,-0.31357,-0.228093,-0.228093,-0.078168\n-0.612973,-2.759566,-3.213704,-1.247078,0.449749,1.78333,1.78333,3.121093,2.221178,0.969416,-0.235399,-1.640688,-1.640688,-2.072745,-1.608385,-0.367015,0.601473,1.358792,1.840178,2.024591,1.426472,0.649139,-0.048731,-0.80433,-0.971292,-0.79234,-0.155143,0.632663,1.523036,1.797142,1.47189,1.055956,0.242692,-0.388969,-1.088947,-1.088947,-0.897407,-0.259366,1.068344,1.068344,1.645809,1.061337,1.061337,-0.227273,-0.227273,-0.57573,-0.75277,-0.225998,0.257912,0.715346,1.093186,1.040357,0.832954,0.44135,0.017798,-0.323648,-0.697914,-0.611517,-0.049082,0.529866,0.959711,1.225296,0.994766,0.598653,0.08945,-0.565987,-0.776687,-0.776687,-0.147807,0.549836,0.976165,1.214137,1.214137,0.474574,0.474574,-0.218472,-0.663734,-0.712195,-0.361269,-0.112717,0.422842,0.889979,0.900746,0.629506,0.270785,-0.165716,-0.516425,-0.530248,-0.117246,0.35164,0.750876,0.768922,0.633864,0.316045,-0.002714,-0.353974,-0.387139,-0.26743,-0.26743,0.416317\n0.16745,0.41476,0.907956,-0.261286,-0.759054,0.734692,0.734692,-0.016259,0.02257,0.098819,0.491984,0.539256,0.539256,0.304407,0.170324,0.029418,-0.011977,-0.071789,-0.066658,0.245688,0.317383,0.188152,0.171493,0.137054,0.177163,0.05326,0.09367,0.105657,-0.142311,0.036816,0.012015,0.07703,0.136794,0.208104,0.210728,0.210728,0.119193,-0.060101,-0.080264,-0.080264,-0.164227,-0.077956,-0.077956,0.235424,0.235424,0.226462,0.128816,0.010461,-0.097371,-0.152931,0.061191,-0.059209,-0.002655,0.102857,0.101209,0.085582,0.118274,0.109981,-0.024184,-0.047615,-0.087052,-0.058811,0.0688,0.079876,0.074307,0.093075,0.123134,0.123134,-0.021901,-0.040665,-0.223213,-0.07022,-0.07022,0.176528,0.176528,0.147599,0.162129,0.041921,0.06281,-0.044815,-0.111732,0.01949,-0.119356,0.025734,0.041915,0.12916,0.093275,0.024308,-0.165455,-0.182309,-0.143535,-0.050003,0.033285,0.103516,0.209138,0.053371,-0.111106,-0.117719,-0.117719,-0.012027\n-0.276991,-0.508704,-0.077238,0.167792,0.362219,0.391516,0.391516,0.103872,-0.183773,-0.151812,-0.122515,-0.362219,-0.362219,-0.372872,-0.042614,-0.058594,0.367545,0.652526,0.308951,0.170456,-0.066584,-0.364882,-0.346238,-0.191763,0.029297,0.21307,0.354229,0.306288,0.183773,0.162466,-0.090555,-0.23704,-0.274327,-0.165129,-0.114525,-0.114525,0.018644,0.194426,0.287644,0.287644,0.053267,-0.066584,-0.066584,-0.087891,-0.087891,-0.135832,-0.050604,0.082565,0.098545,0.141159,0.130505,-0.202416,-0.109198,-0.154476,-0.242367,-0.239704,0.01598,0.071911,0.053267,0.165129,0.098545,-0.034624,-0.095881,-0.282318,-0.247694,-0.170456,0,0,0.178446,0.138495,0.01598,0.074574,0.074574,-0.199753,-0.199753,-0.269001,-0.149149,-0.119852,0.082565,0.106535,0.106535,0.218397,-0.03196,-0.047941,-0.093218,-0.018644,0.02397,0.047941,0.018644,0.138495,0.039951,0.039951,-0.053267,-0.047941,-0.053267,-0.122515,-0.069248,0.053267,0.053267,0.039951\n-0.082565,-0.114525,-0.26101,-0.066584,-0.173119,-0.316941,-0.316941,-0.029297,-0.01598,-0.058594,-0.039951,0.055931,0.055931,0.159802,0.109198,-0.00799,-0.090555,-0.101208,-0.133169,-0.090555,-0.042614,0.095881,0.127842,0.095881,0.074574,0.039951,-0.045277,-0.053267,-0.055931,-0.039951,-0.02397,-0.002663,0.03196,0.050604,0.069248,0.069248,0.055931,0,-0.050604,-0.050604,-0.063921,-0.071911,-0.071911,-0.026634,-0.026634,0.055931,0.053267,0.037287,0.021307,-0.018644,-0.039951,0.029297,-0.039951,-0.02397,0.01598,0.02397,0,0.010653,-0.005327,-0.039951,-0.039951,-0.047941,-0.042614,0.010653,0.021307,0.029297,0.013317,0.013317,0,0.018644,0.002663,-0.069248,-0.069248,-0.002663,-0.002663,0.03196,0.047941,0.085228,0.045277,0.029297,-0.029297,-0.061258,0.010653,-0.010653,0.002663,-0.005327,0.039951,0.045277,0.034624,-0.002663,-0.018644,-0.058594,-0.047941,-0.029297,0,0.079901,0.061258,-0.021307,-0.021307,-0.03196\n-0.21307,-0.42614,0.215733,0.953487,1.355657,1.307716,1.307716,0.00799,-0.596595,-1.033389,-1.049369,-0.822982,-0.822982,-0.290308,0.181109,0.753734,0.769715,0.6472,0.514031,0.037287,-0.335585,-0.540665,-0.588605,-0.527348,-0.279654,0.165129,0.447447,0.607249,0.561972,0.165129,-0.074574,-0.399506,-0.572625,-0.551318,-0.255684,-0.255684,0.058594,0.44212,0.498051,0.498051,-0.010653,-0.303624,-0.303624,-0.487397,-0.487397,-0.234377,-0.069248,0.24503,0.370209,0.380862,0.199753,0.02397,-0.157139,-0.322268,-0.324931,-0.274327,-0.202416,0.063921,0.375536,0.370209,0.311615,0.157139,-0.159802,-0.284981,-0.394179,-0.322268,-0.125179,-0.125179,0.343575,0.45011,0.372872,0.02397,0.02397,-0.314278,-0.314278,-0.370209,-0.346238,-0.039951,0.181109,0.215733,0.404833,0.271664,0.045277,-0.157139,-0.274327,-0.327595,-0.159802,0.050604,0.263674,0.292971,0.223723,0.050604,-0.090555,-0.20508,-0.247694,-0.135832,-0.018644,0.111862,0.111862,0.226387',Standing +'1.275129,1.275129,-0.273185,-0.234064,-0.234064,-0.08682,-0.08682,-0.285447,-0.397809,-0.258807,-0.284515,-0.284515,-0.234468,-0.234468,-0.268925,-0.03672,-0.295683,-0.226264,-0.308082,-0.481504,-0.422877,-0.256873,-0.0942,-0.388251,-0.521493,-0.11293,0.086415,-0.189809,-0.02857,-0.011164,-0.213276,0.065457,-0.711936,-0.306384,-0.356402,-0.438377,-0.481229,-0.224228,-0.650153,-0.42149,-0.429771,-0.429771,-0.79092,-0.79092,0.145446,0.145446,0.030372,-0.343649,-0.205878,-0.295638,-0.375838,-0.212332,0.024776,-0.52556,-0.316925,0.256426,-0.341897,-0.171562,-0.476094,-0.437616,-0.303158,-0.315553,-0.279466,-0.27387,-0.339594,-0.223562,-0.298937,-0.180058,-0.241002,-0.362644,-0.358143,-0.279133,-0.206306,-0.383954,-0.383954,-0.385378,-0.194047,-0.267728,-0.267728,-0.312299,-0.506422,-0.414644,-0.236154,-0.359411,-0.238059,-0.243248,-0.299604,-0.292738,-0.344855,-0.321998,-0.271437,-0.259741,-0.251078,-0.30251,-0.387628,-0.386089,-0.424644,-0.169657,-0.255162,-0.265398\n-1.024406,-1.024406,0.095152,0.695333,0.695333,0.697065,0.697065,0.387877,-0.15823,-0.029024,-0.136657,-0.136657,0.770563,0.770563,0.961417,0.712196,0.485605,0.207687,-0.01474,-0.123028,0.015338,-0.119501,-0.049417,0.084633,0.266271,0.480776,0.718513,1.022688,0.5545,0.320955,-0.008762,0.315886,0.164339,0.395735,-0.090411,0.257227,0.100725,0.027567,0.023029,-0.119197,-0.136964,-0.136964,0.179722,0.179722,0.012338,0.012338,0.193834,0.472174,0.404022,0.466111,0.337509,0.141064,0.089919,-0.043917,0.098978,0.164475,0.162684,0.350587,0.094594,0.026901,-0.003947,0.127021,0.205443,0.048096,0.112299,0.184046,0.14021,0.107162,0.062775,0.063926,0.081516,0.122196,0.118551,0.069393,0.069393,0.092816,0.093117,0.12575,0.12575,0.139151,-0.016336,0.335089,0.281999,0.204557,0.111932,-0.00175,-0.026115,0.039393,0.080325,0.143213,0.115858,0.153096,0.082536,0.068425,0.063055,0.117006,0.049007,0.111673,0.143052,0.092561\n-0.545722,-0.545722,0.023203,0.202313,0.202313,-0.113039,-0.113039,0.243466,0.268794,0.333772,0.243062,0.243062,-0.014735,-0.014735,-0.017704,-0.03367,0.194873,0.317107,0.191469,0.06093,-0.023502,-0.046631,-0.014896,-0.084322,-0.119896,-0.362063,-0.34941,-0.016507,-0.155168,-0.082405,0.019989,-0.112936,-0.189704,0.171822,0.058995,0.377049,0.323226,0.371539,0.303666,0.455961,0.216119,0.216119,-0.319724,-0.319724,0.234106,0.234106,0.331308,0.322635,-0.253649,-0.514895,-0.971116,-0.904236,-0.634703,-0.547382,-0.213616,-0.178805,0.069971,0.345789,0.445751,0.355834,0.071251,-0.031268,-0.031667,0.065238,0.073998,0.077257,-0.037981,0.010125,-0.042314,-0.002369,-0.03735,-0.005964,-0.01363,-0.019881,-0.019881,-0.061532,-0.087735,-0.017743,-0.017743,0.059203,-0.093984,0.007545,-0.056648,0.065247,0.079209,0.035529,-0.008905,-0.053429,-0.049445,-0.000345,0.01576,0.066332,-0.023296,-0.009664,0.023152,-0.044389,-0.020808,-0.072994,-0.036449,0.039115\n-0.463427,-0.463427,0.042614,0.274327,0.274327,0,0,0.085228,0.074574,0.119852,0.103872,0.103872,0.053267,0.053267,0.069248,0.010653,-0.010653,-0.074574,-0.01598,-0.026634,-0.01598,0.117188,0.292971,0.284981,0.407496,0.269001,0.106535,0.050604,-0.058594,-0.002663,-0.053267,-0.117188,-0.218397,0.170456,-0.19709,0,-0.02397,0.03196,-0.090555,0.111862,0.039951,0.039951,0.071911,0.071911,0.274327,0.274327,0.402169,0.431466,0.338248,0.487397,0.125179,0.271664,0.122515,-0.039951,-0.122515,-0.340912,-0.189099,-0.106535,-0.047941,-0.071911,-0.010653,-0.03196,-0.01598,0.021307,-0.002663,0.00799,0,0.058594,0.026634,0.03196,0.013317,0.055931,0.026634,0.029297,0.029297,-0.00799,-0.026634,-0.03196,-0.03196,-0.021307,-0.079901,0.002663,-0.002663,0,0.002663,0.002663,-0.021307,-0.02397,-0.042614,-0.034624,-0.018644,-0.005327,-0.02397,-0.00799,0.002663,0,-0.010653,-0.029297,0.002663,0.039951\n-0.367545,-0.367545,-0.109198,-0.069248,-0.069248,0.050604,0.050604,-0.034624,-0.058594,0.002663,-0.010653,-0.010653,0.00799,0.00799,0.018644,-0.02397,-0.005327,0.010653,0.037287,0.055931,0.002663,-0.050604,-0.138495,-0.207743,-0.22106,-0.159802,-0.159802,-0.005327,0.029297,0.103872,0.141159,0.234377,0.109198,0.141159,0.122515,0.114525,0.170456,0.207743,0.21307,0.173119,0.173119,0.173119,-0.149149,-0.149149,-0.410159,-0.410159,-0.338248,-0.226387,-0.058594,-0.069248,-0.074574,-0.19709,-0.135832,-0.01598,0.077238,0.149149,-0.013317,0.01598,0.010653,0.082565,0.071911,0.034624,-0.010653,-0.039951,-0.005327,-0.013317,0.00799,-0.013317,0.005327,0,-0.01598,-0.047941,-0.042614,0,0,0.029297,-0.018644,-0.002663,-0.002663,0,-0.010653,-0.026634,-0.047941,-0.021307,0.010653,0.005327,0.01598,0.018644,-0.010653,-0.002663,-0.013317,-0.00799,0,0.013317,0.005327,0,-0.005327,-0.013317,-0.00799,0\n-0.159802,-0.159802,0.183773,0.143822,0.143822,0,0,-0.021307,0.005327,0.061258,0.189099,0.189099,0.23704,0.23704,0.090555,-0.103872,-0.20508,-0.207743,-0.135832,-0.045277,0.055931,0.077238,0.119852,0.175783,0.063921,0.02397,0.122515,0.087891,-0.034624,-0.117188,-0.039951,0.029297,0.053267,-0.063921,0.01598,-0.013317,-0.066584,-0.002663,0.119852,0.090555,-0.005327,-0.005327,-0.037287,-0.037287,-0.063921,-0.063921,-0.058594,0.01598,-0.045277,-0.047941,-0.053267,-0.093218,-0.063921,-0.005327,0.095881,0.157139,0.098545,0.034624,0.037287,-0.03196,-0.00799,0.042614,0.021307,0.047941,0.045277,0.034624,-0.005327,-0.029297,-0.005327,0.013317,0.021307,0,-0.02397,-0.018644,-0.018644,-0.00799,-0.002663,0.021307,0.021307,0.013317,0.175783,0.077238,0.005327,-0.045277,-0.109198,-0.061258,-0.037287,-0.010653,0.018644,0.01598,0.010653,0.00799,-0.00799,-0.013317,0.005327,0,-0.00799,-0.01598,0.010653,-0.010653',Standing +'-0.352746,-0.352746,-1.354561,-0.39901,-0.091743,-0.091743,-0.259398,0.105545,-0.405354,-0.405354,-0.773283,-0.125913,0.590843,0.043675,0.05248,-0.268783,-0.268783,-0.31714,-0.257647,-0.167861,-0.720778,0.005733,-0.278175,-0.129369,-0.354962,-0.140709,-0.055149,-0.189917,-0.171494,-0.214722,-0.230438,-0.277403,-0.294382,0.283431,0.283431,-0.103843,-0.041762,-0.078393,0.05533,0.05533,0.161751,-0.215248,-0.297298,-0.297298,-0.246337,-0.377341,-0.1676,-0.029194,-0.538037,-0.059827,-0.059827,-0.026793,0.015836,-0.21174,-0.411262,-0.059191,-0.034379,-0.302659,-0.234915,-0.030396,-0.089234,-0.132011,-0.249438,-0.301152,-0.303371,-0.303371,-0.354171,0.016218,0.00653,-0.13079,-0.099052,-0.066326,-0.066326,-0.349358,-0.349358,-0.121834,-0.121834,-0.072183,-0.006243,-0.127099,-0.128575,-0.10132,-0.0252,-0.312169,-0.265656,-0.314512,0.066525,-0.088958,-0.01897,-0.015874,-0.077312,-0.199307,-0.257675,-0.219304,-0.163367,-0.163367,-0.323758,-0.282924,-0.074693,-0.122423\n0.316845,0.316845,0.490525,-0.174803,-0.206126,-0.206126,0.855961,0.291324,0.521735,0.521735,0.342125,-0.166275,0.463969,0.878513,1.236826,0.087513,0.087513,-0.756926,-1.095265,-0.369542,-0.029202,0.031204,0.466772,0.035935,0.257164,0.279706,0.208886,0.016278,0.11246,0.099716,0.215482,-0.231965,-0.925613,-0.556281,-0.556281,0.484122,0.737429,0.621714,0.225635,0.225635,0.489419,0.590555,-0.763151,-0.763151,-1.139063,-0.965844,-0.427807,0.047023,0.799596,1.233708,1.233708,0.878057,0.11435,-0.490287,-0.901134,-0.893514,-0.449726,0.311397,0.823007,1.017084,0.836456,0.434986,-0.274478,-0.749703,-0.809674,-0.809674,-0.610202,0.612814,0.979348,0.969779,0.650915,0.084201,0.084201,-0.660247,-0.660247,-0.38072,-0.38072,0.214615,0.693144,1.000657,0.676621,0.398902,-0.169901,-0.625339,-0.83582,-0.648596,-0.174571,0.267475,0.614371,0.870164,0.871462,0.424898,-0.2326,-0.702657,-0.881745,-0.881745,-0.545706,-0.082683,0.988984,1.046733\n-0.473779,-0.473779,1.454261,1.292074,1.716458,1.716458,-0.035839,-0.536518,-0.72705,-0.72705,-0.526167,-0.557201,-0.297499,-0.121024,0.00304,0.386213,0.386213,0.246487,0.447195,0.289039,-0.076248,0.115881,0.398636,0.34664,0.205118,0.314202,0.264206,0.290992,0.229969,-0.030293,0.113418,0.175547,0.608145,-0.043443,-0.043443,-0.407536,0.256615,0.240126,0.229044,0.229044,0.016876,-0.257388,-0.040495,-0.040495,-0.150753,0.18899,0.548494,0.29511,-0.193906,0.12494,0.12494,0.516188,0.418607,0.176305,0.076025,-0.000276,-0.386592,-0.381403,0.094574,0.277275,0.483143,0.288883,-0.068279,-0.19063,-0.219816,-0.219816,-0.090473,-0.039039,0.188822,0.434133,0.411,0.020676,0.020676,-0.279392,-0.279392,0.069619,0.069619,0.019279,0.059673,-0.039853,0.017934,0.11463,0.103492,0.118219,-0.056341,-0.067094,-0.086348,0.022025,0.189496,0.026066,0.070215,-0.009135,0.037349,0.10263,-0.01669,-0.01669,-0.105972,-0.1193,-0.055604,0.099673\n-0.327595,-0.327595,-0.269001,0.151812,-0.215733,-0.215733,0.047941,0.631219,0.577952,0.577952,0.516694,0.596595,0.215733,-0.090555,-0.436793,-0.178446,-0.178446,-0.556645,0.002663,-0.324931,0.002663,0.255684,0.101208,0.071911,-0.02397,0.138495,0.026634,0.029297,0,-0.242367,-0.021307,0.117188,0.119852,0.23704,0.23704,0.093218,0.130505,0.00799,-0.013317,-0.013317,-0.26101,-0.551318,-0.181109,-0.181109,-0.324931,-0.162466,0.274327,0.165129,-0.292971,-0.03196,-0.03196,0.106535,0.042614,0.021307,0.186436,0.098545,-0.095881,-0.106535,0.082565,0,-0.00799,-0.071911,-0.082565,-0.03196,-0.005327,-0.005327,0.061258,0.042614,-0.071911,-0.026634,-0.026634,-0.141159,-0.141159,-0.029297,-0.029297,0.093218,0.093218,0.103872,0.095881,-0.039951,-0.079901,-0.053267,-0.122515,-0.053267,-0.026634,0.002663,-0.002663,0.119852,0.189099,-0.042614,-0.053267,-0.143822,-0.02397,0.005327,0.066584,0.066584,0.050604,0.055931,0.042614,0.069248\n0.106535,0.106535,0.021307,-0.226387,-0.266337,-0.266337,0.002663,-0.005327,-0.00799,-0.00799,-0.175783,-0.22905,-0.322268,-0.039951,0.133169,0.095881,0.095881,0.079901,0.119852,0.082565,-0.005327,-0.181109,-0.095881,-0.002663,0.010653,-0.079901,0.013317,-0.005327,0.098545,0.002663,0.005327,0.050604,0.269001,0.114525,0.114525,-0.162466,-0.111862,-0.018644,0.00799,0.00799,0.095881,0.066584,0.079901,0.079901,0.098545,-0.053267,-0.210406,0.002663,0.053267,-0.165129,-0.165129,-0.103872,0.071911,0.130505,0.109198,0.087891,0.02397,-0.138495,-0.210406,-0.122515,-0.055931,0.149149,0.157139,0.151812,-0.013317,-0.013317,-0.061258,-0.167792,-0.207743,-0.143822,0.066584,0.165129,0.165129,0.037287,0.037287,-0.063921,-0.063921,-0.058594,-0.071911,-0.010653,-0.00799,0.013317,0.00799,0.069248,0.071911,0.034624,-0.045277,-0.101208,-0.045277,0.018644,0.013317,0.066584,0.050604,0.066584,0.066584,0.066584,0.00799,-0.045277,-0.138495,-0.114525\n0.19709,0.19709,0.460763,0.231713,0.247694,0.247694,0.375536,0.431466,0.444783,0.444783,0.165129,0.146486,0.292971,0.396843,0.165129,-0.4581,-0.4581,-0.346238,-0.194426,0.191763,0.199753,0.013317,0.143822,0.159802,0.159802,0.005327,-0.045277,-0.026634,-0.018644,0.005327,-0.053267,-0.122515,-0.00799,0.149149,0.149149,0.484734,0.018644,-0.138495,-0.218397,-0.218397,-0.178446,-0.247694,-0.471417,-0.471417,-0.207743,0.223723,0.319605,0.471417,0.697804,0.101208,0.101208,-0.239704,-0.479407,-0.463427,-0.375536,-0.013317,0.375536,0.522021,0.388852,0.130505,-0.087891,-0.351565,-0.41815,-0.295634,0.013317,0.013317,0.165129,0.378199,0.316941,-0.002663,-0.274327,-0.375536,-0.375536,-0.141159,-0.141159,0.266337,0.266337,0.351565,0.295634,0.151812,-0.111862,-0.247694,-0.316941,-0.290308,-0.138495,0.093218,0.292971,0.330258,0.226387,0.194426,-0.090555,-0.255684,-0.359555,-0.308951,-0.119852,-0.119852,0.226387,0.356892,0.263674,-0.02397',Standing +'0.498121,0.498121,0.196889,0.197611,0.79492,-0.214598,0.369191,0.046876,-0.044214,0.281059,0.353456,0.353456,-0.281453,-0.264547,-0.264547,0.27778,0.079159,-0.031384,-0.047793,-0.057775,-0.096365,-0.091258,-0.222105,-0.481608,-0.666123,-0.06861,0.150496,-0.459376,0.123799,0.132229,0.226874,0.009143,0.07648,-0.285672,-0.809534,-0.672227,-0.19762,0.979739,0.979739,-0.2008,-0.389243,-0.441896,-0.441896,-0.805763,-0.157444,-0.157444,-0.182124,-0.552313,-0.072102,0.039155,0.013107,-0.311895,-0.253463,-0.097621,-0.119917,-0.183543,-0.221142,-0.292968,-0.109196,-0.258317,-0.294173,-0.152707,-0.158371,-0.214009,-0.179775,-0.253349,-0.173012,-0.125302,-0.125302,-0.225616,-0.225616,-0.228758,-0.227813,-0.239656,-0.239656,-0.144392,-0.180938,-0.285091,-0.253446,-0.240472,-0.146404,-0.267722,-0.180161,-0.119017,-0.170581,-0.169251,-0.120577,-0.262968,-0.162827,-0.104403,-0.11081,-0.073386,-0.089558,-0.160337,-0.197904,-0.197904,-0.166439,-0.244583,-0.142257,-0.159682\n0.031305,0.031305,-3.122323,-0.657916,0.594167,1.745865,2.781131,2.413247,1.49296,0.609349,-0.199718,-0.199718,-1.247763,-1.397279,-1.397279,-0.741454,0.552589,1.376288,1.730594,1.419972,0.955393,0.218785,-0.520094,-1.067092,-1.179689,-0.808977,-0.137042,0.208712,0.952902,0.949947,1.112509,1.030921,0.353147,-0.718806,-1.784994,-1.419091,-0.786783,-0.039342,-0.039342,1.885549,2.101824,0.755963,0.755963,-0.020347,-0.38502,-0.38502,-0.527916,-0.201907,-0.665279,-0.348799,0.040411,-0.032853,1.456758,0.618445,1.432042,-0.234144,0.439956,-0.632501,-0.473071,-0.249461,0.205158,0.429147,0.367362,0.256286,0.096458,-0.128508,-0.088737,-0.149484,-0.149484,0.233916,0.233916,0.188251,0.077201,0.060497,0.060497,0.107493,-0.011041,0.069474,0.097473,0.059445,0.016953,0.283809,0.222503,0.205607,0.146808,0.053932,0.074262,0.154351,0.00543,0.180894,0.171515,0.236028,0.205917,0.155491,0.119293,0.119293,0.165437,0.055301,0.10359,0.17637\n-0.358509,-0.358509,0.258171,-0.375935,0.59618,0.254832,-0.295107,0.046658,0.220183,0.384002,0.209102,0.209102,0.064102,0.081614,0.081614,-0.02015,-0.010349,-0.114497,-0.02531,-0.157048,-0.168171,0.078506,0.16666,0.100744,0.046505,-0.341347,-1.019972,-0.135652,0.496571,0.089366,-0.396661,-0.575975,-0.514796,-0.378339,-0.089946,0.477517,0.821994,0.283662,0.283662,-0.030066,0.079784,0.539823,0.539823,0.460547,-0.127711,-0.127711,-0.015587,0.183097,-0.089553,-0.463509,-0.455578,-1.08388,-0.276385,-0.53795,0.237819,0.018426,0.569769,0.436691,0.359625,0.037072,-0.058907,-0.113962,-0.089094,-0.051915,0.058863,0.031873,0.088984,0.049243,0.049243,-0.027767,-0.027767,-0.002138,0.045337,0.103765,0.103765,0.097735,-0.001513,0.037553,0.054985,0.112925,0.106829,0.136649,0.108853,0.065672,0.046222,-0.055189,-0.003787,0.097083,0.027312,0.077444,0.081405,0.039358,-0.011806,0.038719,0.074502,0.074502,0.068511,0.048212,0.107599,0.12659\n0.047941,0.047941,0.143822,0.383526,0.484734,0.010653,0.045277,0.258347,-0.21307,-0.061258,-0.226387,-0.226387,-0.303624,0.151812,0.151812,0.218397,0.20508,0.319605,0.25302,0.03196,-0.013317,-0.085228,-0.117188,-0.103872,0.165129,0.383526,-0.218397,0.22106,0.271664,0.130505,-0.127842,-0.319605,-0.508704,-0.340912,-0.351565,-0.021307,-0.037287,0.66318,0.66318,0.178446,-0.141159,0.047941,0.047941,-0.066584,-0.330258,-0.330258,-0.173119,0.026634,0.117188,0.069248,-0.042614,-1.12128,0.362219,-0.945497,-0.133169,0.820319,0.543328,0.239704,0.093218,0.101208,-0.106535,-0.010653,0.02397,-0.02397,0.053267,-0.037287,-0.01598,0.021307,0.021307,0.005327,0.005327,0.005327,-0.018644,-0.039951,-0.039951,-0.034624,-0.053267,-0.02397,-0.010653,-0.013317,-0.055931,0.018644,0.03196,0.047941,-0.013317,0.018644,0.03196,0.037287,0.061258,0.053267,0.055931,-0.002663,0.018644,-0.01598,-0.039951,-0.039951,-0.02397,0,0.01598,0.03196\n-0.119852,-0.119852,0.01598,0.109198,-0.018644,0.106535,-0.266337,-0.114525,-0.037287,-0.061258,0.063921,0.063921,0.077238,0.071911,0.071911,-0.037287,-0.082565,-0.109198,-0.082565,-0.018644,-0.029297,-0.053267,-0.021307,0,-0.066584,-0.194426,-0.135832,-0.386189,-0.21307,0.101208,0.151812,0.231713,0.215733,0.292971,0.276991,0.162466,0.234377,0.194426,0.194426,0.372872,0.146486,-0.114525,-0.114525,-0.109198,-0.255684,-0.255684,-0.274327,-0.207743,-0.055931,0.02397,0.021307,0.207743,0.029297,-0.02397,-0.055931,-0.039951,-0.122515,-0.010653,0.071911,0.098545,0.066584,0.037287,0.037287,0.021307,0.010653,0.02397,0.021307,0.037287,0.037287,0.042614,0.042614,0.045277,0.00799,0.005327,0.005327,0.02397,0.042614,0.018644,0,-0.013317,-0.045277,-0.002663,0,0.005327,0.018644,-0.002663,-0.01598,-0.010653,0.018644,-0.055931,-0.00799,-0.002663,0,-0.013317,0,0,-0.002663,0.002663,0,-0.005327\n0.005327,0.005327,0.010653,0.783032,0.966804,1.15324,0.814992,0.19709,-0.42614,-0.751071,-0.775041,-0.775041,-0.569962,0.098545,0.098545,0.564635,0.825646,0.524684,0.20508,-0.122515,-0.362219,-0.532675,-0.545991,-0.311615,-0.173119,-0.079901,0.303624,0.524684,0.21307,0.037287,-0.058594,-0.279654,-0.524684,-0.665843,-0.4581,0.03196,0.404833,0.516694,0.516694,0.572625,0.335585,-0.455437,-0.455437,-0.543328,-0.066584,-0.066584,-0.01598,0.03196,-0.079901,0.178446,0.332922,0.569962,0.274327,0.207743,-0.19709,-0.356892,-0.338248,-0.186436,-0.071911,0.130505,0.22106,0.079901,-0.021307,-0.077238,-0.101208,-0.074574,-0.042614,0.013317,0.013317,0.03196,0.03196,0.002663,-0.021307,-0.029297,-0.029297,-0.021307,-0.021307,-0.021307,-0.00799,-0.010653,0.103872,0.018644,-0.063921,-0.055931,-0.061258,-0.079901,-0.03196,-0.013317,0,0,-0.00799,-0.005327,-0.037287,-0.01598,-0.00799,-0.00799,-0.010653,-0.034624,-0.005327,0',Standing +'0.12616,0.12616,1.771871,-0.385448,-0.449193,-0.512895,0.211238,0.068329,0.404045,-0.212038,-0.261788,-0.163802,-0.163802,-0.122132,-0.45256,-0.064962,-0.064962,-0.109614,-0.109614,-0.255775,-0.174199,-0.285629,-0.155128,-0.155355,-0.281693,-0.323946,-0.287358,-0.305804,-0.41145,-0.311174,-0.165895,-0.218438,-0.196727,-0.075187,-0.103146,-0.120801,-0.174341,-0.175216,-0.323867,-0.535218,-0.026192,-0.110529,-0.222159,-0.117324,-0.314389,-0.35477,-0.273753,-0.1642,-0.1642,-0.261184,-0.261184,-0.432939,-0.273792,-0.202221,-0.192461,-0.235611,-0.153251,-0.299267,-0.29304,-0.193246,-0.231155,-0.321278,-0.017144,-0.273471,-0.279102,-0.327347,-0.252375,-0.299655,-0.245752,-0.252863,-0.252177,-0.264621,-0.285836,-0.275072,-0.066422,-0.066422,-0.221842,-0.229497,-0.262652,-0.262652,-0.280528,-0.280528,-0.314614,-0.252948,-0.217541,-0.305393,-0.25953,-0.281425,-0.281688,-0.057034,-0.33469,-0.327433,-0.364288,-0.312819,-0.138288,-0.189435,-0.311585,-0.21587,-0.207062,-0.235818\n0.102733,0.102733,-3.798484,-4.914174,-4.127277,-2.520357,-1.207536,1.024725,2.467821,2.231884,1.430993,0.008084,0.008084,-0.421656,-0.172905,-0.572621,-0.572621,-0.095502,-0.095502,0.245206,0.582805,0.823517,0.7996,0.709727,0.427,0.207506,-0.390195,-0.810872,-0.699228,-0.416881,0.319476,0.548834,0.856216,0.946712,0.722065,0.454074,0.159841,-0.16839,-0.321255,-0.588475,-0.900748,-0.440846,0.082221,0.642437,1.141396,1.200476,0.854621,0.21122,0.21122,-0.442705,-0.442705,-0.655531,-0.625641,-0.29861,0.225269,0.658901,0.67,0.47142,0.310013,-0.040923,-0.284487,-0.391295,-0.153526,0.081306,0.36833,0.545232,0.617996,0.364083,0.16557,-0.190445,-0.515214,-0.407464,-0.124957,0.133324,0.512231,0.512231,0.666267,0.306601,-0.037317,-0.037317,-0.468615,-0.468615,-0.344016,0.106786,0.330401,0.548024,0.511608,0.353397,0.125511,0.002533,-0.068719,-0.356771,-0.510886,-0.307777,0.048325,0.413234,0.783459,0.800464,0.531724,0.038644\n0.308964,0.308964,0.141369,-0.980509,-0.153962,0.708567,0.599297,0.784355,0.864372,0.348638,0.281453,0.488723,0.488723,0.595556,0.369766,0.225191,0.225191,0.187136,0.187136,0.058241,0.25477,0.185125,0.040052,0.059316,0.09895,0.271097,0.260778,0.179242,0.005104,-0.142046,-0.016202,0.006282,0.176199,-0.053712,-0.214836,-0.172695,-0.065699,0.135022,0.134009,0.225224,0.041844,0.225577,-0.230258,-0.322891,-0.323611,-0.262403,-0.112434,0.132551,0.132551,0.128321,0.128321,0.11847,0.044032,-0.127468,-0.158489,-0.102727,-0.024202,-0.002403,0.026126,0.020602,0.104679,0.161762,-0.029098,-0.133858,-0.20615,-0.173817,-0.075128,-0.071788,-0.06652,0.166371,0.085273,0.11662,0.006026,-0.110014,-0.068832,-0.068832,-0.089917,-0.04942,0.080714,0.080714,0.07703,0.07703,-0.075406,-0.147927,-0.110771,-0.127003,-0.039358,0.036078,0.059713,0.034416,0.095712,0.01442,0.069878,-0.169528,-0.07649,-0.126449,-0.207921,-0.101693,-0.072515,0.168858\n0.002663,0.002663,-1.427568,-2.000193,-0.130505,-0.601922,-0.111862,-0.410159,0.724437,0.042614,-0.133169,-0.191763,-0.191763,-0.079901,0.010653,-0.013317,-0.013317,0.077238,0.077238,0.151812,0.125179,-0.074574,-0.090555,-0.026634,-0.095881,-0.013317,-0.034624,-0.034624,-0.058594,-0.087891,0.103872,0.189099,-0.087891,0.037287,0.053267,-0.053267,-0.087891,-0.093218,-0.103872,0.039951,-0.037287,-0.117188,-0.165129,0.01598,0.159802,0.013317,0.002663,0.013317,0.013317,-0.010653,-0.010653,0.010653,-0.055931,0.03196,0.045277,0.021307,0.029297,0.002663,0.00799,0.039951,0.013317,-0.042614,0.101208,0.127842,0.074574,-0.066584,0.042614,0.018644,0.013317,0.047941,-0.002663,0.018644,0.055931,0.066584,0.114525,0.114525,-0.002663,-0.018644,-0.029297,-0.029297,-0.005327,-0.005327,-0.039951,0.050604,0.00799,0.01598,-0.03196,-0.02397,-0.047941,-0.095881,-0.095881,0.03196,0.082565,0.042614,0.186436,0.053267,0.02397,-0.050604,-0.133169,-0.087891\n0,0,-0.167792,-0.255684,0.01598,0,-0.415486,-0.383526,-0.039951,-0.061258,-0.082565,0.029297,0.029297,0.034624,0.106535,0.055931,0.055931,-0.010653,-0.010653,-0.01598,-0.029297,0.005327,-0.021307,-0.002663,-0.01598,-0.005327,0.047941,0.053267,0.074574,0.02397,-0.005327,-0.042614,0.026634,0.026634,0.002663,-0.02397,-0.039951,-0.039951,0.005327,0.047941,0.162466,0.087891,0.173119,0.079901,-0.002663,-0.077238,-0.130505,-0.101208,-0.101208,-0.047941,-0.047941,-0.013317,0.034624,0.013317,-0.037287,-0.053267,-0.03196,-0.002663,-0.00799,0.02397,0.00799,0.069248,0.077238,0.00799,0.021307,-0.026634,-0.058594,-0.042614,-0.042614,-0.029297,0.018644,0.039951,0.039951,0.03196,0.002663,0.002663,-0.03196,-0.034624,-0.021307,-0.021307,0.037287,0.037287,0.053267,-0.002663,-0.00799,-0.034624,-0.021307,-0.01598,-0.005327,-0.013317,0.002663,0.042614,0.079901,0.026634,0,0,-0.055931,-0.058594,-0.069248,-0.058594\n-0.00799,-0.00799,-1.643301,-0.402169,-0.274327,0.769715,1.403597,1.491489,0.689814,0.346238,-0.098545,-0.322268,-0.322268,-0.471417,-0.290308,-0.22905,-0.22905,0.215733,0.215733,0.242367,0.234377,0.202416,0.03196,-0.141159,-0.25302,-0.324931,-0.335585,-0.146486,0.055931,0.274327,0.375536,0.308951,0.191763,0.058594,-0.122515,-0.242367,-0.247694,-0.202416,-0.189099,-0.151812,0.01598,0.399506,0.436793,0.42614,0.231713,0.034624,-0.191763,-0.399506,-0.399506,-0.250357,-0.250357,-0.135832,0.029297,0.175783,0.263674,0.191763,0.063921,-0.069248,-0.133169,-0.186436,-0.106535,-0.018644,0.085228,0.173119,0.165129,0.133169,0.013317,-0.133169,-0.199753,-0.22106,-0.093218,0.045277,0.157139,0.199753,0.202416,0.202416,-0.093218,-0.191763,-0.218397,-0.218397,-0.045277,-0.045277,0.071911,0.170456,0.157139,0.117188,-0.03196,-0.127842,-0.157139,-0.127842,-0.077238,-0.095881,-0.037287,0.170456,0.207743,0.26101,0.146486,-0.050604,-0.186436,-0.298298',Standing +'0.206148,0.206148,6.534367,1.131917,-8.367996,-13.497001,-7.087074,17.191908,17.598858,12.598854,12.065256,17.495022,17.495022,-11.016179,-18.91043,1.313057,1.313057,17.850883,11.735081,12.123903,12.123903,12.882109,-10.546001,-16.786179,-2.249565,13.197184,10.660688,10.819401,10.533052,13.006932,-0.444615,-14.956646,-14.956646,9.69428,10.009678,9.618128,11.040611,8.443556,1.635076,-9.795513,-8.667769,4.815566,11.724194,9.017826,8.693704,8.693704,11.514104,6.143694,-7.27816,-13.105877,-2.816986,10.134157,10.864281,10.405031,12.326885,10.137674,-7.21947,-12.083002,-11.200788,7.69675,13.77249,10.587677,9.825289,13.876131,7.791984,-6.1701,-11.927401,-0.149845,15.683474,9.555857,10.035051,12.784068,11.937872,11.937872,-12.355082,-12.355082,-8.466549,10.16799,12.141216,8.524237,8.282899,9.153669,4.471707,-5.638057,-11.797636,-7.058575,10.392004,9.262961,6.401535,6.924514,13.229226,-3.378829,-10.820663,-7.483778,9.064958,11.878017,7.058106,7.058106,10.04119,10.04119\n-0.658294,-0.658294,4.597327,-4.033093,-7.513152,-6.140282,-10.483374,-10.542259,-3.254132,12.419724,12.156147,-10.303451,-10.303451,-15.684293,-6.040055,-13.5443,-13.5443,-10.631615,6.013022,4.413815,4.413815,-12.509309,-17.795197,-11.610031,-12.356377,-10.509532,1.118187,11.870674,8.120918,-11.395579,-15.402636,-8.645746,-8.645746,-10.552313,-1.57841,9.131866,9.036081,-12.382521,-16.13068,-12.267821,-7.15138,-11.834827,-0.877433,8.183606,10.449745,10.449745,-3.521495,-13.170219,-14.658922,-5.260007,-9.907385,-10.226536,5.561981,11.169109,6.612163,-11.64939,-15.870824,-8.549856,-6.937678,-11.015945,-6.380026,10.429626,9.140349,-5.11908,-15.851172,-18.407951,-10.594841,-11.204623,-7.408329,8.744519,10.251823,-0.02157,-12.279865,-12.279865,-4.865606,-4.865606,-5.611986,-10.644143,-0.600681,9.376023,11.435044,7.80046,-12.569263,-12.60555,-3.80317,-7.477796,-10.609376,2.183635,10.749784,10.382434,-5.393378,-14.235221,-6.752304,-4.489356,-10.406509,-3.866992,8.879556,8.879556,-6.68554,-6.68554\n0.469612,0.469612,-2.723661,0.993438,3.346872,1.526114,-2.487588,-3.6504,-5.067879,-7.634428,-5.800551,-0.001549,-0.001549,1.227492,2.898439,-1.201389,-1.201389,-0.087831,-7.125184,-1.891088,-1.891088,0.242052,4.225236,-2.842301,-1.291072,-0.537128,-4.314538,-5.239399,-2.818567,2.445703,4.822602,2.431761,2.431761,-0.533546,-4.945282,-5.365152,-1.395669,-0.626882,5.489571,4.489017,0.646943,0.570646,-5.253266,-6.841835,-4.488927,-4.488927,0.024368,3.141319,2.669939,1.09145,-0.135914,-1.240134,-5.54688,-4.787706,-2.160754,-0.644486,0.794336,2.861852,-0.275517,-2.250963,-3.550619,-6.896339,-3.921634,-0.926535,-1.138735,1.398918,1.284654,-2.991598,-3.239121,-5.641757,-4.26661,-1.733803,-0.508776,-0.508776,4.139277,4.139277,0.009073,-6.306781,-4.707899,-4.238475,-3.394412,-0.898691,2.924023,1.351977,1.888948,0.67434,0.07008,-3.681091,-5.258205,-4.451693,0.223352,4.353699,2.225862,-0.48955,-2.017393,-3.664043,-5.190697,-5.190697,0.59361,0.59361\n-0.106535,-0.106535,-0.439456,0.6472,-0.689814,-0.436793,2.964334,2.516887,2.506234,-0.950824,-2.050797,-1.337013,-1.337013,-0.553982,-0.292971,2.69267,2.69267,3.795306,-0.005327,-1.233142,-1.233142,-0.553982,-1.355657,-0.082565,2.474273,4.069634,0.479407,-1.062686,-2.088084,-1.006755,-0.942834,-1.398271,-1.398271,5.302775,2.189292,-2.540857,-0.820319,0.010653,-0.284981,-1.765816,0.67117,2.908403,1.305053,0.727101,-1.653954,-1.653954,-1.270429,-0.743081,-1.235805,-0.543328,2.112054,2.865789,0.553982,-1.289072,-1.174547,-1.491489,0.071911,-0.910873,-0.146486,1.946925,2.48759,0.724437,-1.568726,-1.169221,-2.357085,-1.920292,-1.227815,1.201181,3.132126,0.170456,-1.768479,-1.566063,-0.910873,-0.910873,-1.715212,-1.715212,-2.743274,0.777705,2.631412,1.36631,-1.118617,0.631219,-1.424904,-0.745744,-0.607249,-0.460763,1.853707,1.363647,-0.170456,-0.604586,-1.446211,0.287644,-1.616667,0.316941,3.217354,2.490253,-0.058594,-0.058594,-0.274327,-0.274327\n0.306288,0.306288,1.717875,0.074574,-0.596595,0.002663,-0.953487,0.439456,0.271664,-0.269001,0.841626,2.801868,2.801868,-1.310379,-0.178446,-1.201181,-1.201181,0.503377,0.375536,1.653954,1.653954,2.152005,-0.522021,-0.082565,-2.032153,-0.290308,0.881576,-0.868259,0.65519,1.669935,-0.857606,0.042614,0.042614,-1.089319,0.708457,0.19709,0.332922,1.510132,-1.464855,-0.391516,-0.833636,-0.732428,1.235805,0.348902,-0.490061,-0.490061,1.012082,-0.066584,-0.303624,0.170456,-1.523449,0.311615,0.183773,-0.644536,0.22106,2.077431,-0.753734,-0.034624,0.279654,-2.026827,-0.490061,0.085228,0.495387,1.230478,1.211835,-0.447447,-0.335585,-1.398271,-0.945497,-0.122515,-0.239704,0.796348,2.159995,2.159995,-0.181109,-0.181109,0.106535,-2.690006,-1.773806,-0.26101,-0.399506,0.45011,1.992203,-0.290308,-0.468754,-0.556645,-0.111862,0.830972,-0.223723,-0.540665,0.974794,-0.732428,0.269001,-0.492724,-1.536766,-0.500714,0.231713,0.231713,0.053267,0.053267\n0.950824,0.950824,-1.041379,-3.315899,-2.796541,-0.982784,4.421198,8.219168,7.377542,1.249122,-3.012274,-7.68383,-7.68383,-3.499672,1.102636,6.224302,6.224302,8.112633,4.343961,-5.808816,-5.808816,-8.711891,-3.835257,1.230478,5.88339,8.240475,5.995252,-0.689814,-4.642258,-8.685258,-5.688964,-0.708457,-0.708457,9.241902,6.016559,0.079901,-4.831358,-7.779711,-5.529162,-1.142587,3.140116,6.322846,6.610491,2.887096,-3.049562,-3.049562,-6.551897,-6.479985,-2.985641,1.219825,5.318755,6.932759,3.662137,-1.305053,-5.071061,-7.585285,-2.828502,-0.071911,2.402362,6.522599,6.357471,1.976222,-3.947118,-7.47875,-7.025977,-2.801868,2.940363,6.189678,6.986026,3.068205,-1.699232,-5.547805,-7.169799,-7.169799,0.407496,0.407496,2.751264,6.216312,6.12043,1.869688,-1.944262,-5.465241,-5.832786,-3.092176,-0.005327,2.44764,5.478557,4.53306,-0.173119,-3.473038,-5.787509,-3.941791,0.087891,3.15876,5.766202,5.055081,0.948161,0.948161,-5.920677,-5.920677',Running +'-0.193013,-0.193013,2.403985,3.944837,6.696989,6.879752,-2.60764,-10.335603,-15.547636,-0.808037,16.878971,19.279316,16.137817,16.137817,15.646513,15.646513,5.592793,-4.205307,-13.385656,-11.945709,9.972809,18.451979,9.053947,13.043695,11.082064,12.54372,0.522944,-11.125648,-13.791341,5.499331,18.776646,11.264133,12.867005,13.432475,15.267176,2.650451,-13.367018,-17.386322,-17.386322,-1.576061,12.671672,12.022303,12.000544,12.000544,12.23167,5.080092,-11.13686,-15.194065,10.907777,17.795757,12.505667,14.06698,12.404521,9.780849,-8.821098,-10.646467,6.61582,18.08623,11.022963,10.483679,10.483679,10.775233,-6.393374,-12.319742,-5.121941,-5.121941,15.52615,15.52615,10.183978,11.034058,11.034058,0.637438,-10.766073,-10.766073,1.826093,15.493172,13.501227,10.163693,12.447319,8.532647,-7.072203,-12.008911,1.128244,16.723684,14.850087,9.90864,12.594496,10.466016,-1.690332,-10.524454,-0.646894,-0.646894,15.538158,10.291492,10.291492,13.687557,13.687557,-12.056174,-12.056174,-8.033739\n-0.106266,-0.106266,0.52392,2.012546,-1.386553,-8.168157,-10.145638,-6.821806,-5.373103,-14.959406,-10.171502,-0.003219,17.349148,17.349148,-10.609661,-10.609661,-14.888824,-16.44948,-9.437645,-6.49327,-13.363544,-9.97626,10.877212,18.132042,8.244736,-12.882167,-17.736109,-12.978905,-7.839063,-12.617117,-9.919477,7.867234,12.335215,9.322185,-11.15927,-17.84138,-16.763557,-10.775795,-10.775795,-10.400248,6.171435,17.496044,6.431677,6.431677,-13.174194,-18.121363,-13.673372,-10.316277,-14.057753,-10.055537,17.85774,12.448133,1.072655,-16.711557,-14.632966,-8.723223,-12.18982,-9.142814,11.092704,11.976416,11.976416,-13.393647,-16.584063,-11.30637,-12.362335,-12.362335,6.914987,6.914987,6.088141,-8.180254,-8.180254,-17.418016,-10.14624,-10.14624,-14.355147,-10.780526,13.348579,14.824137,2.257614,-14.136194,-14.00123,-7.401901,-14.012115,-8.691694,11.104848,12.265342,6.69982,-16.043375,-16.979033,-11.4071,-11.849678,-11.849678,7.111199,13.757074,13.757074,-11.867113,-11.867113,-10.852823,-10.852823,-6.678863\n-0.636563,-0.636563,-1.166243,-0.07633,-1.507628,0.999131,1.066122,-2.441166,-1.95125,-5.711248,-0.942597,-2.319403,-2.246676,-2.246676,-6.235562,-6.235562,-3.96202,-3.66252,-0.184923,-3.719154,-7.515021,-4.357553,0.364295,0.94005,0.308576,-2.964811,-4.552955,-1.477657,-2.788265,-6.094211,-6.841763,-0.13099,-0.401757,-0.743273,-4.433974,-6.940955,-3.943336,-2.407865,-2.407865,-4.346526,-1.742503,-0.283929,-0.111577,-0.111577,-4.169271,-8.141676,-1.948103,-4.326947,-8.273562,-4.038293,0.545658,0.592121,0.074501,-5.030851,1.586104,1.291673,-5.801744,-7.590143,-1.885545,0.459299,0.459299,-4.853851,-2.738138,-2.433324,-3.264233,-3.264233,-0.669097,-0.669097,0.442199,-1.431138,-1.431138,-1.762268,-1.829178,-1.829178,-1.88219,-6.095429,1.05012,1.001592,-2.754844,-2.893044,0.161384,0.17627,-4.208224,-6.877193,-0.235636,-0.162894,-0.655202,-0.71702,0.056364,-0.41007,-4.329807,-4.329807,-2.51186,-1.101806,-1.101806,-3.376152,-3.376152,-0.860913,-0.860913,-2.176181\n-0.087891,-0.087891,-2.71664,-3.257305,-2.226579,2.117381,0.20508,-0.412823,1.041379,2.199946,2.322461,-0.676497,0.729764,0.729764,-1.289072,-1.289072,1.065349,-1.076003,1.321033,1.962906,1.79245,0.636546,1.115953,-0.263674,-0.319605,-1.645964,0.743081,-0.593932,0.775041,1.608677,0.460763,0.913537,-0.67916,-1.339676,-2.96966,0.644536,-1.057359,-0.125179,-0.125179,2.263867,1.411588,-0.759061,-1.920292,-1.920292,-2.024163,0.958814,-0.399506,-0.769715,2.97765,3.020264,0.327595,-1.568726,-1.115953,-0.612576,-0.098545,-1.009418,1.925618,1.504805,0.772378,-1.028062,-1.028062,-1.060022,-0.428803,-0.514031,0.090555,0.090555,1.299726,1.299726,0.063921,-1.552746,-1.552746,0.519358,-0.492724,-0.492724,1.696568,-0.415486,1.257112,1.488825,-2.00552,-0.825646,0.183773,-0.343575,1.994866,-1.35832,3.046898,-1.275755,-0.67117,-1.395607,2.2905,-1.222488,0.545991,0.545991,1.478172,-0.135832,-0.135832,-1.510132,-0.700467,-1.3743,-1.3743,0.809665\n0.010653,0.010653,1.297062,2.026827,2.407689,0.399506,0.423476,0.439456,-0.791022,-0.577952,-2.034817,-1.427568,-1.32636,-1.32636,6.064499,6.064499,2.285174,1.504805,-0.764388,-1.403597,-1.400934,-2.761917,-2.263867,0.354229,3.587563,4.043,1.294399,-0.095881,-1.283746,-2.154668,-2.421006,-2.159995,0.215733,2.085421,5.361369,2.439649,0.953487,-1.142587,-1.142587,-2.269193,-2.090747,0.668507,3.483691,3.483691,5.505191,3.022928,-0.740418,-0.599259,-2.974987,-3.012274,-0.897557,1.403597,4.162851,2.879106,-1.025398,-0.913537,-2.823175,-2.889759,-0.761725,0.455437,0.455437,3.925811,0.585942,-0.354229,-1.773806,-1.773806,-2.405026,-2.405026,2.317134,3.560929,3.560929,0.998765,-0.844289,-0.844289,-2.056124,-1.201181,-2.223916,0.276991,3.728722,2.660709,-0.058594,-0.665843,-2.359748,-2.578145,-3.118809,0.791022,2.215926,3.15876,-0.359555,-0.114525,-2.24256,-2.24256,-2.620759,-0.519358,-0.519358,4.52507,0.993438,0.26101,0.26101,-1.544756\n0.20508,0.20508,-0.609912,-0.801675,-2.042807,-3.15077,-2.591461,-0.447447,1.259775,4.272049,9.987647,8.786466,1.883004,1.883004,-6.855521,-6.855521,-5.627706,-3.627513,-1.11329,3.526305,5.265488,6.999343,3.515652,-0.934844,-4.482456,-7.510711,-4.839348,-1.339676,2.761917,6.426718,9.201952,4.783417,-1.960242,-3.37982,-7.26568,-6.687728,-1.994866,1.946925,1.946925,5.254834,5.19624,-1.896321,-4.312,-4.312,-8.472188,-6.394757,-1.089319,2.080094,5.981935,8.783803,2.093411,-3.899177,-5.790172,-6.988689,-0.545991,2.884433,6.519936,7.566641,1.827074,-2.090747,-2.090747,-7.007333,-3.536959,0.284981,3.584899,3.584899,4.740803,4.740803,-3.859227,-5.941984,-5.941984,-5.260161,1.310379,1.310379,4.394565,7.835642,3.033581,-2.394372,-5.606399,-6.597174,-2.405026,0.982784,4.032346,7.835642,4.607635,-2.173312,-5.502528,-7.811672,-3.278612,1.379627,4.977843,4.977843,4.99116,0.111862,0.111862,-7.606592,-5.273478,0.013317,0.013317,3.393137',Running +'0.841063,0.841063,-7.980062,-8.026263,9.677279,9.677279,12.799941,11.434641,13.685673,17.663483,17.663483,2.243107,-11.463355,-11.463355,9.668637,19.107834,12.327202,7.756388,13.213591,13.873507,-7.305471,-17.519981,-9.903713,14.523422,15.415318,8.282308,6.455426,13.953609,-1.574383,-14.454145,-9.550476,9.162403,14.682182,6.0066,6.741374,13.18457,13.18457,-12.611359,-12.611359,-13.921055,13.083812,10.569596,10.569596,9.260609,10.64747,4.746571,-8.352365,-13.44974,-3.259443,15.712776,14.800417,10.719152,12.868601,11.825085,-1.588693,-14.989109,-14.486482,5.876044,18.158478,12.761698,9.268098,11.43117,13.48167,-3.128183,-16.27685,-8.728788,13.245379,13.245379,7.937952,6.029237,6.029237,15.723374,-12.429068,-9.870358,-9.870358,2.016248,14.340591,9.311989,11.036865,12.219484,12.219484,-7.675129,-14.160889,-3.476946,16.621586,12.853268,8.558354,11.722018,12.271814,-2.716111,-14.112757,-8.16177,-8.16177,12.195336,12.195336,7.771154,15.015295,4.801497,4.801497,-13.218517\n-0.711477,-0.711477,-10.171927,-7.447443,-11.304486,-11.304486,5.588479,10.868879,9.565386,-9.219107,-9.219107,-14.954047,-10.852372,-10.852372,-11.354867,-10.20118,7.533749,13.366711,8.648255,-13.453555,-18.759844,-11.088661,-9.705962,-11.200796,-1.600105,14.142582,12.150735,-2.592206,-16.181124,-10.294059,-9.27294,-13.159246,-5.224445,15.967459,11.33689,1.25008,1.25008,-12.01547,-12.01547,-5.318217,-10.038608,10.52218,10.52218,15.021614,-3.326793,-14.225144,-15.091071,-7.196942,-11.204702,-10.617951,-0.487238,15.344088,10.303147,-11.222846,-15.016804,-9.745836,-7.859255,-12.974382,-5.487972,10.51256,13.440081,9.009636,-11.929449,-16.435722,-12.088054,-8.190855,-12.128731,-12.128731,13.300725,13.293057,13.293057,-10.584069,-8.352922,-7.806155,-7.806155,-14.055889,-11.548732,7.155901,13.555352,-11.532945,-11.532945,-15.901811,-10.517953,-10.783857,-10.254302,5.94126,13.593845,11.126517,-13.337877,-17.047493,-13.789525,-9.11285,-9.11285,-0.228661,-0.228661,12.03689,-6.385949,-14.644379,-14.644379,-12.800244\n-0.070385,-0.070385,3.868311,-2.457052,-5.931294,-5.931294,-7.423827,-6.413817,-4.819979,-4.787786,-4.787786,-1.656597,-1.476146,-1.476146,-4.744591,-5.958845,-5.816175,-3.765845,-6.520226,-4.515071,-0.58084,0.426839,-2.088406,-7.634421,-4.112744,-2.284427,1.036825,-0.015856,0.742941,1.788888,0.558095,-2.171155,-5.429784,-3.916969,-0.190804,-1.682546,-1.682546,4.743801,4.743801,1.533007,-4.66988,-2.275436,-2.275436,-3.619987,-1.123829,-0.933637,3.045789,0.829478,-1.600995,-8.046644,-6.232512,-3.863006,-2.244346,-2.079035,2.915083,2.215058,-0.557295,-3.794634,-5.63708,-4.988126,-1.063034,-3.740655,-1.513127,1.797692,-0.912865,-0.925441,-6.573416,-6.573416,-2.459509,-1.810606,-1.810606,-1.263741,-0.700276,1.889633,1.889633,-1.110134,-4.864649,-3.983683,-1.576664,-0.253052,-0.253052,-0.803937,2.362658,-1.865386,-8.674621,-4.699869,-1.942941,-1.566466,-5.751402,-2.038994,0.490413,-2.458329,-2.458329,-5.991116,-5.991116,-0.432196,-3.484292,0.16258,0.16258,2.070448\n0.314278,0.314278,1.483499,0.125179,3.307909,3.307909,1.79245,-1.608677,-2.293164,-2.317134,-2.317134,-0.130505,0.761725,0.761725,4.306674,2.697996,1.691242,-0.822982,-3.366503,-2.343768,-2.785888,-0.735091,2.01351,4.088277,1.534103,-1.60335,2.431659,-1.462192,1.174547,-0.20508,-0.556645,5.214883,1.155904,0.479407,0.23704,-0.807002,-0.807002,-0.585942,-0.585942,-2.839155,2.759254,1.507469,1.507469,-0.239704,-2.468947,-2.468947,-1.323696,-0.780368,2.210599,3.933801,2.165322,-0.447447,-1.025398,-2.170649,-0.356892,-2.365075,0.753734,3.398464,1.896321,0.620566,-0.332922,-1.416914,-1.699232,-1.941599,-0.814992,1.664608,3.584899,3.584899,0.559308,-0.276991,-0.276991,-0.796348,-0.194426,0.532675,0.532675,2.538194,1.914965,-0.149149,-0.175783,-3.955108,-3.955108,0.506041,-0.812329,3.025591,3.097502,2.889759,-2.152005,-2.514224,-0.615239,-2.229243,-2.2905,3.020264,3.020264,1.270429,1.270429,-0.109198,-2.343768,-1.057359,-1.057359,-1.030725\n0.055931,0.055931,-0.559308,0.67916,-1.518122,-1.518122,-0.503377,-0.588605,0.90821,3.952445,3.952445,0.889566,-1.744509,-1.744509,-1.542093,0.00799,0.25302,-0.580615,0.825646,3.752692,0.785695,-0.202416,-2.162659,-0.316941,-0.929517,-0.577952,0.777705,2.154668,-0.705794,-1.352993,-1.643301,-1.395607,1.387617,0.122515,-0.199753,1.763153,1.763153,-1.225151,-1.225151,0.375536,-2.072104,-1.16123,-1.16123,0.809665,1.446211,1.446211,0.109198,-1.060022,-2.03748,-1.550083,-1.80044,-0.141159,0.604586,3.342533,0.269001,0.918864,-1.142587,-0.977458,-0.761725,-0.535338,0.444783,2.112054,2.658046,0.6472,0.103872,-1.813757,-1.211835,-1.211835,-0.67916,0.194426,0.194426,2.378392,-0.354229,-0.753734,-0.753734,-0.447447,0.314278,-1.073339,-0.940171,2.631412,2.631412,0.43413,-0.902883,-1.906975,-0.9162,-1.35832,0.119852,1.78446,4.33597,0.70313,-0.122515,-1.938935,-1.938935,-0.077238,-0.077238,0.189099,2.367738,0.596595,0.596595,-0.314278\n0.926854,0.926854,-1.297062,2.439649,6.75964,6.75964,5.116339,0.127842,-4.104257,-6.999343,-6.999343,-6.714362,2.839155,2.839155,6.165708,7.185779,4.50909,-1.590033,-5.289458,-8.618673,-4.780754,0.375536,3.102829,6.437371,6.34149,1.307716,-1.390281,-6.900798,-6.487976,-0.929517,1.523449,5.667657,6.133747,2.70865,-1.494152,-3.923148,-3.923148,-1.424904,-1.424904,1.352993,6.160381,3.523642,3.523642,-1.134597,-5.808816,-5.808816,-3.275948,0.929517,3.859227,6.567877,6.74366,1.283746,-4.538387,-7.047284,-5.374686,-1.989539,0.902883,4.932566,7.678503,5.225537,-1.318369,-4.996487,-7.369552,-5.350716,-1.486162,2.948354,6.141737,6.141737,-0.306288,-2.460956,-2.460956,-6.687728,-2.008183,0.48207,0.48207,3.17474,6.3335,6.788937,0.258347,-8.235147,-8.235147,-3.816613,0.282318,3.715405,6.844867,6.08847,-0.223723,-4.28004,-6.895472,-4.682209,0.165129,2.474273,2.474273,5.808816,5.808816,-3.489018,-6.503956,-5.377349,-5.377349,-0.948161',Running +'2.580342,2.580342,-7.268912,-2.151018,10.542688,10.76371,10.195221,12.226664,14.888383,4.754362,4.754362,-10.309246,-12.674389,10.714735,10.714735,7.291241,7.291241,7.170721,7.170721,-12.069096,-12.069096,-9.676842,7.283858,10.135188,8.93125,7.356763,8.473827,-2.753101,-11.046413,-10.123641,-1.704907,12.554747,8.515638,7.448742,8.504808,9.21342,-8.49158,-15.096336,-8.367871,-8.367871,11.944301,9.664331,12.022263,11.727745,15.367535,0.575722,-12.875062,-15.765217,0.19638,12.694081,11.222696,10.757978,6.970792,-0.179866,-9.895255,-6.94985,3.731401,6.715965,6.876399,11.016226,9.437742,4.063301,-9.207941,-13.032063,1.046271,13.739387,13.739387,12.014034,12.014034,11.773319,11.773319,1.771271,-13.497014,-11.616994,7.966011,19.315197,12.747318,12.24896,12.202311,-3.671241,-14.108509,-8.179103,10.161459,12.573705,9.292725,14.1605,12.400892,5.416816,-13.092234,-15.452188,-3.297693,16.38702,14.195221,12.093594,11.63405,1.129924,-14.334705,-14.334705,-1.885959,16.109348\n-0.850954,-0.850954,-6.062234,-7.335191,-10.497492,-1.742565,11.778374,14.53961,-7.064752,-12.54829,-12.54829,-9.662001,-4.389999,-10.770942,-10.770942,12.247722,12.247722,-11.341422,-11.341422,-6.646241,-6.646241,-3.957381,-10.600589,-4.363722,10.865209,10.8959,-7.185652,-13.083666,-8.903191,-3.755721,-10.939705,-9.84395,8.699819,10.645117,6.354955,-11.553561,-14.135878,-3.68532,-7.802743,-7.802743,-10.364229,5.188526,16.434128,12.922404,-10.821349,-15.391635,-12.849353,-4.192888,-11.561348,-9.78853,12.594297,13.599071,0.267335,-15.173695,-13.129768,-4.448283,-8.026957,-1.729327,7.442883,5.643127,-4.080649,-12.346323,-16.634256,-7.101749,-8.902565,-9.794687,-9.794687,12.654349,12.654349,-13.696231,-13.696231,-18.17788,-17.138922,-4.650589,-11.348005,-9.792447,14.66954,11.688328,-13.261755,-18.078758,-13.301645,-7.978799,-10.621295,-5.551099,10.942501,10.187031,-12.997249,-16.497326,-15.65497,-9.148361,-13.610061,-11.099299,8.30009,14.877829,-5.258853,-15.625927,-16.664661,-16.664661,-12.405266,-10.258914\n-0.15003,-0.15003,0.964216,-1.098742,-2.525384,-7.131673,-3.73017,-5.231438,-3.061211,-2.379799,-2.379799,-0.298671,0.676435,-3.805433,-3.805433,-3.425175,-3.425175,-3.551541,-3.551541,2.302473,2.302473,-0.600889,-5.363854,-6.183178,-4.11325,-0.889807,-0.316231,-0.646804,0.92145,0.574926,-2.594588,-6.570019,-3.670066,-2.203989,-1.114659,-1.733815,0.320904,2.968587,-0.789733,-0.789733,-7.774549,-4.170077,-3.073305,0.200625,-3.472067,-2.719008,2.071705,-0.859725,-6.206416,-5.608375,-1.141439,-0.168753,-0.754233,-4.731825,-0.303509,-0.834138,-5.283384,-3.986568,-2.428841,-0.48843,0.21584,-3.015756,-2.850311,-1.316774,-2.884462,-9.809228,-9.809228,-2.68326,-2.68326,-6.033272,-6.033272,-5.796434,-2.999707,-2.979218,-10.920378,-4.667936,-0.591886,-2.182633,-6.469976,-5.231767,2.837398,-3.066334,-10.134445,-4.141227,-0.847746,-1.497982,-5.56,-6.23779,-0.921775,-3.122717,-7.003961,-12.692677,-0.249455,0.252662,-6.051553,-8.320484,-1.225724,-1.225724,-6.858231,-10.360642\n-0.005327,-0.005327,0.002663,1.368974,3.121473,0.370209,1.062686,0.101208,-2.016173,-2.170649,-2.170649,-0.066584,-0.388852,3.712741,3.712741,-1.33435,-1.33435,-2.26653,-2.26653,-0.772378,-0.772378,0.484734,4.266723,2.058787,-0.530011,-1.35033,-1.211835,-2.213263,-1.017408,0.511368,2.189292,3.313236,0.68715,-1.667271,-1.435558,-1.009418,-1.222488,0.348902,2.341105,2.341105,2.793878,1.598024,-2.098738,-1.82441,-1.550083,1.16123,-1.462192,-0.095881,1.717875,2.871116,-2.008183,-2.122708,-0.239704,-3.579573,-1.297062,1.203844,1.928282,1.875014,-1.206508,-1.520786,-1.592697,-0.234377,-1.403597,0.093218,2.828502,3.560929,3.560929,-2.650056,-2.650056,-0.535338,-0.535338,-1.462192,-1.065349,-0.079901,0.849616,4.351951,0.021307,-2.085421,-0.119852,-1.009418,-0.873586,1.363647,1.864361,2.120045,-0.860269,-1.302389,0.689814,-2.450303,-1.696568,-1.419578,-0.743081,3.936465,-0.178446,0.48207,-0.332922,-0.4581,-1.459528,-1.459528,1.994866,3.952445\n0.050604,0.050604,-0.364882,-0.508704,-1.283746,-0.386189,-1.848381,-0.311615,3.188057,2.817848,2.817848,0.013317,-0.311615,-1.542093,-1.542093,-0.383526,-0.383526,2.49558,2.49558,0.24503,0.24503,-1.257112,-2.402362,-0.274327,0.423476,0.101208,1.656618,2.322461,0.300961,-1.302389,-1.920292,-1.225151,0.231713,0.018644,1.515459,2.149342,0.415486,-0.801675,-1.781796,-1.781796,-0.705794,-0.980121,-1.110626,1.534103,4.000386,0.348902,0.226387,-0.753734,-2.263867,-2.4796,-1.398271,0.721774,2.972324,3.13479,0.165129,-1.323696,-2.410352,-2.2905,0.002663,0.799012,2.70865,2.476937,0.503377,-1.411588,-3.102829,-2.130698,-2.130698,-0.580615,-0.580615,5.100359,5.100359,2.405026,-0.713784,-1.363647,-2.767244,-3.766009,-1.305053,2.809858,4.168178,1.829737,-0.625893,-1.619331,-2.415679,-2.466283,-0.985448,2.825838,2.761917,2.703323,1.249122,-0.964141,-2.418342,-7.23372,-2.476937,2.327788,6.34149,2.711313,0.436793,0.436793,-2.777898,-3.920484\n0.311615,0.311615,-0.772378,2.381055,4.823368,6.208322,1.795113,-1.989539,-6.256262,-5.523835,-5.523835,-2.335778,-0.002663,5.374686,5.374686,0.074574,0.074574,-5.337399,-5.337399,-0.436793,-0.436793,1.898985,4.700852,5.483884,1.494152,-2.165322,-5.209557,-4.170841,-1.414251,2.06145,4.242753,5.710271,2.671363,-1.483499,-4.157525,-6.296213,-3.273285,-0.340912,3.318562,3.318562,5.348052,4.626278,0.601922,-1.813757,-7.524027,-5.491874,-1.997529,2.90574,6.075153,6.471995,0.002663,-3.726058,-5.300111,-3.710078,0.074574,3.073532,6.091133,5.252171,0.660516,-4.122901,-5.675647,-3.896514,-2.122708,2.082757,5.838113,7.47875,7.47875,-1.33435,-1.33435,-7.500057,-7.500057,-6.522599,-0.809665,4.293356,6.858184,7.385532,0.44212,-4.136218,-7.641216,-5.771528,0.801675,4.333307,6.57054,5.161616,2.042807,-3.425097,-7.297641,-6.794263,-2.71664,1.693905,4.937893,4.99116,3.848573,-2.399699,-5.547805,-5.776855,-2.112054,-2.112054,4.73814,7.041957',Running +'-0.947424,-0.947424,14.539122,11.515778,11.515778,12.783069,12.783069,11.446476,11.446476,-3.435444,-9.859878,-5.402461,9.940453,11.622274,11.622274,11.32756,14.883516,11.332518,1.617216,-10.466414,-12.02514,12.194963,17.992416,14.636467,13.020803,14.578947,12.185873,-0.369814,-11.651639,-9.261144,9.410715,17.297222,13.44496,12.590029,15.337957,11.0398,2.522157,-10.236632,-8.317945,-8.317945,11.454292,17.442644,13.916252,16.042233,16.042233,10.335778,1.261771,-9.195807,-0.911037,14.36981,18.69674,13.497532,11.120273,14.425026,8.619898,-7.425437,-12.633247,-3.304105,15.03547,12.751108,8.762417,8.244453,14.487535,9.44766,-8.857961,-14.351305,-2.067092,17.115496,11.473331,8.694311,8.694311,10.685105,-0.268391,-0.268391,-11.447653,-5.475558,10.732676,9.650931,6.331091,9.554789,11.205843,9.602314,-5.374937,-7.472634,12.877811,18.50452,12.772583,8.181368,12.06735,8.687635,-4.646635,-9.65589,-8.627415,11.070228,14.616495,13.23938,22.476469,15.254757,9.948937,9.948937\n0.572681,0.572681,-10.321303,0.644589,0.644589,9.515082,9.515082,-14.140177,-14.140177,-16.656708,-10.722511,-9.324972,-11.570659,13.015303,13.015303,11.698154,-1.456427,-14.48057,-18.274153,-13.397624,-11.020645,-13.198328,-10.264443,11.667678,13.876781,2.869654,-13.194683,-18.052753,-11.370281,-11.456862,-14.337561,-10.150842,12.061099,13.541328,7.797111,-14.82066,-19.70525,-14.468246,-11.80393,-11.80393,-14.1254,-10.100118,15.783005,-2.019132,-2.019132,-16.361998,-16.45779,-13.76695,-13.196284,-11.30072,0.828998,11.962929,9.897109,-7.284555,-13.494585,-12.029925,-8.858635,-11.500587,-11.054632,2.240363,11.346993,12.653135,-8.176888,-13.495548,-12.986649,-8.199298,-11.788008,-10.501719,6.6514,11.890531,11.890531,10.059711,-15.164461,-15.164461,-12.758688,-6.789298,-6.78754,3.486181,9.620968,7.794489,-1.698752,-16.740944,-15.681394,-13.065088,-12.487047,-5.388966,8.953529,10.661085,3.109324,-11.563528,-12.293297,-6.222488,-7.743918,-10.120969,-4.820666,14.205988,9.933104,-10.65727,-19.105879,-19.105879\n-0.529822,-0.529822,-4.144042,-3.601519,-3.601519,-3.878184,-3.878184,-4.854389,-4.854389,4.065961,2.271438,-1.162889,-2.791426,-6.956129,-6.956129,-5.287154,-2.255837,1.607152,2.982921,3.619826,-1.691623,-1.150306,-2.929352,-6.868012,-5.369594,-2.461164,-1.957525,0.320933,2.637351,1.045441,-2.632696,-3.353395,-6.120478,-4.996376,-1.931851,-2.896025,1.751246,2.027715,-0.496177,-0.496177,-1.929849,-5.736089,-6.603544,-2.016257,-2.016257,-7.674105,-0.089583,-1.941627,-0.467991,-3.417542,-4.560343,-5.623996,-1.165731,1.507338,1.505091,-1.070508,1.945368,-0.742896,-0.654241,-4.405449,-5.649943,-2.934041,0.081688,1.335757,1.209537,3.853269,-0.686105,-3.118011,-6.190176,-4.571682,-4.571682,-2.519548,0.453415,0.453415,1.611675,1.805399,-1.723141,-3.97922,-5.141545,-4.019139,-1.143035,1.476714,-0.045485,0.209447,-1.604813,-3.82349,-5.274359,-3.567488,-1.067385,1.047091,0.094412,2.50917,0.589215,-3.409186,-4.441803,-7.278761,-4.231825,-4.759065,-0.845447,-0.845447\n-0.098545,-0.098545,2.138688,2.074767,2.074767,-1.757826,-1.757826,-0.841626,-0.841626,0.820319,-0.918864,1.635311,2.743274,0.665843,0.665843,-1.299726,-3.065542,-0.218397,0.633883,-0.524684,-0.556645,3.784653,2.146678,0.649863,-1.387617,-2.317134,-2.745937,1.560736,-0.375536,1.115953,2.096074,2.194619,0.487397,-1.076003,-1.635311,-1.424904,1.813757,-0.476744,-0.394179,-0.394179,3.37183,1.640638,1.451538,-3.243988,-3.243988,-1.920292,3.318562,-0.881576,2.48759,3.233334,0.700467,1.5634,-1.086656,-0.138495,-1.422241,-0.902883,0.215733,1.978886,3.723395,1.179874,-1.427568,0.4581,-2.439649,-1.496815,-0.223723,0.934844,2.476937,3.843247,0.133169,-0.913537,-0.913537,-0.814992,-1.222488,-1.222488,-1.313043,-0.154476,2.628749,1.707222,-0.588605,-2.157332,-1.321033,-0.785695,-1.699232,0.053267,0.89223,3.941791,0.540665,-0.90022,-0.500714,-1.720539,-1.355657,-0.495387,0.596595,3.678118,1.773806,-0.178446,-2.551511,-0.47408,-0.085228,-0.085228\n0.596595,0.596595,-1.259775,-0.982784,-0.982784,-0.316941,-0.316941,3.326552,3.326552,-0.788358,-0.26101,-1.036052,-0.972131,0.290308,0.290308,-1.006755,3.001621,0.769715,-0.788358,-0.354229,-0.591269,-0.41815,0.92419,0.061258,-0.873586,1.938935,3.672791,-0.777705,-1.110626,-0.48207,-0.146486,0.061258,0.455437,-0.210406,0.545991,2.428996,-1.049369,-0.495387,-0.538001,-0.538001,-0.926854,-0.713784,0.122515,3.283938,3.283938,4.314663,-0.463427,-0.729764,-1.869688,0.047941,-0.910873,-0.561972,0.556645,2.048133,1.502142,0.005327,-1.182537,-1.249122,-0.399506,1.984213,0.167792,-0.415486,1.534103,1.331686,-0.988111,-0.868259,-0.735091,0.364882,0.70313,-0.89223,-0.89223,-0.553982,0.844289,0.844289,0.103872,-0.732428,-1.062686,-0.276991,0.242367,0.364882,1.299726,1.014745,-0.079901,-1.318369,-0.727101,-0.926854,-0.202416,0.063921,1.323696,1.984213,0.386189,-0.788358,-0.820319,-1.938935,-0.149149,-0.114525,1.302389,3.267958,0.633883,0.633883\n0.772378,0.772378,7.21774,6.834214,6.834214,-3.728722,-3.728722,-7.420156,-7.420156,-3.235998,0.652526,4.178832,7.369552,2.152005,2.152005,-3.054888,-7.526691,-8.267108,-4.985834,-0.649863,1.917628,6.304203,8.82109,5.252171,-0.711121,-6.330837,-9.502913,-4.73814,-0.631219,2.524877,6.141737,8.83707,4.437179,-1.1053,-5.398656,-9.859805,-5.095032,-1.11329,2.90574,2.90574,6.575867,9.454972,4.631605,-8.437564,-8.437564,-8.301732,-4.037673,1.779133,5.587756,8.84506,8.677268,2.026827,-3.856564,-7.05261,-7.017987,-2.92172,0.154476,3.80596,6.301539,5.446597,1.368974,-1.912302,-7.382869,-7.758404,-2.428996,1.139924,4.485119,7.151156,4.857992,0.058594,0.058594,-3.518315,-4.47713,-4.47713,-0.183773,3.816613,5.688964,3.728722,-0.830972,-4.170841,-6.360134,-6.76763,-1.614004,2.341105,7.366889,8.344346,5.02312,-1.757826,-5.116339,-6.445362,-2.807195,-0.314278,2.335778,7.26568,7.377542,1.906975,-6.288223,-10.064885,-7.745087,-7.745087',Running +'-0.159076,-0.159076,-0.977703,-0.576725,2.436944,11.93805,12.725025,9.583042,9.583042,-11.525481,-15.825295,-11.07911,-11.07911,13.203047,19.09772,23.028803,23.028803,19.604614,9.704033,-7.734857,-16.715744,-15.315428,16.377144,17.489319,11.030075,18.987774,11.811463,8.441836,-5.088128,-16.069199,-11.756887,15.618919,15.13532,15.09127,17.420118,19.643194,10.909846,-2.913982,-2.913982,-16.16911,-16.16911,22.34923,16.44704,16.44704,27.548164,27.548164,19.541647,15.777973,9.982073,-10.837849,-18.93782,-1.615064,13.129675,20.48034,16.466244,22.13607,14.110964,17.499182,2.008869,-11.711461,-20.01836,-11.570881,13.851423,20.680532,13.150042,16.052984,15.787158,15.224316,5.84911,5.84911,-11.837429,-19.209011,-4.954274,14.409306,14.047569,9.453605,10.134373,10.219066,10.282076,2.886026,-8.932184,-21.808273,-3.762463,15.877214,13.078396,9.552633,9.679626,11.038694,11.977297,-5.240587,-16.837124,-11.01304,5.139086,18.03231,18.03231,14.563953,14.563953,14.034163,5.474637,-11.036574\n0.376722,0.376722,0.383495,0.821463,9.071632,3.088024,-7.834253,-11.664749,-11.664749,-10.045521,-8.395377,-9.805511,-9.805511,-10.847558,-10.587256,15.842056,15.842056,-1.612771,-13.889328,-18.261982,-13.664261,-16.851978,-10.671431,-11.390317,9.041848,9.670399,-0.612644,-11.915009,-18.059433,-11.376567,-9.379431,-10.746722,-4.748869,9.793324,9.544693,2.902418,-15.101414,-21.084383,-21.084383,-17.381405,-17.381405,-10.338602,9.38464,9.38464,2.773264,2.773264,-10.775178,-10.577471,-20.718204,-21.78527,-15.494642,-23.391201,-12.247977,-8.518594,6.320296,7.698327,1.887637,-9.865809,-15.435299,-11.958015,-8.340622,-14.563699,-11.669935,-9.829362,7.860985,9.923315,7.632603,-10.824502,-17.17498,-17.17498,-16.986021,-8.453064,-16.312347,-11.333106,-2.320648,9.118606,8.849279,7.02898,-10.808731,-15.448454,-15.479777,-3.01292,-14.492153,-10.922387,-2.682779,9.451526,11.564655,1.343382,-11.522947,-17.049528,-8.768511,-10.188026,-11.250737,-9.945748,-9.945748,8.464108,8.464108,-9.976473,-15.475651,-15.857528\n-0.445368,-0.445368,1.69536,1.107902,-6.007636,-6.721522,-2.67764,-2.174151,-2.174151,-2.539175,-0.286715,-4.574852,-4.574852,-4.377445,-3.352058,-10.211141,-10.211141,-1.019795,-1.841632,0.061786,1.842677,-4.303387,2.59854,-1.843671,-4.547353,-6.828007,-1.741846,-0.701268,-2.13652,0.626837,-3.515391,-11.503386,-2.284125,-2.741046,-7.817473,-2.148103,-1.990641,-2.358084,-2.358084,-3.01126,-3.01126,0.749319,-3.678881,-3.678881,-9.379612,-9.379612,-3.390483,1.504314,-2.74813,3.11847,2.928192,-3.823548,-1.28621,-4.339411,-3.657521,-7.18735,-3.033041,4.264448,-4.184384,-0.958422,5.047574,-3.833479,-2.738221,-1.365673,-5.119652,-5.552445,-3.830462,2.769878,-2.264495,-2.264495,-1.368036,-0.799234,-4.851398,-1.693778,-1.082355,-2.711836,-3.062333,-2.507565,1.513902,-2.224783,-3.469995,0.6901,-2.577818,0.815859,-2.677277,-5.653344,-5.310594,-1.388836,1.058365,0.818598,3.289982,-0.310939,-5.625992,-2.598357,-2.598357,-5.08188,-5.08188,-0.401822,-1.281801,0.26697\n-0.029297,-0.029297,-0.255684,-0.122515,-4.474466,-4.706179,-0.980121,-1.619331,-1.619331,-0.719111,-0.524684,-0.708457,-0.708457,2.751264,2.418342,-1.944262,-1.944262,-1.933608,2.183965,-0.407496,-1.038715,0.953487,3.262631,0.873586,-0.918864,-1.741846,0.090555,-1.313043,-0.508704,0.042614,-1.052032,0.974794,-0.173119,3.329216,-2.293164,-1.004091,-1.182537,-1.275755,-1.275755,0.207743,0.207743,3.720732,2.900413,2.900413,-1.741846,-1.741846,-2.365075,-0.391516,-0.724437,0.70313,0.026634,-0.19709,1.488825,-0.447447,1.821747,-0.300961,-1.920292,-1.901648,0.247694,-0.860269,-0.580615,1.052032,2.431659,2.322461,-0.490061,-0.886903,-1.680588,-0.929517,-0.300961,-0.300961,-1.177211,-1.158567,1.099973,1.483499,0.452773,0.777705,-0.532675,-1.102636,-1.80044,-1.046705,-0.958814,0.721774,2.394372,2.567491,1.57139,-0.559308,-0.593932,-1.014745,-1.083993,-0.854943,-0.657853,-0.745744,2.285174,3.443741,3.443741,-0.676497,-0.676497,-1.030725,-0.996101,-0.556645\n0.029297,0.029297,0.375536,0.769715,2.330451,2.330451,1.728529,1.669935,1.669935,1.257112,-0.143822,-0.841626,-0.841626,-2.815185,-1.278419,0.298298,0.298298,3.108156,1.614004,0.335585,-0.545991,-0.799012,-0.612576,0.807002,-0.170456,1.408924,1.906975,2.682016,0.732428,-0.769715,-1.337013,-3.61686,-4.487783,-2.058787,1.400934,1.600687,2.873779,0.522021,0.522021,0.516694,0.516694,-1.371637,-1.856371,-1.856371,1.068012,1.068012,2.820512,2.375728,1.107963,-1.009418,-1.070676,0.412823,-1.486162,-1.315706,-1.123943,0.005327,1.32636,1.693905,1.262439,-1.345003,-0.977458,-0.439456,-0.495387,-0.010653,-0.487397,0.351565,1.566063,2.974987,1.430231,1.430231,-0.151812,-0.202416,-1.076003,-0.769715,-1.131933,-2.141352,0.545991,1.523449,2.428996,2.024163,0.849616,-0.649863,-0.524684,-0.271664,0.43413,-0.295634,-0.24503,2.085421,2.570154,-0.48207,-1.496815,-0.138495,-1.345003,-1.986876,-1.986876,-0.026634,-0.026634,1.590033,1.022735,-1.15324\n-0.047941,-0.047941,0.516694,0.660516,-0.506041,-1.515459,-3.931138,-3.997722,-3.997722,-3.670127,-0.719111,2.982977,2.982977,7.742424,8.919635,-2.06145,-2.06145,-6.653105,-7.713127,-5.071061,-0.370209,3.923148,10.075539,8.312386,2.46362,-3.992395,-6.029875,-8.203187,-5.129655,0.114525,3.979079,8.900991,8.682594,-1.094646,-3.552939,-6.168371,-9.249893,-5.827459,-5.827459,3.251978,3.251978,13.356813,6.597174,6.597174,-2.175975,-2.175975,-8.536109,-11.140887,-9.391051,-3.736712,0,5.095032,11.468482,9.766587,3.752692,-0.88424,-4.30401,-8.815763,-6.927432,-3.694098,-1.083993,3.012274,8.405603,9.987647,4.591654,-0.889566,-4.969853,-9.833172,-7.990118,-7.990118,-3.022928,0.452773,5.092368,8.725208,8.344346,1.664608,-1.57938,-3.310572,-7.840969,-6.053846,-3.835257,1.368974,4.413209,8.522792,6.751649,1.885668,-1.289072,-5.827459,-8.197861,-5.270814,-0.242367,3.475701,6.525263,8.778476,8.778476,0.109198,0.109198,-7.585285,-8.775812,-3.816613',Running +'0.025666,0.025666,-2.468347,-2.468347,-1.667389,-1.450084,-0.589371,5.755251,11.999514,11.999514,12.453771,13.922258,15.298018,6.542954,-9.992174,-17.044159,-2.295287,14.946409,10.632978,8.340134,11.502569,17.880648,10.88765,-5.088035,-14.469446,-8.973619,11.70304,12.109842,6.6722,14.7652,10.913734,10.874723,10.874723,-8.6098,-8.6098,-15.389651,7.306545,18.447697,13.89053,13.89053,17.023293,13.861388,2.609129,-8.658474,-12.318856,8.809658,18.439663,11.051042,14.084033,14.281748,13.32489,7.869107,-7.760884,-7.760884,4.050361,18.039047,18.039047,10.087759,12.846905,15.091257,5.814978,-5.215353,-7.407997,-7.407997,6.765869,16.635918,8.394508,12.766617,13.499382,7.074235,-5.901886,-11.564824,-5.248023,10.375515,14.884511,12.170687,18.91247,18.227678,12.750526,10.01986,-13.866665,-17.259819,-3.708701,-3.708701,12.103869,10.87652,10.87652,14.153358,10.753639,10.109711,10.109711,-19.562057,-19.562057,-0.628946,12.670179,20.630564,13.039371,14.457813,18.646042,13.830288\n-0.224999,-0.224999,-1.295023,-1.295023,-1.018761,-3.462997,-5.537178,-10.982328,5.30178,5.30178,12.35038,12.028621,-11.008595,-16.621946,-13.81419,-5.35873,-15.553844,-11.246242,2.631294,12.001397,15.521029,-5.658537,-15.862452,-18.830471,-5.419441,-5.970101,-12.954791,0.219217,12.214806,11.733913,3.382314,-15.272848,-15.272848,-9.839972,-9.839972,-3.798263,-13.358591,-10.015551,16.283653,16.283653,6.231133,-11.769991,-18.993084,-12.640095,-6.420393,-11.553805,-10.216093,4.978018,8.819964,5.381139,-12.088194,-18.106512,-14.309094,-14.309094,-12.114191,-10.108041,-10.108041,12.49991,5.987005,-10.934042,-17.959463,-17.553225,-8.996889,-8.996889,-11.578244,-2.569923,9.767804,8.84017,-10.292271,-14.852556,-16.43918,-9.888952,-9.036491,-10.31969,-0.580341,8.297329,10.942596,3.979682,-12.709551,-18.920849,-17.18035,-9.769437,-17.271656,-17.271656,1.990529,7.792322,7.792322,10.422328,7.116088,-19.215649,-19.215649,-10.370387,-10.370387,-19.311626,-12.699543,-3.528115,13.297016,13.51577,1.799305,-13.704772\n-0.288748,-0.288748,1.631979,1.631979,-0.3304,0.929227,-2.255792,-3.675251,-4.958157,-4.958157,-7.991109,-2.830462,6.957736,0.848281,2.886927,-2.192021,-2.751629,0.515695,-4.445428,-6.598417,-9.236431,2.45199,0.569822,1.748321,-2.915294,-2.357683,0.409463,-1.74712,-3.992339,-6.370928,-1.556745,-6.518807,-6.518807,2.915888,2.915888,-0.533576,-7.216673,0.273221,-4.253381,-4.253381,0.131925,2.314654,1.309216,0.851414,-2.491976,-0.86983,-0.854381,-3.619618,-5.018498,-4.431658,-1.215757,1.496129,3.937178,3.937178,-3.406314,-1.254915,-1.254915,-6.580962,-5.018093,-2.854566,3.166127,7.787807,2.629629,2.629629,-0.303869,-4.01476,-5.269422,-2.707296,-2.626282,0.439767,2.392599,0.123313,-1.229167,-3.111762,-4.057972,-4.347266,-4.479625,-2.408472,0.453013,2.467413,0.197924,-0.77768,-3.979078,-3.979078,-3.56638,-3.928383,-3.928383,-7.332257,-3.25836,-4.057667,-4.057667,1.877219,1.877219,-2.230232,-4.482296,-4.59212,-4.457524,-4.465556,-1.684586,1.707669\n0.042614,0.042614,0.386189,0.386189,-0.295634,0.167792,1.014745,3.758019,2.801868,2.801868,-1.185201,-1.606014,-0.676497,1.582043,-0.013317,-0.66318,1.904311,3.827267,1.014745,-0.24503,-1.635311,-1.614004,-0.639209,0.255684,-1.227815,2.828502,2.602115,0.886903,-0.404833,-3.393137,-1.134597,-3.377157,-3.377157,-1.946925,-1.946925,-1.251785,1.273092,2.74061,-1.017408,-1.017408,0.085228,-0.69514,0.737754,-0.218397,0.926854,1.34234,2.162659,0.530011,-1.246458,-1.249122,-2.820512,0.838962,0.628556,0.628556,1.872351,3.61686,3.61686,-1.898985,-3.270622,-1.464855,2.663373,-0.852279,-0.410159,-0.410159,1.712549,3.60887,-1.102636,-0.913537,-1.331686,-0.881576,-0.292971,-0.266337,1.534103,3.004284,2.482263,-0.783032,-1.078666,-0.644536,0.324931,1.414251,-1.3743,-1.001428,0.89223,0.89223,2.032153,-0.580615,-0.580615,-2.394372,-0.071911,-1.022735,-1.022735,-0.719111,-0.719111,0.103872,0.561972,1.030725,1.568726,-1.779133,-1.395607,0.530011\n-0.02397,-0.02397,-0.247694,-0.247694,0.359555,-0.351565,-0.356892,-1.614004,0.620566,0.620566,0.109198,0.151812,4.618288,-0.918864,-1.036052,-0.522021,-0.998765,-0.745744,1.139924,-0.354229,0.428803,2.178639,1.34234,-0.873586,0.290308,-0.857606,-0.159802,0.151812,-1.044042,0.921527,3.920484,2.844482,2.844482,0.620566,0.620566,0.530011,-0.561972,-1.020072,-0.833636,-0.833636,1.965569,3.507662,-0.415486,-1.014745,-0.234377,-0.820319,-1.566063,-1.267765,-0.849616,1.741846,2.751264,0.157139,-1.12927,-1.12927,0.047941,-0.692477,-0.692477,-0.822982,2.285174,3.326552,-1.547419,-0.607249,0.02397,0.02397,-0.633883,-1.286409,0.047941,0.085228,2.70865,1.387617,-0.021307,-0.862933,-1.712549,-1.621994,-1.235805,-0.684487,-0.447447,2.239896,3.089512,-0.745744,-0.423476,-0.724437,-1.243795,-1.243795,-1.291736,-1.635311,-1.635311,0.6472,2.801868,2.06145,2.06145,-0.913537,-0.913537,0.002663,-1.211835,-3.102829,-1.590033,1.193191,1.629984,1.443548\n0.170456,0.170456,-0.327595,-0.327595,0.207743,0.780368,2.03748,5.987261,5.427953,5.427953,-0.681823,-4.961863,-8.528119,-6.770293,-2.658046,1.60335,3.960435,8.083336,5.89937,2.205272,-1.550083,-7.404176,-8.618673,-2.655382,0.719111,3.507662,6.900798,7.137838,2.72463,-4.197475,-6.386767,-10.168757,-10.168757,0.66318,0.66318,2.892423,6.31752,10.17941,-0.918864,-0.918864,-5.787509,-9.763924,-5.052418,-0.324931,4.072297,8.293742,10.00629,3.084185,-1.427568,-5.015131,-10.741382,-7.67584,0.00799,0.00799,6.943412,9.308487,9.308487,-0.564635,-4.95121,-9.124714,-6.663758,-0.721774,4.224109,4.224109,7.864939,8.650634,1.408924,-3.840583,-7.345582,-6.328173,-3.744702,1.195854,4.71417,8.288415,7.987454,1.179874,-2.389045,-5.225537,-10.624193,-8.245801,-1.512796,2.354421,5.894043,5.894043,6.216312,1.552746,1.552746,-0.420813,-2.48759,-9.795884,-9.795884,0.796348,0.796348,4.743466,8.477515,8.890338,3.398464,-0.700467,-5.814142,-9.138031',Running +'3.789469,3.789469,1.785949,15.736312,13.323074,14.088297,18.304434,12.605377,-5.929583,-14.887383,-12.691782,13.138225,13.138225,17.908653,10.420781,13.750645,13.750645,-15.954717,-15.954717,-17.098421,5.323146,18.65393,11.926241,16.333109,14.881498,-2.138984,-18.58147,-14.318035,14.850056,20.67378,12.712042,14.629406,7.861746,-8.098137,-15.142614,-10.463718,8.612655,13.212931,7.806823,9.550251,9.959131,-2.496596,-14.803667,-14.803667,-9.774899,12.339035,10.410559,10.410559,17.472239,0.112382,0.112382,-15.64325,-4.746961,14.003927,14.553844,10.352262,18.008547,8.784924,-11.538823,-10.686558,3.716328,15.10635,10.699127,10.553688,14.166513,2.35586,-10.771938,-10.771938,14.747032,15.248426,11.348672,11.348672,13.696045,-4.189581,-4.189581,-12.446098,-1.961121,16.155128,13.397664,9.655497,12.983498,11.549835,-3.646267,-9.893409,-9.893409,17.162197,10.242411,10.453217,14.836494,10.477861,-6.594807,-9.013817,10.337994,13.518934,12.326108,12.326108,14.296155,7.399585,-7.202089,-6.491145\n-1.353556,-1.353556,-10.694607,-10.508114,10.736507,18.69788,3.355638,-12.756853,-16.96566,-11.046385,-8.876884,-12.228664,-12.228664,-1.064823,17.127642,-11.756269,-11.756269,-15.302153,-15.302153,-10.747654,-14.238915,-9.366398,17.598057,15.825206,-3.71571,-18.608683,-17.188137,-9.629036,-11.084897,3.602863,20.210903,3.188413,-13.191473,-18.023758,-11.75309,-10.763788,-12.943325,2.92225,15.294577,8.059862,-12.155764,-18.187078,-14.897522,-14.897522,-10.773335,-11.593889,19.756516,19.756516,9.630764,-19.604095,-19.604095,-14.283264,-14.829888,-11.551541,8.901134,17.49339,4.803844,-13.891468,-17.599749,-13.352442,-12.298737,-4.266914,12.82926,12.589861,-5.945437,-17.997953,-18.966972,-18.966972,-11.069885,4.615759,13.896248,13.896248,11.114414,-17.577705,-17.577705,-9.754473,-11.196348,-10.683719,3.795415,14.373362,10.884935,-13.999784,-17.447353,-10.597885,-10.597885,-7.680369,13.6609,11.376645,0.159551,-14.557085,-17.581766,-10.531894,-7.809876,0.159196,11.654915,11.654915,-10.34743,-16.670801,-15.801685,-9.406509\n-0.685072,-0.685072,-4.46548,-6.611779,-6.909181,-4.766692,-5.224187,-3.06966,0.458466,0.461859,-1.157886,-11.046895,-11.046895,-4.510942,-4.991925,-6.850833,-6.850833,3.00932,3.00932,-2.423565,-7.414568,-5.061395,-2.419381,0.160704,-4.504441,-3.073678,0.68587,-2.415381,-10.873393,-3.513105,1.241541,-2.447782,-2.486551,-0.647602,-2.780989,-3.545487,-7.381432,-3.569029,-1.994576,0.44401,-3.491779,-1.670742,0.950702,0.950702,-1.245395,-11.14069,-3.866967,-3.866967,-0.187348,0.62462,0.62462,-0.978567,-4.127744,-7.959191,-4.420254,-3.410596,-2.61963,0.009486,0.399019,-2.597015,-4.3792,-6.532331,-4.576365,-2.72561,-3.7133,1.274788,1.808313,1.808313,-9.24615,-7.478777,-5.348238,-5.348238,-2.74352,0.651205,0.651205,2.139045,-1.059511,-3.386619,-6.684875,-5.485476,-4.601853,-1.331556,-0.610919,0.106409,0.106409,-8.800179,-3.875619,-2.035955,-2.172703,-2.180196,0.173529,-0.212028,-3.606009,-8.11697,-5.785815,-5.785815,-4.048079,2.256124,3.899713,2.291782\n-0.021307,-0.021307,2.753927,2.25854,2.817848,-1.467518,-3.025591,-0.969468,-0.19709,-1.691242,0.077238,2.759254,2.759254,3.909831,-1.715212,-1.968232,-1.968232,-1.534103,-1.534103,0.223723,2.71664,3.305245,-1.054696,-3.627513,0.508704,0.857606,-0.910873,0.239704,3.688771,1.110626,-1.267765,-1.614004,-0.484734,-1.259775,0.047941,1.022735,3.193384,3.37982,-1.590033,-1.614004,-1.086656,-1.472845,-0.551318,-0.551318,0.945497,2.144015,-1.078666,-1.078666,-1.904311,-1.302389,-1.302389,-0.553982,1.076003,3.254641,0.767051,-0.543328,-2.801868,-0.969468,-2.370402,-0.452773,2.231906,2.884433,0.657853,-2.916393,-3.081522,-1.859034,-2.245223,-2.245223,3.672791,2.863126,-1.960242,-1.960242,-2.271857,-4.301347,-4.301347,-0.940171,1.017408,4.554367,1.627321,-0.868259,-2.887096,-0.652526,-4.772764,-0.298298,-0.298298,3.504998,0.854943,-2.476937,-1.771143,-1.371637,-2.51955,0.298298,8.400277,2.514224,-1.15324,-1.15324,-1.3743,-1.528776,-0.830972,-0.415486\n-0.159802,-0.159802,-0.820319,-1.345003,-0.953487,-0.67916,2.676689,2.777898,-0.287644,-0.532675,-0.772378,-2.138688,-2.138688,-1.997529,-0.394179,4.911259,4.911259,-0.074574,-0.074574,-0.575289,-1.723202,-2.634075,-1.15324,2.109391,4.780754,0.511368,0.173119,-1.054696,-3.15077,-3.15876,-0.476744,3.057552,3.19072,1.459528,-0.383526,-2.221253,-2.599452,-2.229243,-0.098545,1.664608,3.933801,0.263674,-0.753734,-0.753734,-1.664608,-2.330451,-0.298298,-0.298298,1.640638,0.181109,0.181109,-0.807002,-1.954915,-1.664608,-0.985448,-1.073339,1.155904,2.900413,0.937507,-0.697804,-2.49558,-1.528776,-0.844289,0.340912,3.321226,-0.095881,-0.098545,-0.098545,-2.170649,-2.439649,-0.577952,-0.577952,1.038715,0.87625,0.87625,-0.058594,-1.222488,-1.065349,-1.030725,-0.226387,1.315706,1.251785,1.419578,-0.777705,-0.777705,-3.406454,-1.014745,0.428803,2.026827,1.614004,0.316941,-0.841626,-1.36631,-1.616667,-0.234377,-0.234377,3.323889,0.069248,-0.775041,-0.88424\n0.133169,0.133169,2.974987,7.188443,6.498629,-2.650056,-6.250936,-7.862276,-4.724823,-1.387617,3.100166,6.778283,6.778283,7.009996,0.543328,-8.086,-8.086,-1.645964,-1.645964,2.183965,5.987261,9.191299,2.540857,-3.073532,-8.072682,-5.571775,-0.002663,3.414444,8.967575,8.520129,0.087891,-6.780947,-6.81557,-4.221446,-0.980121,2.114718,6.416064,5.89138,0.292971,-4.988497,-6.213648,-4.482456,-0.402169,-0.402169,3.329216,7.404176,1.033389,1.033389,-6.471995,-5.981935,-5.981935,0.982784,4.338634,8.461535,6.471995,-1.32636,-6.378777,-7.798355,-1.640638,1.970896,5.372023,6.573204,2.058787,-4.011039,-7.587948,-5.18026,-1.046705,-1.046705,8.093989,7.116531,-0.527348,-0.527348,-5.009804,-4.06697,-4.06697,0.828309,4.285367,7.862276,5.89138,-1.265102,-5.864747,-7.119195,-3.707415,2.112054,2.112054,6.970046,2.652719,-3.318562,-7.167136,-5.806152,-1.049369,2.421006,9.31914,6.9807,0.681823,0.681823,-7.955494,-6.509283,-1.246458,3.643494',Running +'6.788207,6.788207,20.634491,9.372565,-4.625942,-5.9001,13.327912,18.318296,14.131434,19.649626,19.649626,-2.984639,-2.984639,-14.270211,18.123419,18.123419,17.318752,13.666159,17.752554,11.466929,-3.603496,-14.664149,-4.667139,17.621973,16.057133,12.068727,17.971176,11.054732,-2.894573,-9.256903,-3.646878,18.35929,15.256383,11.347973,16.851488,9.975146,-4.904239,-4.904239,-1.557207,17.471758,16.746292,12.355924,12.355924,8.899313,-11.9721,-9.304176,3.987821,3.987821,20.197933,11.725893,14.736799,14.736799,1.460086,-11.995767,-8.873759,7.7833,16.759512,13.640015,10.144168,7.496839,-2.964748,-11.14855,-4.833774,10.790705,10.790705,8.58251,11.838175,15.065922,7.388046,-9.615685,-5.034963,-5.034963,12.938239,11.495359,8.994357,8.994357,9.617487,4.923026,-4.175782,9.397019,9.397019,20.31541,14.342858,12.597578,16.757002,5.999433,-11.508911,-12.512352,-0.071637,15.806814,12.233821,8.904854,12.240798,1.688345,-8.909252,-10.264936,-0.121548,13.202801,13.97069,9.770172\n0.070662,0.070662,-2.578527,-10.670878,-8.720537,-8.375726,-10.072631,-1.006033,17.305582,5.162966,5.162966,-15.861555,-15.861555,-10.861819,-9.899539,-9.899539,1.805072,17.199205,10.360925,-14.122471,-18.888783,-13.812369,-10.170938,-9.996018,7.92631,17.997564,3.231958,-14.773088,-19.613102,-14.31136,-9.358345,-9.867416,7.747705,14.270974,3.320781,-16.23821,-21.348766,-21.348766,-12.652458,-10.101322,15.995489,12.610622,12.610622,-18.48386,-21.108633,-12.29668,-13.333254,-13.333254,-4.932797,17.705095,-4.494601,-4.494601,-17.116858,-18.668612,-11.13611,-11.67341,-3.634958,7.529642,9.381019,-12.730654,-16.314396,-12.694594,-10.502119,-10.265251,-10.265251,11.535975,12.199297,-5.901328,-16.843529,-16.763906,-9.120098,-9.120098,3.864581,13.519996,9.318152,9.318152,-2.172857,-15.240164,-17.373959,-11.146112,-11.146112,-4.496838,11.412984,12.031542,-0.857108,-14.468178,-16.52454,-7.621553,-10.869027,-7.118474,8.790576,13.210201,8.753922,-13.223858,-15.150101,-8.420988,-8.738297,-5.857739,8.143393,13.433136\n1.072521,1.072521,-1.386437,-1.230399,2.377702,-2.659516,-8.756514,-8.682566,-6.985204,-8.592705,-8.592705,1.825196,1.825196,-1.815982,-12.607285,-12.607285,-8.760502,-4.983133,-2.993029,-4.826637,-0.349688,0.871986,-3.462943,-12.363488,-6.398252,-4.156061,-5.006051,-4.022211,-4.533714,-3.064513,-4.378014,-10.802032,-4.488044,-1.353086,-6.913437,-5.034599,4.236342,4.236342,-4.138343,-15.008733,-5.046825,-0.484821,-0.484821,-3.877954,-1.345048,-2.070491,-6.55923,-6.55923,-7.216443,-4.577227,-5.092694,-5.092694,-1.998367,-0.801625,-3.07472,-8.97695,-9.951609,0.299769,0.965191,-3.025027,2.970326,3.017042,-2.398914,-7.459936,-7.459936,-2.955576,-2.213865,-2.56877,1.241792,2.128822,-0.578914,-0.578914,-2.42034,-1.199096,-0.433951,-0.433951,-3.047847,-0.341089,4.408132,-6.465379,-6.465379,-8.852397,-4.513942,-2.004021,-2.568744,-0.448436,1.40019,-1.854532,-5.380187,-7.19061,-3.230413,-1.30631,-1.595212,0.971053,2.441292,-1.193961,-4.092732,-4.770319,-1.926777,-1.948766\n0.234377,0.234377,-5.337399,-2.599452,-0.538001,0.324931,1.723202,1.09731,-0.039951,-3.126799,-3.126799,-1.424904,-1.424904,-1.35033,3.297255,3.297255,1.606014,-0.785695,-2.594125,0.905547,-3.544949,-1.829737,1.177211,4.628942,2.133361,-1.763153,-3.052225,-1.118617,-3.390473,0.657853,2.357085,4.173505,0.69514,-2.06944,-4.410545,1.486162,-3.968425,-3.968425,0.215733,2.604778,2.024163,-0.996101,-0.996101,-1.046705,-1.528776,-0.01598,2.639402,2.639402,2.847145,1.150577,-1.949589,-1.949589,-3.520979,-1.933608,1.499479,2.109391,2.96167,-4.802061,0.292971,-2.255877,1.012082,-2.178639,0.921527,3.41977,3.41977,0.45011,-2.405026,-4.5011,1.028062,-3.747365,-0.018644,-0.018644,2.679353,-0.639209,-1.510132,-1.510132,0.263674,-0.532675,-1.904311,2.253213,2.253213,2.439649,1.499479,-1.725865,-1.608677,-2.112054,-3.531632,-0.282318,2.024163,2.359748,0.593932,-0.692477,-1.912302,-0.00799,-2.389045,-1.177211,0.88424,1.909638,1.025398,-0.087891\n-0.165129,-0.165129,-4.109584,0.362219,0.26101,-1.265102,-2.026827,-2.972324,-1.193191,2.261203,2.261203,0.125179,0.125179,0.055931,-3.555602,-3.555602,-2.70066,-0.561972,0.846953,3.15876,0.833636,-0.330258,-2.27452,-3.049562,-1.494152,-0.159802,1.837727,3.102829,1.177211,-2.104064,-3.078859,-2.554174,-1.278419,-0.545991,3.542285,2.343768,0.471417,0.471417,-2.615432,-3.60088,-2.120045,1.16123,1.16123,2.24256,-0.407496,-1.819084,-2.95368,-2.95368,-0.439456,-0.700467,3.483691,3.483691,1.731192,0.833636,-2.165322,-3.065542,-3.401127,-2.120045,2.492917,5.044427,-0.127842,0.269001,-1.914965,-2.817848,-2.817848,-0.657853,0.471417,3.164087,-1.219825,0.796348,-1.020072,-1.020072,-3.406454,0.45011,1.8324,1.8324,3.044235,0.66318,-0.162466,-2.631412,-2.631412,-2.761917,-2.263867,0.564635,2.713977,2.591461,1.158567,-1.081329,-2.801868,-2.317134,-1.488825,-0.037287,2.812522,1.78446,1.35033,-0.170456,-3.052225,-3.009611,-0.516694,0.886903\n-0.069248,-0.069248,-0.980121,-3.83792,-1.552746,2.535531,7.540008,8.048712,-1.099973,-6.085806,-6.085806,-4.916586,-4.916586,0.807002,9.060794,9.060794,7.276334,0.436793,-6.3335,-8.59204,-4.205465,1.123943,4.71417,9.132705,7.19377,-1.004091,-7.619909,-8.722545,-3.036245,2.149342,5.574439,9.569497,6.99668,-3.656811,-8.63998,-8.709229,-3.499672,-3.499672,5.758212,9.162002,4.375921,-5.278804,-5.278804,-7.385532,-0.48207,3.949781,6.57853,6.57853,8.304396,1.973559,-7.622572,-7.622572,-5.664993,-1.483499,3.35585,6.807581,7.145829,2.048133,-5.097695,-6.043192,-3.931138,-0.295634,3.672791,7.215076,7.215076,1.281082,-4.7701,-7.145829,-7.065928,0.791022,3.933801,3.933801,5.894043,0.162466,-4.144208,-4.144208,-5.85143,-5.611726,-2.873779,6.655768,6.655768,8.661287,5.590419,-3.451731,-6.820897,-5.643686,-2.847145,2.386382,4.660902,6.479985,3.494345,-1.352993,-5.808816,-5.941984,-1.946925,2.149342,5.060408,5.760875,2.450303,-3.212027',Running +'-0.218596,-0.218596,0.388206,0.321093,0.651842,7.284066,7.284066,14.26026,7.937747,-5.59865,-16.764406,-11.968699,-0.489751,18.071058,17.016079,13.679733,13.141502,15.560085,17.527506,11.939986,-5.214782,-15.720898,-13.000766,2.766914,15.564556,19.03216,13.003383,9.646821,13.295004,13.295004,12.240137,12.240137,3.40148,-10.299049,-13.405396,-0.102262,13.839542,20.97995,13.353573,9.851229,12.33238,20.421581,11.87377,3.201656,-8.421026,-9.047107,2.25249,12.42935,20.77413,14.726585,20.51441,20.978561,10.39878,-5.990469,-12.899409,-13.595166,-13.595166,11.965708,20.01423,10.164063,13.241253,17.656847,15.825554,11.589194,-8.48292,-16.333492,-6.047026,15.079836,13.051369,9.528765,13.971885,11.250488,13.921528,5.722101,-13.618794,-11.736523,4.248073,11.994421,8.507333,9.09272,9.606459,8.281724,1.203614,-5.766367,-4.422259,11.520107,11.852513,11.852513,8.186396,6.597444,6.597444,-1.65623,1.584524,-1.130652,-1.130652,-0.083509,-0.049762,3.126378,6.59282,6.59282\n0.191299,0.191299,0.221796,1.701039,3.584238,8.971363,8.971363,-3.60092,-12.06021,-10.724354,-8.195114,-7.974519,-12.912261,-9.841836,-4.682194,4.201971,7.497664,3.301964,-10.165956,-13.673771,-20.271267,-13.823797,-12.028855,-15.2747,-10.661982,-8.755116,3.35231,9.469545,9.236881,9.236881,-13.110377,-13.110377,-18.584272,-18.999203,-16.359993,-17.660389,-11.661662,-10.016459,6.108137,7.600756,6.498817,-7.147995,-13.067736,-18.580975,-18.59621,-16.525017,-16.50828,-12.974285,-8.038395,8.521856,14.76099,6.59905,-16.582582,-22.814299,-10.929714,-8.841907,-8.841907,-13.560257,-10.388098,1.87265,8.954548,8.566543,-2.482801,-14.3143,-19.272125,-10.161121,-10.426776,-11.067513,-3.656695,8.653979,11.29045,3.808065,-11.812262,-16.920473,-13.375105,-6.101996,-11.442816,-9.716261,7.384137,9.726357,2.310689,-11.51907,-17.261753,-15.667071,-6.605821,-3.601866,0.790711,0.790711,2.252955,-1.052611,-1.052611,-2.712072,-5.894898,-1.331455,-1.331455,-1.312711,-11.356872,-3.222565,3.808157,3.808157\n-0.228349,-0.228349,0.77948,0.953253,-1.319873,-1.021887,-1.021887,-1.796353,-4.80141,-1.081212,2.545649,-0.656171,-3.324549,-1.005499,-0.295515,-2.993012,-3.089902,-4.297733,-0.003406,-3.289511,2.187022,3.250268,0.77193,-6.53857,-1.734687,-2.286378,-2.534011,-2.729009,-2.348698,-2.348698,-3.815464,-3.815464,-6.253274,-2.553075,1.703068,-3.753962,-3.365605,-2.586327,-4.279575,-2.440775,-3.018158,-0.538758,-1.623256,-4.588378,-2.746806,-0.024539,-0.976243,0.207059,-4.35693,-8.728105,-3.813376,0.668488,5.792571,1.79712,-2.21483,-3.600454,-3.600454,-1.724655,5.958764,-2.304322,-4.268745,-3.453163,1.085031,-0.658552,1.305203,-1.092878,-3.231075,2.641778,-2.347557,-3.204712,-5.057946,-2.630763,3.103104,3.477649,-0.362828,-1.380375,-2.204057,-1.567251,-3.165137,-3.240792,-2.20723,1.713533,1.58772,2.041813,1.215376,-1.794089,-5.718471,-5.718471,-3.674187,0.017632,0.017632,-0.41057,1.8106,1.257356,1.257356,0.834973,-0.531245,-0.613138,-4.424833,-4.424833\n0.042614,0.042614,-0.745744,-0.665843,-0.972131,-2.96167,-2.96167,-2.277184,-0.958814,-0.167792,0.170456,0.799012,1.592697,2.548847,1.930945,-0.364882,0.48207,-1.15324,-1.451538,-2.018837,-1.126607,-0.89223,-0.940171,1.624657,2.70865,3.656811,-0.820319,-1.35832,-0.828309,-0.828309,-0.681823,-0.681823,1.77647,0.378199,-0.002663,1.408924,2.951017,4.08295,-0.607249,-0.828309,-0.593932,-1.435558,-2.860462,-1.709885,1.395607,1.851044,1.851044,3.001621,2.128035,-0.751071,-2.186629,-2.378392,5.161616,-2.362412,-1.60335,-0.346238,-0.346238,4.647585,2.703323,0.356892,-0.889566,-1.584707,-0.476744,-1.118617,-1.763153,-0.23704,2.359748,2.887096,-1.219825,-1.193191,-1.547419,-1.400934,0.511368,1.507469,-0.356892,0.620566,1.281082,1.1053,-1.150577,-0.6472,-0.631219,1.16123,-1.470182,-1.089319,0.929517,1.028062,2.452966,2.452966,-1.606014,-0.804339,-0.804339,1.403597,-2.050797,-1.600687,-1.600687,-0.833636,0.636546,0.447447,1.813757,1.813757\n0.055931,0.055931,0.48207,0.48207,0.625893,1.110626,1.110626,2.048133,1.526112,1.049369,0.25302,-0.41815,-0.857606,-2.378392,-0.354229,0.380862,-0.19709,-0.22905,0.010653,1.922955,0.149149,0.058594,-0.090555,-2.255877,-2.615432,-0.767051,1.957579,-0.098545,-0.729764,-0.729764,4.51708,4.51708,2.423669,-0.386189,-1.310379,-1.494152,-2.540857,-1.049369,1.222488,-0.125179,-0.354229,-0.266337,2.807195,2.881769,-0.103872,-1.430231,-0.772378,-0.255684,0.692477,0.428803,-1.33435,3.560929,-1.384954,0.889566,-0.127842,-1.025398,-1.025398,-1.036052,0.210406,-0.814992,-0.937507,1.12927,2.106728,1.629984,-0.263674,-0.359555,-0.295634,-0.247694,0.966804,-0.93218,0.631219,2.002856,2.034817,-0.21307,-0.22106,-0.964141,-0.300961,0.921527,-0.596595,-0.077238,2.093411,1.171884,0.24503,-0.071911,-1.211835,0.130505,-0.146486,-0.146486,-0.210406,1.211835,1.211835,0.146486,0.125179,-0.194426,-0.194426,0.173119,-0.306288,-1.992203,-1.203844,-1.203844\n-0.058594,-0.058594,0.356892,0.67916,0.583279,-1.115953,-1.115953,-3.273285,-3.659474,-4.479793,-2.492917,1.12927,5.318755,9.931716,7.321611,1.451538,-1.041379,-4.628942,-7.747751,-8.783803,-5.550468,-1.685915,1.416914,5.984598,9.010189,8.815763,3.337206,0.580615,-2.133361,-2.133361,-7.372215,-7.372215,-7.48674,-3.904504,0.809665,5.896707,9.465626,9.412358,2.508897,0.633883,-1.885668,-7.702474,-8.245801,-7.023314,-2.863126,1.33435,5.140309,7.790365,8.741189,3.329216,-0.918864,-6.7916,-11.503106,-4.152198,0.543328,3.310572,3.310572,9.177981,10.501678,5.806152,0.391516,-4.900606,-6.794263,-9.11406,-3.86988,0.170456,4.9592,8.855714,8.765159,1.054696,-2.615432,-4.850001,-8.024741,-6.754313,-0.151812,4.109584,7.281661,6.245609,1.566063,-2.128035,-5.694291,-7.00467,-5.40132,0.431466,4.415872,7.353571,5.377349,5.377349,-3.494345,-6.093796,-6.093796,-4.431852,-1.34234,0.865596,0.865596,1.3743,2.024163,5.590419,3.081522,3.081522',Running +'-0.294498,-0.294498,-0.050044,-0.17845,-0.199763,-0.230068,0.33958,0.627589,0.627589,0.520721,1.509732,1.509732,1.411413,-0.015079,-0.838382,-0.838382,-1.157245,0.945294,2.391522,0.467985,0.575243,1.111957,0.031872,-0.206869,3.041947,0.08323,0.716488,-0.646688,-1.228849,-0.417852,2.051507,-0.599253,0.511269,0.935411,0.758998,0.166144,2.157564,1.451071,-0.086295,-0.35002,-0.494393,-1.207653,-1.207653,-1.193606,0.257466,0.257466,0.791841,0.988725,0.740071,-0.035099,-0.012259,2.792901,0.33155,0.678932,-0.274548,-0.709223,-0.52498,1.227418,1.846658,0.775808,0.196209,0.196209,-0.305479,0.029157,2.013415,0.055069,0.157702,0.157702,-0.515719,-1.012063,-1.012063,2.460072,2.460072,0.264523,1.071334,0.650227,-0.262418,-0.164437,2.374401,1.440298,-0.639463,-0.558145,-1.042338,-0.958528,-0.397079,0.822783,-0.035884,-0.465482,0.964934,0.945929,0.455329,0.162048,0.670061,2.277526,1.166741,1.166741,-0.745801,-1.244642,-0.574525,-0.231273\n0.540218,0.540218,-0.515245,-0.82513,-1.939472,-2.018889,-1.445489,0.937933,0.937933,2.133316,3.245938,3.245938,2.211187,0.925097,-2.399681,-2.399681,-3.087556,-1.960345,-2.298249,0.091218,1.310707,2.288819,3.600008,3.820461,2.98639,1.447829,-1.130586,-1.594032,-2.050468,-2.292118,-2.469947,-2.518351,0.485381,0.918647,2.937643,3.918656,3.91646,1.937354,-0.364875,0.018462,-2.300838,-2.969107,-2.969107,-3.452421,-1.401682,-1.401682,0.326887,0.807455,1.977969,3.024783,3.711162,2.476988,0.48248,-0.460593,-2.158485,-2.90797,-3.467125,-2.668073,-2.022527,-0.971665,2.035108,2.035108,3.113099,2.895168,2.907908,0.479043,-0.502423,-0.502423,-2.005778,-3.015547,-3.015547,-2.120991,-2.120991,-0.472749,1.357126,2.432765,3.731456,3.774191,2.010541,-0.318809,-1.322631,-1.345,-1.981499,-1.905844,-2.110746,-1.390764,-1.397474,-0.61326,1.629876,2.495374,3.366194,3.11458,1.625569,0.27002,-0.898781,-0.898781,-2.696395,-3.453138,-2.647502,-0.896672\n0.218114,0.218114,-0.301108,-0.097557,0.129453,-0.419257,-0.586323,-0.389805,-0.389805,-0.158165,0.734566,0.734566,0.917746,0.631105,0.43924,0.43924,0.204297,-0.3008,-1.431466,-1.004711,-0.648919,-0.677855,-0.628709,-0.46813,-0.306277,0.292836,0.296375,0.444507,0.334579,0.109552,-1.013227,-1.086715,-0.584468,-1.083662,-1.010431,-1.01804,-0.66719,-0.122688,0.027907,0.712921,0.191443,0.273547,0.273547,0.320486,-0.413839,-0.413839,-0.729922,-0.952913,-0.916729,-0.456458,0.377395,0.287081,0.498202,0.440782,-0.092523,0.24903,-0.225012,-0.388963,-1.028374,-1.018852,-0.5032,-0.5032,-0.939003,-0.518482,-0.320676,0.366582,0.69831,0.69831,0.187543,0.081382,0.081382,-0.911546,-0.911546,-0.748045,-0.794525,-0.950216,-0.953518,-0.660701,-0.577812,-0.028884,0.308612,0.743747,0.675632,0.964698,0.262603,-0.528762,-0.948078,-0.789506,-1.174872,-0.835454,-0.254898,0.448106,0.78148,0.349089,-0.514016,-0.514016,0.234708,0.299555,-0.127122,-0.287932\n-0.045277,-0.045277,0.103872,0.029297,0.079901,0.575289,0.756398,0.68715,0.68715,0.48207,0.436793,0.436793,-0.327595,-0.471417,0.002663,0.002663,-0.207743,0.284981,-0.063921,1.052032,0.681823,0.67117,0.276991,-0.207743,-0.117188,-0.69514,-0.346238,-0.748408,-0.122515,-0.194426,-0.292971,0.849616,1.598024,1.062686,0.772378,0.138495,-0.066584,-0.063921,-0.756398,-0.292971,-0.812329,-0.500714,-0.500714,-0.23704,-0.111862,-0.111862,0.292971,0.812329,0.402169,0.034624,-0.071911,-0.316941,-0.631219,-0.580615,-1.012082,-0.125179,-0.138495,0.109198,0.095881,0.641873,1.222488,1.222488,0.021307,-0.138495,-0.26101,-0.410159,-0.463427,-0.463427,-0.974794,-0.021307,-0.021307,0.255684,0.255684,1.13726,1.467518,0.279654,0.066584,-0.050604,-0.295634,-0.402169,-0.894893,-0.764388,-0.516694,-0.087891,-0.02397,0.018644,0.295634,0.966804,0.830972,-0.005327,0.332922,0.207743,-0.183773,-0.751071,-1.321033,-1.321033,-0.43413,0.02397,0.25302,0.269001\n-0.002663,-0.002663,-0.183773,-0.199753,-0.402169,-0.431466,-0.564635,-0.444783,-0.444783,-0.25302,0.322268,0.322268,0.612576,0.591269,0.210406,0.210406,0.061258,-0.343575,-0.101208,-0.524684,-0.407496,-0.431466,0.039951,0.151812,0.402169,0.500714,0.111862,0.231713,-0.047941,-0.194426,-0.00799,-0.553982,-0.652526,-0.269001,0.042614,0.269001,0.207743,0.532675,0.034624,0.159802,0.127842,0.117188,0.117188,-0.03196,0.00799,0.00799,-0.378199,-0.284981,-0.194426,-0.290308,0.069248,0.378199,0.391516,0.476744,0.48207,0.167792,0.021307,-0.284981,-0.348902,-0.801675,-0.447447,-0.447447,0.135832,0.191763,0.274327,0.314278,0.159802,0.159802,0.351565,-0.111862,-0.111862,-0.311615,-0.311615,-0.801675,-0.314278,-0.034624,0.157139,0.202416,0.26101,0.284981,-0.103872,0.130505,0.186436,0.103872,0.010653,-0.085228,-0.300961,-0.676497,-0.138495,-0.436793,-0.279654,-0.146486,0.191763,0.676497,0.857606,0.857606,0.095881,-0.01598,-0.21307,-0.495387\n0.03196,0.03196,0.037287,0.23704,0.402169,0.918864,1.203844,1.36631,1.36631,1.078666,-0.743081,-0.743081,-1.275755,-1.302389,-1.139924,-1.139924,-0.607249,0.045277,0.407496,1.307716,1.566063,1.539429,0.953487,0.25302,-0.87625,-1.462192,-1.281082,-1.163894,-0.6472,-0.340912,-0.077238,0.814992,1.542093,1.619331,1.275755,0.708457,-0.42614,-1.438221,-1.187864,-1.134597,-1.065349,-0.673833,-0.673833,-0.258347,1.065349,1.065349,1.656618,1.321033,1.249122,0.974794,-0.173119,-1.33435,-1.502142,-1.36631,-1.345003,-1.014745,-0.370209,0.223723,0.817655,1.550083,1.542093,1.542093,0.492724,-0.114525,-0.751071,-1.427568,-1.158567,-1.158567,-1.110626,-0.23704,-0.23704,0.708457,0.708457,1.392944,1.488825,1.267765,0.721774,-0.20508,-1.310379,-1.547419,-0.817655,-0.538001,-0.596595,-0.444783,-0.045277,0.362219,0.761725,1.193191,1.539429,1.345003,0.676497,-0.386189,-1.283746,-1.739182,-1.582043,-1.582043,-0.644536,-0.157139,0.705794,1.323696',Walking +'-0.171905,-0.171905,-0.397472,0.148247,0.437436,0.416146,3.263879,0.756706,0.727787,0.731525,0.731525,0.057323,1.77378,2.718751,2.718751,2.384223,2.20145,2.940508,1.448166,1.161944,3.622597,2.432673,2.162643,0.251163,-0.444213,-1.199999,3.427222,0.651302,3.006421,2.536712,1.560582,0.475863,1.365813,4.23822,3.362036,2.200953,0.164071,-1.032403,-0.125428,4.019448,4.019448,4.759672,1.714924,1.714924,1.117289,0.987012,2.301029,5.046151,3.919929,1.565703,-1.359286,-1.876444,-0.51882,2.389271,7.061596,4.413591,1.717073,0.318995,0.495979,2.104658,4.971646,4.436151,2.343158,-0.018209,-0.644815,-0.882031,3.19806,3.347714,3.121235,0.513653,1.297792,0.978931,0.978931,0.935088,0.935088,0.758781,0.758781,-1.976536,1.453738,3.45894,1.045434,3.636767,2.843792,0.843159,0.974691,2.666191,2.228517,2.030206,1.259406,2.413965,-0.133065,1.087109,0.10637,0.053373,-0.067626,0.028986,-0.084752,1.777585,4.298786,3.329566\n0.206276,0.206276,-3.21795,-2.023047,-1.129752,1.812163,4.280585,5.600473,4.476481,0.843153,0.843153,-3.889655,-7.014849,-6.500623,-6.500623,-0.416653,1.588274,4.072497,6.15986,6.945307,6.660616,0.861403,-2.542436,-4.686335,-6.054182,-5.708097,-4.278418,-1.614115,1.052884,3.955267,5.214526,6.367731,6.072894,3.531618,-1.780035,-3.171113,-7.00048,-6.903122,-6.364091,-4.367261,-4.367261,4.208605,6.41444,6.41444,6.705604,6.718939,3.814538,-1.828822,-3.221366,-5.176212,-5.977525,-6.769242,-5.075172,-3.052548,0.563856,5.007685,6.127525,6.13492,6.029096,4.157787,-0.414926,-2.46353,-5.912264,-5.953626,-5.536477,-5.044784,-1.598589,1.452225,0.726764,5.019218,5.44417,3.835403,3.835403,-1.133687,-1.133687,2.275934,2.275934,3.060829,1.748007,-5.692806,-10.974271,-3.904997,3.883953,7.534417,6.357741,4.127331,0.154475,-2.112733,-3.90748,-2.472241,-1.756183,-0.682946,1.761726,2.929721,4.898968,4.018091,1.625796,0.365462,0.158983,3.025215\n-0.30841,-0.30841,-0.035401,-0.087897,-0.360396,-0.816483,0.63786,0.691396,1.626386,0.722274,0.722274,0.135239,-0.405368,-0.989033,-0.989033,-1.365361,-0.532969,-1.655391,-1.895682,-0.857845,-0.60133,0.538038,-0.392407,-0.772405,-0.548734,-1.02856,-0.63179,-0.449171,-1.060088,-1.550925,-3.100925,-1.993565,-0.603646,-0.025475,0.752871,-0.54371,-1.408315,-0.579809,-1.134914,-0.83532,-0.83532,-2.317498,-2.715739,-2.715739,-2.102641,-0.109697,-0.228483,-0.349484,0.194821,-1.30721,-1.075311,-0.562636,-1.069016,-1.212169,-0.980772,-1.04028,-2.266448,-1.61998,-1.556092,-0.807793,-0.139154,0.203674,-0.910409,0.067635,1.143953,0.016314,-0.747427,-1.413683,-1.175918,-1.748442,-1.591605,-1.33701,-1.33701,2.045852,2.045852,-1.652035,-1.652035,-2.253061,-1.776243,-6.897663,-4.465806,2.413394,1.940914,2.354349,3.44035,2.306729,0.970264,0.108279,-0.322817,1.130448,-0.500621,-1.131231,-0.72687,-0.723309,-0.919841,-0.439168,-3.531487,-5.659117,-3.300055,-2.039649\n-0.189099,-0.189099,0.857606,0.665843,0.889566,0.588605,-0.306288,-0.476744,0.202416,-1.012082,-1.012082,-0.348902,-0.242367,0.388852,0.388852,1.504805,1.294399,1.155904,-0.948161,-0.873586,-0.556645,-0.332922,-1.472845,-0.966804,-0.300961,-0.263674,0.42614,1.09731,1.456865,1.909638,-0.460763,-1.35033,0.061258,-0.295634,-0.652526,-1.79245,-0.772378,0.484734,0.543328,1.275755,1.275755,1.480835,-0.300961,-0.300961,-0.727101,-0.210406,-0.436793,-0.745744,-1.049369,-1.230478,-0.460763,0.522021,0.372872,0.665843,2.743274,1.004091,-0.282318,-0.250357,-0.311615,-0.23704,-0.436793,-1.241132,-1.733856,0.149149,0.00799,0.138495,0.410159,0.324931,2.072104,1.693905,1.297062,1.781796,1.781796,0.969468,0.969468,-4.258733,-4.258733,-3.291929,-2.370402,-1.355657,-1.880341,-1.022735,-0.623229,0.162466,0.583279,0.6472,1.13726,1.965569,2.050797,0.367545,-0.045277,-0.026634,0.173119,0.330258,0.870923,1.512796,2.96167,7.063264,6.064499,2.341105\n0.079901,0.079901,0.135832,-0.175783,-0.383526,-0.22106,0.093218,0.705794,0.873586,0.370209,0.370209,0.23704,-0.01598,-0.074574,-0.074574,-0.644536,-0.23704,0.276991,0.519358,0.021307,-0.103872,0.498051,0.673833,0.476744,0.308951,-0.095881,-0.785695,-0.111862,-0.711121,0.490061,1.012082,0,-0.41815,-0.058594,0.569962,0.65519,0.407496,0.026634,-0.402169,-0.937507,-0.937507,0.279654,0.719111,0.719111,-0.375536,-0.327595,0.255684,0.90022,0.974794,0.791022,0.287644,-0.22905,-0.167792,-0.577952,-1.270429,0.412823,0.41815,-0.021307,-0.141159,-0.308951,0.170456,0.593932,0.676497,0.01598,-0.202416,-0.013317,-0.415486,-0.956151,-1.432895,-0.67117,-1.022735,-0.620566,-0.620566,0.199753,0.199753,2.159995,2.159995,1.262439,0.854943,1.094646,-1.400934,-2.096074,-1.520786,-0.580615,-0.103872,0.149149,0.332922,-0.24503,-0.591269,-0.506041,0.495387,0.013317,-0.346238,-0.186436,-0.356892,-0.295634,-0.540665,-1.651291,-2.583471,-2.170649\n0.055931,0.055931,0.391516,0.998765,1.35033,1.512796,1.267765,0.077238,-1.185201,-2.018837,-2.018837,-1.997529,-1.033389,0.535338,0.535338,2.769908,2.935037,2.146678,1.672598,0.756398,-1.227815,-2.847145,-2.460956,-1.978886,-1.496815,-0.378199,0.801675,1.954915,2.852472,1.845717,1.518122,0.993438,-0.463427,-2.572818,-2.868452,-2.564828,-1.835064,-0.799012,0.940171,1.914965,1.914965,2.844482,2.165322,2.165322,0.905547,-0.799012,-2.317134,-3.584899,-3.504998,-1.443548,-1.038715,-0.367545,1.257112,2.386382,3.121473,3.118809,1.558073,0.250357,-0.796348,-2.181302,-3.385147,-2.567491,-2.524877,-0.886903,0.202416,0.913537,2.306481,3.108156,1.981549,1.201181,-0.02397,-1.976222,-1.976222,-1.733856,-1.733856,0.543328,0.543328,0.346238,-1.070676,-1.262439,-0.189099,2.197282,2.548847,1.459528,-0.514031,-1.709885,-2.434323,-2.144015,-0.45011,0.852279,1.171884,1.32636,1.249122,0.777705,0.364882,-1.030725,-1.422241,-1.15324,1.435558,2.884433',Walking +'0.175924,0.175924,0.194403,0.775387,1.785844,1.715767,2.345979,1.780053,0.038543,0.038543,1.119205,1.119205,2.576788,1.861045,1.089805,-0.307751,-0.825582,-0.825582,2.781399,2.778639,3.846092,2.286435,0.600696,0.412206,1.282125,2.994772,2.697969,0.912693,-0.117731,-1.647887,-1.256202,-1.426551,4.442557,2.712517,3.414972,1.048061,0.839428,1.48904,1.48904,4.215045,4.215045,1.650402,0.089507,-1.493177,-1.412705,-0.928768,0.777519,3.681648,2.259454,3.451206,1.435378,0.420099,0.852682,3.349779,5.076451,1.202899,-0.687747,-0.91224,-1.234082,-1.234082,2.475095,3.351259,3.445488,1.615947,1.615947,0.31426,0.31426,2.262289,2.262289,1.80233,0.26699,-0.923441,-1.237095,0.250875,3.438202,1.85566,3.198565,1.248267,0.175647,0.098286,1.512168,4.255486,2.319755,0.886162,-0.072483,-1.264711,-0.35775,0.353599,1.130382,2.273779,1.579234,0.335183,-0.055718,0.286703,2.988379,1.056881,0.451983,0.451983,-0.37264,-0.740874\n0.548757,0.548757,-3.699192,-3.445283,-1.720403,-1.282184,1.990968,4.388698,5.458526,5.458526,3.984892,3.984892,-2.067733,-2.918507,-4.937436,-6.979507,-4.555455,-4.555455,-3.370381,1.1501,2.705777,5.010615,5.536918,5.149881,4.015463,0.325371,-1.424803,-4.783514,-4.694591,-5.686062,-5.468449,-4.152007,-0.932342,1.20805,3.841669,6.090746,5.611154,3.838217,3.838217,-0.231126,-0.231126,-4.004581,-3.870993,-4.470479,-5.489163,-4.449976,-2.341865,0.080517,2.397335,4.037516,5.188442,4.853614,5.515367,0.523543,-1.355619,-4.008819,-5.058914,-5.320774,-4.396914,-4.396914,-1.902625,0.035911,2.380586,4.203579,4.203579,5.072402,5.072402,0.072811,0.072811,-3.287289,-4.46208,-5.670546,-4.435864,-3.917476,-0.976741,1.443985,1.678746,4.64438,5.118445,6.085923,3.271485,1.930968,-2.999916,-4.24017,-4.026756,-4.530138,-3.940158,-2.592953,-0.265283,1.360322,2.871345,3.674804,4.335242,3.086777,0.927345,-1.082617,-2.278377,-2.278377,-2.929051,-2.741558\n-1.191314,-1.191314,-0.554051,-1.4138,-1.099988,0.55481,-0.249191,-0.581115,-0.381225,-0.381225,-0.00909,-0.00909,-0.263943,0.514665,0.48449,-0.42553,-1.690185,-1.690185,-3.054033,-0.97318,-0.6567,-0.958743,-1.124232,-0.692528,-0.137075,-0.540857,-1.158498,-2.184444,-1.353026,-1.23922,-1.465484,-0.125606,-1.197756,-0.791017,-1.000428,0.273612,1.169029,0.966175,0.966175,0.134105,0.134105,-1.77956,-1.506517,-0.80654,-1.566744,-1.48382,-1.261925,-0.809746,-0.874093,-0.902544,0.208386,0.84217,0.629687,-0.230464,-0.708161,-1.565438,-1.447565,-0.344246,-0.358449,-0.358449,-0.62484,-0.4849,-0.65226,-0.878787,-0.878787,-0.672496,-0.672496,-0.479207,-0.479207,-0.76649,0.292341,-0.106681,-0.138674,0.258159,0.002203,-1.248814,-1.937365,-1.253586,-0.755829,-1.698803,-0.489896,0.237059,-1.452848,-0.490918,0.58705,0.8078,0.435532,-0.448178,-0.95671,-0.902808,-0.8329,-0.848936,-0.409279,-0.338862,-0.306288,-0.558303,-0.210974,-0.210974,0.724428,-0.00678\n0.039951,0.039951,0.042614,0.820319,1.427568,1.651291,1.360983,0.348902,-0.25302,-0.25302,0.332922,0.332922,-0.063921,-1.451538,-1.733856,-1.182537,0.70313,0.70313,2.167985,2.330451,2.343768,1.057359,-0.969468,-1.142587,-1.177211,-1.044042,-1.510132,-1.59536,-0.175783,0.255684,0.22106,0.913537,1.941599,0.511368,0.852279,-0.737754,-0.290308,-0.234377,-0.234377,0.559308,0.559308,-2.652719,-1.424904,-0.498051,0.471417,0.804339,1.313043,1.323696,0.495387,0.862933,-0.074574,1.297062,1.198518,-0.167792,-1.203844,-2.346431,-0.487397,0.013317,-0.165129,-0.165129,0.623229,1.286409,2.03748,1.017408,1.017408,-0.404833,-0.404833,-1.283746,-1.283746,-1.435558,-0.65519,-0.00799,-0.567298,0.415486,1.58737,0.639209,0.740418,0.194426,0.183773,-0.087891,-0.058594,-2.175975,-1.635311,0.114525,-0.649863,-0.42614,-0.242367,-0.053267,0.24503,0.617902,0.926854,0.972131,0.577952,-0.45011,-0.514031,-1.142587,-0.700467,-0.700467,-0.319605,0\n0.263674,0.263674,-0.178446,-0.327595,-0.743081,-1.017408,-0.343575,0.444783,0.23704,0.23704,0.455437,0.455437,0.775041,0.159802,0.290308,0.290308,-0.21307,-0.21307,-1.065349,-1.265102,-0.4581,0.037287,0.234377,0.362219,0.498051,1.227815,1.632647,0.791022,0.807002,0.127842,-0.194426,-0.860269,-0.791022,-1.060022,-0.599259,-0.668507,-0.26101,0.631219,0.631219,0.862933,0.862933,0.902883,0.830972,0.530011,0.026634,-0.282318,-1.036052,-1.267765,-1.286409,-0.796348,-0.652526,-0.109198,0.383526,0.641873,0.719111,0.849616,0.743081,-0.167792,-0.303624,-0.303624,-1.246458,-1.217161,-0.673833,-0.082565,-0.082565,0.295634,0.295634,0.711121,0.711121,0.22106,0.298298,0.002663,-0.101208,-0.511368,-0.716447,-0.154476,-0.399506,-0.47408,-0.276991,-0.191763,-0.157139,0.825646,1.459528,-0.058594,-0.130505,-0.332922,-0.292971,-0.487397,-0.532675,-0.88424,-0.45011,-0.159802,0.03196,0.290308,0.508704,0.689814,0.274327,0.274327,0.034624,-0.02397\n0.937507,0.937507,0.071911,0.351565,1.052032,1.576717,1.912302,1.542093,0.958814,0.958814,-1.797777,-1.797777,-2.823175,-2.024163,-1.637974,-1.054696,0.950824,0.950824,1.752499,2.181302,2.346431,1.683252,1.099973,-0.010653,-1.34234,-2.144015,-2.106728,-1.214498,-1.34234,-0.607249,0.287644,1.262439,1.957579,2.623422,2.096074,1.904311,0.159802,-1.414251,-1.414251,-2.796541,-2.796541,-1.416914,-0.910873,-0.711121,-0.338248,0.569962,1.667271,2.359748,2.476937,1.861697,1.278419,-0.530011,-1.936272,-3.254641,-2.745937,-1.560736,-1.416914,-0.503377,0.420813,0.420813,1.803103,2.120045,2.074767,1.704558,1.704558,-0.993438,-0.993438,-2.564828,-2.564828,-1.77647,-1.568726,-0.609912,0.767051,1.291736,2.064114,2.52754,2.426333,1.680588,0.476744,-1.177211,-2.578145,-2.889759,-2.772571,-2.237233,-1.012082,0.00799,0.743081,1.526112,2.146678,2.468947,1.851044,1.13726,-0.202416,-1.411588,-2.002856,-1.760489,-1.456865,-1.456865,-0.868259,0.431466',Walking +'-0.553932,-0.553932,-0.365959,-0.096493,-1.030899,-1.030899,0.645436,1.02223,1.128611,1.128611,0.432704,0.175695,1.433394,1.508731,0.15736,0.011726,-0.955133,-1.087438,1.361695,1.870768,1.457981,1.292105,0.738552,-0.061951,2.233345,1.155778,-0.184093,0.518489,-0.654339,-1.19484,-0.639574,1.503936,1.503936,1.574703,1.087833,1.087833,-0.309591,-0.309591,2.130733,2.380031,0.218998,-0.345118,-0.345118,-1.059422,-0.836859,0.947094,0.008885,2.496365,1.559025,0.125367,-0.306719,2.326581,2.615591,0.78194,-0.034066,-0.767787,-0.633682,-0.911156,1.483389,2.763005,1.511169,2.116831,0.805863,0.805863,0.101588,4.298283,1.75515,1.75515,0.275376,-0.995847,-1.092284,-1.092284,-1.19454,0.952505,2.405854,2.533346,0.816611,-0.130124,-0.055262,0.258865,2.329895,1.780235,0.412399,-0.977834,-0.707273,-1.25129,-0.609267,0.142921,1.224855,3.063803,1.730512,0.389025,0.209837,0.595951,0.595951,1.693106,-0.844385,-0.09015,-0.09015,-1.300555\n0.176663,0.176663,0.854647,0.22245,-2.157695,-2.157695,-2.680634,-1.035333,1.13391,1.13391,3.268357,4.725624,4.197819,1.390873,-0.311069,-2.236084,-2.880926,-3.132843,-2.985965,-2.784513,-0.453774,1.57913,3.555755,4.324705,4.208455,2.343638,0.521391,-0.426126,-3.122351,-3.120268,-3.333311,-2.145797,-2.145797,0.26766,1.11286,1.11286,4.008622,4.008622,4.223926,1.965001,0.876686,-3.03527,-3.03527,-3.812753,-3.246171,-2.945288,-1.462971,0.923759,2.76574,3.954906,3.93077,3.593872,1.673391,-0.584553,-2.6509,-3.452134,-4.258913,-4.088021,-2.627652,-1.814986,0.675063,1.996531,4.226835,4.226835,4.289504,1.738023,-1.485941,-1.485941,-2.379441,-3.2755,-3.002474,-3.002474,-2.387936,-1.429512,-0.177953,1.882683,3.745573,3.72925,2.944692,1.733811,1.035873,-0.992148,-2.45854,-1.311567,-1.822474,-4.141,-4.549515,-4.130714,-1.041825,0.800436,2.805892,4.180665,4.49024,3.145746,3.145746,-0.10036,-0.705734,-0.967971,-0.967971,-2.231219\n-0.357691,-0.357691,0.476774,1.119257,1.026206,1.026206,-0.115274,-0.376209,-0.699099,-0.699099,-0.720667,-0.383424,-0.26824,0.244396,0.41537,0.097971,0.384947,-0.032276,-0.134535,-0.802737,-0.5144,-0.928328,-1.072973,-1.273921,-1.125142,-0.049195,0.126965,0.92343,0.627731,0.838678,0.305138,-1.02899,-1.02899,-0.868528,-1.365792,-1.365792,-1.251863,-1.251863,-0.707715,0.289472,0.236725,0.61116,0.61116,0.220449,0.208537,-0.758615,-0.507722,-0.612655,-1.379711,-1.648417,-0.945234,-0.063698,0.385504,-0.249606,-0.125628,0.751915,0.913114,0.616942,-0.492609,-0.571656,-0.772027,-1.732232,-1.940704,-1.940704,-0.16463,-0.479995,0.20519,0.20519,0.634613,-0.484391,0.121084,0.121084,-0.218663,-0.299186,-0.210365,0.031154,-0.786231,-0.903084,-0.53594,-0.251655,-0.511738,-1.557222,-1.428589,-0.847349,-0.863408,-0.379618,-0.132331,0.410261,0.987946,0.334793,-0.24295,-0.773191,-0.927157,-1.023481,-1.023481,-3.867061,-3.654536,-2.049444,-2.049444,-0.132075\n0.021307,0.021307,-0.170456,-0.103872,-0.101208,-0.101208,0.506041,0.641873,0.657853,0.657853,-0.258347,-0.23704,-0.210406,-0.564635,-0.269001,-0.346238,-0.178446,-0.191763,0.093218,0.42614,1.379627,1.209171,0.535338,-0.021307,0.207743,-0.151812,-0.516694,-0.356892,-0.215733,-0.074574,-0.117188,-0.138495,-0.138495,1.478172,0.905547,0.905547,0.095881,0.095881,0.556645,0.013317,-0.713784,-0.311615,-0.311615,-0.106535,-0.01598,-0.133169,0.455437,1.560736,0.402169,-0.303624,0.039951,0.572625,-0.167792,-1.022735,-1.134597,-0.098545,-0.330258,-0.122515,0.202416,1.078666,1.028062,1.619331,0.242367,0.242367,-0.740418,-0.498051,-0.881576,-0.881576,-0.436793,-1.400934,-0.055931,-0.055931,0.047941,0.202416,0.873586,0.492724,0.266337,-0.378199,0.186436,-0.058594,-0.402169,-2.24256,-1.214498,-2.080094,-2.226579,-2.644729,-1.61134,-0.926854,0.22905,0.412823,-0.071911,-0.255684,-0.913537,-1.158567,-1.158567,-3.835257,-3.220017,-1.741846,-1.741846,-1.483499\n0.111862,0.111862,-0.066584,-0.130505,-0.053267,-0.053267,-0.234377,-0.199753,-0.045277,-0.045277,0.146486,0.255684,0.295634,0.500714,0.538001,0.343575,0.055931,-0.141159,-0.460763,-0.269001,-0.713784,-0.066584,0.157139,0.410159,0.149149,0.133169,-0.093218,0.045277,0.042614,-0.095881,-0.058594,-0.098545,-0.098545,-0.284981,-0.146486,-0.146486,0.010653,0.010653,-0.167792,-0.255684,0.085228,0.013317,0.013317,-0.058594,-0.173119,-0.191763,-0.476744,-0.162466,0.287644,0.19709,-0.175783,-0.258347,-0.141159,0.130505,0.207743,-0.069248,-0.098545,-0.114525,-0.029297,-0.676497,-0.455437,0.106535,0.298298,0.298298,-0.141159,0.332922,0.348902,0.348902,0.375536,0.543328,-0.063921,-0.063921,-0.170456,-0.42614,-0.673833,-0.67117,0.151812,0.191763,0.22905,0.391516,0.567298,1.049369,0.26101,0.415486,-0.079901,-0.271664,-0.364882,-0.745744,-0.681823,-0.604586,-0.207743,0.370209,0.522021,0.524684,0.524684,1.773806,1.432895,0.852279,0.852279,0.122515\n-0.090555,-0.090555,-0.039951,-0.215733,-0.19709,-0.19709,0.250357,1.566063,1.811093,1.811093,1.550083,0.378199,-0.711121,-1.656618,-1.8324,-1.669935,-1.025398,-0.330258,0.183773,0.966804,1.733856,1.869688,1.451538,0.639209,-0.359555,-1.531439,-1.488825,-1.675261,-1.270429,-0.644536,-0.178446,0.785695,0.785695,1.77647,1.859034,1.859034,0.444783,0.444783,-0.910873,-1.928282,-1.478172,-1.307716,-1.307716,-0.452773,0.055931,0.735091,1.720539,1.867024,1.744509,1.13726,0.276991,-1.273092,-1.936272,-1.781796,-1.709885,-1.281082,-0.492724,0.191763,0.841626,1.752499,2.578145,1.933608,1.547419,1.547419,-1.014745,-2.231906,-2.402362,-2.402362,-1.510132,-0.844289,0.010653,0.010653,0.487397,0.940171,1.680588,2.117381,1.483499,0.591269,-0.444783,-1.675261,-2.093411,-2.122708,-1.491489,-0.996101,-0.522021,-0.338248,0.287644,0.700467,1.478172,1.946925,1.928282,0.849616,-0.101208,-1.123943,-1.123943,-0.918864,-0.649863,-0.836299,-0.836299,-0.314278',Walking +'0.383922,0.383922,-0.272575,-0.952556,0.053102,-0.202945,1.835058,1.253072,1.217818,1.735174,1.735174,0.821441,0.958083,1.71173,0.774097,0.774097,0.645294,0.159831,2.541583,6.289511,4.734058,2.397042,1.017871,3.625399,3.688334,3.81774,2.571302,0.897214,0.138745,-0.220885,0.675784,1.648231,4.118836,4.123658,1.755925,0.394586,1.563994,2.190977,1.28684,1.728289,1.728289,0.809192,0.01326,-0.997042,0.997196,-0.129975,-0.019616,0.751782,0.447881,0.908558,0.012339,1.599493,0.397386,0.818914,0.849126,-0.460868,0.157316,-0.323626,-0.323626,-1.42397,-1.42397,-1.42397,0.996073,2.360889,2.360889,1.757153,1.757153,2.048732,2.80297,2.06182,2.245486,-0.382711,-0.382711,-1.400883,-1.759601,-0.906612,2.30135,2.629002,3.86794,2.271405,1.040499,0.682796,1.909458,3.576788,4.244293,0.361288,-1.04416,-1.768832,-1.597845,0.344623,0.900321,2.294016,2.180496,1.049106,-0.246146,0.977137,1.237227,1.805961,0.933664,-0.480025\n0.302612,0.302612,-1.381236,-2.173403,-2.748573,-3.455926,-1.856473,0.796928,2.675148,4.646149,4.646149,5.33265,4.330658,1.079784,-4.829428,-4.829428,-7.235497,-6.545987,-4.209527,2.44632,4.645938,7.081246,7.099937,7.124481,1.874535,-0.210035,-2.913297,-4.367017,-5.837693,-4.857446,-3.897509,-1.884867,0.218533,1.827621,3.365569,4.847239,5.924393,3.407506,0.882184,-0.68138,-0.68138,-2.82024,-3.506908,-4.316523,-3.939039,-2.510742,-0.648335,0.067754,1.099231,1.631154,2.727708,3.674552,2.7177,1.937692,-0.036733,-1.771069,-3.264164,-3.280401,-3.280401,-2.387806,-2.387806,-2.387806,-2.41608,0.319284,0.319284,4.285794,4.285794,4.644724,1.715698,-0.896268,-1.47226,-3.315393,-3.315393,-4.4209,-4.125966,-2.596169,-3.444378,-1.643949,0.404766,4.4621,5.916933,6.143259,3.393446,-0.42664,-1.631582,-5.009263,-5.529374,-5.057474,-4.105692,-2.114192,-0.45942,1.070988,2.317414,4.030789,4.710879,3.077244,0.835341,-0.905319,-2.448629,-3.909822\n-0.398075,-0.398075,-0.681258,-0.849749,-0.581873,-0.110712,-1.242341,-0.89025,-1.163638,-0.354305,-0.354305,0.198742,0.286577,0.672589,0.976994,0.976994,-0.366677,-0.757218,-1.548255,-2.229113,-3.194206,-2.117488,-0.734255,-1.173057,-0.51065,-0.311489,-0.731948,0.026732,0.207359,-0.246407,-0.883318,-1.37736,-2.165754,-1.036387,-2.089161,-2.578276,-1.208836,-0.206491,-0.129594,0.496893,0.496893,0.245372,0.794894,0.793705,0.06341,-0.976549,-1.435887,-1.374158,-1.380032,-1.745445,-1.333653,-1.180275,0.401413,1.180889,0.531368,0.43566,1.23238,1.340786,1.340786,-0.584825,-0.584825,-0.584825,-4.160996,-2.491728,-2.491728,-0.464171,-0.464171,0.332652,-0.871052,0.054467,0.907362,-0.726626,-0.726626,-0.767395,-0.792084,0.051466,-0.022556,0.381207,-0.273479,-1.051939,-0.473881,-0.080045,-0.780237,-0.744436,-0.298561,-1.272273,-0.805639,-0.591375,0.025387,-0.165549,-0.034695,-0.708455,-1.350973,-1.044026,-0.350006,-0.345905,-0.099797,0.299707,-0.367835,-0.742899\n0.071911,0.071911,-0.761725,0.149149,0.402169,0.538001,0.812329,0.553982,0.071911,-0.22106,-0.22106,-0.026634,0.383526,-0.428803,-0.748408,-0.748408,-0.612576,0.47408,1.632647,2.25854,-0.327595,-1.134597,-0.362219,-0.239704,-0.796348,-0.817655,-1.731192,-0.567298,-0.652526,-0.599259,0.599259,1.185201,1.917628,1.835064,1.329023,-0.775041,-0.178446,-0.623229,-0.090555,-0.423476,-0.423476,-1.462192,-0.508704,-0.407496,0.01598,0.005327,0.950824,1.693905,1.307716,1.313043,0.103872,-0.093218,-0.420813,0.516694,-0.439456,0.058594,0.22106,0.495387,0.495387,2.050797,2.050797,2.050797,2.141352,4.365268,4.365268,-0.276991,-0.276991,-0.149149,-0.737754,-0.476744,-1.134597,-2.237233,-2.237233,-0.388852,-0.468754,0,0.559308,0.889566,1.083993,0,-0.210406,-0.093218,-0.090555,-0.090555,-0.929517,-1.79245,-0.660516,-0.569962,0.372872,0.556645,0.870923,1.528776,0.830972,0.767051,0.266337,0.055931,0.343575,-0.207743,-1.321033,-1.16123\n0.175783,0.175783,-0.114525,-0.03196,0.077238,0.255684,-0.170456,0.19709,0.154476,0.175783,0.175783,0.255684,-0.002663,-0.332922,0.154476,0.154476,0.191763,0.239704,-0.420813,0.681823,0.67916,0.346238,-0.021307,-0.19709,0.143822,0.093218,0.146486,-0.045277,-0.005327,-0.186436,-0.399506,-0.378199,-0.410159,-0.711121,0.862933,0.719111,0.063921,-0.069248,0.082565,-0.045277,-0.045277,0.101208,-0.111862,-0.061258,-0.159802,-0.045277,-0.324931,-0.340912,-0.053267,-0.258347,0.029297,0.119852,-0.093218,-0.021307,0.183773,-0.135832,-0.356892,-0.506041,-0.506041,0.324931,0.324931,0.324931,-0.362219,-0.615239,-0.615239,-0.751071,-0.751071,0.178446,0.420813,0.676497,0.468754,0.940171,0.940171,0.282318,-0.42614,-1.014745,-1.166557,-1.110626,-0.748408,-0.021307,-0.101208,0.098545,0.447447,0.388852,0.314278,1.163894,0.692477,0.186436,-0.282318,-0.506041,-0.833636,-0.407496,-0.588605,-0.657853,-0.604586,-0.468754,0.018644,-0.109198,0.468754,0.553982\n-0.087891,-0.087891,-0.503377,-0.322268,0.018644,0.490061,1.291736,1.896321,1.675261,0.985448,0.985448,-0.455437,-1.57139,-2.444976,-2.245223,-2.245223,-0.67117,0.665843,2.428996,3.321226,3.238661,2.863126,1.169221,-1.683252,-2.96167,-2.92971,-2.578145,-2.277184,-1.57139,0.106535,0.918864,1.661945,2.042807,2.442313,1.627321,1.574053,-0.20508,-1.677925,-2.186629,-2.03748,-2.03748,-1.58737,-1.475509,-0.585942,0.074574,0.801675,1.352993,1.310379,1.225151,1.235805,0.910873,0.24503,-0.522021,-1.257112,-1.661945,-1.632647,-1.472845,-0.524684,-0.524684,-0.319605,-0.319605,-0.319605,1.547419,1.803103,1.803103,1.768479,1.768479,-1.542093,-1.962906,-2.237233,-1.957579,-1.384954,-1.384954,-0.668507,0.362219,0.948161,1.302389,2.181302,2.570154,2.194619,1.155904,-0.767051,-2.314471,-2.767244,-2.423669,-1.909638,-1.329023,-0.239704,0.519358,1.408924,1.739182,1.781796,2.01351,1.57139,0.364882,-1.257112,-1.749836,-1.970896,-1.57938,-1.052032',Walking +'-0.044205,-0.044205,-0.878387,-0.277706,-0.277706,-1.093809,0.442827,0.445721,0.445721,1.526584,0.674818,0.499112,0.018116,-0.134614,2.048512,1.014708,-0.241101,-0.904974,-1.502893,-0.982421,2.994018,0.629818,2.456833,0.17096,-0.307937,0.050113,2.766873,1.385949,0.331052,-0.400205,-0.745168,-0.745168,1.024204,1.024204,2.056443,2.512171,2.512171,-0.306203,-0.306203,0.101454,3.507223,3.174309,0.777714,0.250987,-1.052332,-1.23618,0.330952,-0.402334,2.942325,3.479131,2.242842,1.133603,0.290819,2.924793,2.495155,3.25236,1.254972,-0.611127,-1.907863,-0.721544,0.347028,3.195106,3.195106,0.669167,0.17259,0.17259,1.422944,1.422944,0.979726,-0.145323,0.398809,-0.32828,0.035929,0.35053,0.834687,-0.341256,-0.056074,0.892994,1.507322,0.669323,0.330835,-0.79843,-0.31273,2.087405,2.505125,1.180926,0.056945,-0.507128,0.038855,0.466249,0.482807,0.551524,-0.900468,-0.292883,0.254894,0.172792,0.172792,1.100239,1.100239,0.746698\n-0.496912,-0.496912,-1.725143,-1.10938,-1.10938,-1.092268,-1.801835,-1.08072,-1.08072,-0.828864,1.101355,1.426829,3.318721,3.401368,2.61653,0.731345,-0.523441,-2.29073,-3.214554,-2.813822,-2.966954,-1.69168,1.577061,2.600398,3.601114,3.798517,3.808332,1.879907,0.811941,-2.336446,-3.707781,-3.707781,-3.876661,-3.876661,-2.947172,2.120682,2.120682,4.276154,4.276154,4.713805,4.156852,0.410767,-1.385128,-3.070618,-3.812958,-4.766954,-3.652162,-3.101669,-1.187678,1.592714,3.355965,4.001248,5.414412,5.196047,1.979951,-1.755724,-5.620943,-7.389962,-6.40882,-3.141169,-1.070837,1.349547,1.349547,3.755744,4.316371,4.316371,0.935294,0.935294,-1.253406,-3.561852,-3.761095,-3.378377,-2.181233,-0.760911,1.205074,3.977367,4.810576,3.141739,-0.903276,-1.51042,-2.601022,-3.377654,-5.021907,-2.515241,0.609429,3.016168,4.864258,5.29837,2.784991,0.502913,-2.795556,-3.406666,-3.167628,-2.307361,-1.270895,0.371542,0.371542,3.486789,3.486789,3.932243\n-0.428723,-0.428723,1.558894,1.330424,1.330424,1.550095,0.020094,0.257321,0.257321,-0.679104,-0.473794,-1.33975,-2.710437,-1.696493,-0.710109,0.009695,0.602658,0.560598,0.766282,0.505562,0.011688,0.418136,-1.42842,-2.028024,-2.598959,-2.008088,-1.069428,0.284757,0.368356,0.118756,0.716799,0.716799,-0.128387,-0.128387,-0.270055,-1.970501,-1.970501,-1.968934,-1.968934,-0.656048,-0.496903,0.170507,0.824167,0.652682,0.388839,0.272354,-0.058671,-1.798766,-1.587103,-1.288279,-2.183504,-2.671591,-1.104944,-0.075191,1.035041,0.34447,0.134775,0.19605,0.101151,0.340781,-0.994204,-1.838581,-1.838581,-1.662876,-1.159827,-1.159827,-0.566746,-0.566746,-0.172857,0.332378,1.86478,1.381054,0.076212,-0.567438,-0.728956,0.185654,-0.217056,-0.603485,-0.826221,-0.519644,0.528481,1.639017,1.474318,0.361828,-0.149114,-0.680165,0.342746,0.524555,-0.20281,0.286723,1.333943,1.176857,-0.098929,-0.472983,-0.758151,-0.467248,-0.467248,-0.983732,-0.983732,-1.115985\n0.620566,0.620566,0.082565,-0.143822,-0.143822,0.370209,0.476744,0.716447,0.716447,0.862933,2.205272,0.767051,-0.290308,-1.123943,-1.041379,-1.126607,-1.060022,-0.615239,-0.609912,-0.165129,0.058594,0.822982,2.484927,0.386189,-0.67117,-0.822982,-0.508704,-0.700467,-0.556645,-0.769715,-0.641873,-0.641873,0.055931,0.055931,0.801675,1.80044,1.80044,-0.772378,-0.772378,0.090555,0.500714,-0.287644,-0.43413,-1.560736,-1.179874,-0.146486,0.050604,-0.002663,2.010846,1.789786,0.721774,-0.543328,-0.447447,1.009418,0.141159,-0.889566,-1.680588,-0.974794,-0.812329,0.854943,1.060022,1.875014,1.875014,0.697804,0.633883,0.633883,-0.692477,-0.692477,-0.769715,-0.282318,0.093218,-0.295634,-0.029297,0.039951,-0.039951,0.26101,0.719111,0.258347,-0.079901,-0.090555,-0.854943,-1.073339,-0.538001,-0.21307,-0.700467,-0.577952,0.721774,1.089319,0.490061,0.335585,-0.514031,-0.298298,-0.127842,0.711121,0.625893,0.410159,0.410159,0.095881,0.095881,-0.111862\n0.22905,0.22905,0.098545,0.02397,0.02397,0.002663,-0.258347,-0.117188,-0.117188,-0.037287,0.639209,0.490061,0.362219,-0.133169,-0.383526,0.050604,0.050604,0.090555,-0.010653,-0.053267,-0.364882,0.01598,0.215733,0.6472,0.609912,0.151812,-0.074574,0.087891,0.133169,0.151812,0.03196,0.03196,-0.364882,-0.364882,-0.170456,0.279654,0.279654,0.127842,0.127842,-0.242367,-0.327595,-0.484734,-0.138495,0.157139,0.151812,-0.122515,-0.311615,0.061258,-0.431466,-0.436793,0.258347,0.282318,0.093218,-0.22905,-0.079901,-0.005327,0.162466,0.069248,-0.037287,-0.524684,-0.271664,-0.713784,-0.713784,-0.556645,-0.383526,-0.383526,-0.00799,-0.00799,0.085228,0.41815,0.391516,0.535338,0.463427,0.077238,-0.19709,-0.676497,-0.676497,-0.801675,-0.492724,-0.447447,-0.300961,-0.061258,0.636546,0.972131,0.399506,0.519358,-0.186436,-0.082565,-0.25302,-0.751071,-0.761725,-0.402169,-0.242367,0.189099,0.210406,0.402169,0.402169,0.295634,0.295634,0.386189\n0.649863,0.649863,-0.191763,-0.215733,-0.215733,0.026634,0.500714,0.90022,0.90022,1.246458,1.235805,1.147914,0.591269,-0.202416,-1.275755,-1.864361,-1.558073,-1.110626,-0.394179,0.085228,0.492724,1.171884,1.635311,1.339676,1.179874,0.452773,-0.814992,-1.576717,-1.566063,-1.693905,-1.254448,-1.254448,0.295634,0.295634,1.070676,1.981549,1.981549,1.217161,1.217161,-0.151812,-1.640638,-2.434323,-2.093411,-1.661945,-1.123943,-0.308951,0.495387,1.379627,1.904311,2.341105,1.819084,1.448875,0.271664,-1.416914,-3.078859,-3.100166,-2.306481,-1.174547,0.22905,1.217161,1.725865,1.576717,1.576717,0.775041,-0.002663,-0.002663,-1.398271,-1.398271,-1.550083,-1.179874,-0.399506,0.577952,1.281082,1.797777,2.104064,1.606014,-0.055931,-1.80044,-1.994866,-1.368974,-0.897557,-0.484734,0.519358,1.265102,2.152005,1.981549,0.854943,-0.391516,-1.496815,-1.946925,-1.499479,-0.825646,0.021307,0.460763,1.089319,1.526112,1.526112,1.036052,1.036052,0.250357',Walking +'-0.098166,-0.098166,-0.665304,-0.829981,0.375669,0.791075,0.70029,0.686055,0.022399,0.022399,2.754776,-0.26075,-0.26075,-1.101452,-1.101452,-0.967112,1.569195,2.204806,0.557166,1.302956,0.286367,0.426283,3.204077,1.708396,0.125991,0.107549,-1.27812,-1.158715,1.435125,1.097257,1.087535,1.833153,1.002251,-0.371265,0.447354,4.159463,0.714752,0.765773,-0.570149,-1.526287,-0.538942,0.452495,0.452495,1.490252,1.208203,-0.235181,-0.432092,0.77134,2.818307,2.818307,1.019723,0.133982,-1.406562,-1.884306,-0.762933,2.971216,1.955054,2.153952,-0.196132,-0.265117,0.410668,3.333268,2.069923,0.038822,-0.252944,-1.142176,-1.006062,-0.811501,0.945927,1.639149,1.975123,0.494045,0.097481,0.459067,0.691144,2.796769,0.852716,0.852716,-0.764975,-1.606953,-1.606953,-1.467727,0.246285,0.135564,1.529351,0.898436,0.043004,0.359178,1.083993,0.315117,-0.016589,-0.627979,-1.149787,-1.036517,0.302579,0.899618,2.569855,0.244803,0.057337,0.702704\n-0.117578,-0.117578,-1.19466,-1.562937,-1.692123,-2.418908,-1.282985,1.580636,3.785672,3.785672,2.389981,0.587629,0.587629,-2.930808,-2.930808,-3.371135,-3.077704,-3.263033,-0.544576,1.611431,2.685726,3.056467,4.601799,2.031954,0.038007,-1.774945,-2.856921,-3.217642,-3.588103,-4.000318,-1.780505,2.407093,3.753609,4.254366,4.132706,2.605681,-0.387864,-2.071952,-3.774896,-4.83223,-3.593405,-2.315344,-2.315344,0.585523,3.178578,4.221634,3.832995,3.106362,2.2408,2.2408,-1.872379,-2.176745,-3.496143,-3.815054,-3.690937,-2.256013,-1.945179,1.290927,4.236565,4.145049,3.25173,2.594935,0.212683,-0.845176,-2.191689,-2.692818,-3.384089,-2.306048,-2.147167,-1.108813,0.676624,2.772511,3.759203,3.3832,3.016567,0.758706,-1.347242,-1.347242,-4.504711,-3.640763,-3.640763,-1.842324,0.467475,0.719915,2.486667,2.236557,1.967061,1.253261,0.973093,0.483814,-1.22885,-2.336744,-3.520887,-4.086921,-2.926318,0.134287,-0.233453,3.357724,2.712044,1.742193\n-0.401143,-0.401143,1.228442,0.564813,0.803057,0.465335,0.367288,-0.895355,-1.122147,-1.122147,-0.363781,-0.125473,-0.125473,0.761129,0.761129,1.249669,0.277118,-0.098616,-0.836135,-1.496207,-1.717904,-2.197836,-2.112584,-0.690696,-0.053005,0.519524,1.2523,0.998627,-0.120949,-0.458005,-0.515671,-1.574908,-2.635191,-2.869013,-1.432425,-1.144222,0.416712,1.015788,0.39761,0.152363,0.5004,-0.137696,-0.137696,-1.132402,-1.60105,-2.814318,-2.574166,-1.056324,-1.020665,-1.020665,0.80004,0.594867,-0.019734,0.06838,0.096166,-0.364168,-0.473278,-1.040313,-1.849779,-2.629782,-2.005158,-1.392439,0.102146,0.417166,0.25093,0.481457,0.289933,0.596634,0.14864,0.030274,-0.72017,-1.359239,-1.99769,-2.034102,-0.980916,-0.736691,0.26085,0.26085,0.853687,0.151383,0.151383,-0.288637,-0.423347,-1.101096,-0.930192,-0.807986,-0.79651,-0.469447,0.037616,-0.090593,-0.042853,0.205583,0.577833,0.143185,-0.17213,-0.552232,-2.10574,-0.641299,-0.459209,-0.320672\n-0.061258,-0.061258,-0.567298,-0.215733,0.303624,0.463427,0.67916,0.535338,-0.348902,-0.348902,-0.055931,-0.700467,-0.700467,-0.364882,-0.364882,0.087891,-0.053267,0.44212,1.278419,1.251785,1.190528,0.210406,-0.157139,-0.961478,-1.070676,-1.118617,-0.146486,-0.141159,-0.356892,0.580615,1.856371,1.467518,-0.093218,-0.527348,-0.26101,-0.146486,-1.632647,-0.761725,-1.347667,-0.19709,0.508704,0.46609,0.46609,1.869688,1.574053,-0.20508,-0.852279,-0.439456,-0.793685,-0.793685,-1.16123,-1.033389,-0.886903,-0.018644,0.122515,0.133169,0.785695,2.088084,1.403597,0.444783,-0.24503,-0.559308,-1.456865,-0.711121,-1.041379,-0.67916,-0.292971,0.00799,0.063921,1.012082,1.214498,0.894893,0.556645,-0.25302,-0.44212,-1.233142,-1.123943,-1.123943,-0.636546,-0.24503,-0.24503,0.218397,0.729764,0.913537,1.925618,0.751071,0.572625,-0.157139,-0.545991,-1.070676,-1.004091,-0.351565,-0.162466,0.242367,0.628556,1.222488,1.867024,2.026827,1.049369,1.523449\n0.090555,0.090555,0.029297,-0.047941,-0.021307,0.218397,0.247694,0.359555,0.47408,0.47408,-0.127842,0.039951,0.039951,-0.165129,-0.165129,-0.327595,-0.42614,-0.122515,-0.013317,0.133169,0.215733,0.330258,-0.03196,-0.122515,-0.127842,-0.109198,-0.042614,-0.143822,-0.287644,0.047941,-0.202416,0.487397,0.796348,0.348902,-0.255684,-0.274327,-0.045277,-0.082565,0.239704,0.018644,-0.143822,-0.324931,-0.324931,-0.327595,0.114525,0.596595,0.039951,-0.348902,0.103872,0.103872,0.186436,0.420813,0.524684,0.045277,-0.165129,-0.415486,-0.439456,-0.564635,0.149149,0.43413,-0.082565,-0.103872,0.01598,-0.013317,0.087891,-0.010653,-0.069248,-0.319605,-0.351565,-0.415486,-0.03196,0.087891,0.338248,0.098545,0.077238,0.314278,0.362219,0.362219,0.22905,-0.005327,-0.005327,-0.271664,-0.724437,-0.567298,-0.628556,-0.583279,-0.23704,-0.215733,0.045277,0.535338,0.628556,0.506041,0.300961,0.146486,-0.087891,-0.447447,-0.804339,-0.681823,-0.479407,-0.42614\n0.018644,0.018644,-0.005327,0.082565,0.306288,0.945497,1.392944,1.502142,0.684487,0.684487,-1.544756,-1.523449,-1.523449,-1.169221,-1.169221,-0.314278,0.402169,0.775041,1.656618,1.701895,1.310379,0.569962,-0.607249,-1.803103,-1.584707,-1.552746,-1.123943,-0.338248,0.287644,0.684487,1.904311,1.949589,1.566063,0.724437,-0.402169,-1.739182,-1.853707,-1.526112,-1.118617,-0.676497,0.415486,1.294399,1.294399,1.664608,1.416914,0.601922,0.154476,-0.982784,-1.643301,-1.643301,-1.922955,-1.528776,-1.107963,-0.48207,0.202416,1.070676,1.395607,2.109391,1.052032,0.327595,-0.492724,-1.131933,-1.608677,-1.315706,-1.102636,-0.841626,-0.199753,0.532675,0.740418,1.451538,1.763153,1.408924,0.455437,-0.314278,-0.841626,-1.805767,-2.223916,-2.223916,-0.828309,0.383526,0.383526,1.012082,1.424904,0.982784,0.950824,0.370209,-0.218397,-0.585942,-0.721774,-0.980121,-1.131933,-1.046705,-0.681823,0.242367,0.985448,1.57938,2.00552,1.880341,1.33435,0.386189',Walking +'-0.188742,-0.188742,-1.07788,-0.476925,-0.490263,-0.490263,-0.57971,0.523329,0.73237,0.491891,1.726179,-0.69947,-0.69947,0.00535,0.677349,1.023308,0.490164,1.851135,-0.217042,1.148301,1.120668,0.707252,1.562791,4.50475,-0.683234,-0.057504,0.825927,0.110032,0.245049,3.419411,-0.888351,2.590739,2.283588,1.805578,0.923591,3.146978,2.536443,2.683299,1.820499,1.820499,0.130289,-1.4478,-0.257611,2.238704,-0.143272,1.063905,0.514668,0.543419,0.598681,2.799789,0.98634,0.29245,-2.201411,-0.510958,-0.031972,0.580215,3.74691,0.595722,0.176303,-1.073325,-0.393743,1.494854,1.494854,-0.54196,-1.651852,-2.001138,-1.191146,0.80223,3.703198,3.703198,0.558906,0.366866,-0.834609,-0.913047,2.263182,2.263182,0.315987,-0.863892,-1.012386,-0.493137,4.844779,0.743189,1.444011,0.85846,-0.488427,-0.220077,4.313346,1.169596,1.061291,-0.6717,-0.908932,-0.696116,1.898831,1.690287,1.690287,1.877475,-0.167781,-0.167781,2.186709,2.186709\n-0.317179,-0.317179,0.42498,1.52429,-0.729589,-0.729589,-2.27812,-2.978304,-2.034597,0.152972,4.732829,4.914365,4.914365,4.349089,0.238812,-2.759362,-4.926403,-4.825796,-4.354981,-1.037603,2.978819,4.690724,5.155376,6.484686,3.101146,2.229572,-0.8866,-2.224127,-4.071839,-6.637208,-3.82562,0.295626,1.536963,3.716365,5.55696,6.769819,4.413423,1.086602,-4.407016,-4.407016,-7.281347,-7.76915,-5.505802,-0.396394,3.254358,2.887252,4.852723,6.274228,5.633805,1.849146,-2.843757,-3.732629,-3.416414,-3.543012,-2.140248,-0.316481,3.337555,1.517423,2.26616,4.064012,3.649432,1.351495,1.351495,-2.793334,-2.885708,-2.916041,-2.669237,-1.884542,-0.851521,-0.851521,1.102466,2.914909,3.806731,4.318808,-0.151801,-0.151801,-2.488133,-3.304361,-5.208459,-4.753467,-4.162398,-1.019998,1.958196,4.545503,4.690727,4.510308,3.122116,-0.583272,-2.669134,-3.68293,-5.15908,-4.957105,-4.109949,-0.995157,-0.995157,3.103,5.491823,5.491823,5.081151,5.081151\n-0.332557,-0.332557,-0.283946,-0.538739,0.669691,0.669691,0.714833,-0.105674,-0.383453,-0.747374,-0.040043,-0.030324,-0.030324,0.68418,0.94925,1.085085,0.637139,-0.408712,-0.363433,-0.562336,-0.854207,-1.445511,-1.516367,-1.897579,0.242137,0.663033,-0.152822,-0.094534,-0.324104,-0.648991,-0.470348,-1.209388,-1.889262,-1.010865,0.203261,0.130032,0.546092,0.637275,-0.193011,-0.193011,1.750613,0.315798,-3.053117,-7.298533,-7.44871,-5.877619,-2.718139,2.398728,3.001351,1.289373,1.456242,0.778105,0.366958,-0.038448,-0.664151,-0.468276,-0.730073,-0.909686,-0.440166,-0.136126,-0.459235,0.155245,0.155245,-0.334674,0.109801,0.025169,0.490976,-0.26242,-0.538801,-0.538801,-0.650281,-0.767729,-0.838996,-0.537294,0.31118,0.31118,0.360665,0.872657,0.385274,-0.023905,-1.211754,-0.998851,-0.907046,-0.681611,-0.806217,-0.131626,-0.286843,-0.220417,-0.227627,0.39678,0.915635,0.400094,-0.268003,-0.956945,-0.956945,-1.34454,-1.554618,-1.554618,-0.02718,-0.02718\n-0.122515,-0.122515,-0.364882,0.194426,-0.095881,-0.095881,0.23704,0.42614,0.988111,-0.119852,-0.591269,-0.26101,-0.26101,0.841626,-0.314278,-0.175783,-0.716447,-0.098545,0.351565,0.463427,1.139924,0.522021,0.308951,-0.745744,-1.432895,0.045277,-1.621994,-0.601922,-0.636546,0.159802,0.269001,1.142587,-0.167792,0.471417,0.484734,-0.045277,0.157139,-0.018644,-0.167792,-0.167792,0.814992,0.19709,2.218589,3.430424,4.980507,3.350523,3.451731,1.627321,1.387617,0.332922,1.083993,0.055931,0.383526,1.38229,1.35832,0.724437,0.732428,1.086656,1.070676,0.066584,0.149149,-0.189099,-0.189099,-0.191763,-0.069248,0.117188,0.274327,0.540665,0.740418,0.740418,0.982784,1.307716,-0.444783,-0.287644,-0.756398,-0.756398,-0.25302,-0.737754,-0.063921,-0.087891,0.708457,0.298298,1.510132,0.186436,-0.604586,0.00799,-0.19709,-0.721774,-0.255684,-0.631219,0.082565,0,0.00799,0.828309,0.828309,1.629984,-0.314278,-0.314278,0.02397,0.02397\n-0.106535,-0.106535,0.42614,0.300961,-0.290308,-0.290308,-0.242367,-0.074574,0.250357,0.322268,0.479407,0.380862,0.380862,-0.22905,-0.367545,-0.109198,0.018644,-0.106535,0.356892,-0.415486,0.034624,0.154476,0.407496,0.250357,0.127842,0,0.380862,0.26101,0.026634,0.159802,-0.412823,-0.306288,-0.258347,-0.492724,-0.324931,-0.484734,0.021307,0.364882,0.4581,0.4581,-0.503377,-0.258347,-0.021307,0.370209,-0.737754,-0.748408,-0.793685,-1.155904,-0.543328,0.127842,0.772378,0.471417,0.22106,0.079901,-0.074574,-0.476744,-0.612576,-0.263674,-0.271664,-0.141159,-0.122515,0.103872,0.103872,0.601922,0.029297,-0.090555,-0.141159,-0.364882,-0.484734,-0.484734,-0.471417,-0.149149,0.061258,0.23704,0.596595,0.596595,0.165129,0.226387,0.082565,-0.114525,-0.372872,-0.700467,-0.657853,0.223723,0.25302,0.157139,0.127842,0.444783,0.037287,0.119852,-0.106535,-0.045277,-0.22106,-0.215733,-0.215733,0.01598,0.223723,0.223723,-0.071911,-0.071911\n-0.093218,-0.093218,0.002663,-0.042614,0.039951,0.039951,0.103872,0.495387,1.187864,1.80843,0.585942,-0.676497,-0.676497,-1.400934,-2.032153,-2.06145,-1.34234,-0.181109,0.998765,2.697996,2.508897,1.699232,0.90022,0.402169,-1.5634,-1.592697,-1.837727,-1.736519,-1.398271,-0.732428,1.608677,2.492917,2.556838,2.074767,1.257112,0.122515,-1.661945,-2.660709,-3.124136,-3.124136,-1.416914,0,0.609912,1.331686,1.174547,0.67916,0.340912,-0.402169,-1.534103,-2.327788,-2.000193,-0.724437,0.138495,0.6472,1.379627,1.80843,1.451538,0.657853,0.929517,0.263674,-0.410159,-1.422241,-1.422241,-1.667271,-0.48207,0.077238,0.551318,1.150577,1.419578,1.419578,1.643301,1.283746,0.988111,0.111862,-2.330451,-2.330451,-1.755163,-1.523449,-0.753734,0.085228,0.633883,2.133361,2.428996,1.494152,0.748408,-0.45011,-1.725865,-2.389045,-1.869688,-1.58737,-0.641873,0.029297,0.9162,2.008183,2.008183,2.093411,1.459528,1.459528,-1.486162,-1.486162',Walking +'0.36966,0.36966,-0.635316,-0.772483,1.211384,1.976274,0.450033,1.910971,0.593518,0.593518,0.648047,-0.057125,-0.373411,-0.86882,-0.86882,0.120722,1.088201,1.088201,1.009665,0.53024,0.889318,1.830768,2.016853,0.032183,0.37254,-0.612434,-0.814289,-0.927235,0.75172,1.202436,1.995214,1.11514,0.75836,-0.008495,1.095741,1.663497,0.75067,0.280169,0.280169,-0.941658,-0.941658,0.290627,0.290627,0.877567,2.808579,1.744389,0.706759,0.043134,0.034774,1.069051,2.527202,0.788108,0.829655,-0.583289,-1.211825,-1.393834,1.155826,0.602115,2.793116,1.195111,-0.070387,-0.668552,0.400058,2.876081,0.70413,0.335697,0.335697,-0.415963,-1.021096,-0.699485,0.801335,0.915525,1.373316,0.198131,-0.413504,0.011134,1.376494,1.85611,0.182097,-0.355754,-0.720926,-0.57081,-0.221239,1.012422,0.823053,0.898168,0.392871,-0.406969,-0.495196,0.963073,1.816773,0.723076,0.316895,-0.465173,-0.592852,-0.326471,1.16503,2.047643,2.302927,2.302927\n-0.645952,-0.645952,-4.169368,-3.973159,-0.904389,1.884745,2.820885,4.53372,2.99745,2.99745,0.778206,-1.31193,-3.701312,-4.160635,-4.160635,-1.539844,0.963228,0.963228,3.009813,4.092364,4.890065,3.880045,1.689183,0.059317,-2.281108,-3.482074,-3.576199,-3.421155,-2.22009,-0.70228,2.13673,3.147454,3.695511,4.048534,3.63784,0.684204,-0.545499,-1.376361,-1.376361,-4.571611,-4.571611,-2.217853,-2.217853,-1.198323,0.696849,2.379175,3.299985,4.119923,3.169744,1.595047,0.483521,-1.106098,-3.069405,-4.84429,-4.415433,-3.070149,-1.499707,-0.586993,1.392451,2.597331,4.180537,4.183318,2.409862,0.920591,-1.37623,-3.037288,-3.037288,-3.700259,-3.55624,-2.38642,-1.303607,-0.101382,1.26014,3.185122,3.333327,2.584879,1.981165,0.424966,-0.930684,-2.96036,-2.793615,-2.786396,-1.443371,-0.611773,1.227191,1.490175,2.119156,3.216152,3.341586,1.88182,0.131728,-2.570025,-3.037817,-4.126915,-3.76415,-2.722319,-1.216883,0.784374,2.438683,2.438683\n0.0635,0.0635,-0.315898,-0.903178,-1.075068,-0.339515,0.96686,0.414126,0.617064,0.617064,0.11971,0.263833,-0.073777,0.020084,0.020084,-0.830842,-0.867735,-0.867735,-0.961887,-0.977932,-0.593725,-0.378358,0.576353,0.448799,0.031745,0.252688,-0.180934,-0.323606,-1.03414,-1.081292,-0.847242,-1.309028,-0.717437,-0.11757,0.176071,-0.051317,-0.502337,-0.177319,-0.177319,0.191204,0.191204,-0.188797,-0.188797,-0.332421,-0.599643,-1.104924,-1.302612,-0.886141,-0.232717,0.296798,0.133451,-0.478765,-0.525456,-0.520203,-0.084419,0.19306,-0.447998,-0.805871,-1.092482,-1.037468,-1.099934,-0.668089,-0.47362,-0.074624,0.141343,-0.04282,-0.04282,0.292811,0.576767,0.512593,-0.278594,-1.039868,-1.229151,-0.712674,-0.914494,-0.874134,0.005476,0.196093,0.618966,0.428773,0.557689,0.412989,0.721146,-0.444606,-0.417603,-0.877305,-0.983344,-0.449512,-0.24858,-0.344573,-0.197711,-0.39842,0.460633,0.440798,0.241037,-0.300487,-0.405751,-0.768794,-1.096267,-1.096267\n-0.101208,-0.101208,0.122515,0.226387,0.974794,0.716447,0.69514,-0.183773,-0.407496,-0.407496,-0.394179,0.300961,-0.063921,0.266337,0.266337,0.394179,0.870923,0.870923,1.022735,0.111862,0.03196,-0.548655,-0.585942,-0.729764,-0.918864,-0.250357,-0.162466,-0.00799,0.551318,0.809665,1.235805,0.540665,-0.082565,0.199753,0.106535,-0.692477,-1.305053,-1.004091,-1.004091,-0.26101,-0.26101,0.234377,0.234377,0.460763,0.940171,0.974794,0.556645,-0.287644,-0.279654,-0.018644,-0.346238,-1.877678,-0.724437,-1.110626,-0.071911,0.250357,0.503377,0.950824,1.598024,0.700467,-0.45011,-0.378199,0.010653,-0.207743,-1.435558,-0.543328,-0.543328,-1.217161,0.079901,0.055931,0.189099,0.88424,1.635311,0.956151,-0.191763,-0.335585,-0.111862,-0.143822,-0.026634,-0.577952,-0.569962,-0.239704,0.346238,0.348902,0.825646,0.431466,0.079901,0.066584,-0.234377,-0.146486,-1.006755,-1.155904,-0.157139,-0.601922,-0.271664,0.181109,0.68715,1.227815,1.459528,1.459528\n-0.029297,-0.029297,-0.20508,-0.324931,-0.633883,-0.93218,-0.362219,0.540665,0.719111,0.719111,0.516694,0.298298,0.045277,-0.117188,-0.117188,-0.346238,-0.68715,-0.68715,-0.199753,-0.093218,0.210406,0.274327,0.279654,0.455437,0.44212,0.388852,0.127842,-0.098545,-0.364882,-0.514031,-0.591269,-0.173119,-0.170456,0.130505,0.22905,0.68715,0.538001,0.306288,0.306288,-0.087891,-0.087891,-0.26101,-0.26101,-0.247694,-0.436793,0.085228,-0.021307,-0.063921,-0.005327,0.047941,0.370209,0.737754,0.46609,0.226387,-0.037287,-0.359555,-0.412823,-0.386189,0,0.183773,0.029297,-0.090555,0.071911,0.167792,0.050604,0.375536,0.375536,-0.013317,-0.082565,-0.095881,-0.114525,-0.183773,-0.404833,-0.242367,-0.02397,0.119852,0.053267,-0.00799,-0.162466,0.047941,0.013317,-0.090555,-0.199753,-0.085228,-0.194426,-0.117188,-0.010653,0.018644,0.066584,0.391516,0.468754,0.319605,0.263674,0.127842,0.053267,-0.119852,-0.402169,-0.330258,-0.271664,-0.271664\n0.045277,0.045277,0.19709,0.841626,1.451538,1.803103,1.299726,0.740418,-0.247694,-0.247694,-1.456865,-1.731192,-1.233142,-0.356892,-0.356892,1.515459,2.247886,2.247886,2.002856,1.462192,0.231713,-0.665843,-1.560736,-1.448875,-1.576717,-1.310379,-0.599259,0.013317,0.918864,1.624657,1.880341,1.560736,1.233142,0.042614,-1.004091,-1.933608,-1.379627,-1.195854,-1.195854,-0.689814,-0.689814,0.93218,0.93218,1.286409,1.699232,1.422241,1.198518,0.793685,-0.67916,-1.491489,-1.725865,-1.771143,-1.504805,-0.700467,-0.125179,0.500714,1.044042,1.254448,1.619331,1.765816,1.273092,-0.074574,-1.448875,-1.917628,-1.629984,-1.443548,-1.443548,-0.631219,0.101208,0.561972,1.025398,1.201181,1.339676,1.235805,0.788358,-0.519358,-1.262439,-1.55541,-1.233142,-0.812329,-0.125179,0.306288,0.729764,1.020072,1.379627,1.270429,0.9162,0.633883,-0.173119,-1.558073,-1.872351,-1.494152,-1.392944,-0.591269,0.21307,0.828309,1.270429,1.781796,1.890995,1.890995',Walking +'0.204922,0.204922,-0.488384,-0.306519,-0.099125,0.375518,0.375518,0.461771,0.493097,0.493097,2.058517,2.616092,0.210205,0.210205,-0.21424,-0.413671,-0.636469,3.221959,2.279371,2.959684,1.983845,0.664721,0.562139,4.311807,1.03612,1.206989,0.046461,-1.124492,-0.773765,1.105064,0.509044,2.05622,1.91651,0.461204,-0.176135,3.101486,3.101486,1.563917,-0.430628,-0.562467,-0.562467,-0.742014,-0.742014,2.053261,1.212124,2.191473,0.932834,0.234054,0.013201,3.410395,1.251936,1.009699,0.108685,-0.657619,-0.154007,-0.441006,1.556264,1.754542,2.104083,1.15391,-0.632385,0.077516,2.365955,0.762076,0.863458,0.278248,-0.486956,-0.208873,-0.208873,0.840596,0.840596,-0.292845,0.730338,0.730338,0.13036,2.677224,2.677224,0.169822,0.169822,0.293676,-1.024431,-1.033334,-0.682478,1.219972,1.611562,1.345555,1.880476,0.240098,0.367907,0.572994,2.145961,1.8345,0.536531,-0.29588,-1.124528,-0.498329,-0.603204,-0.603204,2.666591,2.666591\n2.014985,2.014985,0.095877,-2.172097,-2.390191,-1.391753,-1.391753,0.694358,3.603766,3.603766,4.595857,3.187012,-0.083052,-0.083052,-2.4046,-3.999106,-4.277984,-3.47884,-0.977749,1.847642,4.293236,5.600774,5.75017,4.999629,1.085787,-0.603584,-2.748113,-4.400686,-4.066066,-3.585504,-1.672787,1.039447,3.829393,4.819347,5.022926,4.009936,4.009936,0.512855,-2.377873,-3.76858,-3.76858,-3.667813,-3.667813,-3.200108,-0.513975,1.300782,3.269467,3.9247,4.638509,3.444314,0.897177,-0.874893,-2.994899,-3.49894,-4.301393,-3.584825,-2.627837,-0.111761,2.83613,4.175761,4.256112,3.130591,3.832072,1.552776,-0.02878,-1.895714,-3.244642,-3.713675,-3.713675,-1.939648,-1.939648,1.005738,3.713859,3.713859,3.728063,2.081049,2.081049,-0.766278,-0.766278,-2.952168,-2.800118,-2.056607,-1.828906,-1.868182,0.307785,1.665392,3.48553,3.95614,3.94645,2.840358,1.75004,0.674782,-2.088109,-2.758309,-3.904704,-4.158014,-2.542219,-2.542219,0.564482,0.564482\n0.070974,0.070974,0.35425,0.387071,0.368265,-0.953804,-0.953804,-0.374265,0.21193,0.21193,0.426749,0.429639,0.739947,0.739947,0.607028,0.292422,-0.523096,-1.077208,-1.33632,-0.767765,-1.475267,-2.167028,-0.774107,-0.31304,0.239017,1.163929,0.749212,0.534772,0.075763,-1.27094,-0.912136,-1.157178,-1.471903,-1.410189,-0.161115,-0.350752,-0.350752,-0.389381,0.785412,0.918999,0.918999,0.185756,0.185756,-1.094546,-0.776886,-0.859109,-0.912187,-0.08375,0.377151,-0.035977,0.071257,-0.117522,0.04894,1.177213,0.442376,-0.117897,-1.150981,-0.662317,-0.680735,-1.234292,-0.628423,0.235742,-0.704592,-0.308419,0.444969,0.943636,1.448465,0.974781,0.974781,-0.92186,-0.92186,-0.814349,-1.162606,-1.162606,-1.175278,0.257546,0.257546,1.147008,1.147008,0.810565,0.980124,1.251661,0.906342,-1.31501,-1.428043,-1.152516,-0.926196,-0.888683,-0.709445,-0.215372,-0.151675,0.318779,-0.03598,0.502129,1.119154,0.367442,-0.24444,-0.24444,-0.843424,-0.843424\n1.486162,1.486162,-0.22106,0.071911,0.593932,0.87625,0.87625,0.087891,-0.24503,-0.24503,-0.303624,-0.258347,-0.516694,-0.516694,-0.157139,-0.282318,-0.181109,0.772378,2.104064,1.736519,1.246458,-0.700467,-0.47408,0.19709,-0.567298,-0.354229,-1.009418,-0.03196,0.010653,0.133169,1.550083,1.028062,0.215733,-0.617902,-0.002663,-0.553982,-0.553982,-0.284981,-0.490061,-0.367545,-0.367545,-0.354229,-0.354229,-0.133169,0.633883,0.926854,0.25302,-0.202416,-0.165129,-0.159802,-0.282318,-0.538001,-0.649863,0.567298,-0.165129,-0.005327,-0.010653,0.767051,1.230478,0.322268,-0.175783,0.559308,-0.545991,-0.577952,-0.591269,-0.793685,-0.210406,0.223723,0.223723,0.48207,0.48207,0.45011,0.761725,0.761725,-0.402169,-0.420813,-0.420813,0.231713,0.231713,-0.524684,0.561972,1.973559,0.399506,-0.431466,0.218397,0.545991,0.799012,0.359555,-0.207743,-0.133169,-0.6472,-0.559308,-0.609912,0.308951,-0.300961,0.018644,0.125179,0.125179,0.767051,0.767051\n-0.628556,-0.628556,-0.034624,-0.20508,-0.24503,-0.103872,-0.103872,-0.122515,0.114525,0.114525,0.22905,0.327595,0.396843,0.396843,0.396843,0.026634,-0.082565,-0.330258,-0.428803,-0.444783,0.316941,0.45011,-0.098545,-0.106535,0.00799,0.005327,0.399506,0.292971,0.026634,-0.002663,-0.25302,-0.055931,0.154476,0.159802,-0.071911,0.127842,0.127842,0.396843,0.199753,0.157139,0.157139,0.010653,0.010653,0.061258,-0.612576,-0.133169,-0.146486,-0.143822,-0.034624,0.24503,0.444783,0.348902,0.359555,0.346238,0.162466,-0.095881,-0.122515,-0.508704,-0.351565,0.055931,-0.013317,0,0.468754,-0.050604,-0.101208,-0.098545,-0.122515,0.063921,0.063921,-0.111862,-0.111862,-0.399506,0.372872,0.372872,-0.109198,0.250357,0.250357,0.119852,0.119852,0.26101,0.138495,0.4581,0.207743,-0.133169,-0.484734,-0.593932,-0.428803,-0.013317,-0.181109,0.093218,0.239704,0.335585,0.69514,0.45011,0.090555,0.082565,-0.284981,-0.284981,-0.841626,-0.841626\n0.993438,0.993438,0.199753,0.119852,0.639209,0.846953,0.846953,1.590033,1.041379,1.041379,-0.021307,-0.793685,-1.635311,-1.635311,-1.779133,-0.985448,-0.109198,0.535338,1.547419,2.639402,2.173312,1.707222,0.25302,-1.392944,-2.186629,-1.859034,-1.813757,-1.150577,-0.306288,0.657853,1.464855,2.269193,2.170649,1.542093,0.069248,-1.291736,-1.291736,-2.165322,-1.619331,-1.217161,-1.217161,0.22905,0.22905,1.009418,2.202609,2.066777,1.795113,1.155904,0.149149,-1.464855,-2.03748,-1.741846,-1.717875,-1.584707,-0.46609,0.604586,1.608677,2.444976,2.551511,1.869688,0.732428,-0.47408,-0.551318,-1.523449,-1.446211,-1.456865,-1.099973,-0.625893,-0.625893,1.440885,1.440885,2.133361,1.041379,1.041379,0.748408,-1.177211,-1.177211,-1.464855,-1.464855,-1.265102,-0.743081,-0.583279,0.258347,1.337013,2.210599,1.960242,1.376964,0.721774,0.189099,-0.894893,-1.230478,-1.621994,-1.733856,-1.640638,-0.961478,0.095881,1.34234,1.34234,2.572818,2.572818',Walking +'-0.623875,-0.623875,-1.081529,-0.572358,-0.098315,0.291753,1.432214,1.240728,1.982454,4.188277,1.617211,-2.747694,0.366139,1.877703,1.877703,12.713621,17.320747,17.320747,6.734696,0.28423,0.28423,0.390922,0.18192,0.712087,0.316481,0.845945,0.828662,0.56496,3.019268,0.727167,-0.922653,-0.074728,6.402308,7.545651,2.29576,6.445649,13.339545,28.820866,10.249471,-2.08224,-3.247045,-0.927742,0.183961,1.432417,0.261854,1.826862,0.445147,0.445147,-3.488214,3.078923,3.078923,8.930632,2.638331,4.315666,3.703125,-2.130953,1.782494,11.281823,19.22258,6.735786,5.747774,4.134386,3.102524,2.095081,1.723413,2.158134,2.313847,2.227348,5.672422,3.154386,6.11933,0.406692,-0.49611,5.517726,3.372614,3.372614,6.005389,2.12708,9.518267,9.518267,10.545439,9.060009,28.545164,-5.146593,-7.244453,2.851683,2.503202,1.169182,-2.122419,-1.425838,0.867865,1.501973,1.198576,0.177073,0.706842,1.380024,0.950664,0.480005,0.543524,1.573945\n-2.123436,-2.123436,-0.121519,-1.054626,-0.814075,1.230749,3.564235,4.643308,1.85632,-2.207867,-1.991786,-1.614952,0.315014,0.27536,0.27536,0.057683,13.165604,13.165604,8.209846,1.385103,1.385103,-0.612185,-1.86673,-0.805614,0.398463,-0.172901,-0.883601,-1.45326,-3.399081,-3.236709,-0.487164,-2.192529,-1.282934,-5.401225,-2.181408,10.353613,10.272159,-22.72102,-10.3109,-5.069059,-2.975417,-2.88885,-2.009939,-2.482989,-1.60501,-0.922812,-1.88736,-1.88736,0.709503,-3.235661,-3.235661,4.476957,-6.299583,-11.988873,0.623323,7.39274,7.64033,19.581923,12.279689,-1.917792,-0.626774,-5.393883,-0.71818,-3.677513,-2.117755,-1.282493,-2.101428,-1.465193,-1.691689,19.871862,-13.168228,-10.557457,2.426756,0.188268,-2.523313,-2.523313,-6.774039,-6.323269,-0.312131,-0.312131,10.691962,8.173242,5.26245,-3.511951,1.672072,-5.441767,-6.246242,-5.114528,-2.149784,-2.239215,-2.311667,-3.268541,-1.662297,-2.616727,-1.940839,-1.309572,-1.586242,-1.421687,-1.245629,-0.800864\n-0.513654,-0.513654,0.809464,0.844101,0.454211,-0.148594,-0.660151,-1.783623,-2.092021,-4.769625,-6.642406,-8.975776,-9.577933,-7.941212,-7.941212,-3.119088,7.65328,7.65328,4.173171,0.245163,0.245163,-0.308301,-1.000191,0.745098,0.813924,0.29469,-0.326831,-0.517128,-2.988094,-1.544914,0.508863,-0.148883,-3.507274,-1.151405,-2.775926,-8.346183,-14.882152,-19.857525,5.988965,1.999012,2.771635,4.727094,0.927187,0.568593,1.465694,0.41535,-1.505967,-1.505967,-0.24566,0.388961,0.388961,-7.712074,-7.059776,1.100507,4.376444,-3.647822,-3.232126,-0.715548,-25.233654,-10.193125,0.555379,-0.294004,2.660213,-0.46525,-0.477658,-0.626814,-1.193356,-1.436182,-0.573954,-1.298851,3.346574,-0.559759,1.049277,-4.995107,-0.2319,-0.2319,4.098884,-0.169339,-6.232345,-6.232345,-7.895701,-6.13002,-16.100607,9.104042,1.998921,3.530981,2.628369,0.600843,-0.231879,-0.165918,-0.086646,-0.760018,-1.035101,-0.933682,-0.910264,-1.104551,-0.574103,-0.235106,-0.732116,0.614461\n-0.143822,-0.143822,-1.081329,-0.48207,-0.607249,-0.306288,-1.542093,-2.306481,-2.434323,-5.081715,-4.037673,-4.634268,-0.428803,0.271664,0.271664,6.08048,6.053846,6.053846,0.010653,-0.735091,-0.735091,-0.460763,0.109198,-0.055931,0.284981,0.982784,0.287644,1.062686,1.012082,2.51955,1.920292,1.704558,2.080094,3.451731,4.016366,0.969468,1.464855,-6.12043,-1.795113,-2.02949,-2.197282,-0.189099,-0.037287,-0.146486,-0.266337,-0.625893,-0.708457,-0.708457,0.958814,-0.351565,-0.351565,0.844289,-2.73262,-1.837727,0.311615,0.423476,2.338441,7.558651,-15.39962,3.550276,0.567298,-1.512796,-0.077238,-1.454202,-0.359555,-0.266337,-0.490061,-0.838962,-0.322268,-2.170649,3.235998,-1.568726,0.601922,-1.608677,-0.700467,-0.700467,-1.049369,2.687343,3.102829,3.102829,1.534103,0.149149,-9.343111,-0.902883,-1.270429,-0.801675,-0.386189,-0.972131,-0.074574,-0.23704,0.247694,0.005327,-0.218397,0.119852,0.037287,-0.095881,-0.114525,-0.191763,-0.234377,0.287644\n0.058594,0.058594,-0.127842,0.135832,-0.143822,0.167792,0.580615,0.822982,1.206508,2.165322,3.028255,1.869688,-1.58737,-3.465048,-3.465048,-6.970046,-5.614389,-5.614389,0.356892,0.833636,0.833636,0.825646,0.354229,0.194426,0.372872,0.037287,-0.103872,-0.543328,-1.203844,-1.209171,0.522021,0.082565,0.617902,-0.109198,1.12128,1.131933,-1.187864,1.715212,-1.368974,-0.45011,-0.290308,-0.127842,-0.125179,-0.575289,0.082565,-0.026634,-0.324931,-0.324931,-2.367738,-3.808623,-3.808623,-3.811286,-1.547419,-2.06944,-0.942834,-0.737754,-2.532867,-1.321033,-2.154668,1.049369,-1.584707,-0.498051,0.061258,0.111862,-0.058594,0.066584,-0.19709,0.436793,-0.149149,0.354229,4.08295,0.591269,0.093218,-1.598024,-0.159802,-0.159802,0.956151,2.056124,2.026827,2.026827,3.536959,-3.781989,-3.430424,1.997529,-0.777705,-1.883004,-0.990775,-0.812329,-0.079901,-0.01598,-0.055931,-0.25302,-0.146486,-0.226387,-0.4581,-0.324931,-0.25302,-0.053267,0,-0.239704\n1.086656,1.086656,0.066584,0.282318,0.577952,0.623229,-0.074574,-1.014745,-2.431659,-2.644729,-1.028062,-0.218397,-0.066584,-0.242367,-0.242367,-1.305053,4.583664,4.583664,0.47408,-0.063921,-0.063921,-0.490061,-0.743081,-0.617902,-0.676497,-0.303624,-0.207743,0.340912,0.737754,0.940171,1.5634,2.841819,4.088277,5.933994,7.252364,5.238854,-2.623422,-15.61269,2.362412,-0.615239,-1.09731,-1.107963,-0.340912,-0.439456,0.103872,-0.087891,-0.19709,-0.19709,0.319605,0.468754,0.468754,0.399506,1.177211,0.604586,0.548655,-0.087891,-0.956151,-6.610491,-22.172577,4.73015,3.097502,1.440885,-0.010653,-0.407496,0.122515,0.103872,-0.00799,-0.071911,-0.412823,-1.187864,-4.993824,1.438221,2.138688,-4.343961,1.036052,1.036052,5.132319,6.410738,6.08847,6.08847,4.724823,-7.204423,-15.482184,4.157525,1.55541,-0.46609,-1.318369,-1.398271,-0.761725,-0.295634,-0.106535,0.034624,0.050604,0.085228,0.308951,0.284981,0.135832,0.146486,0.133169,0.282318',Badminton +'0.036607,0.036607,0.265778,-1.343494,-1.699842,1.805751,9.1544,9.728796,9.728796,20.49578,13.668314,13.668314,4.213607,4.213607,8.446316,8.446316,23.243105,28.00206,21.587322,8.916307,3.035106,1.542738,2.195544,0.235887,-0.070496,0.66006,1.127062,5.712849,1.437388,-0.754,2.465902,4.82353,2.121384,7.947946,19.829098,3.465032,-0.935531,0.212341,1.282391,-0.091464,-1.141615,-3.884549,-3.884549,-3.041198,-0.859549,-0.859549,-1.410125,2.169778,2.933832,3.851265,1.861161,-0.942265,-0.473957,0.448266,0.7694,2.970434,18.361437,12.39681,7.438846,2.598671,-2.847907,-5.899036,-3.147044,-0.58556,-2.008246,-2.511715,0.94394,2.855772,10.382624,6.560971,8.410357,9.411572,16.97831,6.787325,6.787325,3.720067,-1.560766,-2.734096,-2.734096,-2.230846,-0.443113,-0.431436,1.904594,-0.448046,1.303947,3.237496,2.541265,11.273003,12.386403,17.0507,10.001555,6.549103,3.190435,1.709501,1.529968,0.702924,0.278856,3.270604,4.255301,4.67929\n0.341686,0.341686,-0.164943,1.139656,0.96642,-4.129244,-10.272553,-8.719121,-8.719121,9.373728,1.822742,1.822742,-0.098371,-0.098371,7.069433,7.069433,8.946755,-14.985197,-8.840396,-12.375008,-10.076275,-5.192503,0.356318,-0.287277,-1.898561,1.622538,3.457911,-3.508035,-6.173389,-3.612003,1.36076,4.447649,6.654411,15.221448,-1.290047,-13.668737,-0.051246,0.531772,-0.430992,0.323739,0.877009,0.88503,0.88503,0.991865,-2.022374,-2.022374,-1.34237,1.814298,-0.674512,0.921936,0.17328,1.505191,1.595321,2.134,10.996414,11.387962,-2.880519,-16.367676,-7.615428,-1.438018,0.374165,0.957708,1.224543,1.003404,1.467127,0.30843,3.590289,3.075885,4.866612,11.411905,8.114722,18.432953,-5.743002,-9.105398,-9.105398,-1.323329,7.621309,-5.924508,-5.924508,-3.619861,2.807433,1.19634,5.097362,1.326314,-0.049698,-4.047614,-5.278431,2.000944,-1.360862,22.261429,6.935176,1.830061,0.379919,0.299517,-2.9073,-7.24139,-6.714019,-2.669458,4.115016,7.836758\n-0.694948,-0.694948,-0.63556,0.276055,-0.191355,0.9501,-2.11434,-9.626743,-9.626743,-10.120673,-8.775112,-8.775112,-4.909456,-4.909456,-8.011306,-8.011306,-15.359553,-17.54565,-1.982517,-12.512335,-5.47303,-0.103751,2.343878,-0.807683,0.201687,3.363128,2.432431,-2.025312,2.036575,-1.915371,-6.207516,-8.196202,-5.936709,-3.069497,12.471722,-7.135584,-0.548566,0.849534,1.77868,2.237875,-1.071503,0.806968,0.806968,-1.108674,-0.860991,-0.860991,-1.20608,-2.23979,-0.788168,1.938621,-1.931296,-0.590925,-2.121091,-0.528333,-4.21956,-5.878227,-13.881685,-0.467809,6.841223,-0.245593,-3.705273,-2.772489,0.331225,0.329992,-3.040158,-3.480103,-1.864704,-2.904139,-2.984295,3.420458,1.589297,12.405689,-2.910414,-10.62934,-10.62934,-8.504477,-0.458815,0.794474,0.794474,0.105973,1.758174,2.782757,-5.296154,-7.215763,2.493176,-4.315281,-1.804004,-3.950127,-3.619875,0.58435,-3.412469,-1.524019,-0.656231,0.245731,-0.234873,-0.410993,-2.344689,-1.853229,-0.985646,-1.742621\n-0.25302,-0.25302,-0.354229,0.247694,-0.705794,-1.126607,0.540665,-0.098545,-0.098545,8.091326,3.712741,3.712741,0.130505,0.130505,-1.635311,-1.635311,-7.369552,-6.807581,-4.639595,-2.229243,-0.495387,1.859034,1.965569,0.93218,1.321033,1.890995,1.076003,1.033389,1.16123,3.734048,4.834021,3.254641,-0.585942,-2.159995,4.815378,1.211835,-0.593932,-1.355657,-1.35033,-1.970896,-2.713977,-1.55541,-1.55541,-1.526112,-1.560736,-1.560736,-0.19709,0.711121,0.338248,-2.769908,-2.194619,-2.048133,-5.334735,-1.544756,-4.655575,-3.243988,-1.355657,2.048133,-0.735091,-0.311615,-0.239704,-0.575289,1.270429,0.101208,-0.303624,1.454202,2.394372,2.52754,2.298491,4.391902,-0.167792,-2.05346,-0.844289,2.543521,2.543521,-2.25055,-6.903462,-1.3743,-1.3743,-2.804531,-5.044427,-4.426525,-3.310572,-3.867217,0.89223,1.12927,-0.021307,0.804339,1.861697,0.167792,-2.295827,0.263674,-1.616667,-1.472845,0.519358,-0.362219,0.490061,2.00552,1.483499,2.753927\n-0.082565,-0.082565,-0.516694,-0.559308,-0.684487,-1.115953,0.306288,-0.92419,-0.92419,1.472845,1.147914,1.147914,-0.346238,-0.346238,2.082757,2.082757,2.530204,6.147064,-2.460956,2.418342,-0.617902,-1.267765,-1.150577,-0.540665,-1.411588,-1.547419,-1.222488,-1.123943,-1.321033,-1.685915,-3.409117,-4.802061,-4.642258,-1.619331,0.127842,-0.098545,0.308951,0.101208,0.218397,0.719111,2.370402,2.213263,2.213263,1.424904,1.033389,1.033389,0.625893,1.600687,1.725865,2.173312,4.234762,3.539622,-0.170456,-0.985448,1.728529,0.791022,3.694098,-1.574053,-0.543328,2.809858,2.325124,0.948161,-0.692477,-0.239704,0.258347,-2.306481,-4.628942,-5.340062,-6.911452,-4.559694,-2.884433,-0.372872,7.793028,1.624657,1.624657,-0.673833,-2.23457,1.78446,1.78446,1.179874,0.972131,2.514224,2.785888,2.623422,2.751264,1.022735,-0.775041,-0.471417,-2.056124,-2.016173,0.862933,-0.897557,0.90022,0.878913,0.775041,-0.165129,-0.889566,-1.789786,-0.857606,-0.66318\n-0.090555,-0.090555,1.470182,1.001428,0.68715,0.452773,1.419578,5.087041,5.087041,9.590804,6.101787,6.101787,1.576717,1.576717,-1.222488,-1.222488,-14.331608,-10.672133,-4.900606,-3.491681,-2.034817,0.516694,1.081329,1.070676,1.395607,1.763153,0.788358,0.972131,1.118617,1.901648,2.058787,2.871116,1.313043,-2.682016,-14.768401,1.864361,2.892423,2.817848,1.305053,-0.44212,-0.157139,-0.524684,-0.524684,-0.44212,-0.65519,-0.65519,-0.319605,-0.65519,-0.545991,-0.274327,0.255684,1.917628,2.663373,2.277184,1.094646,-1.427568,-10.493688,-2.639402,0.173119,-0.700467,0.676497,-0.047941,-0.974794,-0.02397,-0.002663,-1.265102,-2.426333,-1.307716,-0.948161,0.370209,-1.403597,-5.979271,-9.473617,2.194619,2.194619,4.527733,2.863126,-0.194426,-0.194426,0.042614,0.93218,-0.159802,1.041379,-1.392944,-2.628749,-1.094646,0.926854,1.744509,3.82194,3.350523,-2.46362,-0.988111,-1.80843,-1.811093,-0.553982,1.041379,2.06145,3.233334,2.743274,1.424904',Badminton +'-0.179131,-0.179131,0.461767,0.461767,0.362434,0.362434,0.500006,1.369891,0.654846,0.151572,0.937005,0.441772,0.083536,0.004501,-0.303388,0.108275,-1.523134,0.531033,2.18467,2.128011,0.08302,0.928501,7.827904,15.170179,21.206715,2.765279,2.143655,0.414069,-0.614744,-1.212251,-1.831423,-2.109622,0.085422,0.560209,1.230038,3.299776,4.85271,4.85271,2.610802,0.159227,-0.390433,0.191701,7.657101,13.754411,27.201447,10.712116,6.670274,6.471673,9.61641,14.374048,7.288042,5.018216,8.78443,8.282637,4.465376,1.278232,5.179342,4.229057,2.181277,1.365393,9.242778,28.630016,10.204671,7.045174,7.045174,0.053682,1.382575,0.168099,0.168099,-1.646081,-1.646081,-3.287493,-1.813559,-0.398194,7.595396,7.595396,21.23204,5.969812,3.806424,2.116171,2.116171,1.470062,-5.243258,-10.711233,25.95137,14.101036,6.847106,0.796153,0.312875,-1.478303,-1.025308,-2.137591,-1.039984,0.649134,0.729368,0.134189,0.055824,0.922309,1.482422,1.482422\n-1.108077,-1.108077,-1.18718,-1.18718,0.161509,0.161509,1.848935,0.217427,0.018597,0.921071,0.2144,-0.061305,-0.962731,-1.76793,-1.516283,-2.242998,-0.619762,0.476667,-3.433399,-1.098498,4.023647,3.331041,7.24013,12.212465,-27.034096,-4.843414,-2.218899,-0.154949,0.078309,-0.131445,-1.776418,-0.372608,0.246896,3.678836,4.278596,0.39365,0.391129,0.391129,3.584497,3.996506,4.916511,12.11234,5.077505,7.333833,-5.38739,0.050161,0.737257,-0.865494,-1.152102,-1.348481,-6.004224,-0.622151,-1.877194,2.310527,-1.630753,-3.185821,-8.316985,-1.843907,-1.055687,5.360957,10.18814,-7.751966,-8.406035,-8.889412,-8.889412,-9.871749,-5.218795,-1.425272,-1.425272,-1.093379,-1.093379,-0.027057,-3.207535,0.325358,13.240223,13.240223,-25.798191,-3.232225,-1.295901,6.212562,6.212562,5.451155,5.511829,13.491956,-19.659893,7.758213,-0.193361,-5.463664,-3.42955,-0.171765,0.479875,0.387095,-0.440734,0.816926,-0.248242,-0.489991,-0.283364,0.249824,-2.682781,-2.682781\n0.0126,0.0126,2.36039,2.36039,2.106921,2.106921,0.539642,1.42297,0.097691,0.980167,-0.058353,-0.070067,-0.102928,-0.124375,-0.264578,0.731873,-0.92312,-0.853276,-0.393602,-3.415651,-6.955232,-7.068501,-5.734973,7.889636,-8.695606,0.711536,-0.26692,-1.647026,-0.185326,0.306877,-0.175467,-0.904555,1.325821,2.61509,0.897161,1.626362,1.123756,1.123756,-0.583221,0.175419,-5.074325,-10.879957,-15.062627,-12.163714,15.207974,2.50725,2.4057,0.177733,-0.081406,-4.5286,-11.264997,-12.548277,-11.252769,-1.129057,-1.951605,8.32067,-0.653554,-0.262991,-1.277117,-6.803985,-16.361956,-21.14379,4.371888,-0.863124,-0.863124,3.825927,2.196143,1.656201,1.656201,-4.06045,-4.06045,-0.499627,1.167954,1.153482,0.422603,0.422603,-0.954992,-1.725057,-0.002975,-8.203645,-8.203645,-10.765854,-12.111477,-7.072867,-13.098378,0.663651,5.162351,0.120011,-1.216925,-0.829901,-1.120664,-0.092189,0.361716,0.272719,-0.10964,-0.171479,0.106739,-0.544124,-3.272009,-3.272009\n0.066584,0.066584,-0.463427,-0.463427,1.211835,1.211835,-0.407496,-0.791022,-0.202416,-0.218397,-0.101208,-0.074574,0.026634,0.681823,0.945497,1.299726,4.333307,4.463812,4.194812,2.73262,1.33435,1.376964,1.35033,1.171884,-7.907553,1.065349,-0.67916,-1.755163,-0.769715,-2.072104,-1.712549,-1.986876,-2.136025,-2.570154,-4.359941,-5.811479,-3.153433,-3.153433,-5.065734,-5.880727,-3.382483,-1.273092,-2.402362,-2.383719,8.344346,0.26101,1.291736,-0.577952,1.291736,0.266337,-1.733856,-1.009418,0.119852,1.313043,4.461149,1.598024,-2.149342,1.427568,-1.198518,-0.495387,-2.682016,-5.252171,-2.690006,-0.918864,-0.918864,-0.173119,1.688578,2.71664,2.71664,1.592697,1.592697,2.002856,0.735091,-0.22905,-0.343575,-0.343575,-4.724823,-0.093218,-2.199946,-3.19072,-3.19072,-1.456865,-7.547998,-1.952252,-7.468097,8.216504,-0.812329,-1.185201,0.386189,1.387617,0.921527,0.660516,-0.141159,0.029297,-0.165129,-0.106535,0.063921,0.095881,0.034624,0.034624\n-0.095881,-0.095881,0.639209,0.639209,0.181109,0.181109,-0.162466,0.055931,0.119852,0.535338,0.271664,0.151812,-0.271664,-0.215733,-0.476744,-0.668507,-2.341105,-3.132126,-2.064114,-0.359555,-0.380862,-1.395607,-3.137453,0.037287,-2.636739,1.257112,0.455437,0.22106,-0.282318,-0.093218,0.316941,0.010653,-0.484734,-0.615239,-0.077238,1.398271,3.204037,3.204037,3.560929,3.243988,4.615624,4.439842,-0.745744,-7.737097,-9.652062,-1.558073,0.173119,1.81642,3.081522,5.758212,7.105878,-0.982784,-6.581193,-6.288223,-3.875207,0.639209,2.066777,1.619331,1.534103,1.941599,2.482263,-8.935615,-2.077431,-3.619523,-3.619523,-1.928282,-1.813757,-1.360983,-1.360983,-0.612576,-0.612576,-0.24503,-0.719111,-0.284981,-1.174547,-1.174547,-6.583857,1.883004,0.596595,5.395993,5.395993,7.348245,6.914115,0.801675,4.908596,-7.971474,-2.223916,0.364882,-0.039951,0.338248,0.167792,0.223723,0.063921,0.042614,0.077238,0,-0.013317,-0.114525,-0.231713,-0.231713\n0.396843,0.396843,-0.383526,-0.383526,0.266337,0.266337,0.215733,-0.215733,-0.332922,-0.6472,-0.956151,-0.87625,-0.500714,0.037287,0.047941,0.170456,0.479407,0.266337,0.809665,1.632647,1.909638,1.416914,0.479407,-13.10113,-9.132705,2.636739,3.283938,2.705987,1.837727,0.346238,-0.039951,0.420813,0.625893,0.641873,0.143822,0.527348,0.737754,0.737754,2.173312,4.461149,4.964527,1.107963,-0.242367,-4.053653,-0.354229,0.447447,-0.870923,-0.708457,-0.399506,-0.311615,3.88586,6.107113,6.54657,7.571968,3.110819,1.584707,0.964141,1.925618,1.086656,0.817655,-2.106728,-23.368431,1.566063,-1.400934,-1.400934,-0.476744,0.9162,2.431659,2.431659,2.466283,2.466283,-0.077238,0.018644,0.684487,-7.047284,-7.047284,-12.352722,4.397228,3.984405,1.347667,1.347667,1.392944,1.877678,0.868259,-11.132897,6.762303,1.675261,-0.783032,-1.030725,-0.522021,-0.399506,0.173119,-0.021307,0.130505,-0.146486,-0.20508,-0.109198,-0.295634,-0.553982,-0.553982',Badminton +'-2.488524,-2.488524,-3.298341,-2.67816,-0.767443,1.329536,1.329536,-1.007541,-1.641339,-2.016224,-2.016224,-7.81526,-0.096641,10.594398,10.594398,5.610215,5.610215,3.9659,3.9659,15.363002,29.266172,11.026266,1.719834,-1.318433,-0.462584,0.748113,-0.761531,-0.668798,-0.089852,0.47559,-1.033305,-1.06698,-0.663498,-1.273875,-4.410307,-1.847174,-0.434299,-0.815307,-0.815307,6.773363,12.820868,12.820868,3.234247,0.676057,-0.328912,-0.328912,1.148652,1.533098,2.058528,-5.584109,-7.252459,-1.677836,-1.043366,1.144696,-2.067309,4.582974,12.628996,9.952611,12.11515,27.310822,7.31582,6.285155,8.796967,5.937747,6.407832,0.312236,0.498012,-1.030684,-1.030684,1.861737,3.509771,2.311905,2.311905,3.366184,3.366184,6.879337,16.278463,22.025576,12.090591,1.228391,0.616345,-6.11739,-3.804428,1.374232,1.035029,1.610548,1.404831,0.446771,-4.848601,1.892536,9.261805,3.616344,20.877832,14.893655,2.974609,4.598431,4.115221,4.115221,1.785964,-3.228577\n0.360353,0.360353,-4.123512,-5.651583,-2.530377,3.074952,3.074952,1.113865,0.119316,0.154651,0.154651,-3.605942,-13.378552,-1.318977,-1.318977,-0.616617,-0.616617,6.733546,6.733546,10.60423,-17.986164,-7.70572,-7.692846,-7.647301,-2.919913,-2.474525,-1.816231,-0.826735,0.549378,0.453485,0.295526,0.894155,-1.101646,0.82503,0.660596,-9.540091,0.129068,1.272469,1.272469,15.035372,-25.442432,-25.442432,-4.587196,0.825884,-3.936356,-3.936356,-2.614219,-2.178898,-2.049492,0.115381,2.215843,-2.013752,-2.819837,-3.116986,-3.891018,-5.023593,5.565595,2.075375,13.318728,-24.285128,-6.999892,-1.921616,0.05451,-1.410039,-7.160027,1.89049,-1.088272,-0.024146,-0.024146,-4.389817,-6.601764,-5.314837,-5.314837,-5.296433,-5.296433,-5.770029,10.771608,10.340346,-0.353043,-9.61508,-3.742801,-3.968275,-1.59906,-0.130439,-0.656056,-1.992127,1.257631,0.629602,-10.866628,-4.085432,6.289078,10.074965,9.952017,-16.065872,-9.925344,-1.803685,-2.146855,-2.146855,-4.016147,-4.603699\n0.362847,0.362847,1.901927,0.63235,-3.061117,-4.775143,-4.775143,-1.881796,-0.559877,-0.99884,-0.99884,1.644745,3.290961,-9.002554,-9.002554,-5.70057,-5.70057,-4.570817,-4.570817,-5.005794,-14.412903,3.327841,1.829222,1.590944,2.597609,1.081216,-1.008725,-0.655462,-0.576309,-0.425866,-0.41215,-1.65927,-1.117829,-0.937508,-0.857376,-3.754286,-3.199197,1.117932,1.117932,5.762343,-10.150202,-10.150202,-4.792162,1.719079,-1.43336,-1.43336,-0.992543,0.379618,-0.400832,-0.682517,0.326311,2.958767,-0.202408,-7.993657,-9.186912,-2.559019,11.190727,0.503982,3.80444,-9.554345,-1.637439,3.770226,5.592734,4.184246,2.128328,8.646183,3.994535,-2.496038,-2.496038,-6.129562,2.593374,10.609386,10.609386,-9.087793,-9.087793,-6.185971,-15.395082,-17.495405,5.48086,3.407657,4.744546,3.109701,1.114563,0.965413,0.167786,1.797463,-0.282067,-0.503702,2.176398,-5.253703,-7.856804,7.332288,-10.096164,-21.155924,1.859103,0.568981,-1.52821,-1.52821,-0.462152,-0.872766\n0.00799,0.00799,-0.234377,0.354229,0.615239,0.660516,0.660516,-0.133169,0.412823,-0.22905,-0.22905,-0.961478,1.869688,4.679545,4.679545,0.378199,0.378199,-1.757826,-1.757826,-2.9377,-3.731385,-0.93218,-1.667271,-1.989539,0.303624,-0.151812,0.665843,-0.005327,0.391516,0.119852,0.157139,0.572625,0.530011,0.639209,1.123943,0.372872,1.78446,1.046705,1.046705,10.094182,-7.089898,-7.089898,-0.292971,-1.744509,-1.13726,-1.13726,-1.747172,-1.086656,-0.271664,-0.66318,0.964141,1.712549,0.23704,-2.040144,-0.849616,1.547419,3.42776,1.134597,2.522214,-5.949974,-2.852472,-1.502142,-0.519358,-0.292971,-1.624657,-2.546184,-1.480835,0.527348,0.527348,-0.287644,-3.912494,0.412823,0.412823,2.895086,2.895086,0.154476,4.913922,-6.778283,6.503956,0.977458,-0.612576,-2.852472,-0.282318,0.021307,-0.226387,-0.039951,0.412823,-0.02397,0.234377,1.339676,6.685065,-6.54657,-12.467247,-2.410352,1.38229,1.821747,-0.375536,-0.375536,-0.282318,-0.266337\n-0.093218,-0.093218,0.346238,0.90821,1.041379,0.849616,0.849616,-0.348902,-0.026634,-0.010653,-0.010653,-0.969468,-1.829737,2.325124,2.325124,0.628556,0.628556,1.211835,1.211835,3.64882,3.960435,-3.033581,-2.056124,-0.559308,-0.506041,-0.226387,-0.503377,-1.083993,-0.812329,-1.012082,-0.756398,-0.6472,-1.078666,-0.665843,-0.292971,-2.162659,-2.327788,-1.755163,-1.755163,-4.05099,2.70865,2.70865,-0.769715,-0.386189,0.01598,0.01598,-0.165129,0.498051,0.508704,0.980121,0.87625,0.359555,-0.335585,-1.070676,-0.292971,-3.438414,-4.338634,-2.306481,-1.544756,-3.417107,-0.41815,-0.005327,-0.114525,0.367545,-0.295634,-0.93218,0.498051,1.34234,1.34234,0.591269,0.593932,2.303817,2.303817,4.282703,4.282703,1.757826,2.868452,-6.820897,-2.173312,-2.159995,-1.099973,0.506041,0.857606,0.639209,0.524684,0.711121,1.230478,1.835064,2.144015,2.626085,3.582236,-0.19709,6.189678,17.274633,-3.246651,-1.989539,-0.090555,-0.090555,0.665843,2.333114\n0.844289,0.844289,0.439456,1.917628,3.044235,2.863126,2.863126,0.178446,0.106535,0.063921,0.063921,0.833636,0.074574,2.799205,2.799205,2.346431,2.346431,-0.87625,-0.87625,-13.418071,-11.638938,-0.767051,-1.009418,-0.500714,-0.066584,-0.210406,0.271664,0.314278,0.476744,0.506041,0.428803,0.125179,0.340912,0.125179,-0.593932,-1.488825,0.503377,1.827074,1.827074,-10.296598,-2.812522,-2.812522,3.246651,-0.48207,-0.117188,-0.117188,-0.45011,-0.420813,-0.362219,0.276991,0.538001,0.295634,0.998765,-0.053267,-0.447447,0.194426,1.134597,0.410159,-11.476472,-0.913537,2.940363,1.723202,2.130698,2.159995,2.378392,1.733856,1.574053,1.547419,1.547419,1.225151,-0.26101,0.173119,0.173119,7.441463,7.441463,6.884818,3.912494,-21.698496,2.588798,0.522021,-0.945497,-2.652719,-1.728529,-0.540665,-0.351565,-0.897557,0.00799,0.436793,1.283746,5.947311,12.118345,4.168178,-8.288415,-9.769251,1.438221,0.700467,-0.902883,-0.902883,-1.960242,-1.883004',Badminton +'0.140313,0.140313,0.903629,0.326627,-0.208962,0.483027,0.483027,-0.348226,-0.852075,5.373105,11.080467,11.080467,11.068797,10.773275,10.322681,7.886484,4.225394,4.732123,5.9649,20.544523,29.394165,20.774134,13.614712,11.013988,2.837884,3.094992,3.311377,3.505827,1.287432,4.881695,2.4962,1.780978,0.799458,0.570658,2.267534,2.801999,3.897656,3.897656,18.049477,5.484334,2.845903,2.845903,3.085512,1.973561,1.973561,1.078231,1.078231,1.313805,-0.34139,4.004553,4.652314,-0.657997,7.609558,6.491715,1.807129,12.765889,13.62116,7.650974,5.42511,3.621734,-3.77969,-4.491261,-5.185654,-3.160438,-1.249996,2.58593,1.4109,0.460929,-3.635698,1.043835,2.894,2.894,6.209845,6.209845,12.242411,21.045748,5.586597,4.435933,-0.467893,-0.595704,1.109408,-0.558778,0.078619,0.078619,0.540935,1.667451,2.401006,-1.668906,-2.744508,10.042132,14.826311,11.203728,7.650404,25.884212,7.797345,2.85088,-0.778177,2.637692,4.151474,-5.920023\n-0.604627,-0.604627,1.621493,0.942569,1.824642,1.249576,1.249576,0.291859,-1.807956,-9.738517,-10.511178,-10.511178,-8.041975,-0.32145,-1.368001,-1.595666,0.421354,6.394521,7.921787,9.148539,-19.921724,-1.562752,-13.063387,-12.412047,-7.945705,-4.207965,1.428107,2.907932,0.816497,-0.492289,-0.549326,-0.174373,-1.092094,2.066149,2.161826,0.763764,-0.331136,-0.331136,2.082128,-23.044313,-3.361475,-3.361475,8.60747,5.740227,5.740227,-5.066171,-5.066171,-3.262022,-0.034381,0.267405,-2.732628,-12.036406,-1.8804,5.476489,10.405925,10.624531,-7.846087,-2.819139,-5.200272,-7.06715,-3.66416,-3.818977,-3.381962,-0.089045,2.058905,3.834331,-1.50404,-5.176022,-1.160173,1.749197,5.239327,5.239327,9.438736,9.438736,14.08613,-17.30519,-7.437067,-2.169981,4.080858,-4.576176,-2.653847,-3.376466,0.070014,0.070014,4.801774,1.353569,-1.774206,-8.381656,-11.268797,-8.777228,-1.398591,4.76944,9.804633,-10.262689,-12.863113,0.811384,-0.163594,-2.580944,-7.469936,-7.390802\n-0.22166,-0.22166,0.486719,0.264048,-0.599077,-1.250944,-1.250944,0.415296,-0.52876,3.849909,1.12523,1.12523,-6.825813,-9.975379,-8.558619,-5.733788,-4.387809,-4.35602,-6.135986,-11.511704,-18.516186,-3.394705,-8.064974,0.076335,1.875378,0.579278,-0.274951,-1.400535,0.855327,-1.422809,-1.764314,-3.206199,-3.815738,-0.731611,-0.527638,0.414929,-1.228987,-1.228987,0.553754,-5.923607,-4.697588,-4.697588,2.662012,1.62451,1.62451,3.714603,3.714603,0.619519,-6.394039,-3.081802,5.178622,9.385487,-6.715584,-2.840956,3.46182,-10.836753,-2.937939,9.709066,1.859297,-0.227469,-2.801013,-2.080908,-2.055076,-0.550914,1.98282,2.865676,-2.517971,1.053106,1.930791,-3.398267,-4.271519,-4.271519,1.943635,1.943635,2.639957,3.733517,-3.916756,-0.745024,4.184565,-1.630065,1.079539,2.281172,0.38328,0.38328,-0.846561,-5.432094,-1.192056,2.672765,2.75471,-10.792944,-10.598505,-7.611668,-4.801776,-15.113558,5.257391,-0.066528,-3.472237,-1.673056,-1.933697,-7.010064\n0.079901,0.079901,0.420813,0.22106,0.271664,0.021307,0.021307,0.143822,-0.02397,2.298491,2.783224,2.783224,5.097695,4.636931,3.59289,1.930945,1.827074,-0.340912,-1.542093,-4.921913,-12.509861,4.78608,-0.673833,-0.700467,-0.6472,1.379627,1.499479,1.435558,1.550083,1.044042,0.362219,1.534103,2.538194,2.170649,2.199946,1.680588,0.878913,0.878913,-2.159995,-2.373065,-0.615239,-0.615239,-0.644536,-0.141159,-0.141159,-1.683252,-1.683252,-0.599259,-1.648628,0.053267,-3.169413,-0.276991,2.578145,-2.607442,0.383526,-2.50357,18.614311,-0.447447,-0.00799,-0.540665,-0.436793,-0.23704,0.372872,1.352993,0.660516,0.772378,0.783032,0.167792,3.499672,3.590226,3.35585,3.35585,1.262439,1.262439,-1.723202,-0.287644,-1.339676,-2.322461,-0.199753,-2.828502,-1.827074,-3.928474,-2.146678,-2.146678,-0.063921,-1.925618,1.177211,-0.101208,3.758019,3.949781,3.88586,1.235805,0.644536,-12.818812,2.660709,-0.572625,-0.894893,-0.271664,-1.411588,-4.248079\n-0.085228,-0.085228,-0.428803,-0.276991,-0.085228,-0.143822,-0.143822,-0.223723,-0.423476,-1.259775,0.814992,0.814992,2.764581,2.554174,2.279847,1.1053,0.500714,1.443548,2.668699,3.614197,7.814335,-1.217161,0.490061,-2.817848,-1.281082,0.391516,0.191763,-0.061258,-0.972131,-0.495387,-0.154476,-0.609912,-1.566063,-2.101401,-2.28251,-1.837727,-1.030725,-1.030725,-2.375728,1.704558,-0.92419,-0.92419,0.151812,0.069248,0.069248,0.572625,0.572625,0.311615,1.728529,3.784653,3.169413,4.272049,5.281468,1.797777,3.619523,5.337399,-4.069634,-2.098738,-1.038715,0.346238,2.980314,1.922955,0.162466,-0.844289,-0.67916,-0.181109,-2.239896,-4.016366,-2.927047,-4.178832,-4.26406,-4.26406,-2.596788,-2.596788,0.263674,0.969468,0.6472,-0.479407,-0.141159,0.753734,1.147914,1.933608,1.845717,1.845717,1.134597,0.833636,-0.945497,0.127842,1.294399,1.006755,0.135832,0.045277,1.547419,1.456865,-1.13726,0,1.709885,1.408924,3.259968,2.972324\n-0.010653,-0.010653,1.171884,0.972131,0.66318,0.295634,0.295634,0.090555,0.03196,2.279847,4.674219,4.674219,5.382676,4.993824,3.646157,3.611533,3.664801,1.566063,-0.439456,-9.833172,-15.053382,-6.195005,-5.904697,-1.659281,0.753734,2.865789,2.990967,2.06145,1.952252,2.23457,0.894893,0.143822,0.689814,1.819084,1.443548,2.261203,2.73262,2.73262,-13.018565,-0.066584,3.217354,3.217354,0.918864,0.042614,0.042614,-0.548655,-0.548655,-0.207743,-0.577952,-0.282318,-0.215733,1.741846,4.857992,5.920677,2.820512,-5.931331,-3.15077,-1.118617,-1.621994,-2.434323,-1.094646,-0.854943,0.788358,1.302389,-0.063921,-1.621994,-1.968232,-1.986876,0.133169,0.514031,-0.122515,-0.122515,-0.181109,-0.181109,-8.855714,-9.907746,4.317327,3.518315,0.929517,-0.327595,-1.57938,-0.154476,0.484734,0.484734,-0.300961,-1.805767,-0.828309,0.362219,2.761917,6.30953,6.690392,5.760875,-2.703323,-12.464583,0.727101,1.685915,-0.396843,-4.069634,-5.116339,0.780368',Badminton +'-0.040961,-0.040961,0.338414,-0.471072,-0.471072,0.574298,0.574298,0.129762,0.919989,0.026049,0.038595,0.038595,0.590026,6.590907,6.590907,7.392937,15.947104,18.70396,4.82205,4.82205,2.218987,3.691139,6.241935,18.845798,29.321178,9.722544,1.827359,3.818844,4.023219,0.264775,2.378735,3.330747,3.978,2.975527,1.279264,1.164509,1.164509,12.005747,9.501198,18.195,9.50316,9.50316,3.229592,2.799963,2.799963,4.992425,4.992425,4.767369,5.042366,1.794613,0.224115,8.64358,14.508809,24.241856,9.256435,6.126761,-5.597688,-3.18446,0.202645,3.601299,0.659844,-2.662293,0.886679,-1.775767,4.819008,4.174281,23.392357,28.593292,2.41147,5.113232,4.014791,1.678199,1.596183,2.536726,1.495729,1.953737,0.999846,0.999846,6.220643,6.220643,4.20081,-1.681468,-1.313613,7.519822,2.71042,1.936411,1.631761,1.229442,5.131116,0.850456,26.98855,6.222346,-1.700033,-5.209641,2.713264,1.804999,2.72566,1.031565,1.031565,3.976516\n-0.9711,-0.9711,-3.420216,0.272892,0.272892,-0.037586,-0.037586,1.617383,0.880911,2.08121,0.502971,0.502971,4.483957,-12.700579,-12.700579,-11.943457,-0.739166,3.095232,4.591723,4.591723,3.055669,1.989854,5.926601,9.83731,-20.089558,-11.841574,-7.996925,-4.450565,-5.385722,-2.489637,-2.632629,-2.196828,2.00715,1.174278,-0.030847,-1.487637,-1.487637,2.599754,12.438768,11.164019,-5.787756,-5.787756,-0.65735,-4.31073,-4.31073,-2.765825,-2.765825,-1.979234,0.539005,2.605928,13.812981,16.893007,6.623184,-18.008757,2.246587,-3.903175,-4.377778,-1.010828,6.159477,0.650687,-6.499214,-4.30106,-2.640196,-4.597237,1.522529,9.248898,11.514159,-15.571753,-5.002049,-14.040718,-11.369128,-4.328721,-2.087874,-3.054094,0.972681,1.524174,1.556873,1.556873,-11.55637,-11.55637,-4.62405,1.988527,2.319357,-2.00029,-9.163866,0.040002,11.469027,1.840352,4.965141,11.898825,-25.962337,-1.287285,7.40211,5.839121,-6.195345,-3.376082,-6.987941,-3.441212,-3.441212,-0.0097\n0.20356,0.20356,-2.053446,0.813613,0.813613,-0.272641,-0.272641,-0.671614,-1.028987,-1.181389,-3.228804,-3.228804,-0.564284,-8.419313,-8.419313,-11.698112,-12.507838,-9.689652,-3.746879,-3.746879,-1.886064,-2.496393,-5.110397,-17.875956,-20.70378,1.276837,5.386583,4.175529,-1.43222,-3.992094,-3.885613,-3.75132,-3.094975,-2.912907,-1.057495,-1.893368,-1.893368,-1.017831,4.881732,12.566034,-12.448816,-12.448816,2.841644,0.304721,0.304721,-0.821117,-0.821117,-0.624471,2.384533,0.675751,0.644581,-10.456031,-13.45108,7.047659,9.937653,3.548645,-2.002894,-0.755344,-2.437873,0.755753,5.172187,3.467486,-1.503979,0.494904,-4.154387,-2.037476,-2.497145,19.792835,0.73888,7.449974,7.449448,1.14991,-2.303406,-1.868169,0.087931,0.511342,0.823572,0.823572,2.35753,2.35753,-5.147363,-4.119065,-4.569531,-1.281414,-2.912548,-8.223941,0.88749,1.132904,0.193755,-9.641924,18.622427,-1.149973,4.974309,11.907093,5.558307,0.856818,-2.579293,-0.292261,-0.292261,-2.547521\n0.061258,0.061258,0.250357,1.566063,1.566063,2.628749,2.628749,0.716447,0.388852,-0.165129,-2.95368,-2.95368,-2.916393,-0.745744,-0.745744,2.074767,6.900798,7.992781,2.959007,2.959007,1.621994,-0.143822,-1.869688,-1.592697,-18.07631,-7.156482,-2.215926,-1.592697,0.753734,1.701895,2.759254,2.28251,2.034817,1.843054,1.163894,1.547419,1.547419,1.789786,0.953487,-4.421198,0.711121,0.711121,-0.053267,-2.626085,-2.626085,-2.642066,-2.642066,-2.588798,-2.767244,-2.506234,-5.702281,-2.221253,-0.92419,16.345118,-2.205272,0.753734,1.267765,2.175975,2.183965,0.455437,0.980121,2.010846,2.263867,2.697996,0.92419,3.470374,-1.395607,19.501213,-2.92172,-1.856371,-1.672598,-0.087891,0.793685,0.005327,0.298298,0.095881,0.844289,0.844289,0.921527,0.921527,1.877678,2.138688,-0.700467,0.388852,1.400934,4.620951,1.741846,-0.090555,3.64083,2.618095,2.159995,0.825646,-4.184158,-3.116146,-2.098738,-1.941599,-2.349095,-0.095881,-0.095881,-1.667271\n-0.047941,-0.047941,-0.639209,-0.378199,-0.378199,-0.870923,-0.870923,-0.559308,-0.231713,0.01598,-0.596595,-0.596595,-0.748408,0.937507,0.937507,-0.327595,-1.704558,0.580615,-0.378199,-0.378199,-0.676497,0.335585,2.642066,3.497008,4.431852,-6.687728,-1.099973,-0.977458,-0.783032,-0.980121,-2.189292,-2.378392,-1.709885,-1.542093,-0.756398,-0.660516,-0.660516,-2.650056,-2.751264,4.290693,-2.482263,-2.482263,-0.90821,-0.194426,-0.194426,2.226579,2.226579,4.138881,4.567684,5.414637,4.293356,5.513181,1.763153,-12.123672,-0.838962,-0.713784,1.337013,-0.700467,-2.556838,-3.307909,-0.809665,0.569962,0.306288,0.407496,1.635311,1.768479,-3.022928,2.756591,-3.883197,-2.92172,-0.886903,-0.292971,0.615239,0.383526,0.26101,0.034624,-0.122515,-0.122515,1.582043,1.582043,1.459528,0.689814,-0.340912,-1.044042,-0.740418,-2.346431,-1.321033,-0.223723,-1.243795,-1.696568,-4.06697,1.592697,0.215733,0.03196,0.335585,1.246458,3.246651,2.421006,2.421006,3.046898\n0.961478,0.961478,-0.298298,1.305053,1.305053,1.81642,1.81642,1.12927,0.652526,0.03196,-0.532675,-0.532675,-0.910873,2.346431,2.346431,5.095032,7.710464,9.063457,2.852472,2.852472,1.16123,0.894893,0.010653,-3.318562,-10.927817,0.498051,-2.458293,-1.211835,-1.528776,-0.292971,1.371637,2.138688,2.343768,1.187864,0.455437,0.047941,0.047941,-2.178639,-4.415872,-15.482184,2.940363,2.940363,0.519358,-0.809665,-0.809665,-1.616667,-1.616667,-1.251785,-0.292971,1.757826,4.31999,-1.757826,-7.329601,-3.82194,0.013317,-2.46362,-0.271664,1.739182,1.195854,-0.756398,0.356892,2.197282,3.038908,3.204037,4.469139,2.543521,-14.435479,4.274713,-0.045277,-3.006948,-2.335778,-1.14525,-0.175783,-0.133169,0.234377,0.189099,0.43413,0.43413,0.069248,0.069248,1.107963,1.643301,1.339676,2.02949,1.906975,3.651484,3.939128,1.502142,1.241132,0.897557,-11.042342,5.254834,3.462384,-0.394179,-1.61134,-1.936272,-1.717875,-0.324931,-0.324931,-0.327595',Badminton +'-1.801504,-1.801504,-0.480725,-0.359158,-0.359158,-0.86736,-0.86736,0.919734,0.919734,7.968089,8.180952,8.180952,12.700998,12.700998,7.664378,5.10775,10.802709,25.33598,5.391898,-2.946371,1.85248,2.112877,2.084933,2.522344,0.239282,-1.560291,-1.397495,0.727539,6.936099,3.52749,6.713364,5.937016,20.988087,5.316043,2.276456,2.276456,-2.160984,-1.297079,-1.297079,0.606798,2.109853,3.386669,3.269795,4.788681,2.000924,2.891978,-1.946431,6.494183,4.000185,0.227504,5.04098,10.535278,18.628551,28.832684,12.136279,-0.599998,-1.145964,0.997581,-0.06764,-0.06764,3.716092,-0.716943,-0.843146,1.678985,1.678985,1.197582,5.843315,5.843315,8.819695,8.145795,22.346416,22.346416,-0.190997,0.783874,2.592872,0.237955,-1.222185,6.54276,3.376852,1.156991,-3.115275,-4.400279,0.465141,4.423235,5.790797,7.896542,10.03602,12.953965,13.01049,13.01049,-0.168487,0.873736,1.078308,3.433516,-0.650774,-0.650774,0.114738,-0.03053,0.455826,0.455826\n2.34499,2.34499,-0.994385,0.023968,0.023968,-0.438917,-0.438917,-3.977269,-3.977269,-10.461211,-4.130641,-4.130641,-0.810401,-0.810401,2.766241,7.411123,9.846778,-3.518534,-14.340026,-4.111496,-2.05781,-3.15655,-4.013975,-3.490802,-3.242291,-4.590148,-4.167864,3.427841,8.85697,5.879168,4.595182,15.201664,-16.51902,-7.005497,-0.253423,-0.253423,-0.861916,-0.098467,-0.098467,0.396202,1.429467,2.047577,-2.597786,-9.43402,-1.220359,2.38754,6.224468,0.845199,-0.559901,4.688911,16.114119,12.979051,7.496048,3.902991,-2.394826,1.043706,1.440742,-2.720988,-2.964671,-2.964671,0.994223,1.477823,3.829902,1.888672,1.888672,-1.575617,-5.982321,-5.982321,3.617055,10.782919,-14.682866,-14.682866,-2.777904,3.84281,2.920387,0.648135,2.018811,-5.999428,-6.428786,-7.747005,-6.700954,-2.947941,-7.440602,-3.042684,1.466264,6.377035,7.419134,8.184597,-0.372171,-0.372171,1.515441,-0.106535,-1.411581,-3.65332,-0.100447,-0.100447,0.366684,1.387251,1.344373,1.344373\n0.281253,0.281253,0.378807,0.98279,0.98279,0.555721,0.555721,-0.918076,-0.918076,-3.817731,-5.571979,-5.571979,-7.225033,-7.225033,-4.725319,-4.421931,-7.069132,-14.105523,-1.952323,2.584018,0.00563,-0.768391,-0.072666,-1.507306,-0.056158,-1.042602,-4.662939,-7.063563,-0.318855,-0.307504,1.176578,11.155159,-3.294936,-5.375541,-1.654285,-1.654285,0.526336,1.029018,1.029018,0.392609,0.351554,-2.173745,-6.092679,-1.865617,-1.512035,-0.372347,3.687085,-4.440207,-3.822179,1.176395,-5.908185,-9.904807,-12.878627,12.815634,-4.306531,-3.737737,-4.137365,-4.99942,-1.86189,-1.86189,-1.744203,-1.660926,0.547116,-0.257331,-0.257331,0.826176,-6.232602,-6.232602,-7.146499,-2.268568,-18.548178,-18.548178,2.500334,-1.580005,-2.966118,-3.175352,-2.011839,-2.253498,0.934054,0.768453,1.554746,0.002767,-6.395347,-8.712614,-8.359278,-6.346071,-1.007641,8.17592,4.168102,4.168102,-0.839705,-0.402529,-0.739073,0.062409,1.693459,1.693459,0.835997,0.17118,-1.091427,-1.091427\n0.716447,0.716447,-0.870923,-0.966804,-0.966804,-2.881769,-2.881769,0.002663,0.002663,1.997529,3.683444,3.683444,3.587563,3.587563,2.407689,0.101208,-2.668699,-7.960821,5.055081,-1.34234,-2.04547,-2.237233,-1.004091,-0.202416,0.095881,1.110626,2.897749,3.337206,2.916393,0.41815,0.836299,1.803103,0.48207,-0.628556,-0.612576,-0.612576,-2.133361,-0.274327,-0.274327,-1.230478,-1.427568,-2.844482,-1.960242,-3.781989,-0.860269,-5.084378,-0.066584,-4.567684,-8.237811,-0.814992,0.388852,-0.335585,-3.544949,6.471995,-3.230671,-0.356892,1.629984,2.548847,1.859034,1.859034,2.780561,1.171884,1.291736,1.198518,1.198518,0.359555,3.126799,3.126799,3.140116,-1.014745,-0.972131,-0.972131,0.852279,0.945497,1.155904,-1.483499,-0.383526,-3.630177,0.20508,-1.174547,-1.709885,1.414251,2.793878,2.202609,2.162659,1.046705,5.340062,-1.997529,-6.485312,-6.485312,1.632647,0.02397,0.22905,0,-0.990775,-0.990775,-0.02397,0.386189,2.666036,2.666036\n0.162466,0.162466,0.095881,-0.226387,-0.226387,-0.455437,-0.455437,-0.745744,-0.745744,-1.552746,-0.490061,-0.490061,0.639209,0.639209,0.820319,1.078666,1.363647,0.751071,-3.238661,-2.476937,-1.241132,-1.086656,-0.767051,-0.25302,0.002663,-0.316941,-1.661945,-4.162851,-3.081522,-1.251785,-0.793685,0.258347,1.733856,0.117188,-0.303624,-0.303624,0.761725,0.532675,0.532675,0.972131,1.789786,2.660709,3.960435,3.15876,3.465048,3.619523,3.547612,4.317327,0.969468,-0.591269,1.992203,-0.596595,-2.381055,-8.669277,6.187015,4.07496,1.171884,0.69514,-0.977458,-0.977458,-0.985448,-0.210406,-0.149149,-1.310379,-1.310379,0.047941,-1.837727,-1.837727,-1.888331,-0.6472,0.580615,0.580615,-0.348902,-0.186436,-1.094646,-1.294399,-0.569962,-0.756398,-0.292971,0.101208,-0.159802,-1.243795,-2.322461,-2.777898,-4.197475,-3.105492,-2.52754,-3.742039,0.530011,0.530011,0.886903,-0.239704,-0.045277,-0.26101,0.258347,0.258347,0.444783,0.974794,2.133361,2.133361\n0.921527,0.921527,-0.47408,-0.370209,-0.370209,-1.12927,-1.12927,0.857606,0.857606,4.905932,5.262824,5.262824,5.896707,5.896707,5.276141,1.547419,-3.579573,-13.399427,-1.15324,-0.029297,-1.057359,-1.115953,-1.166557,-0.934844,-0.447447,0.165129,0.737754,1.779133,0.599259,0.279654,-1.616667,-7.188443,-10.941134,4.330644,2.618095,2.618095,0.463427,-0.322268,-0.322268,-0.44212,-0.964141,-1.664608,-2.514224,-3.936465,-0.809665,0.391516,0.913537,1.693905,4.077623,2.269193,-1.680588,-7.662523,-11.250086,-4.421198,2.514224,0.910873,-0.098545,-0.729764,-0.420813,-0.420813,2.02949,1.542093,0.111862,0.769715,0.769715,0.67916,6.709035,6.709035,7.105878,0.862933,-0.191763,-0.191763,1.664608,-0.194426,-0.013317,-0.761725,-1.77647,-3.467711,-2.737947,-2.535531,-1.779133,1.856371,2.815185,3.702088,3.060215,2.159995,-2.032153,-3.712741,-7.918207,-7.918207,1.869688,0.556645,0.125179,0.143822,0.290308,0.290308,0.367545,0.721774,-0.106535,-0.106535',Badminton +'-0.046089,-0.283051,-0.587748,1.681765,1.698082,0.999354,0.999354,3.187616,7.692596,9.853472,11.205362,8.093546,9.97126,23.669788,7.792745,-3.429949,0.511445,1.204227,0.933868,-0.576097,5.832745,2.6298,-0.522887,4.349386,3.257035,0.365227,0.824476,3.181908,2.675488,2.645271,0.38229,0.915248,0.915248,1.004381,3.130642,-0.581114,-0.581114,1.733129,11.113657,11.113657,24.485662,7.856797,6.580104,1.608573,0.312198,0.665967,0.792447,0.376561,0.891342,3.283161,3.454754,1.961239,1.530026,1.990647,0.116151,0.171407,2.463852,1.014516,0.967987,0.839146,-0.505605,-0.431295,13.867352,16.161194,6.881513,8.724022,20.7819,20.7819,21.999681,13.366278,5.654046,5.654046,7.30486,3.853828,0.449494,0.314893,2.703599,0.736617,0.757891,1.147018,1.658949,0.898677,-0.283635,0.905004,3.318443,3.413279,-0.629125,-3.911755,-3.806918,6.592688,8.679508,-0.412076,-1.600095,-2.575964,-1.968665,-1.568996,-1.736998,-1.736998,-1.191762,7.656783\n-0.738026,-0.314572,3.388108,-0.506257,-7.708093,-8.796029,-8.796029,-8.581325,-1.473917,-2.91508,1.257399,6.519823,10.205639,-6.417539,-6.746244,-4.68535,0.305179,0.604332,-2.45974,0.397767,-3.132382,-0.48287,3.038366,-6.970124,1.506658,0.289982,-1.989081,1.706868,0.655698,-6.222984,-3.106336,0.76245,0.76245,-2.653379,1.8968,-1.459539,-1.459539,-0.503948,17.731373,17.731373,-27.321314,-0.77782,-3.128056,5.253767,1.797876,0.685169,-3.243547,-0.717904,-1.599475,-5.41397,-6.236104,-6.223574,-1.964207,-0.594077,1.717564,-1.099643,-1.039134,1.192596,2.580035,-3.172355,-12.560325,-11.381701,-11.827429,-3.882122,-0.363221,6.587774,10.140992,10.140992,-6.827643,-15.348944,-9.956354,-9.956354,-2.080183,-0.199735,2.769809,4.748826,2.593939,-0.392236,-2.365039,2.040459,0.33073,-1.592427,-1.194529,1.719912,0.77654,7.202898,13.998207,12.227484,2.780891,-25.845242,-7.391353,2.906979,-1.327428,0.097399,-0.866346,-0.31117,1.141241,1.141241,6.491736,-6.001001\n0.179667,-0.724257,-0.223563,-1.356121,1.167168,1.736557,1.736557,0.50974,-4.060516,-5.175981,-5.126178,-2.411208,-8.858547,-21.805918,3.055735,9.089144,11.824766,7.135795,3.646899,-1.047248,3.945246,0.795603,-3.828069,2.507247,0.339517,-2.053697,-0.78324,-0.52621,-3.237174,1.404799,-0.142817,-0.818473,-0.818473,-3.190972,-1.262649,-1.079857,-1.079857,-4.309183,-17.542236,-17.542236,4.908481,0.346831,-2.49299,6.203495,6.159874,4.281928,2.144078,0.958689,-3.157953,-2.798878,-1.182181,0.676512,1.648735,0.531675,-0.254237,1.23267,-0.644713,-2.155883,-1.501597,-1.153003,-5.760567,-3.982031,-11.172371,-9.491193,-1.404126,-4.033248,-7.879581,-7.879581,-2.62236,-13.330293,1.035255,1.035255,-0.735571,-0.563736,1.500826,1.721291,0.760598,0.332405,2.019295,0.31396,-1.19619,-1.700053,0.625852,1.088732,0.696196,-1.060192,-5.75818,-4.433821,16.330366,-16.734058,7.786971,4.866558,-1.081712,-0.169275,0.67855,0.844251,0.617227,0.617227,-7.056951,-4.164186\n0.364882,-1.163894,-2.543521,-3.038908,-0.796348,0.386189,0.386189,2.791215,4.716833,1.717875,2.434323,-0.801675,-1.459528,-9.937043,2.538194,-0.346238,-0.356892,0.002663,-0.061258,0.719111,1.438221,2.050797,0.436793,-0.122515,0.793685,-0.463427,0,1.488825,-0.298298,1.017408,-1.020072,-0.506041,-0.506041,-0.19709,-0.19709,-0.410159,-0.410159,1.033389,-13.335506,-13.335506,-3.742039,1.14525,-2.998957,-0.681823,-2.522214,-0.751071,-0.452773,0.897557,0.47408,-0.860269,-0.897557,-0.620566,-0.191763,0.279654,-0.21307,-0.066584,0.026634,0.300961,0.820319,-2.815185,-1.851044,6.410738,8.309722,4.122901,1.289072,-0.785695,-9.545527,-9.545527,-1.182537,-3.739375,1.821747,1.821747,-0.591269,0.109198,1.046705,1.3743,0.873586,-1.520786,0.498051,-0.103872,-0.439456,-0.093218,0.255684,-0.034624,-0.130505,-2.349095,-3.473038,-3.057552,-0.910873,-15.996216,9.787894,-0.162466,-2.452966,-0.543328,0.106535,-0.396843,0.138495,0.138495,0.897557,-0.583279\n-0.23704,-0.101208,0.402169,0.857606,1.257112,1.531439,1.531439,1.523449,1.883004,2.016173,2.04547,1.619331,1.976222,4.871308,-4.290693,-2.96966,-0.519358,-0.479407,-0.452773,-1.763153,-4.128227,-2.311807,-0.367545,-0.03196,0.391516,-0.143822,0.889566,0.519358,0.00799,-1.16123,0.045277,-0.157139,-0.157139,0.119852,0.119852,0.711121,0.711121,-0.308951,-12.017137,-12.017137,-3.771336,4.157525,0.364882,-0.396843,0.48207,2.210599,2.229243,2.306481,1.837727,0.988111,1.254448,1.352993,2.186629,2.098738,1.869688,0.700467,1.390281,0.676497,0.226387,-1.435558,-0.356892,-0.90022,-0.095881,-0.111862,0.348902,1.286409,5.771528,5.771528,-0.247694,0.708457,-1.1053,-1.1053,-1.001428,-0.266337,-0.447447,-0.047941,0.514031,1.430231,0.612576,0.934844,0.769715,0.66318,0.471417,0.538001,1.619331,2.165322,0.093218,-0.431466,-0.599259,17.775349,-6.613154,-0.503377,0.484734,0.498051,-0.492724,-0.625893,-0.820319,-0.820319,-1.566063,-4.554367\n0.386189,-0.165129,-0.897557,-1.672598,-0.388852,2.484927,2.484927,5.968618,7.550661,5.728914,5.116339,2.596788,-0.841626,-17.42911,2.287837,1.068012,0.950824,0.194426,-1.094646,-0.68715,0.41815,0.980121,0.343575,-0.082565,-0.402169,-0.530011,0.133169,0.181109,1.486162,-0.22905,-0.20508,-0.727101,-0.727101,0.918864,0.918864,1.390281,1.390281,0.399506,1.448875,1.448875,-8.408267,4.312,5.979271,3.078859,0.833636,-0.804339,0.066584,0.223723,-0.079901,-0.727101,-0.620566,-0.231713,0.119852,1.257112,1.171884,0.079901,-0.135832,-0.22106,-2.927047,-6.221638,-3.281275,4.956536,9.947697,7.955494,3.326552,0.061258,-6.711699,-6.711699,-8.496159,-4.881962,-0.276991,-0.276991,1.142587,0.500714,1.193191,1.659281,2.199946,1.209171,1.060022,2.032153,2.0215,1.536766,1.728529,2.402362,2.865789,4.005712,4.876635,-1.203844,-1.680588,-3.86988,1.083993,-0.210406,-1.214498,-0.567298,-0.506041,-0.476744,0.516694,0.516694,0.740418,-4.399891',Badminton +'-2.178746,-2.178746,-0.448056,0.038006,1.179976,-0.135697,0.247866,0.92021,-4.143724,-4.143724,2.603539,2.455967,1.212611,1.212611,-3.626172,19.968615,19.968615,-0.201954,-1.357019,-1.397687,1.596302,-0.077235,-3.288382,-0.726947,1.189045,-0.645126,-1.574566,-0.820879,7.796617,8.611691,9.009614,8.060112,5.760914,16.548027,11.478651,9.837638,6.775292,-1.908215,1.786474,5.916776,5.916776,1.085635,2.263182,2.083857,2.083857,4.76289,4.449279,4.615859,3.495688,3.495688,14.005492,14.005492,14.005492,14.005492,14.005492,-2.194045,-1.481206,-1.426212,-1.392018,-0.043278,-0.543859,-1.209481,-1.876537,-1.208496,-1.2887,-0.534324,1.152076,-0.14184,-0.622895,-0.622895,1.367561,1.367561,0.206201,-10.329583,3.82858,3.82858,4.030284,-0.086386,4.13767,15.528881,21.649515,-3.882229,-4.914294,-6.551541,-1.079137,-0.979889,-1.431616,-1.754684,-1.275309,-1.263343,-1.263343,-0.223455,-1.344261,0.547315,-0.789348,1.050701,8.055288,8.055288,3.972704,3.972704\n-0.385371,-0.385371,-2.089439,-1.940939,-2.28838,0.505049,0.392034,1.353799,-0.335721,-0.335721,2.820456,-0.942761,-3.726292,-3.726292,17.706993,-16.858427,-16.858427,-6.195056,1.525563,8.386897,1.664173,3.531483,0.949949,1.185077,0.476262,-4.37203,-5.016328,-7.892199,-12.225467,-1.862141,-0.58222,0.715426,10.33777,-19.03417,1.15725,-11.551245,-10.454707,-8.299247,-4.468076,-2.495757,-2.495757,-4.444979,0.576458,-1.926739,-1.926739,-0.850738,6.477179,12.048565,12.258244,12.258244,8.695645,8.695645,8.695645,8.695645,8.695645,-1.30105,-0.572634,-0.223356,1.537882,-0.195487,-0.358931,0.061636,0.161238,-0.757099,0.67072,0.408229,-0.417592,-0.071678,1.670641,1.670641,-2.430153,-2.430153,-1.596099,-4.641941,-2.127689,-2.127689,0.627464,-8.452021,11.704741,-10.028026,-3.037517,2.445692,1.008063,0.050977,-1.763048,-2.435442,-3.581987,-1.81947,0.796609,-0.10185,-0.10185,1.579616,1.301955,-3.313663,-7.574715,-3.814761,12.416919,12.416919,-6.256475,-6.256475\n-0.805837,-0.805837,1.04617,-2.643758,-3.81014,0.443944,1.199466,0.261888,-2.855611,-2.855611,2.013837,2.846118,0.693282,0.693282,-6.501969,-4.627619,-4.627619,-2.389705,-1.781628,6.180022,1.033682,-0.574278,0.67699,2.044045,0.783844,1.686068,2.887581,1.695523,-1.538808,-6.105134,-8.114472,-5.880343,-4.262404,4.154191,1.501389,-4.486503,-7.820253,0.455599,1.946088,1.715118,1.715118,-1.394068,0.784138,1.943866,1.943866,1.075962,-2.618962,-3.491138,7.40996,7.40996,-6.357162,-6.357162,-6.357162,-6.357162,-6.357162,-1.558514,-1.410724,0.1227,0.770273,-0.373878,-0.247603,-0.006158,-1.053778,-1.267495,-0.993309,-0.582129,0.663644,-0.476568,-0.272213,-0.272213,-1.729549,-1.729549,-2.315784,-2.183046,-9.946456,-9.946456,8.895612,-3.927436,-4.872724,-13.35877,4.351461,-1.367322,0.950891,-1.654913,-5.197008,-3.967908,-0.419149,0.11072,-2.444721,-1.42216,-1.42216,-1.084337,4.977523,12.201049,0.131189,-11.876352,-15.308962,-15.308962,-3.169756,-3.169756\n-0.039951,-0.039951,1.946925,2.138688,1.57139,2.25854,2.06145,1.728529,-0.226387,-0.226387,-0.972131,-1.355657,0.058594,0.058594,2.436986,4.628942,4.628942,1.209171,-5.158953,-3.118809,-3.001621,-3.033581,-2.788551,-0.585942,-1.843054,-2.777898,0.005327,2.567491,4.370595,4.130891,3.547612,1.928282,-1.086656,8.413594,0.740418,-4.112247,-6.072489,2.92172,-0.178446,-0.322268,-0.322268,-6.147064,-1.057359,-1.062686,-1.062686,4.040336,-3.808623,-0.157139,-0.652526,-0.652526,-2.705987,-2.705987,-2.705987,-2.705987,-2.705987,0.873586,1.944262,0.92419,0.588605,0.407496,-0.415486,0.540665,0.444783,0.218397,0.652526,1.041379,1.752499,-0.149149,1.249122,1.249122,0.058594,0.058594,0.530011,4.011039,5.755548,5.755548,5.691627,3.42776,-4.05099,-1.880341,-9.02617,0.117188,-2.900413,-1.536766,-3.787316,-1.968232,-1.203844,0.066584,0.26101,-0.93218,-0.93218,-0.125179,0.599259,3.409117,3.188057,1.970896,3.718068,3.718068,1.803103,1.803103\n0.484734,0.484734,-0.524684,-1.012082,-1.574053,-1.243795,-0.862933,-0.735091,-0.636546,-0.636546,-0.117188,-0.181109,0.218397,0.218397,0.290308,-5.350716,-5.350716,1.781796,-1.829737,-1.193191,1.107963,2.402362,1.275755,-0.300961,0.604586,1.709885,1.837727,2.077431,2.71664,2.668699,1.083993,1.044042,0.412823,2.277184,-2.26653,-0.89223,4.479793,0.25302,1.438221,1.57139,1.57139,2.823175,-0.359555,1.584707,1.584707,2.650056,2.751264,-0.194426,-0.511368,-0.511368,3.345196,3.345196,3.345196,3.345196,3.345196,1.624657,1.318369,1.057359,0.498051,0.596595,0.516694,0.295634,0.194426,0.074574,0.572625,0.660516,1.028062,0.759061,-0.290308,-0.290308,-0.407496,-0.407496,0.02397,-0.319605,-4.112247,-4.112247,-0.045277,4.032346,-1.693905,2.556838,-3.435751,1.403597,0.705794,1.142587,-0.218397,-0.980121,-1.115953,0.394179,0.428803,-0.098545,-0.098545,-0.615239,-1.568726,-1.193191,1.424904,-0.724437,-4.581001,-4.581001,1.406261,1.406261\n1.054696,1.054696,2.436986,3.220017,3.262631,2.098738,0.386189,-0.47408,-0.777705,-0.777705,0.141159,-0.665843,0.037287,0.037287,-0.292971,-15.101322,-15.101322,5.012467,3.912494,1.848381,-0.087891,-0.378199,0.258347,0.801675,0.218397,-0.48207,-0.178446,1.1053,5.334735,5.699617,3.83792,2.658046,-5.694291,0.22905,1.400934,-5.952638,-6.269579,-3.105492,-0.119852,0.41815,0.41815,2.554174,4.341297,2.841819,2.841819,2.729957,2.783224,3.816613,-1.526112,-1.526112,-5.419963,-5.419963,-5.419963,-5.419963,-5.419963,0.636546,0.452773,0.276991,0.423476,0.476744,0.530011,-0.19709,-0.404833,-0.575289,-0.01598,0.133169,0.548655,0.002663,-0.428803,-0.428803,-0.431466,-0.431466,0.162466,2.386382,4.133554,4.133554,4.112247,2.06944,6.357471,-8.011425,-0.24503,0.604586,-0.173119,-0.151812,0.279654,-0.063921,-0.500714,-0.495387,-0.620566,-0.553982,-0.553982,-0.89223,-0.90821,0.178446,0.985448,2.804531,2.753927,2.753927,2.764581,2.764581',Badminton +'0.901645,0.901645,-0.054697,0.08205,-0.128774,1.092495,1.092495,2.307036,4.039393,11.61538,11.360098,4.091811,4.091811,3.322768,6.964341,11.240337,-4.36143,-4.293632,-2.205062,-0.001054,-0.001054,-1.096849,0.396413,1.019376,4.026949,6.488306,12.678919,8.909513,18.300455,-0.823865,-1.412287,0.121468,0.601926,2.63082,2.63082,0.289517,-0.016676,0.726477,0.726477,1.06282,1.70093,3.05779,6.07608,13.837938,14.569267,12.661531,24.331776,18.020967,3.595654,-1.870601,3.611138,6.201921,20.848743,27.77237,4.536216,-5.138305,-5.138305,3.718165,1.106075,2.004576,0.275148,1.709415,10.865049,10.865049,2.322221,0.612587,1.41662,1.708391,6.047649,4.563669,0.915076,0.858367,-0.758643,-0.423682,-0.312571,3.823683,12.497074,18.681316,19.240751,8.018105,0.732832,0.255888,0.860406,1.282614,1.11103,1.062882,1.062882,1.148049,0.890073,0.508623,-0.183,-0.691467,4.751653,11.71151,8.182741,28.459024,10.260094,4.316471,0.704446,-2.074749\n2.581916,2.581916,-0.011422,-0.993801,-1.456736,-3.501405,-3.501405,-5.043423,-8.486426,-10.639893,5.811348,0.861345,0.861345,2.626173,10.916819,7.641542,0.793798,-0.657678,-2.022568,0.494581,0.494581,-2.739959,-1.978369,-0.368835,0.515115,2.469078,1.517038,17.77087,-12.002675,-3.555501,-4.832092,-0.566812,-3.073454,-2.87064,-2.87064,0.366308,1.121896,-0.262758,-0.262758,-0.529967,-0.490003,1.138507,4.897148,7.364861,-2.642441,-0.620352,-4.078898,-2.184407,-1.515152,0.730227,7.197834,1.100338,10.947883,8.359467,-2.091867,0.943021,0.943021,-8.525934,-8.192183,-1.207501,1.255259,5.190937,-6.940412,-6.940412,-20.209864,2.054912,3.113322,1.744367,-1.034326,1.11827,-3.113592,-7.072372,-0.889617,4.048237,4.131621,8.068112,0.899414,-2.738405,6.0609,3.262023,0.427684,-0.861793,-1.720733,-0.398783,0.364934,0.106978,0.106978,-0.02187,-0.162245,-0.991235,-8.593715,-10.987418,-7.357002,-1.391269,13.054445,-16.63377,0.102775,-3.574319,-4.920444,-6.892377\n-0.353783,-0.353783,-0.009521,0.26787,0.989787,1.828631,1.828631,2.119882,1.476842,-3.09975,-12.221711,-4.772398,-4.772398,-6.177289,-9.762119,-0.951492,2.288876,-0.961878,-0.460492,3.218632,3.218632,-0.965276,-3.866958,-5.828178,-5.569173,-1.070484,1.969207,6.920439,14.600952,-4.629958,-2.716536,1.555033,0.174807,3.782351,3.782351,0.727203,-2.127019,-0.8534,-0.8534,-0.749708,0.072574,-1.260732,-6.093809,-2.18461,-11.293846,-12.703611,-4.440928,-6.409064,-1.571786,-3.17138,-4.018291,-3.285457,-12.677521,-5.11854,3.440795,7.504465,7.504465,11.348623,4.07518,3.135789,-0.231145,-1.635015,-4.688741,-4.688741,-21.12645,-4.402182,0.26854,0.664443,-2.509824,-1.878642,-1.661138,-1.79656,-3.714328,-4.895399,-2.78612,-3.855367,-13.906422,-8.471538,10.834116,6.415423,-0.420098,-1.310851,0.007535,-0.094991,0.224158,0.001764,0.001764,0.129927,0.111393,0.377087,0.083539,0.544529,-11.17288,-6.915628,-13.879141,3.631869,1.269261,2.063831,2.851857,4.848379\n-0.455437,-0.455437,-0.250357,-0.149149,-0.074574,0.380862,0.380862,1.289072,1.219825,5.582429,4.224109,0.735091,0.735091,-0.439456,-1.289072,-3.433087,-2.306481,-1.171884,-0.833636,0.149149,0.149149,-1.60335,-1.171884,-1.211835,-0.553982,-1.510132,-0.292971,-1.637974,5.649013,1.805767,-2.189292,-1.009418,-0.41815,-0.042614,-0.042614,0.207743,0.625893,0.697804,0.697804,0.649863,0.503377,-0.170456,-2.152005,-3.678118,-6.748986,-0.24503,9.692013,-9.49226,5.931331,7.084571,4.850001,0.660516,1.395607,-9.122051,-3.334543,-4.658238,-4.658238,-3.987069,-2.319798,-0.175783,0.67117,1.286409,-5.126992,-5.126992,-14.627242,-0.484734,-0.175783,-1.211835,-2.381055,-2.887096,-1.701895,1.411588,1.645964,-1.688578,-3.206701,-3.278612,-1.619331,5.193576,3.59289,1.491489,0.684487,-0.202416,-0.980121,-0.516694,0.02397,-0.013317,-0.013317,-0.066584,-0.090555,0.021307,1.313043,6.474659,5.089705,0.055931,0.90821,8.978229,-1.645964,-1.717875,-2.982977,-1.35033\n0.106535,0.106535,-0.069248,0.095881,0.026634,0.276991,0.276991,0.351565,0.25302,2.836492,5.856756,0.945497,0.945497,0.886903,0.316941,-2.855135,0.719111,-1.179874,-0.926854,-1.16123,-1.16123,-1.14525,-2.237233,-3.299919,-4.333307,-4.261396,-4.008376,1.877678,4.511753,1.629984,-0.386189,-0.575289,-0.290308,-0.511368,-0.511368,1.914965,2.69267,1.494152,1.494152,1.408924,1.438221,2.01351,3.584899,5.971281,8.096653,-3.630177,-21.115217,6.719689,-2.604778,-2.91373,-0.974794,-0.039951,-1.038715,-11.335314,-0.868259,-2.49558,-2.49558,-1.592697,-1.510132,-1.520786,-1.57938,-3.694098,1.978886,1.978886,1.432895,0.037287,-0.133169,0.692477,2.162659,3.126799,5.611726,5.750221,3.899177,3.773999,3.097502,3.523642,0.343575,-13.78029,-5.928667,-0.455437,1.020072,1.262439,1.062686,0.415486,0.045277,0.085228,0.085228,0.093218,0.19709,0.034624,0.394179,-0.074574,2.159995,2.777898,0.545991,-3.611533,-3.377157,-1.843054,-0.809665,-1.203844\n0.24503,0.24503,0.005327,0.255684,0.391516,0.559308,0.559308,1.257112,1.568726,4.405218,7.28965,1.32636,1.32636,1.036052,-0.593932,-9.803874,1.848381,0.141159,0.508704,0.447447,0.447447,0.958814,1.337013,1.068012,1.179874,0.423476,-1.217161,-6.487976,-12.792178,3.702088,1.898985,0.378199,0,0.67117,0.67117,0.844289,-0.19709,-0.980121,-0.980121,-1.147914,-1.438221,-1.531439,-2.333114,-3.976415,-7.422819,-2.474273,-2.303817,-1.038715,3.976415,6.693055,7.422819,4.29602,-0.154476,-19.312115,4.78608,0.572625,0.572625,-2.181302,-0.362219,0.532675,0.250357,-1.214498,-10.144786,-10.144786,1.851044,2.226579,1.667271,0.737754,0.010653,-0.165129,-2.498244,-2.413016,-1.352993,-1.134597,-1.981549,-1.606014,-6.794263,-6.360134,-0.218397,0.045277,-0.234377,-0.119852,0.199753,0.157139,0.106535,-0.00799,-0.00799,0.093218,0.00799,0.101208,1.091983,5.824796,9.191299,6.013895,2.136025,-1.491489,1.283746,0.484734,-0.721774,-1.77647',Badminton diff --git a/src/main/java/experiments/data/mtsc/BasicMotions/BasicMotions_TRAIN.arff b/src/main/java/experiments/data/mtsc/BasicMotions/BasicMotions_TRAIN.arff new file mode 100644 index 000000000..5ecbb7769 --- /dev/null +++ b/src/main/java/experiments/data/mtsc/BasicMotions/BasicMotions_TRAIN.arff @@ -0,0 +1,151 @@ +%The data was generated as part of a student project where four students performed four activities whilst wearing a smart watch. +%The watch collects 3D accelerometer and a 3D gyroscope It consists of four classes, which are walking, resting, running and +%badminton. Participants were required to record motion a total of five times, and the data is sampled once every tenth of a second, +%for a ten second period. +@relation 'BasicMotions' + +@attribute relationalAtt relational +@attribute att0 numeric +@attribute att1 numeric +@attribute att2 numeric +@attribute att3 numeric +@attribute att4 numeric +@attribute att5 numeric +@attribute att6 numeric +@attribute att7 numeric +@attribute att8 numeric +@attribute att9 numeric +@attribute att10 numeric +@attribute att11 numeric +@attribute att12 numeric +@attribute att13 numeric +@attribute att14 numeric +@attribute att15 numeric +@attribute att16 numeric +@attribute att17 numeric +@attribute att18 numeric +@attribute att19 numeric +@attribute att20 numeric +@attribute att21 numeric +@attribute att22 numeric +@attribute att23 numeric +@attribute att24 numeric +@attribute att25 numeric +@attribute att26 numeric +@attribute att27 numeric +@attribute att28 numeric +@attribute att29 numeric +@attribute att30 numeric +@attribute att31 numeric +@attribute att32 numeric +@attribute att33 numeric +@attribute att34 numeric +@attribute att35 numeric +@attribute att36 numeric +@attribute att37 numeric +@attribute att38 numeric +@attribute att39 numeric +@attribute att40 numeric +@attribute att41 numeric +@attribute att42 numeric +@attribute att43 numeric +@attribute att44 numeric +@attribute att45 numeric +@attribute att46 numeric +@attribute att47 numeric +@attribute att48 numeric +@attribute att49 numeric +@attribute att50 numeric +@attribute att51 numeric +@attribute att52 numeric +@attribute att53 numeric +@attribute att54 numeric +@attribute att55 numeric +@attribute att56 numeric +@attribute att57 numeric +@attribute att58 numeric +@attribute att59 numeric +@attribute att60 numeric +@attribute att61 numeric +@attribute att62 numeric +@attribute att63 numeric +@attribute att64 numeric +@attribute att65 numeric +@attribute att66 numeric +@attribute att67 numeric +@attribute att68 numeric +@attribute att69 numeric +@attribute att70 numeric +@attribute att71 numeric +@attribute att72 numeric +@attribute att73 numeric +@attribute att74 numeric +@attribute att75 numeric +@attribute att76 numeric +@attribute att77 numeric +@attribute att78 numeric +@attribute att79 numeric +@attribute att80 numeric +@attribute att81 numeric +@attribute att82 numeric +@attribute att83 numeric +@attribute att84 numeric +@attribute att85 numeric +@attribute att86 numeric +@attribute att87 numeric +@attribute att88 numeric +@attribute att89 numeric +@attribute att90 numeric +@attribute att91 numeric +@attribute att92 numeric +@attribute att93 numeric +@attribute att94 numeric +@attribute att95 numeric +@attribute att96 numeric +@attribute att97 numeric +@attribute att98 numeric +@attribute att99 numeric +@end relationalAtt +@attribute activity {Standing,Running,Walking,Badminton} + +@data +'0.079106,0.079106,-0.903497,1.116125,1.6382,1.003448,0.028774,0.03005,-0.120485,-0.120485,0.667496,-0.312815,-0.032064,0.462654,0.462654,0.50726,0.381774,-0.173109,0.075566,0.182602,0.241339,0.128828,-0.005551,-0.234381,-0.060061,0.134305,-0.119217,-0.118415,-0.034857,-0.152736,-0.30275,-0.258284,-0.153046,-0.183976,-0.160971,-0.241554,-0.12605,-0.047558,-0.180656,-0.223321,-0.269544,-0.132218,-0.247598,-0.167151,-0.226787,-0.226787,-0.221194,-0.124525,-0.215384,-0.292342,-0.2096,-0.350283,-0.212305,-0.101916,-0.125474,-0.171308,-0.392737,-0.333702,-0.049047,-0.161384,-0.332913,-0.323573,-0.260746,-0.386039,0.073956,0.013228,-0.134901,-0.114447,-0.151736,-0.265312,-0.265312,-0.192506,0.006082,0.006082,-0.056635,-0.209398,-0.160216,-0.135851,-0.27988,-0.181434,-0.129874,-0.041725,-0.176548,-0.257786,-0.257786,-0.239707,-0.216372,-0.08794,-0.227259,-0.143374,-0.308963,-0.269968,-0.191018,-0.24424,-0.2092,-0.167918,-0.22767,-0.193271,-0.193271,-0.20515\n0.394032,0.394032,-3.666397,-0.656101,1.405135,2.220504,3.248704,3.020615,1.957117,1.957117,-1.956176,-3.138694,-2.905234,-1.249818,-1.249818,0.902984,2.535184,2.947793,2.53536,1.058201,0.097825,-1.498574,-1.912198,-1.189464,0.048358,1.049725,1.632314,1.497473,0.772937,0.208221,-0.124439,-0.324037,-0.440494,-0.09376,0.272178,0.410578,0.63099,0.304098,0.452631,0.055369,-0.195426,-0.108085,0.05122,0.495086,0.582479,0.582479,0.535399,0.254673,0.045147,0.126648,-0.011763,-0.067802,0.062543,0.041191,0.292536,0.566593,0.40288,-0.095309,-0.671382,-0.299112,0.264913,0.979325,0.585794,-0.286732,-0.684911,-0.702381,0.063297,0.685951,1.384099,1.393837,1.393837,-0.526192,-1.453164,-1.453164,-1.491239,-0.588188,0.54238,0.976972,1.021334,0.546116,-0.004861,-0.485268,-0.269133,-0.162642,-0.162642,0.426015,0.545045,0.305803,0.072097,-0.071186,-0.124647,-0.065241,-0.032477,0.152639,0.3387,0.224085,0.118392,0.055227,0.055227,-0.00339\n0.551444,0.551444,-0.282844,0.333118,0.393875,0.030765,-0.313529,-1.581368,-1.046431,-1.046431,0.527999,1.025005,0.69038,0.010441,0.010441,-0.318485,-0.339922,-0.602718,-0.537257,0.032005,0.385068,0.808822,0.945214,0.31803,-0.163724,-0.367703,-0.504733,-0.293617,0.008929,0.438756,0.435576,0.374493,0.057105,-0.070314,-0.206731,-0.062707,0.034384,-0.019835,0.147044,0.154054,0.223995,0.034453,-0.140365,-0.104581,-0.110829,-0.110829,0.111417,0.092016,0.075045,0.098005,0.179158,0.119141,-0.100571,-0.217936,-0.164587,0.012233,0.244841,0.348375,0.154106,-0.035424,-0.254828,-0.235535,-0.0036,0.154836,0.425322,0.069628,0.00436,-0.241098,-0.409935,-0.37759,-0.37759,0.259687,0.733738,0.733738,0.261785,-0.187312,-0.454873,-0.386007,-0.116938,0.025466,0.207466,0.14792,0.041364,-0.136943,-0.136943,-0.126909,-0.019764,0.04661,0.118345,0.043983,-0.132656,-0.07248,-0.039316,0.049186,0.082105,0.039889,-0.088594,-0.04153,-0.04153,-0.015113\n0.351565,0.351565,-0.095881,1.624657,1.187864,1.004091,0.340912,-0.311615,-0.348902,-0.348902,-0.226387,-0.101208,-0.00799,0.039951,0.039951,0.351565,0.378199,0.079901,0.02397,-0.194426,-0.189099,-0.162466,-0.087891,-0.25302,-0.135832,-0.018644,0.063921,0.26101,0.159802,-0.021307,-0.21307,-0.082565,-0.047941,-0.021307,-0.029297,0.026634,0.189099,0.119852,0.095881,0.077238,0.109198,0.053267,-0.002663,0.101208,0.021307,0.021307,0.063921,0.063921,0.359555,0.386189,0.19709,-0.540665,-0.239704,-0.306288,-0.085228,-0.093218,0.00799,0.063921,-0.034624,-0.146486,-0.141159,-0.117188,-0.125179,0.183773,0.311615,0.079901,0.154476,0,-0.396843,-0.439456,-0.439456,-0.034624,0.308951,0.308951,-0.22106,-0.149149,-0.165129,0.178446,0.189099,0.191763,0.194426,-0.039951,-0.026634,0.045277,0.045277,0.013317,0.005327,0.061258,-0.042614,-0.077238,-0.018644,0.013317,0.010653,0.037287,0,0.039951,-0.029297,0,0,-0.00799\n0.02397,0.02397,-0.319605,-0.569962,-0.271664,-0.047941,0.162466,-0.013317,-0.143822,-0.143822,-0.311615,-0.055931,0.191763,0.21307,0.21307,0.19709,0.117188,0.00799,-0.162466,-0.242367,-0.25302,-0.178446,0.002663,0.247694,0.284981,0.151812,0.042614,-0.151812,-0.202416,-0.125179,-0.066584,0.079901,0.127842,0.069248,0.037287,-0.047941,-0.050604,-0.034624,-0.03196,-0.010653,0.00799,0.069248,0.029297,0,-0.034624,-0.034624,-0.063921,-0.01598,-0.005327,-0.010653,-0.010653,-0.026634,0.047941,-0.010653,-0.050604,-0.085228,-0.103872,0,0.063921,0.066584,0.077238,-0.005327,-0.047941,-0.090555,-0.00799,0.029297,0.103872,0.114525,0.117188,0.002663,0.002663,-0.133169,-0.087891,-0.087891,0.170456,0.178446,0.095881,-0.042614,-0.071911,-0.079901,-0.050604,0,0.047941,0.034624,0.034624,-0.021307,-0.03196,-0.00799,-0.002663,0.047941,0.034624,-0.002663,-0.026634,-0.039951,-0.013317,-0.010653,0.005327,-0.013317,-0.013317,-0.010653\n0.633883,0.633883,0.972131,1.209171,1.739182,1.499479,0.428803,-0.282318,-0.926854,-0.926854,-1.267765,-0.66318,0.143822,1.025398,1.025398,1.395607,1.201181,0.354229,-0.218397,-0.865596,-1.049369,-0.852279,-0.364882,0.380862,0.692477,0.689814,0.447447,0.045277,-0.292971,-0.274327,-0.199753,-0.210406,0.005327,0.178446,0.223723,0.122515,0.029297,-0.055931,-0.079901,-0.165129,-0.175783,0.029297,0.165129,0.157139,0.117188,0.117188,-0.050604,-0.125179,-0.194426,-0.189099,-0.114525,0.109198,0.130505,0.125179,0.087891,-0.005327,-0.223723,-0.367545,-0.178446,0.170456,0.338248,0.223723,-0.191763,-0.423476,-0.330258,0.186436,0.303624,0.346238,0.375536,-0.002663,-0.002663,-0.740418,-0.657853,-0.657853,0.117188,0.487397,0.540665,0.242367,-0.058594,-0.247694,-0.298298,-0.191763,0.058594,0.159802,0.159802,0.143822,0.03196,-0.114525,-0.130505,-0.109198,-0.039951,-0.002663,0.047941,0.071911,0.063921,-0.021307,-0.042614,-0.063921,-0.063921,-0.03196',Standing +'0.377751,0.377751,2.952965,4.310925,3.256906,0.850679,-0.909276,-0.909276,0.205036,-0.480176,-0.335057,-0.126666,-0.25153,-0.26917,-0.26917,-0.300983,-0.300983,-0.371338,-0.193407,-0.597333,0.11343,-0.162806,0.008696,-0.374925,-0.30439,-0.026558,-0.35821,-0.515776,-0.046148,-0.144326,-0.284587,-0.317509,0.106786,-0.296796,-0.295219,-0.295219,-0.314541,-0.45851,-0.45851,-0.193004,-0.193004,-0.170549,-0.170549,-0.386525,-0.367479,-0.159422,-0.29598,-0.363492,-0.396972,-0.358613,-0.442344,-0.075491,-0.281528,-0.127631,-0.110878,-0.13422,-0.103901,-0.418226,-0.425436,-0.370799,-0.203984,-0.307469,-0.283588,-0.06342,-0.265932,-0.212629,-0.312527,-0.312527,-0.35707,-0.35707,-0.234194,-0.234194,-0.148623,-0.254128,-0.342918,-0.342918,-0.307717,-0.288853,-0.206991,-0.317809,-0.380047,-0.315195,-0.356792,-0.319121,-0.26593,-0.136431,-0.186955,-0.264595,-0.253146,-0.279518,-0.209648,-0.226917,-0.351601,-0.318476,-0.287704,-0.287704,-0.323383,-0.323383,-0.333625,-0.333625\n-0.61085,-0.61085,0.970717,-1.625661,-6.969257,-3.750327,-3.762961,-3.762961,-0.580699,0.782229,1.046099,1.843534,1.473271,0.793225,0.793225,-0.837754,-0.837754,-1.020851,-0.640181,0.32014,-0.398871,0.392694,1.05405,0.87377,0.591851,0.067974,-0.282601,-0.292477,-0.299014,0.053905,0.347178,0.305793,0.522609,0.697637,0.656868,0.656868,-0.079679,-0.353155,-0.353155,-0.290084,-0.290084,0.401593,0.401593,0.770462,0.742822,0.462118,0.185282,-0.136056,-0.415889,-0.49872,-0.27276,0.074072,0.459907,0.871236,0.718749,0.497472,0.245897,-0.111263,-0.359839,-0.537982,-0.330117,0.071059,0.429994,0.820934,0.786964,0.687065,0.222263,0.222263,-0.682261,-0.682261,-0.365944,-0.365944,0.324679,0.662562,0.710279,0.710279,0.263486,-0.004845,-0.461535,-0.444313,-0.351846,-0.147521,0.220674,0.567315,0.676642,0.478225,0.167015,-0.079429,-0.293329,-0.303092,-0.257912,0.095899,0.410316,0.478979,0.344518,0.344518,-0.098593,-0.098593,-0.215987,-0.215987\n-0.147376,-0.147376,-5.962515,-1.898794,-2.730436,0.506514,0.030191,0.030191,0.57639,0.389283,0.262248,0.414982,0.300707,0.310287,0.310287,0.233792,0.233792,0.22401,0.132538,0.173558,0.159204,0.2012,0.087576,0.065597,0.25585,0.227074,0.128366,0.34654,0.221333,-0.002348,-0.039309,-0.001896,0.051506,-0.095245,0.159304,0.159304,0.214541,0.165208,0.165208,-0.06777,-0.06777,-0.066491,-0.066491,-0.071366,0.012548,-0.004922,0.013739,0.138816,0.136874,0.077163,-0.033462,-0.112763,-0.016241,0.059546,-0.079959,0.029375,0.034459,0.116902,0.16173,0.066766,-0.069821,-0.042382,-0.079564,-0.081878,-0.146703,-0.107044,-0.007593,-0.007593,0.188157,0.188157,0.040176,0.040176,-0.19009,-0.239582,0.032026,0.032026,0.058212,0.102983,0.152822,0.11508,-0.029222,-0.073237,-0.084682,-0.065975,-0.031103,0.024887,0.006447,0.027814,0.017837,0.000751,-0.019029,-0.032673,-0.023984,-0.045427,0.055352,0.055352,0.063051,0.063051,-0.000848,-0.000848\n-0.103872,-0.103872,-7.593275,-5.345389,-2.743274,0.990775,-0.692477,-0.692477,0,-0.074574,0.039951,-0.037287,-0.133169,0.018644,0.018644,-0.167792,-0.167792,-0.114525,-0.093218,-0.753734,0.287644,0.364882,0.218397,-0.103872,0.103872,-0.069248,-0.103872,-0.01598,0.026634,0.047941,0.077238,0.19709,0.133169,-0.029297,0.005327,0.005327,-0.026634,0.002663,0.002663,0.00799,0.00799,0.095881,0.095881,0.00799,0.039951,-0.055931,-0.085228,-0.071911,-0.055931,-0.01598,-0.010653,0.085228,0.045277,0.058594,0.02397,0.037287,-0.037287,-0.03196,-0.013317,0.026634,0.063921,0.109198,0.010653,0.063921,-0.01598,-0.093218,-0.101208,-0.101208,-0.010653,-0.010653,0.069248,0.069248,0.047941,0.098545,0.037287,0.037287,-0.047941,-0.029297,-0.021307,-0.034624,0,0.063921,0.077238,0.039951,0.034624,0.042614,-0.018644,-0.03196,-0.053267,0.002663,0.013317,0.021307,0.037287,-0.018644,-0.01598,-0.01598,-0.018644,-0.018644,-0.00799,-0.00799\n-0.109198,-0.109198,-0.697804,0.402169,0.615239,0.22106,-0.135832,-0.135832,0.079901,-0.095881,-0.165129,0.002663,0.005327,0.074574,0.074574,0.077238,0.077238,0.02397,0.058594,0.042614,-0.093218,-0.125179,-0.018644,-0.133169,-0.037287,-0.026634,0.01598,0.045277,0.029297,0.047941,0.034624,0.058594,-0.005327,-0.026634,-0.03196,-0.03196,-0.026634,0.034624,0.034624,0.018644,0.018644,-0.029297,-0.029297,-0.029297,-0.037287,-0.026634,-0.061258,0,0.034624,0.029297,0.034624,0.00799,-0.042614,-0.034624,-0.018644,-0.053267,-0.03196,0.005327,0.037287,0.03196,0.042614,-0.00799,0.010653,-0.02397,-0.018644,0,-0.026634,-0.026634,0.053267,0.053267,0.053267,0.053267,0.02397,-0.021307,-0.045277,-0.045277,-0.03196,-0.02397,0.010653,0.047941,0.053267,0.055931,0,0.002663,-0.039951,-0.039951,-0.01598,0.00799,0.002663,0.013317,0.005327,0,-0.005327,0,-0.00799,-0.00799,-0.010653,-0.010653,0.01598,0.01598\n-0.037287,-0.037287,-2.865789,-4.176168,-3.417107,-1.265102,-0.173119,-0.173119,0.807002,1.1053,0.844289,0.306288,-0.114525,-0.460763,-0.460763,-0.383526,-0.383526,-0.111862,0.146486,0.396843,0.191763,0.210406,0.154476,0.002663,-0.215733,-0.22106,-0.146486,-0.071911,0.082565,0.207743,0.226387,0.106535,0.133169,0.071911,-0.087891,-0.087891,-0.210406,-0.167792,-0.167792,0.151812,0.151812,0.234377,0.234377,0.119852,-0.02397,-0.157139,-0.189099,-0.231713,-0.170456,-0.03196,0.125179,0.223723,0.276991,0.173119,-0.00799,-0.157139,-0.19709,-0.21307,-0.170456,-0.055931,0.082565,0.242367,0.25302,0.173119,-0.029297,-0.111862,-0.239704,-0.239704,-0.165129,-0.165129,0.202416,0.202416,0.319605,0.271664,-0.106535,-0.106535,-0.22905,-0.258347,-0.210406,0,0.103872,0.162466,0.210406,0.186436,0.03196,-0.103872,-0.149149,-0.165129,-0.114525,-0.013317,0.058594,0.143822,0.122515,0.039951,-0.039951,-0.039951,-0.135832,-0.135832,0.034624,0.034624',Standing +'-0.813905,-0.813905,-0.424628,0.316895,0.22858,-0.162312,-0.162312,0.002101,0.115463,-0.213192,-0.170978,-0.19408,-0.735282,-0.735282,0.158854,0.535213,-0.002833,0.356598,0.267763,-0.046865,0.213943,0.07373,-0.272301,0.182515,-1.154123,0.027075,-0.165281,0.467589,0.340399,0.344565,-0.042749,0.037069,0.294207,0.083426,-0.037534,-0.406937,-0.413721,-0.413721,0.363718,-0.265478,-0.156517,0.000758,0.000758,-0.178432,-0.178432,-0.171692,-0.200395,-0.214544,-0.214544,-0.153174,0.063053,0.063053,0.179371,0.051857,0.053935,0.497457,0.312984,-0.45548,-0.423346,-0.586515,-0.096851,0.27982,0.105545,0.213485,-0.033018,0.113327,0.04042,0.18582,0.18582,-0.37143,-0.529037,-0.383046,-0.569038,0.343049,0.016317,0.372194,0.133915,0.133915,-0.166765,0.111745,0.067615,-0.152504,-0.210563,-0.210563,-0.275255,-0.276954,0.122732,0.312008,-0.235399,-0.237537,-0.083255,0.034185,-0.171997,-0.085908,-0.100976,-0.255364,-0.066292,-0.20644,-0.544255,-0.544255\n0.825666,0.825666,-1.305033,-0.507693,0.028821,0.871541,0.871541,1.17392,0.792781,0.109771,-0.536271,-0.991322,-1.194219,-1.194219,-1.309782,-0.778274,0.622438,1.528401,1.68107,1.590526,1.094367,0.362506,-0.381255,-0.897944,-1.901395,-1.701837,-0.880269,0.753131,1.418083,1.545642,1.570619,0.907102,-0.348287,-1.066452,-0.760048,-0.623943,-0.767604,-0.767604,-0.283528,0.956958,1.369015,1.33681,1.33681,0.350001,0.350001,-0.115913,-0.439364,-1.095621,-1.095621,-0.944781,0.816631,0.816631,1.519381,1.889705,1.550083,0.440191,-0.05457,-0.810432,-1.494622,-1.732656,-1.590913,-0.410262,0.311241,1.229623,1.812892,1.89287,1.359296,0.316042,0.316042,-1.125063,-1.187219,-0.928388,-1.378049,-0.994418,-0.372034,0.585386,1.68273,1.68273,1.918208,1.6313,-0.003749,-0.768095,-1.14507,-1.14507,-0.956179,-0.38552,-0.066497,0.157695,0.571855,0.874995,0.793238,0.443565,-0.039259,-0.152492,0.271105,0.314641,0.610305,0.209063,-0.558847,-0.558847\n0.032712,0.032712,0.82617,0.218569,0.586313,1.138116,1.138116,0.85582,0.728667,0.429804,0.362009,0.196918,0.342182,0.342182,0.47486,0.202399,0.298646,0.390574,0.248396,0.401889,0.472026,0.314907,0.539841,0.133732,0.061834,0.289135,0.002912,0.262846,0.468662,0.655104,0.780502,0.775618,0.353227,-0.12914,-0.160335,-0.040013,0.143868,0.143868,-0.015822,0.38275,0.57906,0.645173,0.645173,0.375185,0.375185,0.020747,-0.095996,-0.044201,-0.044201,-0.085359,0.115953,0.115953,0.399812,0.442761,0.286063,-0.084761,-0.35609,-0.404778,-0.211229,-0.072551,0.142581,0.216922,0.141725,0.065881,0.223909,0.399319,0.463252,0.210903,0.210903,-0.328371,-0.232735,-0.083966,-0.038047,0.125557,0.007185,0.201871,0.334237,0.334237,0.337199,0.22593,-0.365474,-0.255288,-0.216352,-0.216352,-0.25584,-0.302095,-0.117322,0.010409,0.088549,0.193648,0.323619,0.30978,0.270622,0.004468,0.001095,-0.091294,0.286864,0.679102,0.379032,0.379032\n0.021307,0.021307,-0.372872,0.02397,0.066584,0.210406,0.210406,0.178446,-0.042614,-0.053267,-0.063921,-0.087891,0.143822,0.143822,0.356892,0.061258,0.367545,0.410159,-0.018644,0.22106,0.013317,-0.67117,-0.061258,-0.362219,-0.263674,0.330258,-0.103872,0.202416,0.029297,-0.002663,-0.053267,-0.021307,-0.186436,-0.19709,-0.159802,-0.125179,0.287644,0.287644,0.189099,0.186436,0.170456,0.098545,0.098545,0.026634,0.026634,-0.037287,0.093218,0.119852,0.119852,0.173119,0.263674,0.263674,0.282318,-0.010653,-0.22905,-0.412823,-0.684487,-0.359555,-0.199753,-0.300961,-0.053267,0.061258,0.23704,0.370209,-0.029297,-0.005327,-0.372872,-0.556645,-0.556645,-0.716447,-0.43413,-0.058594,0.125179,0.4581,0.255684,0.583279,0.324931,0.324931,0.319605,0.178446,-0.125179,-0.181109,-0.22106,-0.22106,-0.23704,-0.03196,0.093218,0.055931,0.03196,0.013317,0.021307,0.037287,-0.018644,-0.125179,-0.255684,-0.292971,0.095881,0.279654,0.159802,0.159802\n0.122515,0.122515,-0.045277,-0.130505,-0.263674,-0.324931,-0.324931,-0.127842,0.039951,0.167792,0.101208,0.109198,-0.018644,-0.018644,-0.01598,-0.090555,-0.308951,-0.143822,-0.079901,-0.071911,0.03196,0.093218,0.03196,0.157139,-0.010653,-0.002663,-0.00799,-0.282318,-0.284981,-0.226387,-0.013317,0.127842,0.295634,0.276991,0.191763,0.03196,-0.058594,-0.058594,-0.258347,-0.282318,-0.186436,-0.095881,-0.095881,0.191763,0.191763,0.223723,0.191763,-0.042614,-0.042614,-0.141159,-0.247694,-0.247694,-0.154476,0.034624,0.181109,0.306288,0.290308,0.183773,0.085228,0.061258,-0.063921,-0.130505,-0.125179,-0.061258,-0.098545,-0.021307,0.117188,0.300961,0.300961,0.292971,0.098545,-0.01598,-0.151812,-0.263674,-0.300961,-0.455437,-0.324931,-0.324931,-0.175783,0.037287,0.138495,0.103872,0.079901,0.079901,0.069248,-0.01598,-0.095881,-0.167792,-0.119852,-0.109198,-0.066584,0.034624,0.098545,0.125179,0.114525,0.077238,-0.034624,-0.03196,0.114525,0.114525\n0.775041,0.775041,0.383526,0.588605,0.817655,0.804339,0.804339,-0.125179,-0.362219,-0.492724,-0.543328,-0.375536,-0.194426,-0.194426,-0.058594,0.444783,0.852279,0.540665,0.375536,-0.114525,-0.487397,-0.367545,-0.68715,-0.617902,-0.242367,0.026634,0.697804,0.92419,0.692477,0.335585,-0.194426,-0.625893,-0.852279,-0.668507,-0.276991,-0.162466,-0.082565,-0.082565,0.684487,0.673833,0.383526,0.101208,0.101208,-0.455437,-0.455437,-0.522021,-0.516694,0.170456,0.170456,0.391516,0.825646,0.825646,0.511368,0.138495,-0.276991,-0.759061,-0.668507,-0.66318,-0.532675,-0.077238,0.351565,0.822982,0.812329,0.769715,0.44212,-0.053267,-0.439456,-0.820319,-0.820319,-0.47408,-0.247694,-0.114525,0.146486,0.380862,0.732428,0.809665,0.609912,0.609912,0.111862,-0.394179,-0.599259,-0.535338,-0.324931,-0.324931,0.002663,0.23704,0.338248,0.431466,0.423476,0.263674,0.013317,-0.215733,-0.258347,-0.106535,-0.00799,-0.077238,-0.167792,-0.372872,-0.423476,-0.423476',Standing +'0.289855,0.289855,-0.669185,0.032063,-0.214649,0.161245,0.161245,0.374508,0.009226,-0.22163,-0.250171,-0.250171,-0.19129,-0.237181,0.024602,0.045449,-0.088422,0.116836,-0.040981,-0.005906,-0.118165,-0.320368,-0.352141,-0.082843,-0.145244,-0.065075,-0.206032,0.157099,-0.090782,-0.089667,-0.021792,-0.251117,-0.406494,-0.406494,-0.388804,-0.166848,-0.166848,0.248825,0.248825,0.065565,0.065565,-0.013468,-0.013468,0.138281,-0.414792,-0.080555,-0.370391,-0.365173,0.105718,0.029574,-0.025344,-0.299603,-0.036233,-0.368474,-0.322346,-0.350983,-0.104403,-0.082462,-0.262545,-0.252665,-0.345314,-0.025456,-0.174528,-0.389573,-0.389573,-0.134448,-0.047521,-0.300546,-0.280183,-0.280183,-0.061222,-0.184826,-0.171456,0.074311,0.074311,0.169604,-0.034963,-0.252296,-0.012065,-0.123294,-0.35616,-0.364173,-0.201348,-0.658953,-0.189123,0.088474,-0.230911,-0.529682,-0.20872,0.23262,-0.247923,-0.092958,-0.237319,-0.464912,-0.464912,0.059766,-0.186758,-0.121576,-0.097311,-0.294934\n0.28413,0.28413,-0.210466,0.830952,0.348907,0.064112,0.064112,0.485447,0.488393,1.120942,0.506804,0.506804,-0.019752,-0.780932,-0.713737,-0.198807,0.566606,0.870081,0.913504,0.650184,0.093895,-0.124343,-0.463931,-0.753466,-0.131505,0.085606,0.459393,1.058185,1.169377,0.733057,0.113634,-0.267108,-0.575026,-0.575026,-0.242112,-0.212928,-0.212928,0.479358,0.479358,1.328425,1.328425,0.069519,0.069519,-0.766794,-0.846495,-0.516707,0.074241,0.798365,0.853897,0.66154,0.227767,-0.227197,-0.611191,-0.578813,0.089386,-0.010225,0.024185,-0.051135,0.02135,-0.143492,-0.215622,-0.156601,0.1849,0.438598,0.438598,-0.058307,-0.189604,0.070733,0.130909,0.130909,0.196974,0.087456,-0.170061,0.326066,0.326066,0.331915,0.094384,0.157258,-0.045747,0.009381,0.071552,0.340393,0.232369,0.300783,-0.271043,-0.434887,0.341837,0.193989,0.300578,0.557418,0.826474,0.071534,-0.391931,-0.667888,-0.667888,-0.600759,-0.208328,0.565419,0.916712,1.221973\n0.21368,0.21368,0.252267,0.509806,-0.375393,-0.176596,-0.176596,-1.147424,-0.010379,0.176065,0.338949,0.338949,0.04013,-0.152658,-0.197697,-0.253712,-0.007521,0.244886,0.530765,0.51973,0.123902,-0.147084,-0.289576,-0.263376,-0.413416,-0.298742,0.002567,0.265369,0.468202,0.343359,-0.010914,-0.174115,-0.298708,-0.298708,-0.185359,-0.035746,-0.035746,0.168928,0.168928,0.249931,0.249931,0.079057,0.079057,-0.398111,-0.512059,-0.436438,-0.335968,0.186319,0.235359,0.270419,0.104221,-0.041983,-0.048507,-0.287998,-0.233822,-0.092731,0.156385,0.287194,0.372015,0.152705,0.025147,-0.104233,-0.012159,-0.008141,-0.008141,0.494659,0.462883,-0.218487,-0.312748,-0.312748,-0.432597,-0.61184,-0.478035,-0.359545,-0.359545,-0.488606,-0.442219,-0.098641,-0.442163,-0.126579,0.347673,0.4131,0.063146,0.571883,0.528272,0.779502,0.155988,-0.388201,-0.499059,-0.302037,0.041793,0.177967,0.193716,0.026667,0.026667,-0.250041,-0.103415,-0.07851,0.007786,0.173488\n-0.314278,-0.314278,0.018644,-0.01598,0.050604,-0.269001,-0.269001,0.23704,-0.266337,0.146486,0.186436,0.186436,0.316941,0.071911,0.087891,0,-0.026634,-0.165129,0.02397,0,-0.087891,0.039951,0.039951,0.151812,0.071911,0.231713,0.308951,0.066584,0.111862,-0.01598,0.002663,-0.034624,-0.01598,-0.01598,0.058594,0.210406,0.210406,0.061258,0.061258,-0.029297,-0.029297,0.146486,0.146486,-0.087891,-0.101208,-0.109198,-0.295634,-0.095881,-0.436793,-0.242367,-0.346238,-0.181109,-0.162466,-0.300961,-0.348902,-0.303624,-0.042614,-0.266337,-0.135832,-0.101208,-0.018644,0.045277,0.149149,0.037287,0.037287,0.330258,0.372872,0.346238,0.538001,0.538001,0.514031,0.447447,0.788358,0.423476,0.423476,0.370209,0.066584,-0.021307,-0.266337,-0.050604,0.167792,-0.090555,-0.23704,-0.095881,0.063921,0.274327,0.071911,0.045277,0.114525,0.053267,0.029297,0.130505,-0.055931,-0.010653,-0.010653,0.005327,0.005327,-0.01598,-0.106535,-0.058594\n0.074574,0.074574,0.00799,-0.093218,-0.01598,-0.173119,-0.173119,-0.162466,-0.01598,0.045277,0.093218,0.093218,0.130505,0.010653,-0.058594,-0.146486,-0.218397,-0.22106,-0.133169,0.138495,0.239704,0.22905,0.114525,0.037287,-0.077238,-0.191763,-0.239704,-0.135832,-0.071911,0.135832,0.23704,0.22106,0.149149,0.149149,-0.079901,-0.138495,-0.138495,-0.170456,-0.170456,0.01598,0.01598,0.330258,0.330258,0.25302,0.117188,0.010653,-0.127842,-0.191763,0.018644,0.111862,0.207743,0.186436,0.181109,0.146486,0.029297,-0.069248,-0.058594,-0.045277,0.002663,0.050604,0.063921,0.00799,-0.034624,-0.050604,-0.050604,-0.117188,-0.077238,0.00799,-0.117188,-0.117188,-0.109198,-0.173119,-0.332922,-0.20508,-0.20508,0.005327,0.055931,0.189099,0.274327,0.061258,0.058594,0.130505,0.154476,-0.053267,-0.125179,-0.173119,0.055931,0.005327,-0.061258,-0.082565,-0.141159,-0.063921,0.02397,0.069248,0.069248,0.037287,-0.02397,0,-0.055931,-0.066584\n-0.079901,-0.079901,0.23704,0.146486,0.101208,0.255684,0.255684,0.300961,0.399506,0.223723,-0.364882,-0.364882,-0.431466,-0.175783,0.037287,0.287644,0.431466,0.322268,0.050604,-0.234377,-0.298298,-0.284981,-0.21307,-0.074574,0.298298,0.370209,0.335585,0.298298,0.066584,-0.24503,-0.404833,-0.346238,-0.23704,-0.23704,0.271664,0.274327,0.274327,0.540665,0.540665,0.021307,0.021307,-0.607249,-0.607249,-0.404833,-0.098545,0.189099,0.431466,0.402169,0.141159,-0.122515,-0.354229,-0.41815,-0.308951,-0.095881,0.130505,0.085228,0.01598,0.042614,-0.005327,-0.037287,-0.01598,0.050604,0.098545,0.098545,0.098545,-0.034624,-0.00799,0.103872,0.061258,0.061258,0.074574,0.135832,0,0.058594,0.058594,-0.026634,0.039951,0,0,-0.085228,-0.151812,-0.055931,-0.026634,0.079901,-0.021307,0.077238,0.311615,0.295634,0.162466,0.106535,0.063921,-0.335585,-0.218397,-0.143822,-0.143822,0.207743,0.436793,0.420813,0.375536,0.074574',Standing +'-0.123238,-0.123238,-0.249547,-0.272929,-0.272929,-0.247999,-0.247999,0.057938,-0.414336,-0.209641,-0.207963,-0.244664,-0.480659,-0.541445,-0.170505,-0.163592,-0.500759,-0.383513,-0.231258,-0.317262,-0.303213,-0.247581,-0.224929,-0.29169,-0.368543,-0.493966,-0.538343,-0.197963,-0.425296,-0.112202,-0.096756,0.009953,-0.095304,-0.349209,-0.384541,-0.21834,-0.56134,-0.472509,-0.466006,-0.33316,-0.33316,-0.152759,0.126049,0.126049,-0.222382,-0.300425,-0.334084,-0.229844,-0.284137,-0.259468,-0.28933,-0.017219,-0.275337,-0.163792,-0.118462,0.066911,-0.437651,-0.372138,-0.399787,-0.494801,-0.320862,-0.320542,-0.243667,-0.176471,-0.165394,-0.262801,-0.13506,-0.13506,-0.274737,-0.274737,-0.393796,-0.218647,-0.358995,-0.430887,-0.299961,-0.335768,-0.244901,-0.221669,-0.289886,-0.271927,-0.322526,-0.393257,-0.204148,-0.204148,-0.334238,-0.187027,-0.303481,-0.350969,-0.188487,-0.252127,-0.355216,-0.28292,-0.22068,-0.22068,-0.348184,-0.348184,-0.23318,-0.161667,-0.161667,-0.344005\n0.379341,0.379341,0.541501,-0.158302,-0.158302,-0.482909,-0.482909,0.887642,0.412205,0.238201,0.608632,0.615349,0.35616,0.135967,-0.229804,-0.275916,-0.368113,-0.205871,0.376087,0.444019,0.545193,0.393904,0.470922,0.282722,0.052801,-0.145266,-0.397718,-0.582865,-0.308323,0.089188,0.608637,1.130326,1.011443,0.540284,0.107015,-0.399119,-0.521621,-0.622883,-0.43351,-0.157569,-0.157569,0.219628,0.829218,0.829218,0.744644,0.542931,0.053189,-0.314741,-0.495181,-0.537884,-0.299048,0.088843,0.466743,0.640223,0.391629,0.309991,0.494523,0.038081,-0.261539,-0.603369,-0.606485,-0.421508,0.002575,0.380869,0.480478,0.669076,0.513986,0.513986,-0.071738,-0.071738,-0.466964,-0.507724,-0.248749,0.179928,0.334116,0.536682,0.490272,0.29997,-0.074463,-0.287833,-0.398979,-0.336811,0.072253,0.072253,0.449028,0.412047,0.162089,-0.105505,-0.253835,-0.329019,-0.208895,-0.004326,0.252904,0.252904,0.427164,0.427164,0.216595,-0.034599,-0.034599,-0.341859\n-0.286006,-0.286006,0.20842,0.517183,0.517183,-0.138212,-0.138212,-0.138501,-0.018105,-0.011737,0.039953,0.033657,0.094923,0.110783,0.000472,0.032276,0.15329,0.105346,-0.017206,-0.256239,0.00599,0.0132,0.018393,0.016318,0.017955,0.073788,-0.010993,-0.026724,-0.029038,-0.038791,0.081673,-0.028117,-0.216543,-0.087217,0.039638,0.077594,0.027824,0.058589,-0.077224,-0.021484,-0.021484,0.0338,-0.076995,-0.076995,-0.223875,-0.150952,-0.079356,0.004236,0.068562,0.136357,0.114546,-0.023091,-0.020099,-0.027767,-0.067793,0.129397,0.058812,-0.165675,-0.043284,-0.094814,-0.157313,-0.133061,0.040184,0.106589,0.194109,0.059809,-0.035991,-0.035991,-0.056577,-0.056577,0.019255,-0.050807,-0.071298,-0.068386,-0.042306,-0.036914,0.013637,0.129173,0.105985,0.017077,0.086749,-0.042474,-0.208996,-0.208996,-0.011911,0.085791,0.143136,0.084096,0.020186,-0.047095,-0.057242,-0.064467,0.061704,0.061704,-0.012385,-0.012385,0.117031,0.067971,0.067971,0.072477\n-0.098545,-0.098545,-0.02397,-0.141159,-0.141159,0.058594,0.058594,0.042614,0.029297,-0.00799,-0.082565,-0.050604,-0.039951,-0.026634,-0.029297,0.061258,0.090555,0.125179,0.077238,0.010653,-0.061258,-0.103872,0.085228,0.034624,0,0.018644,0.090555,0.135832,0.157139,0.231713,0.218397,-0.005327,-0.055931,-0.071911,-0.101208,-0.125179,-0.066584,0.021307,0.018644,0.109198,0.109198,0.143822,-0.039951,-0.039951,-0.114525,-0.082565,-0.095881,-0.053267,-0.058594,0.058594,0.02397,0.018644,-0.061258,-0.029297,-0.050604,-0.010653,-0.149149,-0.127842,-0.151812,-0.071911,-0.005327,-0.042614,0.069248,0.085228,0.058594,-0.005327,-0.079901,-0.079901,-0.034624,-0.034624,0.021307,0.005327,0.03196,0.03196,0.095881,0.00799,-0.034624,-0.047941,-0.058594,-0.047941,0,-0.018644,-0.045277,-0.045277,-0.00799,-0.034624,-0.077238,-0.093218,-0.077238,-0.01598,0.010653,0.029297,0.069248,0.069248,-0.010653,-0.010653,-0.018644,-0.00799,-0.00799,0.01598\n0.058594,0.058594,0.175783,0.042614,0.042614,0.005327,0.005327,0.069248,0.122515,0.013317,0,0,0.029297,-0.002663,-0.034624,-0.055931,-0.018644,0.029297,0.005327,0.010653,-0.042614,0.00799,0.018644,0.037287,0.00799,0.026634,-0.002663,-0.077238,-0.079901,-0.069248,-0.069248,-0.02397,0.02397,0.002663,0.018644,0.021307,0.055931,0.029297,0.002663,-0.01598,-0.01598,-0.021307,0.055931,0.055931,0.045277,0.058594,0.02397,-0.010653,-0.03196,-0.02397,0.005327,-0.010653,-0.02397,0.01598,0.013317,0.042614,0.125179,0.079901,0.074574,0.045277,-0.039951,-0.071911,-0.135832,-0.066584,-0.055931,0.037287,0.021307,0.021307,0.037287,0.037287,0.045277,0.02397,-0.013317,0.010653,-0.01598,-0.02397,-0.047941,0,0.058594,0.050604,0.055931,0.079901,0.021307,0.021307,-0.074574,-0.042614,-0.010653,0.042614,0.037287,0.002663,0.010653,-0.002663,-0.018644,-0.018644,0,0,-0.010653,0.010653,0.010653,0.053267\n-0.074574,-0.074574,0.114525,0.02397,0.02397,0.111862,0.111862,0.207743,0.290308,0.284981,0.218397,0.037287,-0.079901,-0.127842,-0.165129,-0.117188,-0.002663,0.074574,0.165129,0.149149,0.103872,0.058594,-0.061258,-0.151812,-0.146486,-0.157139,-0.122515,0.127842,0.284981,0.362219,0.391516,0.189099,-0.050604,-0.186436,-0.271664,-0.279654,-0.165129,-0.055931,0.119852,0.207743,0.207743,0.24503,0.165129,0.165129,0.002663,-0.167792,-0.26101,-0.25302,-0.151812,-0.037287,0.143822,0.210406,0.24503,0.093218,0,-0.058594,-0.095881,-0.247694,-0.298298,-0.226387,-0.03196,0.146486,0.292971,0.22905,0.165129,0.039951,-0.114525,-0.114525,-0.22106,-0.22106,-0.157139,-0.045277,0.181109,0.20508,0.183773,0.154476,-0.021307,-0.141159,-0.183773,-0.149149,-0.071911,0.047941,0.183773,0.183773,0.053267,-0.045277,-0.103872,-0.154476,-0.106535,-0.03196,0.063921,0.122515,0.125179,0.125179,0.047941,0.047941,-0.117188,-0.141159,-0.141159,0',Standing +'-0.3573,-0.3573,-0.005055,0.188406,-0.00555,-0.375081,-0.283544,0.211903,0.025877,-0.362505,-0.578785,-0.578785,-0.222815,0.002264,0.002264,-0.036933,-0.242005,-0.022768,0.033525,-0.118403,-0.087369,-0.075718,-0.162595,0.006757,-0.007088,-0.050074,-0.122575,-0.139951,-0.225719,-0.15599,-0.078872,-0.210792,-0.158435,-0.153832,-0.142746,-0.139839,0.004515,-0.203208,-0.073545,-0.193343,-0.16446,-0.153626,-0.082524,-0.22291,-0.099052,-0.111554,-0.148033,-0.211418,-0.211418,-0.222309,-0.222309,-0.115207,-0.053749,-0.207728,-0.43624,-0.283781,-0.281281,-0.065364,-0.139124,-0.082865,-0.095815,-0.079236,-0.193218,-0.141062,-0.032606,-0.20488,-0.073502,-0.157331,-0.261936,-0.127153,-0.077237,0.002076,0.002076,-0.259686,-0.222965,-0.225002,-0.225002,-0.035717,-0.035717,-0.205923,-0.128067,-0.215574,-0.168657,0.019847,-0.154046,-0.118479,-0.179392,-0.176324,-0.105754,-0.304426,-0.188606,-0.164594,-0.262403,-0.147262,-0.090789,-0.131495,-0.227401,-0.077186,-0.151137,-0.074966\n-0.584885,-0.584885,0.295037,1.121559,1.499461,1.437084,0.361414,0.142113,-1.121508,-1.250841,-0.495261,-0.495261,0.191078,0.342765,0.342765,0.582868,0.657756,0.393203,0.146455,0.081993,0.157734,0.245332,0.400269,0.315909,0.002577,0.043888,0.325197,0.286748,0.248107,0.230206,0.140565,0.154087,0.070799,0.121878,0.128038,0.056446,0.101358,0.24013,0.227407,0.209456,0.134975,0.124411,0.086586,0.093793,0.055701,0.154834,0.104988,0.203116,0.203116,0.154029,0.154029,-0.000065,-0.073991,0.116407,0.209597,0.114232,-0.318789,-0.12821,0.310345,0.413101,0.353364,0.391328,0.078087,-0.369627,-0.583384,-0.360963,0.196998,0.567326,0.597933,0.21942,-0.175264,-0.367746,-0.367746,-0.102212,0.137539,0.30489,0.30489,0.076987,0.076987,-0.239659,-0.36249,-0.308607,-0.077948,0.153475,0.410761,0.44377,0.147427,-0.0622,-0.131482,-0.025627,0.047532,0.061069,0.175248,0.086925,0.077088,0.019872,0.081473,0.030411,-0.050431,0.118589\n-0.792751,-0.792751,0.213664,0.940957,0.66087,0.265682,0.724509,0.2593,-0.080469,-0.30286,0.108956,0.108956,0.121504,0.404423,0.404423,0.20964,0.248313,0.205078,0.146642,0.057607,0.047746,0.073308,0.007809,0.171423,0.295357,0.039096,0.01775,-0.007916,0.064201,0.050342,0.141068,0.152119,0.248079,0.032166,0.060381,0.09166,0.034077,0.055447,0.110052,0.038693,0.072187,0.031855,0.049617,0.093627,-0.038417,-0.004994,0.20553,0.082104,0.082104,0.038977,0.038977,-0.015324,0.124476,-0.074498,-0.088496,0.10237,0.113204,0.15395,-0.067669,-0.033018,-0.082376,0.089856,0.186315,0.219774,0.074311,-0.037024,-0.158575,-0.126297,-0.031847,0.220103,0.342991,0.061877,0.061877,-0.169378,-0.126074,0.143523,0.143523,0.064022,0.064022,0.034639,-0.008943,0.112137,0.230177,-0.073972,-0.19823,-0.113713,0.018234,0.071964,0.059122,0.03717,-0.039412,-0.077451,-0.012609,-0.012837,0.02348,0.127541,-0.001277,0.020097,-0.050165,0.003065\n0.074574,0.074574,-0.157139,0.173119,0.242367,-0.399506,0.026634,-0.117188,-0.527348,-0.684487,-0.133169,-0.133169,-0.013317,0.20508,0.20508,-0.02397,0.133169,0.079901,0.066584,0.02397,0.029297,0.021307,-0.050604,-0.002663,0.029297,-0.095881,-0.013317,0,-0.034624,-0.026634,0.005327,-0.021307,0.00799,-0.055931,0,0.029297,0.00799,0.021307,0.061258,0.021307,0.010653,0.02397,-0.005327,0.047941,-0.03196,-0.00799,0.018644,-0.010653,-0.010653,-0.005327,-0.005327,0.00799,0.058594,0.005327,-0.005327,-0.01598,0.069248,0.066584,-0.01598,0.042614,-0.029297,-0.063921,-0.026634,0.03196,0.042614,0.005327,0.002663,-0.013317,0,-0.002663,0.074574,-0.03196,-0.03196,-0.053267,-0.005327,-0.029297,-0.029297,-0.063921,-0.063921,0,-0.01598,0.071911,0.063921,-0.002663,-0.053267,0.082565,0.066584,0.021307,0.058594,0.093218,0.029297,0.039951,0.02397,0,0.00799,0.021307,-0.002663,-0.00799,-0.074574,-0.018644\n0.159802,0.159802,-0.306288,-0.324931,-0.074574,0.103872,0.178446,0.242367,0.170456,0.053267,0.069248,0.069248,-0.119852,-0.170456,-0.170456,-0.050604,-0.013317,-0.002663,0.005327,0.034624,-0.00799,0.005327,-0.002663,-0.053267,-0.026634,0.03196,-0.002663,0,-0.010653,-0.029297,-0.010653,-0.021307,0.00799,0.026634,-0.010653,-0.005327,-0.02397,0,-0.013317,-0.01598,-0.013317,0.005327,-0.005327,-0.002663,0.002663,-0.026634,-0.010653,0.03196,0.03196,0.01598,0.01598,0.013317,0.005327,0.021307,-0.002663,-0.002663,-0.029297,0.034624,-0.063921,-0.047941,-0.021307,-0.074574,-0.010653,0.013317,0.045277,0.039951,-0.018644,-0.063921,-0.085228,-0.055931,0.010653,0.063921,0.063921,0.029297,-0.02397,-0.050604,-0.050604,0.02397,0.02397,-0.018644,-0.013317,-0.002663,0.010653,0.026634,-0.00799,-0.045277,-0.047941,-0.021307,-0.002663,0.005327,0.01598,-0.00799,-0.02397,-0.018644,-0.037287,-0.00799,0.01598,0.037287,0.01598,-0.005327\n0.02397,0.02397,1.230478,0.972131,0.548655,0.106535,-0.423476,-0.809665,-0.423476,0.02397,0.03196,0.03196,0.263674,0.165129,0.165129,0.199753,0.037287,-0.114525,-0.130505,-0.045277,0.002663,-0.026634,0.042614,-0.02397,-0.045277,0.074574,0.077238,0.013317,0.050604,0.02397,0.021307,0.037287,-0.01598,0.042614,0,-0.01598,0.047941,0.026634,0.005327,0.00799,-0.013317,-0.010653,0.00799,-0.002663,0.039951,0.045277,0.034624,0.053267,0.053267,-0.02397,-0.02397,-0.066584,-0.01598,0.034624,0.03196,0.01598,0.01598,0.058594,0.167792,0.087891,0.005327,-0.053267,-0.138495,-0.165129,-0.029297,0.157139,0.223723,0.194426,0.037287,-0.122515,-0.159802,-0.077238,-0.077238,0.090555,0.087891,0.01598,0.01598,-0.095881,-0.095881,-0.079901,-0.01598,0.063921,0.154476,0.181109,0.170456,-0.013317,-0.077238,-0.077238,-0.058594,0.021307,0.058594,0.042614,0.045277,0.013317,0.002663,0.018644,0.021307,0.010653,0.053267,0.042614',Standing +'1.236069,1.236069,0.118106,-0.311451,0.800338,0.844668,0.131246,-0.480234,0.260514,0.260514,0.740892,0.658018,0.658018,0.297788,-0.05661,0.192675,0.706926,0.449775,-0.102489,-0.299811,-0.158126,0.913229,0.195741,0.038613,0.173197,0.224759,0.294611,0.24082,-0.097728,-0.212483,0.06307,0.385172,0.270845,0.063172,-0.166139,-0.166139,0.052837,0.440166,0.338334,-0.226871,-0.097223,0.283673,0.207846,0.3026,-0.063987,-0.051099,0.255495,0.30651,0.143369,-0.239967,-0.296719,0.133848,0.024248,-0.001337,-0.001337,-0.037977,0.049283,0.049283,-0.087127,-0.18223,-0.18223,-0.277507,-0.212138,-0.174911,-0.115059,-0.147204,-0.197319,-0.171559,-0.239426,-0.239426,-0.332834,-0.183435,-0.183435,-0.18742,-0.104579,-0.104579,-0.222097,-0.243674,-0.283531,-0.133568,-0.195639,-0.273036,-0.238282,-0.154017,-0.193151,-0.218947,-0.225876,-0.161072,-0.225257,-0.177608,-0.160954,-0.048382,-0.225044,-0.204552,-0.235572,-0.079782,-0.128078,-0.236547,-0.347654,-0.284163\n-0.569532,-0.569532,0.264725,-0.240149,0.79894,-0.181211,-0.98502,-2.957912,-3.297178,-3.297178,0.263741,2.207027,2.207027,3.244207,3.389298,2.036653,0.101028,-1.57873,-2.810789,-2.893196,-1.691242,-0.421255,1.252543,2.330726,2.736436,2.553599,0.90129,-0.635137,-1.889329,-2.814489,-1.962755,-0.110682,1.667676,2.562278,3.081861,3.081861,1.957666,-0.212945,-1.651382,-2.607179,-2.546487,-1.306539,0.657355,2.038088,2.889257,2.283166,0.876442,-0.510508,-2.049879,-2.205874,-1.955216,-0.964273,0.964335,1.782434,1.782434,1.567955,0.713165,0.713165,-1.156259,-1.234767,-1.234767,0.027312,0.543662,0.733381,0.642213,0.338221,-0.076573,-0.3391,-0.340782,-0.340782,-0.123824,0.300956,0.300956,0.427223,0.045768,0.045768,-0.067352,-0.097192,0.033415,0.021359,0.11912,0.115947,0.033494,0.004662,0.009573,0.030542,0.050738,-0.025768,0.082166,-0.024444,-0.044746,-0.081326,-0.035127,0.022946,0.20927,0.211311,0.390654,0.407018,0.301901,-0.272509\n1.536733,1.536733,0.712643,1.020031,-0.432661,-0.474503,0.892037,0.663386,0.444368,0.444368,-0.215037,-0.242936,-0.242936,-0.18441,-0.228316,-0.090704,0.146644,0.523519,0.729972,0.586613,0.41049,0.180652,-0.397437,-0.579333,-0.207524,0.101583,0.268999,0.662718,0.640672,0.444534,0.008989,-0.349901,-0.410111,-0.25638,-0.077995,-0.077995,-0.028073,0.268871,0.634392,0.586265,0.26198,-0.091713,-0.382246,-0.09287,0.18758,0.138084,-0.002669,0.029212,0.276352,0.233296,-0.072569,-0.1991,-0.322289,-0.13541,-0.13541,0.028974,0.131311,0.131311,0.139596,0.013593,0.013593,-0.085633,0.107527,0.180758,0.191183,0.117985,-0.01186,-0.037997,-0.057902,-0.057902,-0.047732,0.06039,0.06039,0.168706,0.044964,0.044964,-0.037728,-0.089727,0.003582,0.075929,0.100658,-0.0086,-0.009106,0.016974,-0.03896,0.024671,0.034337,0.108783,-0.004022,0.00871,0.112282,0.116744,-0.050088,-0.068072,-0.024217,0.029595,-0.058964,-0.193675,-0.051349,0.103274\n0.143822,0.143822,-2.018837,-0.745744,-1.134597,-0.809665,-0.00799,0.03196,0.308951,0.308951,0.551318,0.617902,0.617902,0.559308,-0.109198,-0.380862,-0.495387,-0.295634,-0.194426,0.053267,0.340912,0.4581,0.125179,0.46609,0.146486,-0.02397,-0.271664,-0.242367,-0.269001,0.143822,-0.045277,0.133169,0.282318,0.308951,0,0,-0.348902,-0.250357,-0.069248,-0.319605,0.042614,0.021307,0.029297,0.210406,0.189099,-0.255684,-0.455437,-0.404833,-0.079901,-0.20508,0.00799,0.22106,0.316941,0.516694,0.516694,-0.079901,-0.22106,-0.22106,-0.255684,-0.255684,-0.255684,0.026634,0.117188,0.119852,0.045277,0.002663,-0.01598,-0.037287,-0.01598,-0.01598,0.00799,0.026634,0.026634,0.034624,-0.010653,-0.010653,-0.010653,-0.037287,0.01598,0.013317,0,-0.00799,-0.01598,0.002663,-0.026634,-0.03196,-0.026634,-0.039951,-0.021307,0,0.042614,0.055931,0.055931,0.061258,0.077238,0.066584,-0.047941,-0.138495,-0.087891,-0.093218\n0.061258,0.061258,-0.111862,0.133169,-0.290308,-0.23704,-0.226387,-0.03196,0.154476,0.154476,0.077238,-0.013317,-0.013317,0.018644,0.034624,-0.050604,-0.069248,-0.109198,0.002663,0.034624,0.109198,0.117188,0.149149,0.018644,-0.20508,-0.173119,-0.114525,-0.109198,0.039951,0.127842,0.210406,0.093218,0,-0.119852,-0.079901,-0.079901,-0.098545,-0.117188,-0.101208,0.02397,0.114525,0.119852,0.029297,-0.133169,-0.085228,0.085228,0.109198,0.103872,0.055931,0.125179,0.085228,0.02397,-0.063921,-0.183773,-0.183773,-0.050604,-0.02397,-0.02397,0.039951,0.039951,0.039951,-0.03196,-0.047941,-0.042614,-0.005327,0.02397,0.045277,0.039951,0.010653,0.010653,-0.005327,-0.053267,-0.053267,-0.045277,0.01598,0.01598,0.03196,0.005327,-0.021307,-0.039951,-0.010653,0.002663,0,-0.02397,-0.013317,-0.01598,-0.002663,0,0,-0.010653,-0.013317,0.026634,0.039951,0.013317,0.002663,0,0.005327,0.013317,-0.047941,-0.047941\n0.905547,0.905547,-0.990775,-1.012082,-1.209171,-1.376964,-1.230478,-1.009418,-0.087891,-0.087891,1.661945,1.446211,1.446211,0.833636,0.053267,-1.052032,-1.512796,-1.329023,-0.673833,0.039951,0.705794,1.099973,1.454202,0.974794,0.258347,-0.402169,-1.094646,-1.198518,-1.049369,-0.580615,0.631219,1.347667,1.355657,0.956151,0.314278,0.314278,-0.801675,-1.451538,-1.249122,-0.692477,0.170456,0.92419,1.424904,1.203844,0.276991,-0.503377,-1.017408,-1.198518,-0.846953,-0.231713,0.292971,0.70313,1.118617,0.732428,0.732428,-0.343575,-0.68715,-0.68715,-0.471417,0.111862,0.111862,0.44212,0.370209,0.21307,-0.063921,-0.202416,-0.258347,-0.189099,0.018644,0.018644,0.119852,0.151812,0.151812,0.045277,-0.087891,-0.087891,-0.063921,0.021307,0.037287,0.029297,0.03196,0,0.002663,-0.00799,0.00799,0.034624,0,0.00799,0.02397,-0.00799,-0.013317,0.00799,0.039951,0.074574,0.069248,0.103872,0.058594,-0.042614,-0.135832,-0.295634',Standing +'-0.366403,-0.366403,0.12683,0.12683,-0.284847,0.301496,0.218163,-0.292671,-0.177331,-0.372362,-0.119532,-0.309108,-0.098715,-0.253626,0.19544,0.137736,0.01241,-0.123559,-0.168771,-0.43508,-0.39205,-0.196891,-0.03124,0.016945,-0.173453,0.125829,0.096863,-0.133159,-0.048162,-0.178364,-0.3537,-0.303203,-0.303203,0.006327,0.006327,-0.103312,-0.103312,-0.221936,-0.221936,-0.094401,-0.021901,0.006428,-0.199287,0.059197,-0.05076,-0.032912,-0.066026,0.076984,-0.15242,-0.394491,-0.077032,-0.248405,-0.045725,0.159517,0.011585,-0.09814,-0.161494,-0.081526,-0.073712,-0.147681,-0.265262,-0.234875,-0.073357,-0.073357,-0.099559,-0.194572,-0.261374,-0.261374,-0.139657,-0.083802,-0.148824,-0.194251,-0.179176,-0.23457,-0.109022,0.049564,-0.069088,-0.329693,-0.025742,-0.184951,-0.164648,-0.135201,-0.135201,-0.143193,-0.154377,-0.284174,-0.15235,-0.085028,-0.229593,-0.203063,0.05362,0.05362,-0.255752,-0.255752,-0.04259,-0.219388,-0.219388,-0.162921,-0.162921,-0.208225\n0.331289,0.331289,1.060159,1.060159,1.197939,1.417718,1.152927,0.414878,-0.415656,-1.102248,-1.235746,-0.587243,0.321884,0.733612,1.229554,1.2836,1.053636,0.549634,-0.092582,-0.894304,-1.222482,-1.076911,-0.298636,0.629479,1.238335,1.124538,0.97266,0.627533,0.006255,-0.548945,-1.148505,-1.041668,-1.041668,0.28492,0.28492,1.391694,1.391694,0.803586,0.803586,-0.050441,-1.166978,-1.250409,-0.887501,0.072715,0.850482,1.375373,1.37998,0.977268,0.347523,-0.491,-1.395445,-1.438119,-0.652863,0.34705,1.055425,1.668361,1.492637,0.740399,-0.167035,-1.131613,-1.375535,-0.928912,-0.218665,-0.218665,1.276973,1.428017,0.985523,0.985523,0.180426,-0.605175,-1.184804,-1.03992,-0.401938,0.516353,0.952842,1.171947,0.920284,0.247644,-0.322603,-1.017856,-1.078731,-0.695493,-0.695493,0.801476,1.185193,1.010912,0.625526,0.113258,-0.655822,-1.116147,-0.993245,-0.993245,0.502013,0.502013,1.214616,1.121405,1.121405,-0.070385,-0.070385,-0.871569\n-0.817845,-0.817845,0.285714,0.285714,-0.166016,-0.467685,-0.161799,-0.609715,0.346345,0.589402,0.475347,0.069902,0.037923,-0.070319,0.083644,0.155538,0.117521,0.121111,0.267468,0.416207,0.185712,-0.047664,-0.04597,-0.114613,0.072075,0.160516,0.293118,0.242445,0.306439,0.198857,0.135138,-0.066691,-0.066691,-0.286571,-0.286571,0.067586,0.067586,0.262689,0.262689,0.342507,0.210616,-0.031966,-0.200876,-0.170489,-0.141175,-0.017334,0.082992,0.139652,0.110766,0.13725,0.133541,-0.081756,-0.11722,-0.194485,-0.268052,-0.081988,-0.029368,0.048999,0.281624,0.231846,0.046533,-0.183919,-0.255391,-0.255391,-0.047031,-0.039623,0.121794,0.121794,0.221272,0.188284,0.008547,-0.155777,-0.215888,-0.291117,-0.025623,0.171408,0.087181,0.185178,0.361372,0.006819,-0.116598,-0.127073,-0.127073,-0.135955,-0.124948,-0.114138,0.146866,0.350395,0.268897,0.220174,0.073072,0.073072,-0.206722,-0.206722,-0.271332,-0.182135,-0.182135,0.244703,0.244703,0.426556\n-0.167792,-0.167792,0.170456,0.170456,-0.149149,-0.021307,-0.300961,0.018644,0.063921,0.143822,0.077238,-0.005327,0.231713,0.146486,0.053267,0.074574,-0.082565,-0.189099,-0.055931,0.042614,-0.029297,0.055931,0.074574,-0.018644,0.103872,0.082565,-0.010653,-0.130505,-0.045277,-0.095881,0.066584,0.135832,0.135832,0.226387,0.226387,0.098545,0.098545,-0.202416,-0.202416,-0.085228,-0.074574,-0.042614,0.00799,0.141159,0.19709,0.109198,-0.042614,-0.098545,-0.098545,-0.146486,-0.055931,-0.090555,0.22106,0.22905,0.247694,0.103872,-0.103872,-0.207743,-0.109198,-0.114525,-0.082565,0.021307,0.170456,0.170456,0.117188,-0.085228,-0.178446,-0.178446,-0.191763,-0.194426,-0.122515,-0.063921,0.034624,0.127842,0.263674,0.021307,-0.20508,-0.19709,0.005327,-0.133169,0.01598,0.117188,0.117188,0.210406,0.085228,0.053267,0.135832,-0.090555,-0.178446,0.050604,0.135832,0.135832,0.207743,0.207743,0.00799,-0.101208,-0.101208,-0.234377,-0.234377,0.02397\n-0.093218,-0.093218,-0.117188,-0.117188,-0.00799,0.071911,0.069248,-0.042614,-0.021307,0.013317,0.066584,0.063921,0.047941,-0.037287,-0.045277,-0.066584,-0.02397,0.002663,-0.02397,0.01598,0.093218,0.063921,-0.00799,-0.037287,-0.106535,-0.055931,-0.093218,-0.013317,0.034624,0.079901,0.119852,0.095881,0.095881,-0.066584,-0.066584,-0.133169,-0.133169,-0.00799,-0.00799,0.021307,0.103872,0.114525,0.066584,-0.037287,-0.101208,-0.093218,-0.063921,0.010653,0.063921,0.090555,0.114525,0.101208,0.055931,0,-0.063921,-0.087891,-0.061258,-0.034624,0,0.095881,0.103872,0.053267,-0.021307,-0.021307,-0.090555,-0.063921,-0.021307,-0.021307,0.021307,0.085228,0.095881,0.087891,0.005327,-0.098545,-0.162466,-0.095881,-0.034624,-0.018644,0.074574,0.122515,0.087891,0.055931,0.055931,-0.077238,-0.077238,-0.045277,-0.058594,-0.055931,0.039951,0.058594,0.093218,0.093218,0.026634,0.026634,-0.018644,-0.079901,-0.079901,-0.074574,-0.074574,-0.018644\n0.157139,0.157139,0.719111,0.719111,0.47408,0.005327,-0.202416,-0.388852,-0.519358,-0.322268,-0.00799,0.444783,0.540665,0.444783,0.306288,0.021307,-0.20508,-0.367545,-0.522021,-0.503377,-0.202416,0.189099,0.532675,0.676497,0.335585,0.061258,-0.106535,-0.338248,-0.532675,-0.506041,-0.343575,0.074574,0.074574,0.548655,0.548655,0.255684,0.255684,-0.4581,-0.4581,-0.657853,-0.532675,-0.101208,0.282318,0.561972,0.559308,0.362219,0.079901,-0.335585,-0.569962,-0.641873,-0.545991,0.141159,0.455437,0.684487,0.615239,0.316941,-0.138495,-0.538001,-0.719111,-0.535338,-0.050604,0.303624,0.527348,0.527348,0.404833,0.149149,-0.311615,-0.311615,-0.591269,-0.580615,-0.255684,0.101208,0.490061,0.508704,0.300961,0.066584,-0.149149,-0.404833,-0.535338,-0.292971,-0.055931,0.255684,0.255684,0.452773,0.24503,-0.095881,-0.399506,-0.468754,-0.415486,-0.26101,0.103872,0.103872,0.567298,0.567298,0.167792,-0.125179,-0.125179,-0.503377,-0.503377,-0.476744',Standing +'-0.342233,-0.342233,-0.298542,-0.326765,-0.259437,0.437525,0.097106,-0.473853,0.002809,-0.04906,0.06749,-0.096294,-0.111374,-0.340778,-0.340778,-0.105291,-0.302453,-0.302453,-0.214591,-0.198273,-0.291163,-0.003343,-0.363612,-0.091782,-0.278892,-0.133384,-0.193933,-0.053106,-0.342515,-0.332393,-0.200031,0.023886,-0.189802,-0.063094,-0.15534,-0.343691,-0.243562,-0.155714,-0.203774,-0.313808,-0.313808,-0.311471,-0.057259,-0.057259,0.062248,0.062248,-0.34675,-0.34675,-0.221921,-0.221921,-0.212363,-0.40678,-0.40678,-0.288419,-0.324357,-0.136526,-0.474108,-0.143398,-0.162027,0.126813,-0.084623,-0.260644,-0.034411,-0.141068,-0.137119,-0.165173,-0.062256,-0.178562,-0.417988,-0.102028,-0.230787,-0.399508,-0.21749,-0.098579,-0.098579,-0.122251,-0.109017,-0.148841,-0.242471,-0.300482,-0.437885,-0.077601,-0.071485,-0.071485,-0.086604,-0.024763,-0.109043,-0.228904,-0.075394,-0.201401,-0.194973,-0.234473,0.144589,0.003514,-0.002121,-0.203504,-0.22999,-0.281073,-0.373028,-0.238221\n0.327415,0.327415,-0.527154,-0.759128,-0.840716,-0.068874,0.606727,1.684597,1.208072,0.525787,-0.113159,-0.266223,-0.303008,0.086103,0.086103,0.188999,0.256858,0.256858,0.212085,0.046941,0.130597,0.28928,0.493718,0.329544,0.268907,0.152927,0.118567,0.139368,0.415967,0.318587,0.097999,-0.107296,-0.060595,0.215033,0.351902,0.312209,-0.005198,0.016648,0.209126,0.26793,0.26793,0.096791,-0.01501,-0.01501,-0.061703,-0.061703,0.332126,0.332126,0.127156,0.127156,-0.067203,0.132907,0.132907,0.279371,0.092671,0.395268,-0.03052,-0.224221,-0.033411,0.162099,0.107013,0.099346,-0.305559,-0.099077,0.029529,0.281707,-0.032269,0.110696,0.057655,0.039314,-0.083752,0.072992,0.092684,0.150741,0.150741,0.019648,-0.068027,0.116072,0.224721,-0.011092,-0.203242,-0.455699,0.422748,0.422748,0.817678,0.83257,0.407757,-0.302183,-0.959561,-0.966824,-0.55002,0.29259,1.0094,1.174338,0.969919,0.112583,-0.68693,-1.299318,-0.97084,-0.360824\n0.157229,0.157229,0.248585,1.054512,0.635881,0.213589,0.961762,0.217585,0.496263,0.569542,0.175246,-0.011948,-0.065926,-0.142949,-0.142949,-0.108873,0.369523,0.369523,0.242183,0.091353,-0.023335,-0.105035,0.087212,0.09259,0.030214,-0.15341,0.113187,0.201639,0.070232,-0.064502,-0.011975,-0.058824,0.133185,0.141821,-0.106609,-0.01314,0.034414,0.105046,0.163402,0.048708,0.048708,-0.048103,-0.051177,-0.051177,0.160979,0.160979,0.066553,0.066553,-0.141926,-0.141926,-0.193274,0.034295,0.034295,0.065665,-0.026773,0.072667,0.072199,0.133184,-0.190226,-0.048463,0.137453,0.221433,0.022876,-0.09141,-0.163664,0.011716,0.094552,0.116126,-0.081516,-0.173308,-0.088884,0.002902,-0.074143,-0.025347,-0.025347,0.045547,0.120059,0.045262,-0.075033,-0.195653,-0.138789,-0.203491,0.144804,0.144804,0.38838,0.433251,0.33574,0.240619,-0.438652,-0.611717,-0.38832,-0.022755,0.307511,0.400571,0.321138,0.191679,0.168542,-0.180477,-0.540332,-0.4891\n0.394179,0.394179,-0.037287,0.178446,0.231713,0.41815,0.149149,0.202416,-0.20508,0.010653,-0.194426,-0.047941,-0.186436,-0.170456,-0.170456,-0.175783,-0.045277,-0.045277,-0.063921,0.026634,0.055931,0.103872,0.074574,0.018644,0.055931,-0.005327,0.050604,0.037287,0.069248,0.02397,0.02397,0.039951,0.005327,0.00799,-0.053267,0.055931,0.03196,0.055931,0.026634,0.00799,0.00799,0.082565,0.03196,0.03196,0.018644,0.018644,-0.029297,-0.029297,-0.218397,-0.218397,-0.085228,-0.029297,-0.029297,0.029297,0.21307,-0.506041,0.106535,0.013317,0.050604,-0.058594,-0.111862,0.005327,0.00799,-0.045277,-0.074574,-0.029297,0.013317,-0.042614,-0.013317,0.047941,0.01598,0.082565,0.034624,-0.002663,-0.002663,0.039951,0.00799,-0.01598,0.018644,0.002663,-0.03196,0.02397,-0.021307,-0.021307,-0.010653,0.005327,0.03196,0.162466,0.074574,0.050604,0.018644,-0.039951,-0.103872,0.005327,-0.02397,0.202416,0.122515,0.055931,-0.162466,-0.173119\n0.074574,0.074574,-0.087891,-0.103872,0.010653,-0.077238,0.037287,-0.055931,-0.066584,0.202416,0.109198,0.22106,0.199753,0.082565,0.082565,-0.018644,0.026634,0.026634,-0.013317,0.037287,0.042614,-0.026634,-0.050604,-0.077238,0,-0.045277,-0.077238,-0.050604,-0.010653,0.047941,-0.013317,-0.00799,-0.058594,0,0.013317,0,-0.045277,-0.034624,-0.005327,0.029297,0.029297,0.005327,-0.039951,-0.039951,-0.077238,-0.077238,0.071911,0.071911,0,0,-0.00799,-0.055931,-0.055931,0.021307,0.074574,-0.010653,-0.00799,0.026634,0.03196,-0.047941,-0.095881,0.00799,0.103872,0.069248,0.042614,0.010653,0.063921,0.071911,0.098545,0.077238,0,-0.010653,0.002663,-0.039951,-0.039951,-0.00799,-0.00799,0.042614,0.074574,0.03196,-0.010653,-0.066584,-0.223723,-0.223723,-0.146486,0.010653,0.149149,0.24503,0.223723,0.013317,-0.138495,-0.242367,-0.276991,-0.053267,0.034624,0.170456,0.231713,0.24503,0.039951,-0.154476\n-0.037287,-0.037287,-0.050604,0.087891,0.25302,0.356892,0.330258,0.125179,-0.114525,-0.21307,-0.24503,-0.159802,-0.071911,0.093218,0.093218,0.079901,0.039951,0.039951,0.029297,0.01598,0.002663,0.021307,0.053267,-0.005327,-0.03196,-0.018644,0.010653,0.03196,0.03196,-0.037287,-0.061258,-0.058594,0.061258,0.074574,0.02397,-0.039951,-0.026634,0.010653,0.063921,0.037287,0.037287,-0.005327,0.077238,0.077238,0.055931,0.055931,0.077238,0.077238,0.053267,0.053267,0.018644,0.106535,0.106535,0.03196,-0.005327,0.079901,-0.055931,-0.077238,0.002663,0.013317,0,-0.069248,-0.050604,0.061258,0.085228,0.074574,0,0.053267,0.002663,-0.034624,0,-0.00799,0.021307,0.018644,0.018644,-0.037287,-0.00799,0,-0.050604,-0.055931,-0.00799,0.053267,0.319605,0.319605,0.127842,-0.098545,-0.378199,-0.48207,-0.290308,0.053267,0.303624,0.471417,0.364882,0.018644,-0.23704,-0.538001,-0.519358,-0.287644,0.234377,0.476744',Standing +'-0.407421,-0.407421,2.355158,1.147434,0.14224,-0.181678,-0.833735,0.129367,0.922358,0.797723,0.101493,-0.148833,0.003184,0.01199,0.243358,0.087034,-0.260552,-0.037858,0.169256,0.196651,-0.141856,-0.276647,0.014432,0.014432,0.116907,-0.00698,-0.266425,-0.130867,-0.05352,-0.056738,-0.056738,-0.219617,-0.173931,-0.025606,-0.161019,-0.004883,-0.07801,-0.149927,-0.247724,-0.125341,-0.14292,-0.058943,-0.20319,-0.169787,-0.105666,-0.207537,-0.161277,-0.098905,-0.198218,-0.02141,-0.02141,-0.266518,-0.266518,-0.143887,-0.298938,-0.295074,-0.364953,-0.149975,-0.149975,-0.203161,-0.172483,-0.180939,-0.294824,-0.286231,-0.078565,-0.295958,-0.30704,-0.072618,-0.146652,-0.184213,-0.204614,-0.186114,-0.327408,-0.250123,-0.142749,-0.142749,-0.14593,-0.193493,-0.193493,-0.217268,-0.217268,-0.252472,-0.249965,-0.281507,-0.281507,-0.21859,-0.186403,-0.193159,-0.205721,-0.172755,-0.098203,-0.321908,-0.179424,-0.27354,-0.247902,-0.015828,-0.241701,-0.294824,-0.238427,-0.236918\n1.413374,1.413374,-3.928032,-1.480309,-2.782044,-3.260815,-3.159147,-0.926533,-0.316353,1.633885,2.537327,2.771744,2.081634,0.842826,-0.779843,-1.341888,-1.73487,-1.096674,-0.334942,0.725114,1.842289,2.017718,1.240794,1.240794,0.759687,-0.551346,-1.320909,-1.35966,-1.099295,1.03516,1.03516,1.636354,1.400041,0.797806,0.186996,-0.413858,-1.158071,-1.027125,-0.168848,-0.239436,0.855207,1.033114,1.394575,0.629804,0.257432,-0.411286,-1.007323,-0.82368,-0.520127,0.067445,0.067445,1.024525,1.024525,1.020734,0.541269,0.099123,-0.387516,-0.801042,-0.801042,-0.48512,0.225582,0.710621,0.850833,0.606512,-0.102076,-0.2438,-0.418382,-0.362516,-0.016962,0.250568,0.381852,0.567483,0.377388,0.196582,-0.130066,-0.130066,-0.252654,-0.043963,-0.043963,0.343034,0.343034,0.472032,0.356288,-0.127172,-0.127172,-0.330595,-0.232882,-0.071521,0.11632,0.013183,1.216656,-0.000296,0.093235,0.091303,-0.246401,-0.390737,-0.462142,0.216479,0.328636,0.537231\n0.092782,0.092782,-0.211622,0.651368,-0.801197,0.526364,1.14719,0.791523,0.471154,0.32161,-0.515852,-0.886072,-0.743235,-0.10236,0.384149,0.781418,0.640316,0.096208,-0.323306,-0.518924,-0.639935,-0.347157,-0.117132,-0.117132,0.323652,0.369061,0.297398,0.053204,-0.159504,-0.304679,-0.304679,-0.302971,-0.36598,-0.165061,0.162855,0.416926,0.548973,0.254767,0.307142,-0.40789,-0.366863,-0.479064,-0.255667,-0.183497,0.101188,0.263912,0.176828,0.189097,-0.047149,-0.172738,-0.172738,-0.387772,-0.387772,-0.314043,-0.087214,-0.052072,0.062714,0.095932,0.095932,-0.028119,-0.110309,-0.196812,-0.233528,-0.181606,0.038819,0.025155,0.21278,0.283481,0.180203,-0.080145,-0.337526,-0.303626,-0.243918,0.061508,0.193597,0.193597,0.239426,-0.056285,-0.056285,-0.28509,-0.28509,-0.204985,0.003892,0.07577,0.07577,0.151466,0.092255,-0.048561,-0.148706,-0.381505,0.216615,-0.283135,-0.05662,0.076372,0.19916,0.19453,0.139095,0.02843,-0.371993,-0.496802\n-0.066584,-0.066584,-3.630177,-1.60335,-1.403597,-0.173119,-0.090555,0.154476,0.740418,0.972131,0.444783,-0.021307,0.010653,-0.157139,-0.085228,0.159802,-0.029297,0.085228,0.22106,0.322268,0.159802,0.058594,0.23704,0.23704,0.047941,-0.575289,-0.380862,-0.01598,0.135832,0.735091,0.735091,-0.127842,-0.732428,-0.119852,0.359555,0.356892,0.034624,-0.25302,-0.375536,-0.530011,0.471417,0.785695,0.362219,0.103872,-0.061258,-0.154476,-0.226387,0.063921,0.117188,0.19709,0.19709,-0.045277,-0.045277,-0.19709,-0.098545,-0.098545,0.042614,-0.340912,-0.340912,-0.189099,0.071911,0.111862,-0.010653,0.037287,-0.079901,-0.234377,-0.03196,0.058594,0.090555,0.077238,0.055931,-0.013317,-0.063921,0,-0.058594,-0.058594,-0.010653,0.00799,0.00799,0.010653,0.010653,0.021307,0.002663,0.013317,0.013317,0.109198,0.178446,0.090555,0.111862,1.488825,0.607249,-0.817655,-0.058594,-0.055931,0.00799,-0.159802,0.00799,0.255684,0.026634,0.053267\n0.223723,0.223723,-0.026634,0.279654,0.234377,0.03196,0.079901,0.045277,0.010653,0.170456,0.282318,0.125179,-0.181109,-0.330258,-0.423476,-0.175783,0.079901,0.181109,0.159802,0.093218,-0.039951,-0.167792,-0.207743,-0.207743,-0.170456,-0.047941,0.098545,0.165129,0.122515,0.026634,0.026634,-0.021307,-0.058594,-0.034624,-0.087891,-0.117188,-0.03196,0.133169,0.162466,0.170456,0.010653,-0.042614,-0.111862,-0.122515,-0.146486,-0.079901,0.00799,0.053267,0.093218,0.079901,0.079901,0.02397,0.02397,-0.021307,-0.034624,-0.026634,-0.069248,0.037287,0.037287,0.063921,0.069248,0.045277,0.010653,-0.045277,-0.055931,-0.02397,-0.039951,-0.002663,0.047941,0.095881,0.071911,-0.002663,-0.071911,-0.109198,-0.079901,-0.079901,0.074574,0.114525,0.114525,0.01598,0.01598,-0.050604,-0.077238,-0.01598,-0.01598,0.010653,0.042614,0.053267,0.055931,0.071911,-0.111862,0.00799,-0.03196,-0.026634,-0.045277,0.005327,0.026634,0.111862,0.114525,0.029297\n0.135832,0.135832,-1.946925,-1.909638,-1.475509,-0.998765,0.074574,0.844289,1.086656,1.12128,0.783032,0.186436,-0.452773,-0.894893,-1.006755,-0.724437,-0.095881,0.340912,0.615239,0.783032,0.604586,0.141159,-0.41815,-0.41815,-0.681823,-0.596595,-0.471417,-0.087891,0.266337,0.591269,0.591269,0.500714,0.103872,-0.300961,-0.713784,-0.735091,-0.351565,0.055931,0.444783,0.620566,0.431466,0.125179,-0.050604,-0.319605,-0.423476,-0.404833,-0.250357,-0.055931,0.247694,0.383526,0.383526,0.191763,0.191763,-0.029297,-0.316941,-0.404833,-0.43413,0.095881,0.095881,0.269001,0.319605,0.22106,0.055931,-0.135832,-0.25302,-0.082565,-0.114525,0.002663,0.114525,0.135832,0.087891,0.061258,-0.02397,-0.186436,-0.146486,-0.146486,-0.018644,0.079901,0.079901,0.117188,0.117188,0.050604,-0.079901,-0.146486,-0.146486,-0.122515,-0.02397,0.085228,0.111862,-0.127842,0,0.090555,-0.087891,-0.114525,-0.130505,-0.00799,0.106535,0.143822,0.138495,0.085228',Standing +'0.300413,0.300413,-1.964993,-3.159662,-6.498703,0.898168,12.391905,12.721008,18.877642,15.90317,20.613626,0.330798,-16.232243,-22.462128,-22.462128,19.901545,19.901545,12.42205,14.50653,14.50653,10.878243,-7.036718,-15.434322,-7.361859,14.283367,12.937978,10.236189,11.912701,13.023973,2.127672,-14.354092,-12.531266,15.998491,14.88895,11.664425,12.739643,11.788158,10.315844,-11.370781,-13.421246,-13.421246,13.879685,14.751563,16.539446,14.248909,5.0517,-12.293128,-12.293128,-13.935216,11.079215,14.973806,15.532154,15.532154,14.102749,2.432545,-11.364473,-10.531921,6.379906,14.882484,13.312664,15.16338,14.243588,8.072919,-12.273608,-14.56271,1.142344,18.368628,12.191338,11.602272,12.602325,12.602325,12.972923,-17.800465,-14.834284,8.807013,13.240521,10.29687,10.29687,10.108654,12.292471,1.35901,-10.719055,-15.590739,1.114078,14.096396,8.231966,7.363194,11.914184,15.148499,-3.820424,-15.04648,-12.927677,11.275699,12.940866,9.103465,7.052093,9.021995,3.552242,-6.654377,-13.677135\n0.72758,0.72758,-0.300555,-2.094925,-2.887628,-12.323421,-10.109762,-1.77454,11.004465,13.353151,-6.691328,-14.744413,-12.06364,-5.523073,-5.523073,-10.177757,-10.177757,7.570535,7.932712,7.932712,-15.30143,-18.784964,-9.004565,-8.592011,-11.56611,-1.523143,16.137709,7.642211,-12.497941,-16.990229,-12.523821,-10.261441,-10.495846,1.544984,14.920465,9.53176,-5.545487,-16.777885,-19.351282,-12.030525,-12.030525,-11.624912,18.55716,9.930487,-11.408079,-16.4345,-13.686337,-13.686337,-10.239732,-11.744891,-7.949153,10.130287,10.130287,-11.372763,-15.746946,-12.953819,-6.726201,-11.674754,-9.9189,13.427603,14.366704,-9.648218,-16.89662,-16.548237,-12.722007,-14.118549,-9.897646,9.414928,14.67701,7.731701,7.731701,-12.375048,-13.487624,-8.808564,-11.675333,-2.162875,11.710282,11.710282,10.642204,-5.010575,-12.99542,-9.695831,-2.79209,-12.304148,-10.58553,7.211417,12.156841,6.235247,-10.404298,-11.959169,-5.990423,-5.393558,-11.90012,-2.367498,6.955311,11.111779,3.405194,-12.276318,-8.576643,-6.305249\n0.878731,0.878731,-1.226914,2.170437,1.977581,-3.279248,-1.684232,-5.489402,-12.820757,-5.443162,0.29242,1.400171,3.314725,-1.673027,-1.673027,-3.63541,-3.63541,-7.994142,-6.829134,-6.829134,1.374012,4.270074,0.843095,-1.66635,-1.246787,-4.148783,-5.354735,-4.159819,-0.95994,1.579863,1.775843,-0.263417,-7.000566,-5.920661,-4.290067,-3.230587,-3.654501,0.454246,3.013133,-0.713917,-0.713917,-6.725349,-5.547588,-3.399141,-4.128325,0.486906,5.070427,5.070427,-0.68796,-1.973428,-5.854179,-1.811439,-1.811439,-2.39535,1.03784,2.279725,0.754329,-2.446557,-6.508678,-5.992695,-3.734682,-4.072455,0.392368,3.232104,4.542153,-3.696775,-6.47432,-5.314755,-3.369591,-4.06649,-4.06649,-2.731276,1.569763,-3.066469,-5.804728,-3.470423,-2.66147,-2.66147,-0.800333,-0.242747,-3.179219,2.739551,0.55625,-2.442724,-4.120994,-3.863548,-1.569723,-2.835214,-0.642285,2.932595,3.528408,0.741288,-2.157332,-4.636701,-6.104516,-3.803361,-2.31732,-4.569549,-3.473584,-0.51722\n-0.082565,-0.082565,-0.631219,-0.745744,-0.199753,0.335585,3.843247,2.218589,-0.194426,-3.262631,-1.954915,-0.348902,-2.25055,-2.95368,-2.95368,3.963098,3.963098,1.286409,0.338248,0.338248,0.157139,-0.300961,-1.608677,2.082757,4.322654,2.01351,-1.944262,-1.813757,-1.270429,-0.708457,-1.696568,0.117188,3.294592,2.032153,-1.917628,-1.486162,-1.491489,0.814992,-3.318562,-0.276991,-0.276991,3.126799,1.15324,-1.885668,-1.568726,-1.568726,-0.990775,-0.990775,1.020072,3.086849,0.644536,-1.566063,-1.566063,-2.333114,-1.720539,-2.306481,-0.151812,2.010846,2.695333,-0.103872,-1.853707,-1.502142,-0.969468,-2.002856,-1.09731,0.284981,4.73814,0.495387,-0.19709,-1.480835,-1.480835,-1.936272,-1.640638,1.193191,2.567491,0.66318,-0.26101,-0.26101,-1.227815,-0.348902,-1.126607,-1.110626,-0.70313,2.202609,3.37183,-0.282318,-0.753734,0.727101,-2.253213,0.095881,-2.413016,-0.751071,3.590226,1.376964,0,-0.170456,0.471417,-2.378392,-2.849809,-2.916393\n-0.055931,-0.055931,0.039951,-0.055931,0.127842,1.174547,-2.205272,-0.242367,-0.146486,0.242367,3.393137,-0.817655,0.410159,1.273092,1.273092,-2.130698,-2.130698,-1.643301,3.467711,3.467711,0.117188,-0.503377,0.098545,-1.022735,-0.583279,0.202416,-0.490061,2.106728,1.728529,-0.346238,0.111862,-0.740418,-1.704558,-1.267765,-0.492724,1.036052,3.377157,-0.231713,0.522021,-1.267765,-1.267765,-1.725865,-1.147914,0.775041,2.711313,-0.292971,0.743081,0.743081,0.103872,-0.767051,-0.713784,-0.175783,-0.175783,3.044235,0.548655,0.402169,-0.743081,-1.773806,-1.560736,-0.668507,0.338248,2.895086,0.143822,-0.306288,-0.138495,-0.977458,-3.441077,-1.310379,0.415486,2.074767,2.074767,3.153433,0.508704,-1.054696,-1.771143,-1.976222,-1.435558,-1.435558,0.998765,2.559501,2.167985,0.266337,0.117188,-1.257112,-1.819084,-1.022735,-0.215733,0.775041,1.691242,-1.147914,0.69514,0.103872,-0.716447,0.684487,-0.010653,0.090555,1.368974,3.156097,2.897749,3.038908\n0.668507,0.668507,0.130505,-0.034624,0.300961,2.860462,7.308294,7.329601,3.467711,-2.988304,-10.104836,-6.09646,-2.618095,0.665843,0.665843,9.907746,9.907746,2.807195,-6.597174,-6.597174,-8.299068,-3.145443,0.404833,3.888524,7.00467,7.089898,0.460763,-5.286795,-8.63199,-5.494537,-0.612576,2.844482,9.063457,6.986026,-0.282318,-5.305438,-7.603929,-7.918207,-1.61134,3.036245,3.036245,8.293742,2.812522,-5.553132,-8.568069,-6.810244,-0.43413,-0.43413,4.210792,8.144593,8.34701,-4.607635,-4.607635,-8.203187,-5.814142,-0.767051,2.682016,6.269579,7.69182,2.407689,-3.481028,-8.946268,-7.201759,-2.245223,2.064114,5.989925,8.384296,3.880534,-0.561972,-5.145636,-5.145636,-9.010189,-0.404833,3.670127,7.286987,5.055081,2.008183,2.008183,-1.848381,-6.037866,-5.736905,-2.602115,1.177211,4.122901,5.614389,3.331879,0.729764,-3.808623,-6.722353,-4.021693,-1.371637,1.14525,4.599644,5.097695,3.37982,0.759061,-4.445169,-4.778091,-2.897749,-0.234377',Running +'1.916536,1.916536,-4.506995,7.477389,15.911235,11.292244,9.949667,13.480944,12.987659,-2.45904,-11.208222,-9.728541,2.761107,2.761107,7.898422,7.898422,7.361341,9.353582,-1.672355,-1.672355,-11.173168,-8.687606,6.602972,12.033769,8.822663,10.754042,15.913225,4.389142,4.389142,-11.84072,-1.692246,16.041376,16.021866,10.069838,10.307489,13.943408,-1.758587,-11.998276,-13.952063,-4.120312,-4.120312,12.96682,12.96682,10.146557,11.909057,12.919132,-3.216157,-11.069849,-12.685869,1.249975,17.872845,11.250256,10.457541,13.339315,10.209641,-5.804601,-16.187263,-5.990596,10.95176,13.995154,9.861265,11.463581,15.239793,3.008658,-10.239721,-16.790117,-0.950086,-0.950086,16.88021,10.376316,10.376316,5.078458,5.078458,-4.962254,-11.036529,-5.271521,16.203773,12.880807,8.886299,11.261833,12.266754,12.266754,-10.314838,-13.749985,-2.846839,12.586274,8.549908,6.425698,9.080939,9.390144,-5.287123,-12.203129,-9.114121,9.848646,12.79613,12.79613,9.235642,13.419512,13.419512,-10.327865\n-0.465923,-0.465923,-6.691695,-10.995518,-7.805502,5.96088,11.395008,6.438585,-11.651011,-15.477981,-11.497365,-7.5745,-12.164836,-12.164836,7.559184,7.559184,10.160477,5.512718,-14.177541,-14.177541,-5.385005,-6.06222,-11.078227,-2.821124,9.993815,10.606177,-4.326027,-14.227084,-14.227084,-7.550539,-13.089598,-10.579568,-1.630796,13.246981,10.936245,-10.281494,-14.77384,-11.844976,-5.288651,-10.359997,-10.359997,0.335558,0.335558,14.391958,11.419685,-11.370993,-16.759995,-12.487911,-11.01164,-13.702813,-10.32568,7.464528,12.094919,5.414537,-11.37521,-16.010176,-8.23662,-9.183476,-10.869057,-7.939922,14.790134,11.652907,-7.354999,-15.881813,-14.647039,-6.180954,-13.138767,-13.138767,-10.305602,11.530032,11.530032,-11.44866,-11.44866,-17.160717,-10.383605,-9.376495,-10.468934,4.263321,10.247698,7.867527,0.460465,0.460465,-13.466641,-3.724952,-11.95483,-10.194262,8.351171,10.595575,7.246139,-11.373405,-15.059671,-6.874502,-6.249931,-10.228495,-2.332604,-2.332604,10.737961,-2.331311,-2.331311,-10.408194\n-0.374403,-0.374403,-1.330023,-3.230503,-3.833633,-9.051298,-6.204843,-4.026298,-1.882143,-0.905002,1.398322,-0.185068,-2.85058,-2.85058,-5.56166,-5.56166,-5.17594,-0.060813,2.433598,2.433598,3.149756,-1.208655,-1.093252,-3.765092,-5.786431,-4.639723,-1.992317,-2.277635,-2.277635,0.222592,-2.35047,-4.425689,-5.676207,-5.659116,-3.484328,-1.346297,3.332731,1.684128,1.42352,-0.60243,-0.60243,-5.922385,-5.922385,-7.058108,-4.292365,1.296615,2.278366,4.094647,1.218901,0.342495,-3.674648,-6.383224,-3.961213,-2.081274,-2.137218,-0.750029,3.605807,-4.531888,-3.910945,-2.755155,-5.424133,-3.216601,-1.302058,-3.112336,1.225559,2.643246,-1.949435,-1.949435,-3.929909,-3.82594,-3.82594,1.7051,1.7051,3.67329,2.477607,1.153502,-3.406886,-6.19836,-5.123344,-3.441011,-1.974153,-1.974153,3.013869,1.208059,-1.545189,-3.438166,-4.874657,-2.959464,-3.265418,-0.995707,1.468276,1.971101,0.95435,-3.442668,-4.828838,-4.828838,-3.584698,-0.238991,-0.238991,1.924294\n0.125179,0.125179,0.708457,2.972324,3.803296,1.984213,-1.757826,-2.498244,-2.27452,-0.276991,-1.544756,-0.117188,2.70066,2.70066,1.115953,1.115953,-1.773806,-0.48207,-0.833636,-0.833636,-0.399506,0.050604,2.378392,0.921527,0.65519,-1.206508,-1.664608,-1.725865,-1.725865,-0.447447,2.956343,4.013702,2.367738,-0.506041,-0.530011,-2.516887,-0.410159,-1.643301,-0.665843,1.731192,1.731192,1.302389,1.302389,-0.45011,-2.06145,-1.864361,0.950824,-0.114525,0.841626,2.727294,1.419578,1.859034,-0.522021,-0.508704,-2.498244,1.073339,-0.396843,2.663373,4.826031,2.865789,-0.183773,-0.111862,-2.807195,-1.475509,-0.945497,-0.532675,2.362412,2.362412,3.678118,-1.3743,-1.3743,0.055931,0.055931,0.511368,0.673833,1.419578,2.354421,0.617902,-0.436793,-1.033389,-1.664608,-1.664608,-1.323696,-0.103872,3.044235,2.804531,-0.231713,0.250357,-0.138495,-2.687343,-1.560736,-1.944262,1.017408,1.880341,0.018644,0.018644,0.306288,-0.617902,-0.617902,-2.50357\n-0.034624,-0.034624,-0.055931,-1.965569,-0.980121,-0.010653,-0.463427,0.314278,3.044235,0.295634,-0.468754,-0.961478,-1.880341,-1.880341,0.01598,0.01598,0.106535,1.246458,-1.020072,-1.020072,0.162466,-0.047941,-1.198518,0.926854,0.111862,-0.066584,1.621994,1.645964,1.645964,-0.479407,-1.952252,-0.612576,-0.125179,-0.21307,0.063921,2.620759,-0.791022,0.41815,-0.239704,-0.561972,-0.561972,0.338248,0.338248,-0.348902,0.085228,1.773806,-0.934844,-0.88424,-0.972131,-1.099973,0.990775,-0.189099,-0.186436,1.115953,3.313236,-0.631219,-0.284981,-2.996294,-1.79245,0.585942,0.881576,-0.242367,3.193384,1.552746,-0.575289,-0.335585,-1.515459,-1.515459,-0.19709,-0.189099,-0.189099,0.820319,0.820319,-1.664608,-1.041379,-1.044042,0.737754,0.452773,-1.230478,-0.242367,1.584707,1.584707,-0.21307,-0.844289,-1.906975,-0.575289,-0.03196,-0.053267,0.732428,2.439649,-0.111862,-0.00799,-1.102636,-0.657853,-0.332922,-0.332922,-0.697804,0.255684,0.255684,0.26101\n-0.22905,-0.22905,2.104064,5.177596,7.372215,4.98317,-1.552746,-4.290693,-7.481413,-5.129655,-1.747172,2.439649,5.776855,5.776855,2.580808,2.580808,-0.764388,-4.232099,-4.628942,-4.628942,-0.67916,2.650056,6.019222,6.117767,1.856371,-3.83792,-6.924768,-6.061836,-6.061836,1.086656,4.322654,7.590612,7.569305,0.942834,-3.321226,-7.686493,-5.43328,-2.082757,0.812329,3.720732,3.720732,7.025977,7.025977,0.783032,-4.330644,-8.482842,-5.119002,-2.604778,2.92971,5.486548,8.168564,5.585092,-0.961478,-5.739568,-8.64797,-4.993824,-0.018644,3.089512,6.266916,8.086,1.973559,-3.646157,-7.974137,-6.163044,-2.205272,1.001428,5.563785,5.563785,8.205851,-3.947118,-3.947118,-6.519936,-6.519936,-3.989732,0.476744,4.338634,8.245801,7.492067,0.580615,-3.481028,-5.952638,-5.952638,-3.619523,1.459528,4.157525,6.314857,2.628749,-1.052032,-4.298683,-7.396185,-3.664801,-0.460763,2.647392,6.794263,6.31752,6.31752,1.667271,-6.330837,-6.330837,-2.189292',Running +'2.221946,2.221946,-7.704172,-10.204578,2.69948,17.69389,13.429123,13.429123,13.158327,9.65859,-7.56682,-15.388742,-6.604001,-6.604001,12.061059,12.061059,7.156232,8.011922,13.433666,0.865107,-15.525042,-10.233915,9.195869,15.925344,7.069539,8.348442,10.580294,-3.736074,-10.878026,-3.676805,13.422832,11.358536,6.891267,11.29808,10.886322,-0.546267,-11.862338,-11.862338,8.481867,11.795431,11.795431,9.62163,13.076652,13.076652,-14.025946,-14.025946,-12.636258,5.06265,11.476304,9.23195,13.10746,13.10746,-0.65414,-14.592692,-9.652962,2.285077,12.50435,7.899374,7.870136,8.034016,-4.053874,-11.113731,-8.408858,8.682655,11.080595,7.031618,10.125511,10.085585,2.396704,-13.080339,-10.709501,-0.136473,14.601121,10.558291,8.282672,10.838271,10.838271,-1.12294,-12.720577,-11.289421,8.414588,14.391207,9.668654,8.134576,15.128651,3.332233,-11.155935,-12.765718,-4.288213,16.410984,11.345117,8.734665,11.664628,12.536871,-7.077502,-12.811468,-6.263309,8.318001,9.266587,7.245494\n-0.783638,-0.783638,-4.569924,-7.286369,-11.371817,-10.019962,6.271763,6.271763,9.563961,-11.845804,-12.579346,-6.489952,-7.108162,-7.108162,0.794457,0.794457,12.062464,8.872772,-8.316735,-16.975437,-9.534504,-9.265916,-11.11019,-4.859624,13.138102,11.909311,-4.863139,-15.333521,-13.279336,-7.234417,-10.033811,2.432379,10.915147,7.058714,-10.407839,-16.333815,-10.233715,-10.233715,-10.903373,-0.82764,-0.82764,10.213011,-3.694826,-3.694826,-9.459988,-9.459988,-4.014316,-11.397467,-10.369916,8.411849,0.927722,0.927722,-12.834628,-12.157019,-3.690944,-11.026693,-6.389175,11.007549,8.598926,-10.356581,-14.410095,-10.777903,-4.522783,-10.603638,3.694521,10.690029,7.470233,-7.194067,-15.407652,-11.071421,-6.544721,-6.801473,-8.861425,9.903763,9.695986,-2.452496,-2.452496,-14.56124,-8.881319,-5.533914,-10.581888,-10.245263,9.616966,10.569368,4.280697,-13.973597,-13.746769,-7.094837,-8.875654,-10.444338,1.453572,12.539498,7.914658,-10.456187,-13.672698,-6.135539,-3.015144,-9.993502,1.553208,8.805635\n0.142401,0.142401,2.447367,-0.526095,-3.895602,-5.755945,-8.266397,-8.266397,-6.144929,-0.473718,0.285955,-0.190517,-2.124021,-2.124021,-4.024847,-4.024847,-5.088419,-5.335676,-3.08514,-3.003674,1.024474,-2.369154,-2.949498,-5.273434,-4.807694,-1.167257,-1.212052,3.841055,2.600813,-2.067421,-3.07971,-4.76154,-4.862567,-2.639935,-0.571631,-0.936161,1.305822,1.305822,-2.924402,-5.111199,-5.111199,-4.476669,-0.712183,-0.712183,0.931274,0.931274,-0.06928,-2.134412,-3.961535,-5.475656,-1.206708,-1.206708,-1.240264,0.063976,-0.269157,-2.602691,-4.927712,-2.978043,-1.828915,-2.300406,0.83658,2.550162,-0.772666,-5.052769,-6.288447,-1.742142,-1.558093,-3.750647,-0.949095,3.555292,-0.626881,-6.062816,-5.830895,-5.060756,-2.011501,-1.274383,-1.274383,1.509899,4.04067,3.051191,-3.863872,-5.433517,-4.755169,-3.017313,-2.886732,3.168759,4.292092,0.155046,-1.127304,-3.324964,-4.830971,-4.713674,-3.547131,-1.997421,-3.083156,-0.729235,-2.1701,-3.156351,-3.758828,-4.066924\n0.055931,0.055931,-0.44212,0.22106,2.96167,3.089512,1.574053,1.574053,-2.620759,-1.025398,-0.239704,-0.886903,0.844289,0.844289,0.940171,0.940171,-0.308951,-2.399699,-2.303817,-1.262439,-1.835064,1.006755,4.399891,3.606206,-2.146678,-1.033389,-2.836492,-0.042614,-1.294399,0.881576,3.068205,1.107963,-0.532675,-1.912302,-1.797777,-1.310379,-1.15324,-1.15324,3.118809,0.846953,0.846953,1.219825,-0.6472,-0.6472,0.396843,0.396843,-0.210406,5.137646,2.623422,0.364882,-0.335585,-0.335585,-1.928282,-1.315706,1.475509,1.787123,1.55541,-0.559308,-0.719111,-1.837727,-0.479407,-0.551318,1.414251,2.466283,-0.127842,0.9162,-1.171884,-2.820512,-1.992203,-2.130698,0.114525,4.588991,4.676882,-0.327595,-0.769715,-1.195854,-1.195854,-0.830972,-1.79245,0.324931,2.719303,3.105492,0.503377,-1.933608,-1.8324,0.90022,-2.588798,-1.251785,-0.095881,3.763346,1.038715,-0.010653,-1.590033,-1.933608,0.759061,-0.849616,0.756398,2.735284,0.093218,-0.045277\n0.071911,0.071911,0.010653,-0.141159,-0.969468,-1.275755,-0.713784,-0.713784,1.241132,1.893658,-0.090555,0.242367,-0.998765,-0.998765,-0.601922,-0.601922,-0.729764,1.086656,4.003049,0.588605,0.316941,-1.805767,-1.520786,0.210406,-0.087891,0.00799,3.102829,-0.881576,0.340912,-1.568726,-1.241132,0.335585,-0.125179,0.037287,2.24256,1.060022,0.173119,0.173119,-1.749836,-0.359555,-0.359555,-0.402169,1.960242,1.960242,-0.4581,-0.4581,-0.969468,-2.538194,0.175783,0.500714,1.542093,1.542093,2.729957,0.577952,-1.438221,-1.717875,-0.764388,-0.034624,0.822982,2.801868,0.684487,0.380862,-1.313043,-1.672598,-0.375536,-1.073339,1.012082,3.718068,0.00799,0.250357,-0.431466,-2.943027,-1.861697,0.111862,0.833636,1.933608,1.933608,0.202416,-0.002663,-0.580615,-0.820319,-0.415486,-0.19709,-0.095881,1.526112,-0.852279,0.583279,-0.133169,-1.201181,-1.014745,-0.609912,-0.330258,0.993438,3.747365,0.918864,-0.356892,-1.909638,-2.383719,-0.881576,-0.002663\n0.226387,0.226387,-1.978886,0.181109,4.186821,7.553325,4.834021,4.834021,-5.276141,-7.180452,-3.478365,0.455437,3.297255,3.297255,5.752885,5.752885,-1.329023,-4.373258,-7.097888,-5.238854,0.66318,3.422434,6.405411,6.205658,0.865596,-3.670127,-7.159145,-4.716833,0.239704,4.426525,6.522599,4.945883,-1.38229,-5.627706,-7.116531,-4.826031,0.223723,0.223723,6.594511,6.794263,6.794263,0.460763,-6.34149,-6.34149,-0.801675,-0.801675,1.57938,4.722159,5.904697,3.457058,-5.85942,-5.85942,-5.782182,-1.664608,2.532867,4.836685,4.98317,0.44212,-4.090941,-5.481221,-3.976415,-1.094646,2.285174,6.016559,5.052418,0.564635,-4.274713,-5.694291,-5.6863,-0.157139,3.116146,5.888717,5.89937,1.867024,-4.06697,-6.280232,-6.280232,-4.538387,-0.721774,2.223916,5.947311,6.152391,2.141352,-2.218589,-5.742231,-6.298876,-2.618095,1.275755,3.052225,6.157717,5.561122,0.836299,-3.42776,-6.320183,-3.491681,0.604586,3.489018,5.926004,3.960435,-0.162466',Running +'1.463566,1.463566,6.169349,12.296801,11.157435,-2.557462,-15.083504,-15.674061,16.076803,21.358442,21.358442,12.536055,14.006068,14.006068,8.008252,-9.272488,-21.334122,-0.657898,12.633326,12.633326,12.393003,17.29112,13.891622,8.104223,-14.726233,-18.143925,6.673007,17.278278,7.947095,10.027427,9.233693,11.345738,6.662699,-11.768057,-11.768057,3.761086,19.320004,14.394332,15.024952,15.305217,10.597512,8.351728,-11.70877,-11.70877,13.068705,13.068705,20.379496,21.209743,18.676886,13.735985,12.571945,-2.290958,-20.401234,-13.253191,12.098077,19.00711,15.378412,13.936638,14.032475,12.279818,0.770494,-11.363322,-14.019058,-14.019058,16.046852,16.046852,18.10653,18.10653,14.001377,17.618273,-11.591866,-11.591866,-18.20832,6.128111,16.86835,18.057554,15.74589,13.12495,16.192863,-4.042183,-17.059076,-16.07752,4.364211,16.494602,10.638096,11.818276,12.51149,17.085257,8.382873,-10.667113,-16.717598,6.446341,15.698234,15.698234,11.115237,11.115237,10.871691,15.845107,-12.58462,-13.454231\n1.782945,1.782945,8.098975,0.205007,-6.774211,-16.85775,-13.160147,-9.306591,-10.505504,-9.962763,-9.962763,12.447036,-1.866807,-1.866807,-12.989611,-12.730709,-0.43371,-14.167108,5.847771,5.847771,12.585959,12.047786,-11.619503,-17.21151,-12.102817,-9.124188,-13.026332,-10.070143,11.88269,17.553703,5.521374,-14.377306,-18.323002,-11.67187,-11.67187,-11.734545,-9.794447,14.176589,16.043823,-0.234119,-15.843071,-20.41145,-19.54021,-19.54021,-12.503189,-12.503189,-9.862377,14.655124,10.838687,5.612109,-13.6108,-18.38235,-14.16558,-13.645792,-13.464474,-7.825152,16.429052,13.721521,6.507844,-13.526251,-16.89558,-14.238453,-13.66374,-13.66374,-10.958958,-10.958958,12.556651,12.556651,12.445955,-10.657651,-17.26986,-17.26986,-15.99946,-16.019844,-10.500562,1.109122,10.628016,9.462623,-11.004374,-15.091291,-9.940175,-6.29786,-14.186323,-10.450041,9.581043,11.061704,9.49567,-10.393761,-15.526423,-16.54537,-11.709928,-15.531235,-10.639409,-10.639409,14.871746,14.871746,13.460014,-10.625976,-14.784469,-9.44613\n-0.817491,-0.817491,-5.628303,-1.64851,-5.80718,-3.233827,2.348255,-4.456994,-5.453126,-5.379484,-5.379484,-4.751848,-0.689346,-0.689346,-2.261858,0.450391,0.198265,-4.930368,-6.33204,-6.33204,-8.01333,-2.690122,1.290823,0.181764,0.177189,-0.425785,-6.422743,-6.270027,-4.087519,-2.570838,-0.353273,-0.817001,-3.65099,-2.586948,-2.586948,-8.30096,-6.70408,-2.473159,-2.070768,0.566904,-10.974634,-19.197697,-11.347899,-11.347899,-17.786755,-17.786755,-10.164472,-3.16917,-3.934633,-3.326412,-11.654694,-6.106397,0.713296,-3.602746,-9.140404,-7.191491,0.300168,2.482086,1.99325,-11.326323,-13.882936,-10.995474,-10.248077,-10.248077,-8.539476,-8.539476,-1.229736,-1.229736,-1.133511,-3.214167,0.354666,0.354666,2.817926,-15.221759,-11.429727,-4.405191,2.905359,0.701392,-5.026721,-1.73912,0.892754,1.600373,-5.645748,-6.858243,-1.244407,1.446566,0.952028,-2.994683,-2.923086,0.905264,2.526056,-7.351915,-5.716784,-5.716784,-2.275496,-2.275496,-1.530095,-3.878074,-1.550934,3.256126\n0.082565,0.082565,-2.671363,-3.390473,-4.602308,-0.788358,-0.673833,-1.387617,4.7701,5.20423,5.20423,-2.399699,-0.01598,-0.01598,-0.314278,-0.500714,-0.287644,0.585942,2.066777,2.066777,-1.099973,-2.450303,-0.633883,-1.233142,-1.560736,-0.617902,2.130698,3.800633,-0.415486,-0.463427,-3.113483,-1.616667,1.158567,0.01598,0.01598,0.4581,2.796541,-0.002663,-1.134597,-1.107963,-2.444976,-4.120237,1.909638,1.909638,4.349288,4.349288,3.587563,0.511368,-1.438221,-0.234377,-4.200139,0.271664,-1.80843,1.531439,2.634075,1.683252,1.091983,-0.921527,0.68715,-3.481028,-1.813757,-2.159995,1.225151,1.225151,3.137453,3.137453,1.568726,1.568726,-1.531439,-1.872351,-3.36384,-3.36384,-1.446211,6.733006,5.499864,-1.054696,0.721774,-0.194426,-2.626085,0.061258,-1.848381,0.673833,4.55703,1.976222,-0.67117,0.101208,-0.266337,-1.107963,-0.705794,-2.373065,-1.251785,2.370402,2.847145,2.847145,0.814992,0.814992,-0.210406,-3.441077,-0.250357,0.22905\n0.159802,0.159802,0.282318,3.235998,4.652912,0.242367,-0.154476,-0.135832,-3.259968,-4.008376,-4.008376,1.294399,2.839155,2.839155,2.543521,-0.388852,-0.380862,0.018644,-0.567298,-0.567298,-0.093218,1.315706,3.736712,0.503377,-0.492724,-0.910873,-1.478172,-2.386382,-0.468754,-1.331686,3.001621,3.086849,1.123943,-1.32636,-1.32636,-2.570154,-3.046898,-1.510132,0.985448,5.577102,5.566449,4.612961,-1.478172,-1.478172,-1.896321,-1.896321,-3.526305,-2.306481,1.619331,3.16675,5.814142,1.147914,0.234377,-0.753734,-1.744509,-4.28004,-2.68468,1.875014,3.971088,6.485312,4.189485,1.139924,-1.675261,-1.675261,-4.154861,-4.154861,-1.518122,-1.518122,1.339676,5.047091,0.191763,0.191763,0.239704,-2.943027,-4.99915,-2.04547,0.250357,2.28251,4.506426,1.534103,0.391516,-1.3743,-2.365075,-1.387617,-1.981549,-1.11329,1.38229,5.084378,1.35832,-0.284981,-0.402169,-0.988111,-2.748601,-2.748601,-0.775041,-0.775041,1.59536,3.944455,-0.724437,-1.262439\n0.095881,0.095881,-1.502142,-2.567491,-3.949781,-4.551704,-0.029297,3.563592,7.633226,7.963484,7.963484,-2.138688,-6.256262,-6.256262,-6.077816,-2.868452,0.490061,3.483691,5.598409,5.598409,0.988111,-4.73015,-9.201952,-6.884818,-0.476744,2.000193,6.304203,8.488169,3.536959,-2.221253,-4.71417,-9.175319,-4.812714,0.388852,0.388852,7.180452,8.986219,2.948354,-2.900413,-5.545142,-8.368317,-5.641023,-0.822982,-0.822982,8.315049,8.315049,10.922491,1.877678,-1.438221,-4.333307,-7.44679,-5.553132,-1.744509,2.333114,8.067355,9.007526,3.579573,-1.720539,-4.543714,-6.176361,-5.720924,-2.836492,1.371637,1.371637,7.729107,7.729107,2.285174,2.285174,-1.398271,-9.915736,-3.720732,-3.720732,0.298298,6.914115,9.244566,6.213648,1.629984,-1.914965,-8.413594,-5.920677,-2.237233,0.870923,4.618288,7.777048,4.908596,0.90821,-2.72463,-7.630562,-7.979464,-3.776662,0.255684,5.257497,7.766394,7.766394,1.608677,1.608677,-2.719303,-7.798355,-2.287837,1.526112',Running +'1.186069,1.186069,0.025475,-2.577381,-6.588059,-0.003081,12.470619,15.029918,10.173779,13.856394,13.856394,12.073692,4.359505,-11.788841,-11.788841,-15.054348,-2.516662,16.264482,18.25175,12.943487,15.974556,20.505526,10.978583,-2.386847,-17.79291,-6.443183,12.886251,21.03813,13.79652,16.59626,16.665878,9.223181,-5.737395,-10.51635,4.784165,18.875048,12.286322,8.183146,11.815028,9.69754,1.854103,-10.550063,-7.130895,-7.130895,14.365209,11.854368,11.854368,17.400438,17.231165,8.788607,-6.031495,-12.483384,-5.468712,13.361612,17.054764,13.690323,13.345961,16.313887,10.313257,-4.728924,-15.540583,-5.571188,15.616809,15.616809,14.187171,17.15955,18.724213,7.271192,-8.405854,-16.365904,-16.365904,10.849537,18.851183,16.616974,16.616974,18.376577,18.376577,11.725198,-2.770517,-12.851477,-12.082811,4.637031,16.248041,14.972124,12.782948,14.156454,13.061649,1.870894,-13.126123,-12.09161,7.55908,16.320559,10.825933,9.880846,14.304153,7.833264,-6.4065,-14.138376,-7.391796,15.626068\n0.013225,0.013225,1.926289,-4.003676,-6.491396,-10.113441,-10.127852,-4.595093,5.505546,11.808018,11.808018,-13.373106,-17.987598,-13.395877,-13.395877,-9.298069,-16.088655,-10.449763,0.704082,10.739,16.473137,-1.311897,-14.99707,-19.72295,-11.828013,-12.564303,-12.490168,-4.578857,11.809376,13.005058,2.8755,-15.221169,-17.762524,-8.922848,-12.086002,-9.816839,15.579748,13.015564,0.738812,-13.471138,-18.169882,-13.364213,-9.752937,-9.752937,-11.127356,13.775543,13.775543,9.17563,-4.301303,-17.073051,-18.70762,-11.826844,-10.534593,-11.46725,-1.110285,12.294088,11.978704,-2.537159,-15.969686,-20.03107,-11.547593,-16.568546,-10.806076,-10.806076,11.353537,11.522755,-9.372882,-14.095032,-18.223373,-9.517858,-9.517858,-12.783779,-9.996719,10.258044,10.258044,0.602453,0.602453,-13.779863,-19.978266,-11.840003,-8.179528,-14.874316,-10.406904,8.45029,14.746841,10.371875,-12.283276,-19.545107,-15.232924,-11.573404,-12.937815,-7.899349,12.122758,13.214571,2.494569,-13.177158,-16.541258,-7.481679,-12.298756,-10.701664\n-0.377872,-0.377872,-1.253871,1.080195,0.128614,-5.765094,-5.869516,-5.124391,-4.649252,-6.286937,-6.286937,-3.388876,-0.834225,4.447168,4.447168,2.654254,-3.912182,-3.12768,-4.872808,-6.054272,-7.217113,-1.28815,-3.36226,0.594393,4.150428,-3.006472,-2.863329,-3.297884,-7.124581,-5.351831,-2.073558,-0.752204,4.561148,2.001217,-1.888129,-7.225592,-4.705069,-3.890261,-1.400491,-2.579957,-0.864822,1.516182,-0.59406,-0.59406,-2.850575,-7.176801,-7.176801,-2.950912,-0.367932,-1.98485,3.965562,3.017822,-3.042904,-4.808487,-4.039399,-6.055667,-3.765909,2.125025,-5.537915,3.99641,4.877081,-7.360809,-10.992846,-10.992846,-3.051879,-3.562188,2.17443,-0.44416,0.018413,2.437926,2.437926,-5.223281,-3.458099,-5.261799,-5.261799,-0.606197,-0.606197,-1.117311,4.822478,5.75415,0.820193,-4.370811,-3.829068,-6.107721,-6.789846,-5.212993,-2.948029,1.342188,2.843375,0.665219,-5.697938,-6.114813,-4.959335,-0.784982,-4.019039,0.058207,2.297507,3.088278,-1.373897,-1.489454\n0.367545,0.367545,0.22106,-1.179874,-0.532675,0.159802,3.291929,2.594125,0.993438,-1.973559,-1.973559,-0.03196,2.546184,-1.233142,-1.233142,-1.13726,0.812329,2.540857,1.632647,0.964141,-2.764581,-0.407496,-1.278419,1.491489,-0.322268,1.009418,2.548847,1.944262,0.085228,-3.094839,-2.418342,0.189099,0.788358,-0.359555,2.450303,1.006755,3.536959,-0.394179,-4.317327,-1.803103,1.747172,-1.789786,0.415486,0.415486,3.997722,-1.006755,-1.006755,-2.093411,-1.360983,-1.973559,0.21307,-1.922955,1.624657,3.313236,2.117381,-0.383526,-1.422241,-1.590033,-1.55541,-1.257112,-1.890995,0.178446,2.982977,2.982977,0.48207,-1.488825,-1.033389,0.69514,-0.561972,-1.185201,-1.185201,3.784653,1.954915,2.040144,2.040144,-0.69514,-0.69514,-0.862933,2.197282,-1.763153,-1.499479,2.460956,2.785888,3.568919,0.897557,-2.530204,-2.687343,-0.436793,-1.472845,1.078666,4.136218,2.759254,-0.820319,-0.375536,-2.849809,0.135832,0.149149,-0.535338,-0.162466,3.235998\n-0.25302,-0.25302,-0.500714,-0.002663,0.19709,-0.029297,-2.655382,-1.739182,-0.362219,-0.314278,-0.314278,3.819276,-1.222488,-0.950824,-0.950824,0.551318,0.26101,-1.091983,-0.101208,-1.230478,0.9162,3.172077,2.745937,-1.411588,-0.183773,-0.308951,-0.620566,0.154476,0.159802,0.596595,3.409117,0.972131,-1.118617,0.165129,-1.606014,-0.607249,-0.567298,-1.065349,3.64083,3.795306,-0.351565,-0.378199,-1.427568,-1.427568,-1.270429,-0.157139,-0.157139,-0.114525,2.599452,1.542093,-1.169221,0.173119,-1.235805,-1.803103,-0.807002,-0.737754,-0.018644,2.820512,1.174547,-1.209171,0.282318,-1.203844,-3.251978,-3.251978,-0.391516,1.238468,2.666036,1.083993,-0.543328,-0.89223,-0.89223,-0.838962,-0.580615,-1.246458,-1.246458,1.84039,1.84039,3.020264,-2.570154,-0.729764,0.641873,-0.743081,-1.616667,-1.384954,-0.111862,1.273092,3.568919,-0.90821,-0.452773,-0.862933,-1.352993,-0.966804,-0.934844,-0.724437,3.140116,2.594125,-0.545991,-0.436793,-0.753734,-1.406261\n0.114525,0.114525,-0.173119,-0.311615,1.297062,3.699425,7.734434,8.34701,1.685915,-1.877678,-1.877678,-8.456208,-6.117767,-1.688578,-1.688578,1.483499,4.431852,9.739953,8.544099,2.69267,-2.620759,-8.498822,-10.586906,-4.692863,0.812329,4.208129,7.398849,9.70533,3.803296,-4.519743,-7.840969,-7.593275,-2.28251,2.436986,6.975373,9.01818,4.791407,-3.792643,-6.951402,-7.790365,-4.588991,0.673833,3.361176,3.361176,7.960821,1.233142,1.233142,-5.91535,-8.658624,-7.766394,-3.113483,0.356892,4.75412,8.315049,8.541436,1.13726,-3.584899,-7.47875,-8.557416,-3.614197,0.223723,4.908596,9.04215,9.04215,2.596788,-3.931138,-8.63199,-7.992781,-5.129655,-0.609912,-0.609912,6.82356,9.393715,5.553132,5.553132,-7.769058,-7.769058,-9.883776,-4.55703,-0.335585,2.612768,5.547805,9.068784,6.13641,0.455437,-5.174933,-10.762689,-5.289458,-0.527348,2.761917,7.7078,8.413594,2.514224,-1.803103,-6.3335,-7.345582,-3.531632,1.182537,3.275948,7.547998',Running +'-0.359319,-0.359319,4.011746,3.969688,3.969688,-10.496927,-12.606166,-12.606166,19.444656,19.444656,23.318779,23.318779,14.282791,9.474254,-10.076178,-17.87264,-5.046351,15.415035,17.733408,19.888285,19.570381,10.85738,-5.539072,-19.510307,-4.913211,13.328848,21.438515,14.135201,20.28194,13.159569,3.868423,-12.586323,-12.586323,-10.908914,19.197193,11.221997,11.221997,17.799633,17.799633,-9.952966,-9.952966,-17.579504,-1.107959,16.124891,16.100002,16.910976,16.355623,10.845742,-3.509642,-16.9879,-6.66346,13.667419,18.569824,11.039117,15.532736,11.405392,-0.1914,-16.92796,-7.362597,14.848639,20.91041,15.508658,19.608606,19.608606,-0.610058,-0.610058,-16.245672,-10.884228,13.731035,20.067102,14.754703,16.753386,13.283159,4.693178,-16.689188,-8.205094,12.591655,17.731619,11.698533,12.07599,14.179026,0.179238,-12.84577,-9.503984,14.935087,14.786606,10.592346,9.776613,14.623961,8.361293,8.361293,-10.207176,6.626144,6.626144,14.725088,9.113968,9.113968,9.639398,9.11081,-3.754989\n0.152819,0.152819,1.048811,-1.928682,-1.928682,-5.79064,-4.710909,-4.710909,-9.796182,-9.796182,21.99324,21.99324,-11.378163,-17.809843,-19.48147,-8.41152,-15.219399,-10.84576,6.204001,23.366014,8.556479,-15.276516,-22.510809,-15.694491,-15.034637,-12.100168,-0.738474,16.274986,11.06425,-12.204945,-20.333908,-18.84192,-18.84192,-11.85592,-9.811005,12.738684,12.738684,-0.551281,-0.551281,-19.459782,-19.459782,-9.353596,-12.51675,-10.506364,8.464942,22.076565,3.647514,-15.211833,-20.44046,-12.737613,-11.176514,-11.803898,9.81746,20.114742,9.769712,-14.392696,-19.968815,-14.302365,-9.976284,-11.153595,3.873378,19.341654,9.587258,9.587258,-18.26515,-18.26515,-10.455218,-8.042425,-11.78916,-5.050764,20.219475,13.569931,-12.4153,-17.628931,-14.121303,-8.902118,-12.928343,2.279314,17.926943,18.0294,-11.598735,-16.001753,-10.770477,-9.605143,-10.965554,-0.379475,13.036169,13.13426,-7.048715,-15.67265,-15.67265,-16.002247,-11.832928,-11.832928,-4.344564,11.587113,11.587113,8.134124,-12.331043,-16.276659\n-0.064578,-0.064578,-1.804903,1.817027,1.817027,1.92102,-0.485446,-0.485446,-7.878422,-7.878422,-1.833339,-1.833339,-2.927413,0.738084,0.503626,0.033751,-5.32645,-10.941614,-4.95661,-4.434639,-6.383581,-4.495722,-3.826696,-1.867233,-4.98552,-8.999714,-3.23683,-0.955159,-2.136101,-0.86903,-3.657569,-2.558991,-2.558991,-3.004973,-4.245163,-2.623241,-2.623241,0.629945,0.629945,-3.28334,-3.28334,-2.568973,-3.468483,-7.360958,-1.619433,2.968808,-0.712365,-4.637173,0.404222,-0.276233,-2.458954,-6.784674,-4.826201,-0.838958,-1.57814,-8.098125,-1.015572,-1.272183,-2.291737,-9.963374,-4.067205,-1.157428,-1.644553,-1.644553,-3.642176,-3.642176,1.219185,0.455417,-5.285245,-7.298173,2.153569,0.386,-5.789308,-3.430471,1.997767,-0.66289,-5.945487,-3.62825,-0.529526,0.242,-3.391071,-0.285246,3.047067,-1.533508,-6.295252,-3.560566,-3.369248,-0.724578,-1.146758,-2.512659,-2.512659,-3.637648,-3.83667,-3.83667,-5.128956,-1.393714,-1.393714,-0.697245,-1.462568,-0.51531\n0.039951,0.039951,-1.347667,-0.066584,-0.066584,-0.681823,-1.424904,-1.424904,6.173698,6.173698,-1.227815,-1.227815,-0.03196,1.906975,-1.747172,-1.704558,0.609912,2.607442,1.55541,-0.42614,-2.596788,-2.269193,1.406261,-1.022735,2.090747,1.880341,2.00552,-1.198518,-3.675454,0.223723,1.448875,-1.707222,-1.707222,0.308951,2.373065,-1.267765,-1.267765,-4.482456,-4.482456,-1.544756,-1.544756,-0.753734,2.04547,3.462384,-0.135832,-0.178446,-1.281082,-0.181109,0.9162,-1.275755,2.04547,1.80044,2.173312,-1.206508,-1.973559,-4.053653,2.935037,-0.42614,2.207936,2.602115,1.621994,0.276991,-4.551704,-4.551704,0.202416,0.202416,-1.691242,2.548847,4.104257,0.713784,-0.327595,-1.222488,-1.289072,-1.648628,-1.922955,0.6472,3.928474,1.550083,1.09731,-1.179874,-1.512796,-0.844289,-1.004091,2.74061,3.137453,2.0215,-0.545991,-1.390281,-2.317134,-0.455437,-0.455437,-5.984598,4.698189,4.698189,2.26653,-0.822982,-0.822982,-0.993438,-2.386382,-0.87625\n-0.042614,-0.042614,0.572625,-0.402169,-0.402169,0.106535,0.498051,0.498051,-3.156097,-3.156097,1.853707,1.853707,5.712934,-0.250357,-0.588605,-0.740418,-2.343768,-3.164087,-1.520786,-0.620566,5.430617,5.558458,-0.556645,-0.585942,-2.210599,-1.518122,-1.360983,-1.656618,2.175975,4.602308,0.724437,-0.181109,-0.181109,-1.728529,-2.058787,-1.15324,-1.15324,6.57853,6.57853,0.218397,0.218397,-1.195854,-2.319798,-2.612768,-2.690006,0.791022,4.865982,4.08295,-0.934844,-0.498051,-1.691242,-0.676497,-1.680588,-0.143822,3.835257,4.639595,-0.284981,-0.250357,-2.056124,-1.171884,-3.052225,-1.329023,2.45563,2.45563,0.098545,0.098545,0.143822,-1.805767,-0.737754,-0.141159,-1.57139,1.829737,5.64635,0.948161,-0.085228,-1.352993,-0.964141,-2.226579,-1.243795,0.772378,3.971088,0.660516,0.404833,-1.701895,-0.514031,-1.408924,-0.700467,0.785695,3.515652,1.022735,1.022735,0.828309,-2.940363,-2.940363,-1.403597,-0.239704,-0.239704,1.259775,3.654147,-0.402169\n0.125179,0.125179,-1.861697,-2.207936,-2.207936,0.436793,1.890995,1.890995,10.975759,10.975759,-4.093604,-4.093604,-10.387153,-7.228393,-1.219825,2.117381,4.871308,9.130041,7.571968,-0.612576,-6.836877,-11.468482,-4.282703,0.775041,5.041764,9.446982,9.156674,2.652719,-6.091133,-9.119388,-5.992588,-0.367545,-0.367545,3.907167,11.026362,1.707222,1.707222,-6.240282,-6.240282,-1.299726,-1.299726,2.514224,5.100359,8.922298,6.908788,-2.663373,-6.722353,-9.49226,-2.948354,1.952252,4.027019,7.835642,7.518701,1.448875,-5.667657,-9.731963,-5.052418,0.639209,4.176168,7.108542,8.634654,0.021307,-4.575674,-4.575674,-4.980507,-4.980507,-0.125179,2.183965,6.874165,8.815763,0.926854,-4.495773,-9.566834,-6.469332,0.199753,3.233334,5.816806,7.819662,2.759254,-3.020264,-8.043385,-5.217547,-0.791022,3.414444,6.725016,6.354807,1.957579,-3.331879,-7.481413,-6.754313,-6.754313,-0.90821,5.356042,5.356042,6.269579,-0.615239,-0.615239,-4.266723,-7.609255,-5.103022',Running +'1.370472,1.370472,8.988115,9.96166,14.369909,1.822509,-13.341079,-15.968847,-15.968847,15.883312,15.392416,18.114738,18.114738,20.449316,-11.44197,-11.44197,-18.762066,-6.358342,16.159664,17.771454,18.878405,19.849709,11.105834,-2.068632,-19.628517,-15.000516,12.715441,16.44814,14.087065,23.048782,14.745283,-1.920321,-16.755642,-11.953495,5.233739,16.696737,15.318913,14.086715,11.739553,11.739553,-16.909626,-2.608812,14.130122,13.875876,13.210293,14.70681,14.70681,-0.573698,-0.573698,-7.491557,-7.607055,14.63011,13.865157,9.075401,12.042859,12.454949,10.411594,-8.435875,-20.13,4.508711,17.932072,9.630043,10.999136,14.959905,11.296745,-17.157387,-2.883221,13.344811,11.004373,10.512194,10.512194,10.46327,2.213642,-14.200213,-1.120878,15.392236,15.392236,18.670383,12.582415,12.582415,-7.929267,-16.414906,-2.244787,15.015081,14.462322,14.156926,19.537025,5.749603,-8.672406,-11.413436,0.530042,15.932148,14.400603,11.209743,12.326563,4.900373,-5.732792,-9.882447,-4.430266,13.514693\n-1.054298,-1.054298,7.717017,7.924464,-5.946633,-11.624897,-8.044122,-2.781243,-2.781243,-11.987129,4.69174,7.288497,7.288497,-3.832511,-18.135658,-18.135658,-10.479991,-14.325324,-10.534786,6.906706,15.434554,0.612406,-14.798382,-20.577106,-12.081316,-9.478495,-12.693831,-0.97757,13.180077,12.779571,-10.4204,-20.478504,-17.993908,-9.933374,-12.937365,-4.473652,19.69981,10.538801,-13.745421,-13.745421,-18.037666,-10.761976,-9.88569,4.916937,6.126614,-3.313751,-3.313751,-21.356106,-21.356106,-13.61471,-7.676934,-11.24505,-0.087845,6.764216,7.887376,1.543094,-14.893581,-16.255768,-8.278783,-11.471343,-10.11729,7.518503,12.769255,3.88072,-14.407019,-16.849024,-11.324947,-9.979752,0.932066,10.555967,10.555967,-6.080175,-13.601498,-13.902178,-10.802405,0.314787,0.314787,-2.786093,-12.755186,-12.755186,-19.358643,-20.44051,-15.244566,-10.788618,0.025619,9.619203,7.211644,-13.474541,-17.37139,-12.225944,-11.454049,-10.011457,0.018109,10.386961,4.965893,-11.081743,-14.014988,-9.075571,-11.316754,-8.187421\n-0.451409,-0.451409,-6.073897,-3.372283,1.696946,-0.549486,2.191848,1.062449,1.062449,-4.315823,-6.032723,-4.824936,-4.824936,-3.754558,6.243026,6.243026,2.259961,-2.934249,-4.929233,-7.504324,-5.353707,-4.971872,-2.046664,3.607204,1.313119,-4.306529,-5.15619,-2.123675,-3.337485,-5.093475,-3.808177,8.30403,1.820854,0.046082,-6.227982,-0.063529,-2.196909,-1.578789,-4.979312,-4.979312,0.690568,-1.779892,-4.49087,-3.129935,-4.148111,0.389002,0.389002,2.705939,2.705939,5.308311,-0.087507,-2.424828,-8.218043,-5.955408,0.085059,4.496845,-1.946294,1.291571,0.488622,0.047231,-4.026203,-4.969807,0.059362,-4.565582,-1.439875,7.240294,-0.347819,-8.75684,-5.792923,-2.924879,-2.924879,-3.612301,-2.182357,2.444922,-1.641978,-7.526851,-7.526851,-2.998123,-9.008245,-9.008245,-0.715899,5.499339,-1.325092,-3.798288,-8.010035,-5.890245,-4.695153,-2.522995,3.463584,2.907753,-1.585688,-5.896927,-7.401544,-6.169634,-1.366321,1.099837,2.613123,2.681814,0.957392,-6.668823\n-0.306288,-0.306288,0.4581,-1.859034,-1.195854,-0.255684,-1.12128,-0.756398,-0.756398,1.534103,-1.291736,-1.717875,-1.717875,-1.558073,-0.977458,-0.977458,-1.371637,1.629984,3.318562,0.43413,-3.161423,-2.570154,-1.526112,0.22106,-2.122708,0.878913,2.327788,0.93218,-2.128035,-1.653954,0.359555,-1.696568,-3.366503,1.515459,1.637974,1.281082,-1.15324,-1.193191,-1.976222,-1.976222,-1.80044,1.576717,1.329023,1.744509,-1.845717,-2.28251,-2.28251,0.964141,0.964141,-1.398271,0.575289,3.803296,1.478172,-2.71664,-1.13726,0.769715,-0.841626,-0.948161,-1.965569,2.737947,1.542093,-1.536766,-0.814992,0.684487,-0.287644,-0.93218,0.375536,2.966997,1.864361,-1.34234,-1.34234,0.846953,-3.409117,-2.831165,1.440885,1.174547,1.174547,-1.329023,-1.222488,-1.222488,-0.684487,-2.650056,-2.47161,0.948161,1.1053,-1.598024,-3.188057,-0.471417,-0.255684,-0.207743,2.285174,2.325124,0.295634,-2.855135,-0.471417,-0.833636,-2.452966,-0.783032,2.074767,2.23457\n-0.423476,-0.423476,0.761725,0.247694,2.295827,1.651291,-0.527348,0.191763,0.191763,-1.142587,-1.049369,-0.721774,-0.721774,4.298683,-0.668507,-0.668507,0.154476,-0.556645,-0.495387,-1.150577,-0.159802,3.558266,1.701895,-1.294399,0.511368,-0.793685,-0.601922,-1.755163,-1.496815,2.73262,2.658046,-1.938935,0.92419,-1.150577,0.010653,-0.868259,-0.801675,1.635311,2.68468,2.68468,0.759061,-1.560736,-1.520786,-0.705794,-0.165129,1.550083,1.550083,-1.765816,-1.765816,-0.298298,-0.977458,-0.780368,-0.412823,-0.159802,0.01598,1.235805,1.795113,-1.139924,0.111862,-1.318369,-0.777705,-1.297062,0.745744,1.507469,0.202416,-0.410159,-0.759061,-1.664608,-1.177211,-0.24503,-0.24503,1.504805,2.884433,0.46609,-1.454202,-0.759061,-0.759061,1.550083,2.775234,2.775234,0.298298,0.756398,-0.788358,-3.670127,-2.815185,-1.187864,-0.503377,2.23457,-0.543328,-0.737754,-1.502142,-0.972131,-0.604586,0.143822,-0.026634,0.44212,0.838962,0.055931,-0.852279,-0.988111\n0.292971,0.292971,2.159995,-2.498244,-5.124329,-5.201567,-1.811093,1.725865,1.725865,9.558844,1.736519,-3.121473,-3.121473,-6.988689,-4.122901,-4.122901,0.545991,5.129655,10.134132,6.418728,-1.616667,-6.812907,-11.329987,-4.969853,0.324931,4.26406,8.000772,9.060794,3.915158,-5.166943,-12.283474,-5.66233,-0.295634,4.767437,7.417492,7.971474,0.910873,-4.810051,-9.878449,-9.878449,0.945497,7.555988,11.441849,2.940363,-4.924576,-8.605357,-8.605357,-3.8539,-3.8539,1.062686,4.405218,9.529547,8.016751,0.332922,-4.325317,-6.005905,-6.943412,-2.26653,1.185201,7.366889,6.871501,2.876442,-2.333114,-6.948739,-6.445362,-0.759061,6.155054,7.705137,5.627706,-0.993438,-0.993438,-6.32551,-5.270814,-0.005327,6.149727,7.609255,7.609255,-6.141737,-8.453545,-8.453545,-6.298876,-0.234377,5.550468,7.731771,6.487976,0.045277,-5.145636,-7.93685,-4.850001,1.877678,5.470567,7.856949,6.312193,-1.355657,-5.350716,-5.803489,-3.102829,1.009418,3.875207,6.557223',Running +'0.324449,0.324449,9.294422,8.241495,7.69208,10.776054,18.251406,18.251406,2.350479,-9.9444,-12.75668,-6.866942,14.966667,18.280817,10.930565,8.708305,15.714913,9.865818,-7.843425,-14.178483,-5.735113,15.182415,14.334509,7.278639,8.250719,11.597811,2.017969,-12.947723,-11.396957,9.948061,9.948061,9.920948,7.871988,12.022082,10.139822,10.139822,-10.137082,-12.051997,13.051865,13.051865,10.974554,8.155354,13.716102,13.639065,-3.813498,-12.095759,-7.820848,5.864028,14.476238,9.504875,9.55624,10.449732,11.726898,-9.556165,-15.711735,-3.411273,13.932744,13.083185,11.462801,13.562127,16.270687,1.89187,-14.95883,-14.95883,4.564164,17.189972,17.189972,11.900578,10.954086,11.096689,8.783094,-8.992978,-15.733413,-8.886673,6.25716,12.539314,9.165571,9.320882,12.30325,9.691327,-3.407567,-14.80802,-7.657809,8.6983,17.086964,13.693924,13.049645,13.049645,9.463268,9.463268,-16.100365,-16.100365,6.632394,18.456865,17.088282,13.885904,20.153603,11.827358,0.252433,-16.97901\n-0.977516,-0.977516,-6.963223,4.174181,7.438757,8.419487,-7.806994,-7.806994,-14.148073,-12.418863,-6.659298,-6.559108,-11.243203,-9.490077,10.52672,11.739676,-1.918931,-13.450843,-17.12057,-7.962962,-10.23794,-11.287213,-1.701976,10.97472,10.756626,-11.689101,-14.760359,-10.54773,-5.795265,-11.425516,-11.425516,8.326621,11.036232,1.589593,-12.629366,-12.629366,-14.668377,-9.111931,-10.628336,-10.628336,5.274351,12.206301,5.787815,-11.784723,-16.480213,-10.680851,-7.987037,-11.507031,-10.410299,7.162008,11.648915,2.568518,-12.611073,-16.517822,-9.127811,-8.698906,-10.458299,3.148409,11.56984,8.485546,-10.902053,-15.181946,-11.797371,-11.797371,-12.145396,-10.624514,-10.624514,10.083344,10.602358,1.899854,-10.814306,-14.965508,-10.235002,-4.561847,-10.596852,-3.015735,8.240778,10.792213,4.236235,-13.160543,-16.415216,-10.365513,-9.405773,-10.630095,-5.447393,12.736812,13.384834,13.384834,-17.251976,-17.251976,-13.48694,-13.48694,-15.157989,-9.866685,9.020572,16.3543,8.161517,-13.698463,-18.165749,-10.390357\n-1.260218,-1.260218,-2.498493,-5.04525,-5.781352,-5.435967,0.26667,0.26667,1.436994,2.699757,1.340441,-0.91862,-0.214094,-3.691414,-8.805396,-5.801014,-0.30441,1.456848,2.954526,1.935721,-1.137914,0.210097,-5.34905,-6.645765,-5.031197,2.976097,3.56135,3.813846,2.368289,1.754877,1.754877,-6.616955,-5.649341,-1.328603,1.433401,1.433401,4.340598,0.960676,-1.349177,-1.349177,-5.921836,-4.69064,-2.025604,0.406845,1.448781,3.681949,-1.243975,-0.420504,-2.558345,-6.365183,-5.018951,-0.680895,2.391193,-0.182109,0.215025,-0.905882,-1.039564,-5.902797,-6.871127,-3.267604,-0.579886,2.696334,6.182245,6.182245,0.569309,-2.040805,-2.040805,-4.734944,-3.569055,-4.072208,0.767332,0.292384,0.60925,0.548788,-2.842081,-2.901327,-3.331745,-3.03714,-1.794148,0.489456,-0.545272,2.482935,-0.544858,-4.252338,-5.075765,-7.347761,-2.665815,-2.665815,1.438428,1.438428,2.351981,2.351981,-5.505229,-4.956283,-6.624309,-5.527739,-4.600859,-0.547638,2.404931,3.354876\n-0.788358,-0.788358,2.434323,2.024163,-0.623229,-0.812329,-2.703323,-2.703323,0.439456,-2.197282,-1.57139,1.57139,3.776662,2.993631,-0.498051,-0.849616,-1.84039,-0.905547,0.239704,-0.4581,2.263867,4.343961,0.993438,-0.540665,-0.516694,-2.194619,-0.721774,-1.057359,0.910873,2.966997,2.966997,-0.67916,-0.487397,-1.427568,-1.432895,-1.432895,-0.303624,-0.269001,2.879106,2.879106,-0.130505,-2.018837,0.490061,-2.090747,-1.150577,-1.209171,1.486162,2.807195,3.731385,-1.411588,-0.46609,-0.484734,-0.775041,-0.314278,-0.44212,2.239896,3.859227,1.57139,-1.502142,-1.083993,-1.363647,1.566063,-1.414251,-1.414251,3.8539,2.082757,2.082757,0.24503,-0.039951,-0.996101,-0.6472,0.4581,-1.155904,1.275755,2.96966,1.001428,0.018644,-0.532675,-0.623229,-0.506041,-1.725865,-0.143822,1.086656,2.032153,2.631412,-1.203844,-1.203844,-1.203844,0.953487,0.953487,-0.431466,-0.431466,1.504805,4.117574,1.398271,-1.443548,-2.468947,0.098545,-2.442313,-0.404833\n0.316941,0.316941,-0.079901,0.322268,0.46609,-0.202416,1.134597,1.134597,-0.67117,-0.330258,-0.071911,-1.046705,-0.500714,0.977458,1.062686,-0.503377,0.740418,1.182537,-1.14525,-0.322268,-1.1053,1.606014,2.239896,-0.420813,-1.297062,0.769715,-0.926854,-0.455437,-0.47408,0.673833,0.673833,0.897557,-0.530011,0.42614,1.185201,1.185201,-0.756398,0.189099,0.356892,0.356892,1.235805,-0.013317,-0.133169,1.986876,-0.711121,-0.151812,-1.214498,-1.310379,0.615239,0.548655,-0.913537,1.329023,1.651291,-0.173119,-0.708457,-1.82441,-0.22106,1.078666,-0.157139,0.23704,2.490253,-0.838962,-0.857606,-0.857606,-0.572625,1.531439,1.531439,0.114525,-0.346238,1.496815,1.030725,0.327595,-0.729764,-1.488825,-0.22106,-0.396843,-1.185201,-0.005327,1.35033,1.166557,0.324931,-0.729764,-1.147914,-0.993438,-0.125179,-1.057359,0.157139,0.157139,-1.235805,-1.235805,0.149149,0.149149,-1.089319,-1.739182,0.247694,-1.257112,0.093218,1.941599,-0.002663,-0.68715\n0.588605,0.588605,6.535916,4.636931,1.118617,-3.108156,-7.449453,-7.449453,-5.300111,-3.217354,0.050604,2.892423,6.895472,7.726444,2.271857,-1.835064,-7.619909,-7.69981,-2.836492,1.118617,3.939128,6.706372,5.603736,0.567298,-3.64882,-7.492067,-5.406646,-1.041379,2.508897,5.944647,5.944647,2.439649,-1.265102,-6.844867,-7.603929,-7.603929,-2.908403,1.086656,6.735669,6.735669,3.973752,-0.143822,-5.747558,-8.328366,-4.650249,-0.873586,3.534295,6.442698,6.943412,1.901648,-1.526112,-5.244181,-7.782374,-3.164087,0.724437,4.985834,7.689157,6.3335,1.179874,-5.446597,-9.24723,-6.770293,-1.757826,-1.757826,6.312193,7.590612,7.590612,4.218782,-0.516694,-4.828694,-7.734434,-4.562357,-1.017408,3.326552,5.987261,5.824796,2.70865,-2.05346,-5.097695,-7.215076,-4.76211,-0.239704,3.888524,6.306866,6.725016,0.804339,-4.314663,-4.314663,-7.204423,-7.204423,1.813757,1.813757,5.933994,9.684023,5.918014,-0.873586,-7.244373,-8.13394,-4.716833,0.415486',Running +'0.951708,0.951708,6.227476,3.055575,3.055575,-12.628584,-12.628584,-10.702814,12.363288,15.816508,15.816508,15.491509,15.639135,4.684594,-10.113408,-14.589802,-3.92414,14.052027,11.089367,9.025152,16.919298,9.905085,-6.661223,-11.44476,-5.451899,11.730789,8.389153,6.912494,10.632747,5.210368,-5.110202,-12.685026,-8.872908,3.959648,9.35437,8.366066,8.366066,9.773332,1.015129,-11.880601,-12.690986,-12.690986,11.404491,11.404491,8.551016,7.727787,9.368789,6.23943,-8.643957,-10.708297,6.330823,13.044487,9.824709,10.405377,12.041463,3.109717,-8.556449,-7.078353,5.377193,12.608711,8.9354,8.544794,9.52527,4.563314,-13.377131,-10.246027,2.034367,2.034367,12.087966,9.38371,9.142379,-1.958199,-1.958199,-12.621309,-12.521095,8.405645,15.501257,12.023627,16.830214,14.406693,4.720339,-17.429821,-9.139596,14.224161,16.113108,10.914944,12.075464,12.484466,-2.998258,-18.16576,-12.453423,16.641033,13.859825,11.802778,16.072786,14.979664,-5.634761,-16.496962,-16.496962,-12.872236\n-1.304853,-1.304853,-1.22245,-6.194563,-6.194563,-3.34344,-3.34344,-5.95603,-13.185492,18.916409,18.916409,18.674904,-10.669864,-16.339867,-18.300135,-7.805737,-9.429537,-10.437023,4.932204,15.907438,4.775748,-14.448891,-19.16847,-10.709771,-7.03087,-10.410752,3.812698,13.564032,9.446201,-13.495461,-16.21536,-6.947951,-4.699709,-11.234664,-1.893018,12.983273,12.983273,-5.366408,-14.827593,-10.108083,-3.719702,-3.719702,-9.824696,-9.824696,8.868532,11.588933,2.966857,-13.725628,-16.488897,-9.150533,-11.112832,-7.701267,12.631899,10.468629,1.032768,-13.784058,-15.743752,-7.183931,-10.76917,-4.56702,11.57115,11.292494,-2.3152,-12.727171,-11.205008,-4.886158,-9.811202,-9.811202,-4.835707,9.294879,11.093921,-14.975064,-14.975064,-11.286797,-3.821934,-10.514705,-9.828511,14.855418,11.733843,-3.179225,-17.556068,-13.123859,-9.153594,-11.202561,-5.101673,17.182804,9.458655,-12.070278,-15.803288,-10.053343,-9.760351,-10.265914,-0.770721,11.775922,12.317326,-11.008355,-16.784014,-10.858133,-10.858133,-8.11065\n-0.944935,-0.944935,0.68235,3.135348,3.135348,-0.721326,-0.721326,-2.646603,-5.635094,-5.256568,-5.256568,-4.324119,-7.434704,-2.99789,0.86908,-1.364787,-3.441737,-4.608375,-4.044923,-2.587693,-2.574628,-0.462288,0.539762,-1.16946,-1.881403,-3.941868,-3.748829,-2.938645,-1.94573,-1.659864,-2.593354,0.138535,-1.878164,-4.382902,-4.131137,-2.000494,-2.000494,-1.432769,-2.250166,0.725786,-1.619198,-1.619198,-4.42753,-4.42753,-2.411433,-0.762442,0.818803,-4.043531,-1.283817,-0.916104,-4.04677,-6.932507,-4.398449,-1.1859,-0.193917,-1.246331,-0.344386,-0.604548,-3.041972,-5.506703,-4.077759,-2.899994,-1.925328,-0.971707,0.246361,-1.114973,-3.424986,-3.424986,-4.33324,-3.217035,-1.662579,-3.234568,-3.234568,-0.255264,-1.002021,-7.283043,-5.917182,-3.482083,-3.220382,-0.947836,-3.621877,-0.575726,-1.87001,-8.039314,-6.033027,-1.300563,-1.490154,-2.688376,-4.128627,-0.769796,-6.768965,-10.810654,-3.201964,-1.02831,-0.827659,-3.831738,-6.007497,-2.743873,-2.743873,-1.684402\n-0.386189,-0.386189,-0.346238,0.506041,0.506041,-0.287644,-0.287644,1.411588,1.715212,0.223723,0.223723,-0.649863,-0.676497,-1.15324,0.047941,-0.154476,2.940363,2.634075,0.977458,-1.177211,-3.257305,1.313043,0.631219,-1.070676,1.36631,3.720732,0.948161,-1.568726,-2.117381,-0.22905,-1.339676,-1.150577,0.660516,1.592697,1.235805,0.412823,0.412823,-0.926854,-0.300961,-1.616667,-0.67916,-0.67916,1.962906,1.962906,-0.151812,-2.935037,-0.295634,-1.475509,0.181109,-0.551318,2.951017,2.767244,-0.372872,-1.507469,-0.588605,-0.423476,-0.508704,0.543328,2.191956,2.567491,0.604586,-2.50357,-0.812329,-1.989539,-0.628556,0.569962,1.262439,1.262439,2.389045,-0.087891,-2.205272,-1.536766,-1.536766,-1.257112,0.013317,1.944262,2.70865,1.80044,-2.860462,1.648628,1.36631,-1.534103,0.844289,3.907167,2.06145,0.069248,-1.84039,-0.463427,-1.38229,-0.993438,-0.045277,1.933608,2.793878,-0.684487,-2.101401,-1.462192,-1.58737,-0.370209,-0.370209,1.422241\n0.308951,0.308951,0.298298,-0.130505,-0.130505,-0.226387,-0.226387,-0.913537,0.383526,-2.389045,-2.389045,0.796348,5.340062,1.299726,-0.346238,-0.830972,-2.181302,-1.13726,-1.025398,-0.905547,2.780561,2.407689,-1.123943,-0.071911,-2.0215,-1.36631,-0.825646,-0.498051,0.841626,3.15077,1.036052,0.194426,-1.070676,-1.8324,-2.413016,-1.643301,-1.643301,3.603543,1.531439,0.66318,-0.364882,-0.364882,-2.452966,-2.452966,-0.737754,0.269001,2.285174,4.013702,-0.394179,-0.988111,-3.028255,-2.000193,-0.234377,0.127842,2.703323,1.627321,0.002663,-1.552746,-2.343768,-1.454202,0.042614,0.43413,3.012274,2.2905,0.242367,-0.934844,-2.042807,-2.042807,-2.048133,-0.503377,0.644536,1.779133,1.779133,0.141159,-1.038715,-2.966997,-3.283938,-0.665843,1.621994,5.02312,0.902883,-0.538001,-1.797777,-2.583471,-1.321033,-0.761725,2.253213,4.112247,1.928282,0.19709,-1.57938,-2.863126,-4.138881,-2.239896,1.667271,4.375921,2.508897,0.01598,0.01598,-2.157332\n0.098545,0.098545,-1.408924,-2.868452,-2.868452,-0.01598,-0.01598,1.619331,5.00714,5.286795,5.286795,-1.992203,-8.030068,-7.484077,-2.500907,2.381055,5.124329,7.601265,6.011232,-0.740418,-5.398656,-8.927625,-3.462384,1.805767,4.719496,7.396185,5.649013,-1.006755,-5.193576,-6.032539,-3.374493,0.564635,2.956343,6.384104,6.13641,0.980121,0.980121,-5.84344,-4.498437,-0.958814,1.416914,1.416914,6.527926,6.527926,2.26653,-2.226579,-5.372023,-6.541243,-1.552746,1.976222,6.370787,6.807581,1.310379,-3.523642,-6.701046,-5.64635,-0.966804,3.126799,6.181688,6.416064,0.822982,-2.367738,-5.004477,-5.824796,-1.531439,2.319798,5.055081,5.055081,4.964527,1.454202,-1.82441,-4.871308,-4.871308,-1.099973,2.631412,6.221638,6.506619,2.652719,-4.298683,-6.626471,-6.844867,0.173119,4.122901,6.986026,6.37345,0.21307,-4.455823,-7.140502,-4.778091,-0.492724,3.504998,6.557223,5.23619,1.574053,-2.596788,-7.417492,-5.289458,-1.805767,-1.805767,2.596788',Running +'2.508158,2.508158,2.121694,0.212363,-2.896465,-6.943784,-1.811082,-1.811082,15.608168,12.777529,12.777529,15.279703,17.87113,7.282144,-11.105443,-18.75046,-6.897957,14.528393,13.673405,11.93766,14.995632,15.065659,4.545591,-11.963382,-16.149654,4.155659,17.730486,14.433231,13.074096,12.228392,10.898853,-0.406574,-11.754323,-3.793825,15.582005,12.989464,10.009818,11.772283,13.052048,13.052048,-9.698354,-9.698354,-14.339552,17.027529,10.025778,9.766462,9.766462,12.871105,12.683159,1.124744,-13.695587,-8.243735,12.035103,16.686363,11.994896,11.116037,14.624205,5.828662,-8.610432,-12.044117,9.491188,16.984625,11.413884,9.320138,14.869922,12.313164,-2.444895,-13.010259,0.114425,16.226536,15.238202,12.495211,17.06258,12.956586,12.956586,-3.530051,-9.25064,14.329541,14.329541,12.88262,12.88262,14.689592,9.468707,-3.465122,-13.551816,-3.457071,14.922811,12.547885,8.96375,10.637466,12.619151,-2.050131,-12.478333,-0.198715,14.83681,10.717827,8.744416,13.967677,11.156843,0.069358\n-0.745654,-0.745654,1.754981,0.050256,-3.884919,-5.225932,-11.365046,-11.365046,-2.551465,10.726593,10.726593,18.20107,-10.017751,-13.615963,-11.090064,-4.280715,-8.010672,-11.226499,5.036617,16.759829,10.879755,-10.904724,-15.718245,-12.454617,-7.3656,-12.933142,-9.966706,12.160725,12.947475,0.007999,-15.066652,-20.010952,-12.5539,-7.396555,-10.654593,5.28573,13.078116,10.080842,-3.797407,-3.797407,-16.373856,-16.373856,-8.510031,-9.822276,10.668242,12.677099,12.677099,8.144251,-12.021815,-16.50431,-7.442423,-10.590383,-12.57018,0.349771,15.70422,14.671986,-8.940564,-16.346668,-16.093546,-11.258378,-13.024256,-10.252576,10.48921,15.059791,6.531552,-13.077414,-17.964375,-12.26307,-11.625957,-10.271043,8.130055,16.039444,6.896437,-11.326088,-11.326088,-16.81567,-8.274835,-11.548886,-11.548886,16.659636,16.659636,4.715959,-14.114046,-18.00786,-10.984993,-12.924764,-10.9929,5.451669,14.531099,12.911888,-12.741856,-17.735188,-14.202146,-11.796761,-10.785302,4.642765,13.771559,6.95225,-12.034172,-15.368336\n1.549042,1.549042,-2.057386,-1.280972,0.599143,-0.41006,-2.759479,-2.759479,-6.336146,-6.624529,-6.624529,-7.174676,-1.215846,-6.856636,-0.438385,1.842918,-1.484577,-6.613111,-5.072297,-3.174924,-2.877224,-3.348883,-1.850503,4.236734,-1.075116,-5.659291,-7.113671,-1.941216,-0.37464,-0.59234,-4.259473,-0.736695,0.413304,-0.941651,-6.603615,-4.288547,-1.950223,-1.81813,-0.997936,-0.997936,-0.852355,-0.852355,-0.39036,-6.254336,-3.039408,-1.461438,-1.461438,-0.161601,-1.683887,-1.124104,5.972768,-2.122692,-3.488022,-3.614708,-2.872528,-1.370718,-1.667041,-0.598505,2.713474,-0.694104,-1.122397,-6.324373,-4.105198,-2.732993,-3.006644,-5.582769,0.513781,1.783429,-3.773597,-11.342987,-4.943272,-2.808385,-0.556238,-2.135503,-2.135503,-0.953281,-0.71745,-10.723257,-10.723257,0.160687,0.160687,-1.61695,-6.492072,2.130156,-0.750219,-4.093048,-8.965458,-5.60506,-2.158383,-1.381493,-4.751796,2.816613,0.425361,0.015712,-7.444057,-6.335711,-2.06551,-1.304951,-2.310304,-0.587644\n0.380862,0.380862,-1.09731,-0.295634,-1.379627,-0.202416,0.982784,0.982784,2.402362,1.949589,1.949589,-2.492917,-2.128035,0.22905,-0.716447,-0.617902,0.743081,4.317327,1.635311,-1.265102,-2.165322,-1.323696,0.058594,-0.410159,-1.025398,2.634075,1.837727,0.553982,-2.199946,-1.696568,-0.644536,1.030725,-1.616667,2.682016,3.864554,0.69514,-0.042614,-2.311807,-1.083993,-1.083993,-1.025398,-1.025398,-0.799012,2.96167,1.147914,-0.748408,-0.748408,-1.712549,-1.438221,-0.492724,0.375536,-2.114718,3.350523,0.516694,1.094646,-1.060022,-1.84039,-0.609912,-0.487397,-0.276991,3.747365,1.558073,-0.013317,-0.732428,-2.367738,-2.671363,-0.913537,-0.319605,3.560929,3.286602,1.459528,-0.388852,-1.651291,-1.147914,-1.147914,-3.028255,0.335585,2.410352,2.410352,0.290308,0.290308,-1.624657,0.010653,-1.499479,-0.775041,1.621994,3.907167,1.022735,-2.152005,-0.479407,-2.772571,-2.080094,-2.389045,3.555602,2.788551,0.799012,0.657853,-2.897749,-0.70313,-1.989539\n-0.436793,-0.436793,0.644536,0.167792,0.463427,-0.061258,-1.273092,-1.273092,-1.531439,-1.539429,-1.539429,0.298298,4.50909,1.8324,-0.391516,-0.681823,-1.001428,-2.101401,-0.332922,-1.036052,1.118617,4.921913,-0.359555,0.037287,0.279654,-1.917628,-2.639402,-2.221253,0.577952,4.679545,3.587563,-0.343575,-0.844289,-3.089512,-0.665843,-0.852279,-1.765816,0.388852,3.15077,3.15077,-0.071911,-0.071911,-0.735091,-2.2905,-0.838962,0.053267,0.053267,1.273092,3.526305,0.68715,-0.599259,0.942834,-2.090747,-1.598024,-1.028062,0.202416,3.973752,0.527348,-0.24503,-0.692477,-1.15324,0.380862,-0.607249,0.316941,2.743274,4.277376,-0.106535,-0.740418,-2.122708,-1.123943,-1.80044,-0.47408,1.307716,3.603543,3.603543,1.134597,-1.536766,-3.169413,-3.169413,-0.988111,-0.988111,3.614197,4.28803,-0.24503,0.402169,-2.01351,-1.930945,-0.92419,0.005327,1.518122,4.389238,-0.314278,0.575289,-1.954915,-0.439456,-1.318369,-0.255684,1.917628,3.193384,1.427568\n0.591269,0.591269,-0.961478,-1.371637,-1.403597,-0.452773,3.065542,3.065542,7.140502,2.74061,2.74061,-2.444976,-7.025977,-6.035202,-2.68468,0.439456,3.273285,6.522599,7.057937,0.069248,-4.599644,-7.686493,-5.704944,-1.305053,1.797777,5.47323,8.810436,5.108348,-3.702088,-5.952638,-8.514802,-4.842012,1.704558,5.2282,8.043385,6.36546,0.367545,-4.120237,-7.119195,-7.119195,-1.989539,-1.989539,1.656618,7.673176,4.245416,-2.588798,-2.588798,-5.641023,-7.777048,-5.872737,0.053267,2.413016,6.202995,8.317713,2.809858,-3.19871,-7.902226,-6.312193,-1.78446,1.550083,5.715598,7.902226,5.057745,-2.072104,-6.093796,-8.709229,-4.892615,1.086656,5.534488,7.902226,5.91535,0.471417,-5.555795,-8.067355,-8.067355,-5.246844,3.118809,6.55456,6.55456,0.591269,0.591269,-5.342725,-7.263017,-4.647585,1.273092,4.093604,6.927432,5.377349,0.67916,-3.939128,-8.482842,-5.063071,-0.439456,4.426525,7.505384,5.593082,0.143822,-5.071061,-6.509283,-4.52507',Running +'-0.071819,-0.071819,-0.360728,0.084804,0.33012,1.520388,1.054803,1.054803,2.669287,2.669287,0.241248,0.693219,0.596907,0.168322,-0.963803,2.030609,-0.164152,3.1221,3.078443,1.590735,1.245053,4.770617,1.283387,1.510565,0.657993,0.210542,-0.323116,2.100726,1.306844,3.337402,1.671548,1.031239,1.587938,1.587938,1.727741,1.224472,1.224472,-0.041959,-0.556788,0.627045,2.160997,4.227433,4.64558,2.441167,0.917247,0.996161,5.914561,2.079056,2.267154,-0.308235,-0.840739,-1.022169,2.987454,-0.036289,2.56056,2.034876,0.718207,0.234332,1.203198,3.774588,3.774588,0.898081,-0.783369,-0.783369,-1.057654,-1.057654,1.189106,2.377179,3.876137,1.838332,0.771687,0.185015,1.673856,2.364064,2.65243,0.776682,-0.965353,-1.65164,-0.947556,0.802671,3.799607,3.460727,1.631838,0.663969,0.55455,1.317516,1.911601,1.655985,0.831549,-0.759969,-0.610214,-1.077815,-0.930978,-0.930978,-0.668829,0.644735,1.251466,1.251466,0.991489,0.413049\n0.354963,0.354963,-2.704719,-3.349246,-1.123242,0.162338,2.719252,2.719252,4.71279,4.71279,3.671865,2.67675,-1.044476,-3.679206,-5.1274,-4.886562,-1.668332,1.463609,3.909837,5.477459,6.583079,6.395728,2.412671,1.036018,-4.03393,-5.177011,-4.656974,-3.873985,0.646467,1.743307,4.505994,5.639978,6.284126,6.284126,0.786773,-1.726452,-1.726452,-4.8924,-5.622796,-5.483468,-4.52492,0.383594,3.540721,6.665066,6.787042,6.30686,4.907622,-0.563539,-2.284463,-4.002618,-4.790087,-4.899806,-3.842478,-0.460367,2.116913,4.124985,5.464165,5.945933,4.97835,0.797652,0.797652,-1.842825,-3.962835,-3.962835,-3.865472,-3.865472,-2.823108,-1.298733,1.290224,4.051337,5.442279,5.521275,3.693975,1.665685,-1.96161,-3.824459,-4.430525,-4.629517,-4.531491,-3.080154,-0.613978,2.466768,4.797683,4.727952,3.723556,1.787315,-0.436391,-1.751811,-2.067515,-3.489516,-3.490464,-2.312396,-1.744345,-1.744345,-1.070544,-0.509034,2.776207,2.776207,3.895162,3.532764\n0.275074,0.275074,0.892838,0.010835,0.020116,0.1273,-0.197228,-0.197228,1.195036,1.195036,1.152836,0.966633,0.584552,0.544892,-0.360961,-0.871288,-1.045528,-0.712488,-0.752894,-0.63227,0.146363,0.362529,0.21022,0.469166,0.33135,0.795423,-0.602457,-1.696882,-1.444682,-0.936443,-1.411,-0.830218,0.694052,0.694052,0.412401,0.385732,0.385732,-0.475122,-0.034666,-0.892091,-1.528987,-1.181528,-1.723942,-1.690925,0.143781,1.649925,-0.448001,0.063169,0.775798,0.298758,0.445095,-0.319818,-1.278372,-0.441196,-1.1946,-1.201687,-0.913708,-0.259226,0.00014,0.446009,0.446009,0.990114,0.411749,0.411749,-0.093918,-0.093918,-1.103621,-1.18543,-1.276635,-0.522697,-0.30724,-0.17722,0.362714,-0.105192,-0.077074,-0.333471,-0.619514,-0.221779,-0.676527,-1.031561,-1.56106,-0.658636,0.333262,0.932631,0.720372,-0.119911,-0.986953,-1.669745,-1.311251,0.138654,0.625513,-0.016979,-0.041683,-0.041683,-0.076154,-1.671019,-0.186459,-0.186459,0.530786,0.447459\n-1.033389,-1.033389,0.066584,0.599259,0.66318,0.226387,0.388852,0.388852,-0.090555,-0.090555,0.143822,-0.034624,0.095881,-0.101208,-0.346238,-0.042614,0.673833,1.443548,1.238468,0.165129,-0.298298,0.109198,0.087891,0.218397,-0.415486,-0.066584,0.002663,0.290308,0.697804,0.974794,-0.218397,-0.42614,-0.383526,-0.383526,-0.287644,-0.958814,-0.958814,-0.543328,-0.183773,0.404833,1.171884,1.901648,1.070676,-1.052032,-0.921527,0.420813,0.242367,0.005327,-0.65519,-1.544756,-0.194426,-0.215733,0.143822,1.046705,1.089319,1.206508,-0.00799,-0.322268,-0.242367,-0.279654,-0.279654,-0.953487,-0.343575,-0.343575,0.250357,0.250357,0.183773,0.41815,1.313043,0.910873,0.231713,-0.420813,-0.095881,-0.886903,-0.439456,-1.020072,-0.407496,0.103872,0.263674,0.748408,0.490061,0.921527,1.030725,0.828309,-0.045277,-0.583279,-0.980121,-1.355657,-0.807002,-0.295634,0.394179,-0.010653,0.087891,0.087891,0.388852,0.210406,0.870923,0.870923,1.600687,-0.170456\n0.743081,0.743081,-0.271664,-0.199753,-0.279654,-0.942834,-0.324931,-0.324931,0.484734,0.484734,0.873586,0.484734,0.508704,0.22106,0.005327,-0.343575,-0.620566,-0.996101,-0.45011,-0.082565,0.098545,0.431466,0.388852,0.175783,0.24503,0.03196,0.138495,0.050604,-0.412823,-0.740418,0.069248,-0.071911,0.146486,0.146486,0.370209,0.500714,0.500714,0.540665,0.130505,-0.175783,0.01598,-0.785695,0.119852,0.218397,-0.274327,-0.005327,0.22905,0.066584,-0.047941,0.506041,0.21307,0.178446,-0.410159,-0.495387,-0.681823,0.077238,0.026634,0.103872,0.300961,0.194426,0.194426,0.298298,0.274327,0.274327,0.093218,0.093218,-0.519358,-0.559308,-0.870923,-0.567298,-0.178446,-0.047941,0.290308,0.689814,0.804339,0.974794,0.825646,0.053267,-0.133169,-0.564635,-0.964141,-1.499479,-1.201181,-0.468754,0.167792,0.700467,0.852279,0.817655,0.740418,0.506041,0.420813,0.396843,-0.298298,-0.298298,-0.340912,-0.948161,-1.598024,-1.598024,-0.788358,0.042614\n-0.825646,-0.825646,0.122515,0.556645,1.16123,1.661945,1.566063,1.566063,-0.002663,-0.002663,-0.977458,-1.496815,-2.269193,-1.944262,-0.545991,0.428803,1.906975,2.596788,2.114718,1.861697,0.68715,-1.11329,-2.287837,-2.183965,-2.418342,-1.5634,0.133169,1.182537,2.679353,2.679353,2.269193,1.528776,0,0,-2.49558,-2.285174,-2.285174,-1.869688,-0.870923,0.167792,1.182537,3.054888,3.19871,2.578145,1.454202,-0.668507,-2.543521,-2.761917,-2.157332,-1.504805,-0.807002,-0.055931,0.783032,2.338441,2.799205,1.906975,1.254448,0.415486,-1.022735,-2.492917,-2.492917,-1.582043,-1.028062,-1.028062,0.165129,0.165129,1.217161,1.789786,2.269193,2.205272,1.118617,0.101208,-1.504805,-1.944262,-2.205272,-1.898985,-1.195854,-0.186436,0.604586,1.59536,2.269193,2.572818,1.760489,-0.01598,-0.825646,-1.608677,-1.853707,-1.443548,-1.142587,-1.070676,-0.495387,0.511368,0.836299,0.836299,1.115953,1.717875,1.58737,1.58737,0.532675,-0.348902',Walking +'0.648833,0.648833,0.076985,-0.295492,-0.592993,-0.328286,-0.424485,1.160181,1.382649,2.229682,3.141533,1.628256,0.584992,0.584992,0.869617,4.425835,4.425835,4.046844,-0.894096,-0.894096,-1.154973,0.009711,0.569905,1.963201,1.623866,3.16388,1.752458,0.624253,0.508751,1.063957,1.384508,1.080295,1.645935,0.55154,-0.836862,-0.81741,-1.137136,-1.137136,-0.767276,-0.179611,2.449396,1.66743,1.66743,1.146188,0.326991,0.458335,0.628074,0.628074,1.458962,0.067084,0.067084,-0.591332,-0.591332,-0.81609,-1.134492,-0.120427,0.324274,3.078075,1.170404,1.430415,0.490006,0.193026,0.135268,0.774517,1.379387,0.615356,-0.304136,-0.487883,-0.980545,-1.099127,-0.721833,0.406535,1.697267,1.728429,1.680453,1.176704,0.437665,-0.026921,0.385851,0.392502,0.392502,1.626991,0.32301,-0.089681,-0.750753,-0.750753,-1.104029,-0.19549,-0.19031,-0.13795,0.28464,1.116096,0.384229,0.204278,-0.02522,0.003306,0.463057,0.969757,0.191909,0.805618\n-0.996722,-0.996722,-0.897264,-1.136712,-0.673471,-0.580514,-1.627384,-3.008565,-0.930993,-0.950508,2.758785,4.927353,6.728549,6.728549,5.903554,-0.509042,-0.509042,-2.819466,-5.229754,-5.229754,-5.735027,-4.819761,-1.628919,0.126008,2.452419,3.467291,3.677113,4.460312,4.877146,2.588979,0.09249,-0.842978,-1.006223,-2.232788,-1.628379,-2.608339,-3.179195,-3.179195,-1.323883,0.335786,0.966908,1.235313,1.235313,3.88869,3.694164,2.698508,1.179488,1.179488,-1.252036,-1.477353,-1.477353,-1.968161,-1.968161,-3.429509,-3.253014,-1.820738,-0.092552,0.958594,1.480214,3.102595,3.224113,3.304261,2.518279,1.143425,0.244818,-0.903204,-1.322807,-1.509101,-3.437396,-3.2553,-2.980691,-1.235842,0.07265,0.304706,1.790125,3.045477,3.96483,3.599259,1.766099,0.174535,0.174535,-0.631885,-1.839187,-1.587466,-2.904742,-2.904742,-2.231436,-1.887714,0.009343,0.939722,-0.215429,0.728873,1.76194,2.488247,2.298177,2.09418,1.440038,0.355625,-0.758496,-0.750379\n-0.644136,-0.644136,0.970515,-0.164896,0.252778,1.111926,0.47463,0.2335,0.653072,0.40287,-0.460936,-1.255512,-1.588459,-1.588459,-1.271321,-0.976175,-0.976175,-1.572577,-0.281785,-0.281785,0.626797,0.257706,0.983505,0.185937,-0.651203,-0.670747,-1.182303,-0.557219,-0.458343,-0.271947,-0.516802,-0.645382,-1.833037,-0.684593,-0.34592,0.435308,0.367789,0.367789,-0.103917,0.277417,-0.407493,-0.752796,-0.752796,-0.961294,-0.929655,-0.243208,0.073539,0.073539,0.087013,-0.870549,-0.870549,1.039619,1.039619,0.956839,0.898695,-0.125451,-0.545156,-0.835852,-1.30484,-1.341426,-1.006335,-0.842609,-0.173024,0.092821,0.080652,-0.946403,-1.109648,0.007721,0.587864,0.395201,-0.400551,-0.383876,-1.010056,-1.105387,-1.152403,-0.980065,-0.946321,-0.384363,0.119895,0.299044,0.299044,-0.114022,-0.871721,-0.212197,0.357123,0.357123,0.83795,0.281904,-1.99687,0.099059,0.050828,-0.792339,-1.115731,-1.330814,-1.014326,-0.67379,-0.239165,-0.611993,-1.141962,-0.478014\n-0.101208,-0.101208,-0.407496,-0.412823,-0.135832,-0.079901,0.157139,0.9162,1.217161,0.364882,0.226387,-0.090555,-0.660516,-0.660516,-0.47408,-1.025398,-1.025398,-1.297062,-0.506041,-0.506041,0.029297,0.061258,0.87625,1.408924,0.780368,0.745744,-0.809665,0.00799,-0.274327,-0.506041,-1.060022,-0.956151,-1.004091,-0.340912,-0.039951,0.125179,0.074574,0.074574,0.881576,1.363647,0.620566,0.799012,0.799012,0.071911,-0.471417,0.079901,-0.476744,-0.476744,-0.010653,-0.836299,-0.836299,0.367545,0.367545,0.282318,0.183773,0.636546,0.743081,1.020072,1.033389,0.65519,-0.162466,-0.468754,-0.053267,-0.183773,-0.226387,-1.515459,-1.254448,-0.335585,-0.284981,0.372872,0.905547,1.081329,1.419578,1.57938,1.329023,0.737754,-0.48207,-0.415486,-0.103872,-0.388852,-0.388852,-0.684487,-0.89223,0.239704,-0.037287,-0.037287,0.479407,0.732428,0.588605,1.179874,1.257112,1.715212,1.214498,0.402169,-0.463427,-0.330258,-0.45011,-0.942834,-1.060022,-0.476744\n0.055931,0.055931,-0.157139,0.087891,0.037287,-0.077238,-0.111862,-0.063921,0.085228,0.292971,0.292971,0.22106,-0.002663,-0.002663,-0.085228,0.402169,0.402169,0.737754,0.122515,0.122515,-0.055931,-0.21307,-0.625893,-0.223723,-0.231713,-0.087891,-0.191763,-0.383526,-0.223723,0.186436,0.580615,0.588605,1.163894,0.785695,0.484734,0.295634,-0.063921,-0.063921,-0.335585,-0.607249,-0.545991,-0.463427,-0.463427,-0.071911,-0.186436,-0.263674,0.119852,0.119852,0.617902,0.649863,0.649863,0,0,0,-0.03196,-0.154476,-0.452773,-0.841626,-0.548655,-0.170456,-0.178446,-0.127842,-0.114525,0.175783,0.372872,0.854943,0.692477,0.468754,0.133169,0.085228,-0.215733,-0.567298,-0.711121,-0.657853,-0.495387,-0.106535,-0.149149,-0.069248,0.093218,0.322268,0.322268,0.807002,0.759061,0.303624,-0.010653,-0.010653,-0.19709,-0.146486,-0.271664,-1.006755,-0.593932,-0.415486,-0.191763,-0.066584,0.077238,0.077238,0.170456,0.484734,0.628556,0.242367\n-0.03196,-0.03196,-0.343575,-0.308951,-0.090555,-0.042614,0.378199,0.729764,1.542093,2.25055,2.434323,1.978886,0.607249,0.607249,-1.022735,-3.113483,-3.113483,-2.919056,-1.118617,-1.118617,-0.282318,0.665843,1.640638,1.827074,2.351758,2.167985,1.78446,1.049369,-0.274327,-1.257112,-1.619331,-1.568726,-1.518122,-1.347667,-1.243795,-0.964141,-0.207743,-0.207743,0.945497,1.294399,1.539429,1.59536,1.59536,0.897557,0.316941,-0.500714,-1.091983,-1.091983,-1.542093,-1.033389,-1.033389,-1.091983,-1.091983,-0.44212,0.154476,0.751071,1.195854,1.416914,1.504805,1.238468,0.870923,0.138495,-0.500714,-0.980121,-1.147914,-0.873586,-0.868259,-1.139924,-0.868259,-0.279654,0.311615,0.788358,1.15324,1.235805,1.392944,1.13726,0.759061,-0.026634,-0.940171,-1.267765,-1.267765,-1.414251,-1.278419,-1.155904,-0.226387,-0.226387,0.085228,0.378199,0.69514,0.90022,0.854943,0.838962,0.783032,0.538001,0.01598,-0.399506,-0.820319,-1.12128,-1.318369,-1.310379',Walking +'-0.697643,-0.697643,-0.199924,-0.424592,-0.277881,1.092497,0.337352,0.782398,0.819968,2.200969,-0.073919,-0.073919,0.669104,0.669104,-0.174694,-1.005758,4.321427,4.321427,0.680105,3.748891,2.756574,0.937635,0.128171,4.046029,3.138552,1.007278,0.553134,-1.242219,-0.668222,-0.777853,1.857566,2.121561,2.679336,0.934098,0.047952,3.373526,2.408546,0.522694,-0.378783,-1.020135,-1.422849,-0.779518,-0.779518,-0.178611,-0.178611,0.672678,0.672678,-0.266131,-0.022198,2.622783,2.079965,0.499869,-0.008108,-0.981617,-0.753877,-0.821098,1.728583,1.373051,1.313277,0.876037,0.419487,-0.359525,0.182795,2.507815,1.611325,0.157459,-0.507293,-1.081545,-0.758739,0.646735,0.128777,1.273377,0.940248,0.940248,-0.24744,-0.24744,-0.256805,1.110296,0.266392,0.226918,-0.874314,-1.149666,-0.610688,-0.066822,0.295325,-0.274812,0.141771,0.073441,0.992962,0.754915,0.337602,-0.118958,0.351981,0.524963,0.166454,1.475275,-0.689696,-0.43609,0.520123,0.426016\n-0.561693,-0.561693,-0.820724,-1.01451,-2.683653,-2.053126,-1.257021,1.658773,3.411195,4.747445,3.996944,3.996944,0.720746,0.720746,-2.80171,-4.512717,-1.782117,-1.782117,-0.064636,1.88364,4.549696,6.446741,6.547764,5.461779,1.428778,-0.8945,-1.939149,-4.348788,-4.223357,-2.659372,-1.246891,0.964817,3.428905,6.121451,5.828553,4.661483,1.443869,-0.554676,-1.116308,-3.186397,-2.849882,-1.780162,-1.780162,0.059804,0.059804,2.263544,2.263544,2.969368,3.261817,2.868618,1.791051,0.656799,-1.442738,-2.494848,-3.478306,-3.24655,-1.913972,-0.751426,0.745117,1.714578,3.186431,3.837673,3.619302,1.998162,0.240276,-0.997908,-2.496721,-3.202418,-3.382106,-1.844551,-0.395646,1.198757,1.795719,1.795719,2.904393,2.904393,2.247593,0.702779,-0.594674,-1.297439,-1.37941,-2.693468,-2.931121,-0.739959,0.422832,1.598995,2.549044,3.51942,1.407688,-1.18322,-2.573355,-3.140144,-2.582695,-1.116484,2.295455,4.914747,4.033065,3.227962,-0.173106,-2.884886\n-0.950458,-0.950458,1.146612,2.215659,0.346236,0.492739,1.934319,0.282682,0.931845,0.27905,0.795881,0.795881,0.831447,0.831447,1.485528,1.095128,-0.209562,-0.209562,-0.282129,-0.827448,-0.836867,-1.802106,-0.798751,-0.477922,0.218833,0.428616,0.78588,-0.019212,0.015547,-0.42635,-0.514053,-0.864651,-0.816724,-1.347515,-1.06501,-0.513158,0.211452,0.316425,0.782409,0.573617,0.587822,0.466368,0.466368,-0.059034,-0.059034,-0.60973,-0.60973,-0.614679,-0.340441,0.418697,0.55572,0.033788,-0.267502,0.203465,0.391079,0.576992,0.206727,-0.70056,-0.976699,-0.928226,-0.7497,-0.65915,0.358662,0.338493,0.175057,-0.018196,-0.144018,0.470172,0.838907,0.364031,-0.405458,-0.756063,-0.76509,-0.76509,-0.888766,-0.888766,-0.785596,0.265305,1.079468,0.632571,0.536842,0.122326,-0.127955,-0.174186,-0.21572,-0.798337,-0.991522,-0.629037,0.245542,-0.005919,0.060904,-0.736408,-2.718994,-2.252819,-0.835321,0.859659,0.109259,-0.131619,2.063172,2.8125\n-1.158567,-1.158567,-0.479407,-0.149149,-0.002663,0.4581,0.681823,0.575289,0.258347,-0.711121,0.159802,0.159802,-0.407496,-0.407496,-0.005327,-0.327595,0.476744,0.476744,0.961478,1.57139,0.569962,-0.673833,-0.492724,0.01598,-0.897557,-1.12128,-1.030725,-0.234377,-0.127842,-0.111862,0.415486,1.313043,1.688578,0.394179,-0.303624,-0.26101,-0.356892,-0.70313,-0.511368,-0.279654,-0.346238,0.095881,0.095881,0.514031,0.514031,0.444783,0.444783,-0.316941,-0.074574,-0.149149,-0.548655,-0.263674,-0.90821,-0.322268,-0.039951,-0.085228,0.095881,0.122515,1.12927,1.182537,0.255684,-0.151812,0.250357,-0.055931,-0.753734,-0.761725,-0.45011,-0.034624,0.410159,0.149149,0.098545,0.407496,0.745744,0.745744,-0.183773,-0.183773,-0.074574,0.074574,0.026634,-0.266337,-0.47408,-0.247694,0.269001,1.201181,1.062686,1.209171,1.081329,1.707222,1.57139,1.741846,2.676689,1.246458,1.299726,0.865596,0.727101,0.69514,0.271664,1.821747,1.073339,0.615239\n0.727101,0.727101,-0.410159,-0.282318,-0.300961,-0.351565,-0.037287,-0.010653,0.167792,0.383526,0.263674,0.263674,-0.034624,-0.034624,0.005327,-0.143822,-0.356892,-0.356892,-0.111862,-0.700467,0.292971,0.271664,0.093218,-0.202416,0.162466,0.22106,0.479407,0.340912,-0.055931,-0.138495,-0.303624,-0.601922,-0.26101,0.125179,0.159802,-0.165129,0.274327,-0.03196,0.079901,0.069248,-0.002663,-0.175783,-0.175783,-0.303624,-0.303624,0.021307,0.021307,0.194426,0.071911,0.018644,0.178446,0.308951,0.250357,0.021307,-0.093218,-0.215733,-0.292971,-0.159802,-0.479407,-0.322268,-0.109198,0.026634,0.090555,0.218397,0.319605,0.420813,0.26101,-0.170456,-0.181109,-0.340912,-0.021307,-0.311615,-0.46609,-0.46609,0.223723,0.223723,0.098545,-0.002663,-0.071911,0.082565,0.399506,0.399506,-0.029297,-0.370209,-0.612576,-0.641873,-0.793685,-0.990775,-0.756398,-0.074574,0.295634,0.607249,0.591269,0.077238,-0.292971,0.218397,0.284981,-0.274327,-0.838962,-0.199753\n-1.376964,-1.376964,0.130505,0.189099,0.471417,0.833636,1.230478,1.467518,0.998765,0.380862,-1.134597,-1.134597,-1.888331,-1.888331,-1.725865,-0.817655,1.225151,1.225151,1.8324,2.612768,1.896321,1.422241,0.223723,-1.760489,-2.538194,-1.954915,-1.781796,-1.139924,-0.266337,0.716447,1.518122,2.125371,2.101401,1.451538,-0.106535,-1.198518,-2.077431,-1.523449,-1.360983,-0.791022,-0.292971,0.399506,0.399506,1.062686,1.062686,1.195854,1.195854,0.713784,0.215733,-0.775041,-1.198518,-1.32636,-1.195854,-0.996101,-0.65519,0.316941,0.799012,1.174547,1.566063,1.507469,1.251785,0.535338,-0.830972,-1.747172,-1.645964,-1.331686,-1.155904,-0.572625,-0.133169,0.966804,1.339676,1.755163,1.395607,1.395607,0.002663,0.002663,-0.644536,-1.193191,-1.257112,-1.09731,-0.660516,-0.247694,0.394179,1.006755,1.267765,0.945497,0.506041,-0.506041,-1.499479,-1.845717,-1.379627,-0.601922,0.46609,1.321033,1.789786,0.548655,-0.191763,-1.142587,-1.781796,-1.259775',Walking +'-0.647511,-0.647511,-0.156391,-0.821278,0.155385,0.788476,0.837563,0.837563,1.465082,1.972396,0.031506,0.465655,1.080424,-0.055573,-0.055573,-0.99305,-0.236076,2.589749,4.350516,3.56564,0.858249,-0.238879,0.940568,6.107978,2.474194,0.822024,-0.484125,-0.955225,0.375483,3.938551,3.155385,4.265726,1.904453,-0.230096,0.869032,5.036377,4.51992,3.811814,1.977992,-1.111164,-0.426891,2.252027,7.581589,4.354512,2.353241,2.353241,0.100461,0.100461,1.385485,2.550327,1.201694,-0.348115,-0.712949,-1.107348,-0.951753,-0.118282,2.931057,1.844184,2.208016,0.064951,0.121177,0.591508,1.603709,1.083258,0.356899,0.356899,-0.919128,-0.469703,-0.705623,2.131406,1.153397,1.656241,0.153462,-0.517368,0.452125,0.452125,0.296718,0.296718,-0.740987,-0.844143,-0.844143,-0.537643,0.009528,1.275325,0.517498,1.025376,0.168334,-0.028193,1.122655,2.213753,0.414246,0.387208,-0.807649,-1.075194,-0.527667,2.955047,1.763218,2.393665,0.507058,-0.208094\n-0.111979,-0.111979,-0.159968,-2.562588,-2.037382,-1.041242,-0.199299,-0.199299,4.169788,4.275059,4.266666,1.758814,-1.858459,-5.35043,-5.35043,-5.852324,-5.239586,-2.109108,1.073849,5.015169,6.082516,7.29166,6.869672,1.700055,-0.608278,-3.294899,-6.154557,-6.763671,-4.484367,-2.859764,0.202146,2.860693,5.858443,6.905451,6.756876,5.147969,-0.545046,-3.097156,-6.509284,-8.117927,-7.593039,-5.089964,1.31721,4.877759,7.284457,7.284457,5.208993,5.208993,1.855877,-0.381092,-1.394565,-2.607892,-3.224026,-3.813803,-2.907971,-1.740901,-1.483471,1.693611,4.516392,5.186828,3.805106,2.595059,0.808495,-0.542498,-2.640677,-2.640677,-5.041083,-2.221125,-0.292643,-0.002933,0.568069,1.860321,3.394431,3.658947,2.639916,2.639916,-1.340784,-1.340784,-3.587731,-3.556764,-3.556764,-2.235907,-0.367289,0.535015,1.497876,3.361449,3.509057,3.39878,2.102357,0.123979,-1.479541,-3.986257,-5.272739,-4.38263,-2.680139,-0.312267,1.940304,3.873044,4.878553,4.009547\n-0.739682,-0.739682,0.441646,0.269299,-0.658101,-0.812935,0.016276,0.016276,-0.378532,-0.114252,0.127407,0.205699,1.005594,1.47089,1.47089,0.998772,-0.366577,-0.553893,-1.294874,-1.955319,-1.770589,0.183727,0.614547,0.047871,-0.25617,-0.137921,-0.352378,0.52802,0.131141,-1.441207,-1.034285,-1.514296,-1.982638,-1.499664,-0.310111,-0.801309,-0.356185,-0.057326,0.341333,0.973709,0.280142,-0.990874,-1.09286,-1.623583,-2.255687,-2.255687,-1.644396,-1.644396,0.420051,-0.104085,0.155903,-0.338332,0.579168,0.323009,0.214851,-0.25919,-0.570118,-0.632698,-0.960651,-0.980922,-0.952668,-0.498243,-0.315307,0.35659,0.244752,0.244752,0.268182,0.27311,0.002576,-0.609548,-0.552466,-0.469794,-0.612104,-0.682009,-0.483767,-0.483767,-0.488647,-0.488647,0.089234,0.093265,0.093265,0.517716,-0.23476,-0.87282,-0.764919,-0.658335,-0.866174,0.365506,0.578391,-0.131072,-0.210106,-0.41234,-0.80186,-1.019784,-0.885421,-1.101002,-0.86432,-0.650505,-0.027739,0.090067\n0.202416,0.202416,-0.615239,0.122515,0.319605,1.086656,0.657853,0.657853,-0.447447,-0.061258,0.074574,-0.066584,0.114525,-0.223723,-0.223723,-0.127842,0.074574,0.732428,0.657853,0.913537,-1.091983,0.026634,0.175783,-0.133169,-0.607249,-1.339676,-0.88424,0.165129,0.292971,0.964141,1.805767,0.817655,0.069248,-1.014745,0.764388,0.082565,-0.599259,-0.431466,-1.321033,0.146486,0.125179,0.250357,1.720539,1.118617,0.852279,0.852279,-0.743081,-0.743081,-0.047941,-1.158567,-1.102636,-0.897557,-0.388852,-0.047941,0.284981,0.615239,0.577952,1.033389,1.185201,-0.351565,0.037287,-0.282318,-0.569962,-0.857606,-0.519358,-0.519358,-0.117188,0.412823,0.415486,0.88424,0.596595,0.881576,-0.181109,-0.540665,-0.404833,-0.404833,-0.807002,-0.807002,-0.583279,0.199753,0.199753,0.631219,0.490061,0.87625,0.721774,0.452773,-0.367545,0.170456,-0.615239,-0.974794,-0.410159,-0.19709,-0.269001,0.524684,0.862933,0.897557,0.700467,0.93218,0.037287,0.005327\n0.165129,0.165129,0.00799,-0.173119,-0.332922,-0.316941,-0.159802,-0.159802,0.506041,0.468754,0.271664,-0.159802,-0.114525,-0.074574,-0.074574,0.098545,0.175783,0.077238,-0.311615,0.479407,-0.181109,-0.24503,0.034624,0.154476,0.255684,0.292971,0.183773,-0.093218,-0.133169,-0.223723,-0.292971,-0.388852,0.516694,0.093218,-0.02397,0.186436,0.239704,0.034624,-0.061258,-0.154476,0.087891,-0.364882,-0.410159,-0.01598,0.215733,0.215733,-0.21307,-0.21307,0.021307,0.207743,0.463427,0.431466,0.298298,-0.119852,-0.095881,-0.492724,-0.380862,-0.561972,-0.037287,0.242367,0.055931,0.146486,0.282318,0.258347,0.332922,0.332922,0.053267,-0.290308,-0.396843,-0.287644,-0.567298,-0.522021,0.165129,0.258347,0.311615,0.311615,0.631219,0.631219,0.194426,-0.03196,-0.03196,-0.340912,-0.298298,-0.348902,-0.66318,-0.055931,-0.207743,-0.226387,0.306288,0.724437,0.820319,0.644536,0.388852,-0.159802,-0.48207,-0.828309,-0.921527,-0.711121,-0.282318,0\n0.074574,0.074574,0.127842,0.407496,0.793685,1.065349,1.699232,1.699232,0.751071,-0.380862,-1.259775,-1.914965,-2.333114,-1.515459,-1.515459,-0.487397,0.527348,2.082757,3.201374,2.74061,1.909638,0.644536,-1.14525,-3.13479,-2.753927,-2.159995,-1.715212,-0.583279,0.88424,2.008183,2.668699,3.262631,2.136025,0.902883,-1.203844,-2.799205,-3.987069,-3.273285,-2.407689,-0.575289,0.921527,2.389045,3.816613,3.62485,2.114718,2.114718,-1.1053,-1.1053,-2.042807,-1.957579,-1.704558,-1.331686,-1.038715,-0.22905,0.351565,1.076003,1.302389,1.733856,1.331686,0.583279,-0.44212,-1.030725,-1.384954,-1.547419,-1.523449,-1.523449,-0.332922,0.918864,1.251785,1.12128,1.443548,1.345003,0.628556,0.03196,-0.857606,-0.857606,-1.491489,-1.491489,-0.519358,-0.018644,-0.018644,0.820319,1.09731,1.09731,1.33435,0.791022,0.210406,-0.479407,-1.123943,-1.57938,-1.80843,-1.57139,-0.543328,0.423476,1.15324,1.877678,1.938935,1.60335,0.676497,-0.343575',Walking +'0.279069,0.279069,0.707552,-0.698897,-0.698897,0.07388,0.07388,0.254266,-0.047512,0.551017,0.522072,0.365826,0.740234,0.281884,-0.395438,1.388632,1.363393,1.955108,0.519568,-1.194244,-0.986358,-0.310839,3.450642,1.982021,0.842455,-0.737393,-0.634899,1.44105,3.955685,3.955685,1.894624,-1.574546,-1.66382,0.213607,0.213607,1.718983,1.201396,1.114933,0.978166,0.693487,-0.407015,2.452459,2.837525,0.609827,-0.230513,-0.572635,-0.677361,0.760619,0.625698,1.075197,0.546398,1.37827,2.123285,0.753252,0.749482,1.186761,2.901588,1.849186,0.427029,0.427029,-1.844933,-1.844933,-1.354121,4.889686,4.05304,3.368997,1.589409,0.546774,0.903363,3.732713,2.028204,1.995375,0.049557,-0.648931,-1.32557,-1.38394,4.01067,3.558312,4.151639,1.896184,0.394202,-0.68214,-0.256383,4.493908,4.685144,2.302223,-0.412003,-0.412003,-0.852493,0.059873,0.059873,3.811533,3.811533,-0.019646,-0.019646,-0.254714,-0.046718,1.631407,1.631407,1.122589\n-0.110199,-0.110199,-0.031651,0.107003,0.107003,1.812989,1.812989,1.994047,-0.693752,-1.90888,-2.323079,-3.148222,-2.143738,-0.208538,3.50744,5.833575,3.134649,-1.772778,-4.513199,-4.148878,-2.526169,-0.692542,0.771459,2.030814,4.352384,4.969202,4.630098,2.939351,2.271998,2.271998,-1.124759,-3.43715,-3.823905,-3.049944,-3.049944,-2.392605,0.703425,2.312645,3.544658,4.158143,4.64866,3.487113,0.777712,-0.893949,-3.146871,-5.768374,-5.477877,-3.099477,-0.446962,3.141926,3.280392,3.372553,2.268194,4.230286,4.267305,3.815476,2.204431,-1.688904,-4.205967,-4.205967,-4.395214,-4.395214,-3.125338,-2.247901,1.307036,3.19426,4.904571,6.728094,6.17533,2.745138,0.808524,-1.248111,-2.241159,-5.151836,-4.830382,-4.576386,-3.743338,-0.542048,0.483866,3.483387,5.849169,6.043458,4.984791,2.84911,-1.412536,-4.7805,-6.261649,-6.261649,-4.591075,-3.108805,-3.108805,1.202376,1.202376,5.630007,5.630007,5.656571,3.941606,-0.55742,-0.55742,-2.408135\n0.142979,0.142979,0.919129,-0.401695,-0.401695,-0.994305,-0.994305,-0.885455,1.408776,1.722924,1.133648,-0.490196,-0.506275,-1.819347,-2.057117,-2.279404,-0.401215,0.150681,1.091339,1.475231,0.6147,-0.206932,-0.800413,-0.76357,0.048653,-0.316007,-0.316399,-0.162251,-0.061238,-0.061238,-0.430124,0.835929,0.326617,-1.24677,-1.24677,-1.050986,-0.365804,-0.391871,-0.564418,0.156835,0.672051,-0.069088,-0.128802,-0.151983,-0.257381,-0.094119,-0.428794,-1.961718,-4.199176,-4.948337,-5.887824,-3.845762,-1.323346,1.019332,1.792546,2.531714,1.871677,1.945037,2.38022,2.38022,-0.573912,-0.573912,-2.349759,-3.477984,-2.187193,-1.273588,-0.966213,0.194348,0.817901,0.31636,0.548384,0.185026,0.203487,-0.207511,-0.155442,-0.346043,-0.200658,-0.471323,-0.963971,-0.547978,-0.15466,0.613462,0.508165,-0.213972,0.020389,-0.310641,-0.230669,-0.230669,-0.244155,-0.387635,-0.387635,-1.520485,-1.520485,-0.727383,-0.727383,0.099775,0.998627,0.566748,0.566748,0.015799\n-0.026634,-0.026634,-0.631219,-0.274327,-0.274327,-0.276991,-0.276991,-0.828309,-0.189099,0.20508,0.077238,-0.066584,0.90821,0.889566,0.343575,-1.717875,-1.797777,-0.452773,0.25302,0.996101,0.785695,0.231713,0.226387,0.905547,0.46609,-0.982784,-1.057359,-0.125179,-0.498051,-0.498051,-1.036052,0.41815,-0.873586,-1.102636,-1.102636,-0.189099,0.780368,0.809665,0.780368,-0.127842,-0.279654,0.26101,-0.162466,-0.913537,-0.633883,0.242367,0.514031,1.259775,2.476937,3.82194,2.655382,2.650056,2.599452,2.026827,1.896321,1.616667,0.101208,0.46609,1.1053,1.1053,0.082565,0.082565,0.215733,1.395607,1.574053,1.805767,0.649863,0.266337,0.404833,-0.050604,-0.002663,-0.980121,-1.427568,-0.410159,-0.058594,-0.098545,0.756398,1.091983,0.617902,0.519358,-0.324931,0.146486,0.157139,0.506041,-1.34234,-0.519358,-1.169221,-1.169221,0.239704,0.825646,0.825646,0.956151,0.956151,-0.506041,-0.506041,-0.247694,0.159802,-0.548655,-0.548655,-0.330258\n-0.010653,-0.010653,0.290308,0.215733,0.215733,-0.407496,-0.407496,-0.503377,-0.761725,-0.311615,0.20508,0.151812,0.612576,0.67117,0.564635,0.010653,-0.372872,-0.367545,-0.026634,-0.215733,0.058594,0.151812,-0.327595,-0.226387,-0.199753,0.093218,-0.005327,0.396843,0.351565,0.351565,1.14525,0.069248,-0.231713,-0.412823,-0.412823,-0.748408,-0.639209,-1.025398,-0.290308,-0.079901,0.189099,0.372872,0.556645,0.522021,0.43413,-0.013317,-0.298298,-0.343575,-0.079901,-0.711121,-1.283746,-1.701895,-1.944262,-1.246458,-0.929517,-0.20508,-0.098545,0.25302,0.111862,0.111862,0.591269,0.591269,0.130505,-0.535338,-1.307716,-1.182537,-0.636546,-0.101208,0.127842,0.175783,0.410159,0.303624,0.463427,0.23704,0.047941,-0.284981,-0.708457,-0.490061,-0.841626,-0.269001,-0.263674,0,0.223723,0,0.279654,0.545991,0.383526,0.383526,0.117188,-0.372872,-0.372872,-0.609912,-0.609912,-0.391516,-0.391516,-0.101208,-0.095881,0.713784,0.713784,0.439456\n0.077238,0.077238,0.122515,0.250357,0.250357,-0.191763,-0.191763,-0.601922,-0.833636,-0.735091,-0.181109,0.735091,1.347667,1.685915,1.257112,-0.391516,-1.795113,-2.354421,-1.707222,-0.44212,0.748408,1.371637,1.598024,1.318369,1.693905,1.126607,0.226387,-1.363647,-1.875014,-1.875014,-2.285174,-1.030725,0.063921,0.764388,0.764388,1.134597,1.989539,1.994866,1.502142,1.068012,0.170456,-1.35832,-2.06145,-1.781796,-1.629984,-1.171884,-0.287644,0.386189,0.817655,1.12128,0.897557,0.567298,0.532675,0.181109,-0.460763,-1.515459,-2.03748,-2.588798,-1.970896,-1.970896,0.01598,0.01598,1.110626,1.643301,2.674026,2.884433,2.484927,0.753734,-0.857606,-1.880341,-2.428996,-2.104064,-1.651291,-1.331686,-0.181109,0.538001,1.33435,2.255877,2.602115,2.128035,1.454202,-0.071911,-1.624657,-3.022928,-3.326552,-2.231906,-1.494152,-1.494152,0.556645,1.329023,1.329023,2.799205,2.799205,1.640638,1.640638,0.423476,-1.012082,-2.325124,-2.325124,-1.749836',Walking +'-0.185181,-0.185181,-1.319727,-0.921034,-0.393262,2.171592,1.906379,1.945874,0.202186,0.057081,2.036152,2.232369,0.592406,0.413702,-0.959964,-1.839904,0.079297,1.135848,2.058987,2.332989,0.965041,-0.038671,-0.038671,2.831207,2.862178,0.612656,-0.232411,-1.85839,-1.600712,-1.600712,1.520892,2.145817,2.831214,1.027367,0.559046,-0.053023,1.376187,2.000977,1.829936,1.058361,-0.540732,-1.927455,-1.003842,1.244515,2.699514,2.002816,0.942442,0.324841,0.231426,1.726868,2.435244,-0.375078,-0.246053,-0.246053,-1.112561,-0.84343,2.038406,1.42709,1.42709,0.515937,0.515937,0.268454,0.268454,1.693029,1.944979,0.31148,-0.162363,-1.146325,-1.151257,-0.797298,-0.173193,2.933236,2.225966,1.174506,0.572853,0.549777,0.834238,1.69961,0.691286,0.34934,-0.531689,-1.537645,-0.969507,-0.362054,-0.362054,1.508544,1.818565,0.851822,0.52544,0.059427,0.059427,1.609365,1.609365,1.172855,0.237659,-0.464765,-1.26937,-1.051951,-0.284252,0.953456\n0.059288,0.059288,-1.194247,-1.930862,-2.57544,-3.064478,-0.794755,1.546345,3.965563,4.336023,3.688703,2.234394,0.028107,-2.290781,-2.945616,-3.678098,-2.965736,-2.188146,-0.076433,1.386892,3.151172,4.521003,4.521003,2.486039,-0.556726,-1.519576,-3.444601,-3.790083,-3.955271,-3.955271,-3.001953,-1.256477,0.610925,2.605527,3.894225,4.320001,4.067558,2.196199,-1.412067,-1.936447,-4.18849,-4.252198,-3.86557,-2.775119,-1.557796,2.015517,3.683605,4.163456,3.739523,2.692139,0.733983,-2.278016,-3.453169,-3.453169,-3.511339,-1.876611,-1.021288,0.793337,0.793337,3.327612,3.327612,3.882579,3.882579,1.656578,-0.927109,-2.539765,-3.4611,-4.083376,-3.599061,-2.283679,-1.026367,-0.63454,0.996556,3.387427,4.536737,3.692641,1.935946,0.366854,-1.010096,-2.204163,-2.925705,-3.2944,-2.936889,-2.293057,-2.293057,0.446116,1.487534,3.260256,3.525271,3.803969,3.803969,0.461587,0.461587,-1.085202,-3.287795,-3.340164,-4.013459,-3.027597,-2.015142,-0.873585\n0.25027,0.25027,0.418052,1.943855,0.86311,0.041929,-0.119075,-0.551245,-2.054118,-1.995119,-0.797416,0.229999,0.301734,0.752228,1.54083,1.237282,0.468656,-0.291845,-0.895634,-1.830286,-3.196028,-3.088342,-3.088342,-0.494061,0.16132,0.81405,0.78527,1.229026,1.101461,1.101461,0.925935,-0.149245,-0.919468,-2.248287,-2.277724,-2.131565,-1.176819,-0.339194,0.092085,0.419085,0.41135,0.812675,0.514746,-0.221649,-1.314778,-1.731643,-2.149655,-2.620706,-2.174809,-1.448494,0.374481,0.907238,1.126817,1.126817,0.565774,0.759011,0.20746,-0.446271,-0.446271,-2.383912,-2.383912,-1.581302,-1.581302,-0.465263,0.221139,0.9047,0.877139,0.891801,0.688166,-0.104501,-0.238725,-0.63846,-0.999824,-1.765434,-2.037779,-1.464331,-0.588506,0.035756,0.324015,0.639506,0.6485,0.695097,0.667037,0.229669,0.229669,-0.630768,-0.761959,-0.729728,-1.020772,-0.614697,-0.614697,-0.359242,-0.359242,-0.024994,-0.077718,0.668373,0.604373,0.391306,0.130439,-0.156042\n0.154476,0.154476,0.047941,-0.018644,-0.151812,1.065349,1.877678,0.607249,-0.074574,-0.428803,-0.530011,-0.300961,-0.484734,-1.044042,-0.03196,-0.24503,0.26101,0.974794,2.309144,1.717875,0.300961,-0.966804,-0.966804,-1.123943,-1.025398,-0.575289,-0.977458,-0.311615,-0.050604,-0.050604,0.22106,0.170456,1.531439,0.966804,0.386189,-0.394179,-0.183773,-0.969468,-0.90821,-1.233142,-0.822982,-0.20508,0.087891,0.516694,1.475509,1.981549,1.315706,0.231713,-0.607249,-0.085228,-0.828309,-0.274327,-1.166557,-1.166557,0.034624,0.514031,0.910873,1.099973,1.099973,0.114525,0.114525,-0.47408,-0.47408,0.095881,-0.612576,-1.347667,-1.142587,-0.194426,0.24503,0.665843,0.822982,1.115953,1.078666,0.231713,0.149149,-0.00799,-0.218397,-0.308951,-0.865596,-0.631219,-0.548655,0.226387,0.255684,0.527348,0.527348,0.868259,0.394179,-0.045277,-0.641873,0.242367,0.242367,-0.021307,-0.021307,-0.836299,-1.185201,-0.298298,-0.284981,0.055931,0.545991,1.033389\n0.167792,0.167792,-0.215733,-0.375536,-0.300961,-0.284981,0.250357,0.455437,0.362219,0.292971,0.00799,-0.130505,0.135832,-0.114525,-0.095881,-0.074574,-0.269001,-0.042614,0.23704,0.599259,0.878913,0.45011,0.45011,-0.380862,-0.324931,-0.071911,-0.021307,-0.063921,-0.162466,-0.162466,-0.223723,-0.013317,0.119852,0.596595,0.460763,0.117188,-0.274327,-0.269001,0.039951,0.263674,0.173119,-0.034624,-0.151812,-0.23704,-0.135832,-0.026634,0.247694,0.391516,-0.02397,-0.22106,-0.234377,-0.00799,0.114525,0.114525,-0.127842,-0.22106,-0.314278,-0.141159,-0.141159,0.308951,0.308951,-0.146486,-0.146486,-0.269001,-0.202416,0.138495,0.359555,0.327595,0.226387,0.00799,-0.181109,-0.503377,-0.338248,-0.077238,0.034624,-0.066584,-0.178446,0.018644,0.135832,0.22905,0.415486,0.058594,0.002663,-0.308951,-0.308951,-0.311615,-0.412823,-0.00799,0.087891,0.034624,0.034624,0.175783,0.175783,0.23704,0.255684,0.292971,0.250357,0.039951,-0.202416,-0.290308\n0.732428,0.732428,-0.050604,-0.061258,0.530011,0.964141,1.560736,1.954915,1.302389,0.43413,-1.004091,-1.917628,-2.136025,-1.531439,-1.049369,-0.021307,0.607249,1.257112,1.922955,1.989539,1.339676,0.519358,0.519358,-1.773806,-2.120045,-1.877678,-1.406261,-0.652526,0.071911,0.071911,0.860269,1.80044,1.925618,1.683252,1.259775,0.476744,-1.001428,-1.883004,-2.149342,-1.765816,-1.494152,-0.42614,0.21307,1.166557,1.880341,2.394372,1.34234,0.506041,-0.207743,-1.283746,-1.978886,-1.827074,-1.022735,-1.022735,0.556645,0.934844,1.177211,1.805767,1.805767,1.028062,1.028062,-0.743081,-0.743081,-1.883004,-1.845717,-1.3743,-1.099973,-0.844289,0.034624,0.881576,1.294399,1.582043,2.064114,1.470182,0.47408,-0.631219,-1.185201,-1.661945,-1.499479,-1.270429,-1.070676,-0.43413,0.103872,0.90022,0.90022,1.637974,1.890995,1.275755,0.596595,-0.404833,-0.404833,-1.779133,-1.779133,-1.765816,-1.32636,-1.12128,-0.298298,0.287644,0.894893,1.241132',Walking +'-0.761604,-0.761604,0.121078,-0.548465,-0.227072,0.615566,0.178736,1.055715,0.849933,0.849933,0.268455,-0.756796,-0.756796,-1.024221,2.139422,2.139422,-0.340173,2.080562,1.739154,0.754644,-0.127973,0.029223,3.490647,1.016158,0.093746,0.524569,-0.705929,-0.909258,-0.813895,1.373317,2.167208,2.82109,2.674493,1.385569,-0.167641,-0.008429,2.440448,2.440448,1.468277,0.137269,-0.8371,-1.244539,-0.752411,2.101795,2.101795,1.758136,3.153907,2.060095,0.72772,-0.076147,1.583157,2.577814,0.740922,0.906388,0.253741,-1.319845,-1.562182,1.819822,2.577533,3.131031,1.733356,0.825212,-0.31215,0.304028,1.648845,0.532511,0.678975,0.110463,-0.264171,-1.013273,-1.4262,0.304938,0.304938,1.438794,2.124128,1.75627,1.75627,0.263365,0.0364,0.666453,3.59112,2.892943,0.026414,-0.426314,-1.378357,-1.627442,-0.76108,1.542991,0.413103,2.488811,1.815252,0.939402,0.585056,0.611873,1.417432,2.419921,2.594112,-0.202274,-0.202274,-0.968219\n0.260125,0.260125,-1.423255,-2.297265,-1.277432,0.848074,1.053169,3.127047,3.053406,3.053406,0.34962,-2.534921,-2.534921,-3.802686,-1.580676,-1.580676,-1.386628,1.385147,2.444391,2.949825,3.587588,3.843977,2.213611,0.534931,-1.016343,-2.585342,-3.363938,-4.334816,-4.15476,-3.426629,0.039313,1.751904,2.931466,4.026517,5.077702,4.461215,3.654316,3.654316,-1.777451,-3.451912,-3.949688,-5.04138,-3.536773,-2.257006,-2.257006,-0.266238,0.486634,3.737613,3.525385,4.457582,3.770271,1.66557,-0.692683,-2.51391,-3.762088,-4.551601,-4.696669,-3.24173,-0.646047,0.614101,1.903778,3.30445,3.04663,3.727571,2.836396,1.151805,-0.159723,-1.947168,-2.389591,-3.100176,-3.436752,-3.089129,-3.089129,-0.551751,0.984538,2.580138,2.580138,4.126727,4.004431,3.619474,1.860169,-1.016396,-1.682167,-2.51789,-3.346403,-3.303786,-2.933942,-1.705386,0.304735,0.998835,2.480966,3.704319,4.589706,3.717167,2.258811,0.215186,-2.379448,-3.376169,-3.376169,-4.849326\n-0.064487,-0.064487,0.0756,0.170656,0.145531,-0.257951,0.931027,0.029262,0.416624,0.416624,0.538942,0.349812,0.349812,-0.046577,-0.791385,-0.791385,-0.788124,-0.902297,-0.581037,-0.544672,-0.361698,-0.16043,-0.205566,-0.109665,-0.598691,0.683734,0.850903,0.076777,-0.876875,-1.524055,-1.239267,-1.351691,-1.573133,-0.412608,0.524579,0.932317,-0.199402,-0.199402,-0.119824,-0.391547,0.034163,-1.061662,-1.170157,-1.316715,-1.316715,-0.566781,-0.327042,-0.613073,-0.58871,0.417127,0.822506,-0.103371,-0.05013,0.407472,0.004532,-0.586136,-0.639571,-1.278688,-1.287085,-0.635649,-0.537735,-0.396627,-0.270546,0.458925,0.513223,0.349746,0.355582,-0.2925,-0.225198,-0.598498,-0.912484,-0.876226,-0.876226,-1.023031,-0.930407,-0.707415,-0.707415,0.084064,0.55055,0.783932,0.481036,-0.374511,-1.320377,-1.977263,-1.809654,-1.555141,-0.939138,-0.763255,-0.564476,-0.982877,-0.905818,-0.63509,0.070412,0.440593,0.939189,0.251052,0.092206,-0.977995,-0.977995,-1.453264\n0.069248,0.069248,-0.282318,-0.053267,0.383526,0.777705,0.119852,-0.500714,-0.732428,-0.732428,-0.724437,-0.170456,-0.170456,-0.005327,0.138495,0.138495,0.452773,1.57139,1.078666,0.338248,0.002663,-0.511368,-0.538001,-0.604586,-0.01598,0,-0.585942,-0.423476,-0.002663,0.609912,1.486162,1.195854,0.639209,-0.077238,-0.170456,-0.074574,-0.258347,-0.258347,-1.115953,-1.195854,-0.332922,-0.314278,0.026634,0.359555,0.359555,0.814992,1.158567,0.921527,-0.181109,-0.125179,-0.210406,-1.086656,-0.524684,-0.356892,-0.69514,-0.716447,0.250357,0.039951,0.767051,0.977458,1.057359,1.150577,-0.25302,0.085228,-0.468754,-0.743081,-0.721774,-0.956151,-0.463427,-0.484734,-0.356892,0.282318,0.282318,0.9162,1.5634,0.767051,0.767051,-0.487397,0.039951,0.479407,-0.127842,-2.341105,-1.526112,-1.147914,-0.322268,0.175783,0.745744,0.93218,0.783032,1.741846,1.182537,0.375536,-0.447447,-0.269001,-0.066584,-0.348902,-0.580615,-0.788358,-0.788358,-0.601922\n0.242367,0.242367,-0.332922,-0.444783,-0.45011,-0.162466,0.287644,0.495387,0.644536,0.644536,0.383526,0.181109,0.181109,-0.255684,-0.468754,-0.468754,-0.530011,-0.759061,-0.324931,-0.191763,0.173119,0.077238,0.495387,0.6472,0.490061,0.087891,0.090555,0.111862,-0.130505,-0.327595,-0.636546,-0.391516,-0.391516,-0.380862,0.045277,0.141159,0.886903,0.886903,0.583279,0.620566,0.455437,0.202416,-0.274327,-0.548655,-0.548655,-0.93218,-1.1053,-0.098545,-0.263674,-0.002663,0.226387,0.737754,0.511368,0.532675,0.553982,0.343575,0.114525,-0.274327,-0.45011,-1.009418,-0.956151,-0.130505,-0.103872,0.202416,0.415486,0.407496,0.538001,0.585942,0.364882,0.20508,-0.133169,-0.394179,-0.394179,-1.054696,-0.67916,-0.45011,-0.45011,-0.223723,-0.034624,0.127842,0.591269,0.950824,1.518122,0.894893,0.455437,-0.22905,-0.764388,-0.940171,-1.203844,-1.009418,-0.727101,-0.444783,-0.218397,0.03196,0.380862,0.601922,0.780368,0.980121,0.980121,0.239704\n-0.00799,-0.00799,0.239704,0.700467,0.982784,0.958814,0.652526,0.308951,-0.527348,-0.527348,-1.315706,-1.222488,-1.222488,-0.090555,0.652526,0.652526,1.110626,1.659281,1.35832,1.169221,0.540665,-0.095881,-1.246458,-1.667271,-1.731192,-1.59536,-0.886903,-0.540665,0.258347,1.102636,2.016173,2.26653,2.144015,1.8324,0.767051,-0.596595,-1.797777,-1.797777,-1.821747,-1.512796,-1.321033,-0.386189,0.436793,1.299726,1.299726,1.779133,2.00552,1.707222,1.281082,0.173119,-0.719111,-1.79245,-1.803103,-1.8324,-1.507469,-0.711121,-0.21307,0.748408,1.491489,1.904311,1.962906,1.371637,0.868259,0.103872,-1.006755,-1.217161,-1.419578,-1.262439,-1.177211,-0.577952,-0.090555,0.279654,0.279654,1.696568,1.805767,1.853707,1.853707,1.225151,-0.162466,-1.379627,-2.279847,-1.763153,-0.972131,-0.921527,-0.615239,0.087891,0.484734,0.934844,1.688578,1.534103,1.667271,1.251785,0.609912,-0.593932,-1.906975,-2.381055,-2.279847,-1.408924,-1.408924,0.338248',Walking +'-0.255266,-0.255266,-0.792226,0.490267,1.240727,0.830842,0.655059,1.472145,1.645883,-0.003665,0.415492,0.87592,0.298193,0.298193,-0.600068,4.086922,4.086922,0.765912,1.27667,1.304949,0.336443,0.126812,1.662515,2.191989,0.342347,-0.813433,-1.444922,-0.720024,-0.988195,1.655209,1.900412,1.812058,1.631126,0.560677,-0.218064,-0.402599,2.808072,1.088515,-0.285852,-0.220545,-1.373249,-1.199696,-0.760723,1.019437,1.019437,0.994013,0.600774,0.754467,0.538118,-0.147126,0.202591,1.889192,1.889192,-0.636548,-0.801246,-1.245464,-1.342303,-0.669624,2.256486,1.408667,1.402144,0.694624,0.125696,-0.301109,0.909006,3.088814,0.311476,0.165133,-0.274524,-0.936179,-1.116859,-0.376568,1.281408,0.491521,1.140725,1.076301,1.076301,0.458931,0.852606,0.852606,2.459618,-0.126673,-0.126673,-0.673986,-1.24784,-1.250586,-0.171431,1.09259,3.014398,2.272627,1.328228,0.131731,0.42244,1.026487,3.01606,1.915769,0.484056,-1.194583,-1.129961,-1.171982\n-0.154748,-0.154748,-1.176848,-1.260424,-1.216359,0.128265,1.309049,3.528791,3.471934,2.941095,2.651197,-0.667635,-1.857181,-1.857181,-4.063457,-3.34132,-3.34132,-0.972163,2.922685,4.013712,4.416931,4.321602,3.960339,0.250329,-1.026132,-0.698529,-2.319492,-3.202929,-3.038833,-1.737902,-1.150592,0.968536,2.192906,3.346907,3.854219,3.316243,1.914105,-0.137012,-1.445879,-2.387002,-3.887923,-3.760564,-2.047029,-1.006405,-1.006405,-0.092561,1.468393,3.310429,3.153791,3.175048,2.396751,-1.461904,-1.461904,-1.973722,-2.050593,-3.264942,-3.239655,-2.546637,-1.1893,-0.100555,2.298052,2.774885,3.280186,3.410014,2.562068,1.361866,-1.216955,-1.68642,-2.657347,-3.03382,-2.920964,-2.462307,-1.421029,-1.101079,-0.045363,2.527642,2.527642,3.229201,3.018194,3.018194,1.049559,-1.703746,-1.703746,-2.607649,-3.211802,-3.518211,-3.372698,-1.889253,0.651948,3.055255,4.397829,4.842877,3.56181,2.039425,0.495564,-1.225479,-2.927679,-3.492865,-3.204208,-2.054632\n-0.273293,-0.273293,-0.709993,-1.72216,-0.821199,0.59295,1.354088,0.171692,-0.096368,0.26548,0.506332,0.215403,0.918009,0.918009,0.272233,-1.319711,-1.319711,-1.397992,-1.194927,-0.454952,-0.10162,0.181491,0.51384,-0.224551,0.087274,0.320482,0.019666,0.121534,-0.535838,-0.658998,-0.899655,-0.534044,-0.765369,-1.074953,-0.192118,0.257492,0.020667,-0.241369,-0.390471,-0.3265,-0.822469,-0.460128,-0.578162,-0.849439,-0.849439,-0.661322,-0.675919,-0.257085,-0.232925,0.390449,0.812407,-0.458124,-0.458124,-0.456383,-0.202516,-0.122101,-0.233472,-0.682267,-1.19602,-0.926199,-0.325243,-0.502122,-0.409553,0.287514,0.808221,0.062976,-0.055895,-0.368723,-0.338072,-0.141749,0.080415,-0.04506,-0.809264,-0.592292,-0.60675,-0.74002,-0.74002,-0.398081,0.807041,0.807041,0.176424,-0.310436,-0.310436,-0.56865,-0.54486,-0.289382,-0.86288,-1.192402,-1.181584,-0.733102,-0.29792,0.313916,0.763405,0.519205,-0.569789,-1.285987,-0.971686,-0.24754,-0.261402,-0.306578\n-0.050604,-0.050604,-0.23704,0.913537,0.940171,1.091983,0.599259,-0.428803,-0.804339,-0.135832,0.005327,-0.628556,-0.399506,-0.399506,-0.420813,0.631219,0.631219,0.865596,0.127842,0.724437,0.404833,0.109198,-0.135832,-0.68715,-0.412823,-0.751071,0.026634,-0.037287,-0.343575,0.22106,0.530011,1.5634,1.201181,-0.002663,-0.045277,-0.165129,-0.362219,-1.12927,-0.838962,-1.099973,-0.617902,-0.034624,0.407496,0.90022,0.90022,0.830972,0.138495,0.506041,0.055931,0.407496,0.48207,-0.719111,-0.719111,-0.402169,-0.711121,-0.386189,0.23704,0.189099,0.303624,1.020072,1.536766,0.809665,-0.114525,-0.322268,-0.175783,-0.751071,-0.538001,0.053267,-0.415486,-0.386189,-0.146486,0.106535,0.037287,0.48207,0.372872,1.179874,1.179874,-0.130505,-0.191763,-0.191763,-0.135832,-0.69514,-0.69514,-0.468754,-0.191763,0.125179,0.330258,0.47408,0.87625,1.091983,0.988111,-0.239704,-0.162466,-0.343575,-0.724437,-1.704558,-0.332922,-0.956151,-0.255684,-0.498051\n0.01598,0.01598,-0.314278,-0.322268,-0.881576,-0.479407,0.03196,0.495387,0.705794,0.335585,0.130505,0.066584,0.258347,0.258347,0.247694,-0.226387,-0.226387,-0.157139,-0.764388,-0.628556,-0.175783,-0.021307,0.173119,0.87625,0.186436,0.303624,0.332922,0.071911,-0.042614,-0.514031,-0.498051,-0.868259,-0.284981,-0.013317,-0.122515,0.026634,0.407496,0.822982,0.351565,0.577952,0.26101,-0.026634,-0.322268,-0.522021,-0.522021,-0.569962,-0.788358,-0.340912,-0.239704,-0.098545,0.157139,0.985448,0.985448,0.428803,0.423476,0.069248,-0.114525,-0.298298,-0.471417,-0.918864,-0.849616,-0.420813,-0.146486,0.127842,0.44212,0.958814,0.791022,0.41815,0.316941,0.074574,-0.069248,-0.279654,-0.420813,-0.609912,-0.926854,-0.189099,-0.189099,-0.324931,0.492724,0.492724,0.961478,0.812329,0.812329,0.439456,0.127842,-0.194426,-0.300961,-0.455437,-1.014745,-0.977458,-0.68715,-0.269001,0.269001,0.402169,1.142587,1.307716,0.623229,0.332922,0.021307,-0.327595\n0.013317,0.013317,0.170456,0.284981,0.844289,1.198518,1.169221,0.854943,0.181109,-0.471417,-0.993438,-1.536766,-1.606014,-1.606014,-1.041379,0.468754,0.468754,1.568726,2.666036,1.720539,0.780368,-0.074574,-0.9162,-1.699232,-0.958814,-0.894893,-1.225151,-0.868259,0.19709,0.745744,1.163894,1.432895,1.438221,1.251785,0.484734,-0.410159,-1.451538,-1.629984,-1.193191,-1.036052,-0.644536,-0.175783,0.551318,0.92419,0.92419,1.249122,1.683252,1.214498,0.596595,-0.170456,-0.90022,-1.696568,-1.696568,-1.070676,-0.777705,-0.420813,-0.119852,0.498051,1.126607,1.35832,1.57139,1.267765,0.804339,0.013317,-0.988111,-1.518122,-1.635311,-1.36631,-1.038715,-0.530011,-0.085228,0.274327,0.852279,1.360983,1.869688,1.416914,1.416914,1.083993,-1.118617,-1.118617,-1.79245,-1.150577,-1.150577,-0.828309,-0.615239,-0.122515,0.532675,1.355657,2.202609,2.042807,1.446211,0.455437,-1.057359,-1.568726,-2.088084,-2.157332,-1.582043,-0.868259,0.135832,0.6472',Walking +'-0.373788,-0.373788,0.07614,5.334237,4.234907,0.33756,0.965644,1.168092,2.795522,2.040389,-0.24043,-0.24043,-0.880393,0.521305,0.827351,1.255446,-1.012097,1.034259,1.651554,1.801836,1.080213,1.301868,2.30832,0.49797,0.819574,-0.282319,-0.107125,-0.823897,1.602017,0.982002,2.129975,0.71679,0.625615,-0.093568,1.151633,3.059675,0.954355,1.005511,-0.198678,-0.578289,-0.811538,-0.494432,1.549707,3.289346,2.583924,1.032332,0.231141,0.676909,0.676909,0.926919,1.286416,-0.471788,-0.471788,-0.944809,-0.944809,1.363481,1.472261,3.233235,1.907378,0.543434,0.164178,1.206988,1.470006,1.034179,0.445496,-0.826797,-0.712798,-0.238891,1.63788,1.500661,2.240402,0.548497,1.079321,0.409419,1.087142,1.087142,0.270111,0.65364,-0.535811,-0.535811,-0.604435,-0.604435,0.179607,1.256893,2.220163,0.904089,1.432476,0.436566,0.50721,0.714397,1.305481,1.238483,0.478377,-0.250844,-0.127946,0.533963,1.976769,1.537546,0.83496,0.312292\n0.248056,0.248056,-1.703104,-1.646148,-5.382083,-5.840795,-6.638238,-3.002557,0.041005,5.543692,9.205453,9.205453,5.120742,1.0204,-2.768207,-4.673439,-5.16013,-1.969032,1.177229,2.83191,4.745864,5.83703,3.866675,1.323753,-0.520298,-3.087634,-4.146272,-4.723063,-3.482819,-2.037334,0.853864,3.024721,3.716211,4.256899,3.8578,2.209546,0.056034,-1.103187,-3.107642,-4.137569,-4.2181,-4.059911,-2.36166,0.423663,3.267795,4.53089,5.130277,3.998277,3.998277,2.745904,-3.172386,-4.597477,-4.597477,-3.4958,-3.4958,-3.241195,-1.652689,1.651888,4.644552,5.533295,4.997635,2.651466,0.288892,-2.347268,-4.922658,-5.217483,-3.337421,-2.399163,-0.739322,0.843519,2.686564,4.459799,4.911122,4.234538,2.147165,2.147165,-1.599955,-1.769952,-3.711555,-3.711555,-3.546237,-3.546237,-1.878678,-0.847837,0.142509,2.140293,3.884337,4.051002,3.67857,1.461995,-0.286303,-1.741771,-2.958085,-2.37344,-2.70633,-2.800479,-1.3266,0.989398,3.292181,4.335424\n0.164594,0.164594,0.803796,0.294877,-0.529088,0.978936,-2.119002,-2.186696,-0.840686,2.312237,2.31668,2.31668,0.965937,0.703843,0.703046,0.273437,0.267206,-1.288191,-1.351113,-1.157419,-0.98542,-0.485551,-0.187263,0.451327,0.560865,0.085329,0.565361,-0.1745,-0.538856,-0.934588,-0.869142,-1.115632,-1.355447,-0.695007,0.079628,0.123739,0.123229,0.118266,0.188367,0.475976,0.232926,0.435308,-0.882373,-0.818307,-0.64737,-0.418998,-0.435569,-0.500238,-0.500238,-0.003447,0.057844,0.120566,0.120566,-0.570893,-0.570893,-2.00538,-2.17842,0.084803,0.390892,0.302908,0.430547,0.227442,0.005164,-0.173803,-0.289554,-1.484601,-0.831008,-1.08392,0.38173,0.089176,0.403872,-0.055594,-0.267513,-0.27042,-0.561592,-0.561592,-0.261672,0.494604,-0.563268,-0.563268,-1.150931,-1.150931,-0.82559,-0.262705,0.224053,0.410454,0.891511,0.795101,0.523163,-0.431148,-0.611242,-0.728686,-1.052811,0.419808,0.040077,-0.4311,-0.797436,-0.435478,0.423278,0.790915\n-0.143822,-0.143822,0.026634,-3.172077,-1.371637,1.390281,0.130505,-0.223723,-0.745744,0.793685,1.193191,1.193191,-0.207743,0.415486,0.063921,-0.258347,0.290308,1.038715,0.567298,0.487397,0.676497,-0.061258,-0.037287,-0.452773,-0.498051,-0.764388,-0.02397,-0.346238,0.194426,0.543328,1.179874,0.506041,-0.079901,0.026634,-0.21307,-0.439456,-0.649863,-0.340912,-0.556645,-0.151812,0.053267,0.308951,0.21307,0.567298,0.817655,-0.117188,-0.039951,-0.495387,-0.495387,-0.186436,-0.569962,-0.556645,-0.556645,0.01598,0.01598,0.074574,0.476744,1.177211,0.324931,-0.276991,-0.231713,0.207743,-0.074574,-1.004091,-0.665843,-0.812329,-0.055931,0.013317,0.593932,1.273092,1.046705,0.282318,0.090555,-0.103872,0.127842,0.127842,-0.713784,-0.202416,-0.969468,-0.969468,-0.532675,-0.532675,0.111862,0.46609,0.631219,0.572625,0.43413,0.306288,0.41815,0.362219,0.215733,-0.495387,-0.753734,-0.559308,0.146486,0.308951,0.037287,-0.234377,-0.101208,-0.053267\n-0.183773,-0.183773,-0.620566,-0.649863,0.511368,0.942834,0.780368,0.516694,-0.20508,-0.511368,0.553982,0.553982,0.210406,-0.071911,-0.053267,0.005327,-0.021307,-0.101208,0.087891,-0.4581,-0.010653,0.135832,0.234377,-0.026634,0.335585,0.138495,0.093218,0.045277,-0.234377,-0.276991,-0.394179,0,-0.146486,-0.050604,-0.01598,0.314278,0.378199,0.21307,0.175783,0.125179,0.077238,-0.130505,-0.471417,-0.69514,-0.492724,-0.391516,0.146486,0.167792,0.167792,0.399506,0.404833,0.362219,0.362219,-0.087891,-0.087891,-0.367545,-0.873586,-1.190528,-0.439456,0.03196,0.093218,0.713784,0.769715,0.628556,0.684487,0.300961,-0.612576,-0.956151,-1.001428,-0.410159,-0.713784,-0.029297,0.178446,0.186436,0.279654,0.279654,0.103872,0.23704,0.495387,0.495387,-0.279654,-0.279654,-0.580615,-0.873586,-0.948161,-0.809665,-0.487397,0.03196,0.295634,0.428803,0.183773,-0.00799,-0.095881,0.223723,0.157139,0.255684,0.103872,-0.569962,-0.543328,-0.327595\n-0.01598,-0.01598,-3.941791,-4.258733,-3.909831,-1.981549,0.141159,2.048133,2.631412,2.00552,0.181109,0.181109,-0.799012,-2.01351,-2.338441,-1.558073,0.255684,1.616667,2.202609,2.351758,1.55541,0.367545,-1.1053,-1.749836,-1.973559,-1.659281,-1.233142,-0.292971,0.47408,1.483499,2.263867,1.912302,1.291736,0.556645,-0.705794,-1.763153,-1.853707,-1.568726,-1.307716,-0.761725,-0.106535,0.543328,1.57938,2.128035,2.162659,1.523449,0.282318,-0.6472,-0.6472,-1.345003,-1.992203,-1.1053,-1.1053,0.620566,0.620566,0.88424,1.616667,2.162659,1.845717,0.974794,-0.210406,-1.584707,-2.074767,-1.859034,-1.363647,-0.338248,0.591269,0.9162,1.139924,0.902883,1.257112,0.982784,0.135832,-0.767051,-1.462192,-1.462192,-1.14525,-1.033389,-0.484734,-0.484734,0.807002,0.807002,1.222488,1.352993,1.249122,1.078666,0.596595,-0.26101,-0.945497,-1.531439,-1.648628,-1.294399,-0.604586,-0.250357,0.018644,0.532675,1.225151,1.731192,1.470182,0.745744',Walking +'0.118553,0.118553,-0.545332,-1.178455,-1.178455,1.167253,2.157124,1.661825,0.883021,0.634663,2.481328,2.481328,1.30437,1.30437,0.368091,-0.838954,-0.933845,3.64733,0.855883,4.158541,2.096553,1.105835,-0.66328,0.621791,5.070925,1.856918,0.954372,-0.793489,-1.191446,-0.172591,2.3537,0.979123,2.490088,0.565558,-0.374602,0.475083,3.814604,0.774458,0.783631,0.783631,-0.891708,-0.891708,-0.337716,3.430436,-0.016834,2.194466,1.15619,-0.243512,0.50377,2.899646,-0.005571,0.746317,-0.18677,-0.92504,0.305505,2.299215,-0.454124,2.397734,0.945205,-0.247209,0.128822,3.45874,-0.359212,0.869563,-0.127444,-0.127444,-0.771427,-0.450895,1.275346,1.023251,2.206048,1.562672,0.382261,-0.289614,0.267568,2.314591,0.599549,-0.098476,0.221852,-1.227785,-0.849564,-0.779509,0.714127,0.420568,0.956988,0.708388,0.274734,-0.285269,1.147667,2.331759,1.968235,2.032963,-0.902763,-0.902763,-0.927981,0.661507,1.294867,1.294867,1.441939,1.441939\n0.419456,0.419456,0.371223,-2.048042,-2.048042,-3.656685,-0.979666,1.235345,3.637052,5.84424,4.982245,4.982245,-0.754301,-0.754301,-2.971983,-4.223323,-4.602957,-3.719671,-1.06809,2.33795,3.67895,5.02425,5.738756,3.957209,1.096611,-1.462444,-2.53549,-3.292098,-4.043068,-3.661781,-2.348901,-1.284365,1.128153,3.471836,3.93949,4.647614,3.594392,-0.192795,-0.791406,-0.791406,-3.033027,-3.033027,-4.028523,-4.082933,-2.113586,1.41237,2.685771,3.35386,4.244627,3.140902,1.346214,-0.759864,-3.003881,-2.866082,-4.030184,-3.272989,-2.362255,0.132462,2.840933,3.919089,4.489159,4.119368,0.176088,-0.619569,-3.068711,-3.068711,-3.645471,-3.662598,-3.186978,-1.480214,0.808306,2.407576,3.820219,4.294671,3.615035,0.768339,-1.577193,-1.038538,-1.785588,-2.339451,-2.178217,-2.13578,-1.252793,-0.698541,0.865355,2.192391,3.311061,3.848383,2.958189,0.178557,-2.030803,-3.667653,-4.23879,-4.23879,-2.424538,0.200829,1.906223,1.906223,5.230513,5.230513\n-0.283447,-0.283447,0.707172,0.797323,0.797323,-0.313548,-0.953102,-1.048652,-0.808389,-0.342267,-0.593243,-0.593243,0.27795,0.27795,0.447592,1.042099,1.278402,-0.209951,-1.378693,-1.689143,-2.836946,-3.130274,-1.253152,-0.181672,-0.724271,0.183123,0.422266,0.819747,0.962411,0.664508,-0.071284,-0.695362,-1.318819,-1.89234,-1.837854,-1.062208,-1.261881,0.295335,0.609976,0.609976,1.91519,1.91519,1.460675,0.432862,-0.405465,-0.898489,-2.134089,-3.110944,-1.715276,-0.584869,1.177482,1.173721,0.853753,1.162294,0.300539,-0.479387,-0.635673,-1.425108,-2.731737,-2.944145,-0.919247,-0.622936,-0.092335,0.953818,0.663137,0.663137,1.356576,1.631744,0.47925,-0.231449,-0.792508,-2.632578,-3.149212,-1.945173,-0.06524,-0.39009,0.977407,0.653221,0.2386,0.396979,0.17335,-0.174669,-0.095798,-0.901899,-1.126888,-1.200564,-1.124409,-0.571177,0.318488,0.390948,0.592802,-0.629484,-0.948712,-0.948712,-1.281524,-0.091983,0.258126,0.258126,0.823864,0.823864\n0.135832,0.135832,0.159802,0.274327,0.274327,0.559308,0.958814,0.141159,0.380862,0.593932,0.633883,0.633883,-1.110626,-1.110626,-1.462192,-0.311615,0.269001,0.367545,2.229243,1.656618,-0.151812,-1.227815,-0.535338,0.029297,-1.131933,-1.13726,-0.42614,-1.33435,-0.018644,0.303624,0.575289,0.732428,1.302389,0.814992,-0.378199,0.199753,0.066584,-0.042614,0.03196,0.03196,-0.125179,-0.125179,-0.050604,0.332922,0.615239,1.302389,0.319605,0.117188,0.162466,-0.881576,-0.569962,-0.463427,-0.48207,-0.149149,0.066584,0.604586,1.233142,2.253213,0.191763,-1.246458,0.41815,0.878913,-1.12927,-0.548655,-1.645964,-1.645964,-0.412823,-0.319605,-0.25302,0.964141,1.480835,1.131933,-0.89223,-0.506041,-0.103872,-1.677925,-1.222488,0.106535,-0.969468,-0.002663,-0.087891,0.029297,0.511368,0.346238,1.020072,0.89223,0.127842,-0.660516,-0.511368,-0.19709,-0.282318,-1.1053,-1.371637,-1.371637,-0.247694,1.230478,0.548655,0.548655,0.24503,0.24503\n-0.079901,-0.079901,-0.090555,-0.141159,-0.141159,-0.143822,-0.042614,-0.034624,-0.173119,-0.074574,-0.055931,-0.055931,-0.063921,-0.063921,0.00799,-0.143822,-0.242367,-0.042614,0.258347,0.612576,0.958814,0.623229,-0.234377,-0.540665,0.093218,-0.01598,0.02397,0.135832,0.093218,-0.00799,-0.01598,0.186436,-0.292971,0.588605,0.109198,0.119852,-0.167792,-0.476744,-0.407496,-0.407496,-0.058594,-0.058594,0.079901,0.133169,0.106535,0.138495,0.67916,0.43413,-0.316941,-0.346238,-0.231713,-0.005327,-0.039951,-0.005327,-0.058594,-0.042614,-0.053267,0.324931,0.822982,0.351565,-0.165129,-0.199753,-0.711121,-0.170456,-0.340912,-0.340912,-0.407496,-0.194426,-0.058594,0.077238,0.151812,1.020072,0.599259,-0.316941,-0.583279,-0.021307,0.375536,0.761725,0.324931,0.021307,0.058594,-0.26101,-0.394179,-0.383526,-0.439456,-0.476744,-0.346238,-0.258347,0.002663,0.295634,0.372872,0.862933,0.676497,0.676497,-0.146486,-0.601922,-0.990775,-0.990775,-0.743081,-0.743081\n0.050604,0.050604,0.47408,0.271664,0.271664,1.190528,2.032153,2.492917,1.994866,0.21307,-1.528776,-1.528776,-1.922955,-1.922955,-1.728529,-1.006755,-0.258347,0.88424,1.981549,2.809858,2.239896,2.04547,0.42614,-1.275755,-2.167985,-2.341105,-1.728529,-1.091983,-0.607249,0.26101,0.88424,1.707222,2.436986,1.773806,1.147914,-0.561972,-1.707222,-2.125371,-1.392944,-1.392944,-1.004091,-1.004091,-0.431466,0.769715,1.84039,2.506234,1.472845,0.969468,0.633883,-1.044042,-1.664608,-1.451538,-1.504805,-0.921527,-0.189099,0.705794,1.518122,1.81642,1.976222,1.893658,0.005327,-1.661945,-1.837727,-1.254448,-1.289072,-1.289072,-0.841626,0.005327,0.745744,1.669935,2.085421,1.472845,1.688578,0.551318,-0.886903,-0.556645,-1.34234,-1.435558,-0.998765,-0.532675,0.010653,0.511368,0.961478,1.592697,1.680588,1.395607,1.009418,0.047941,-1.5634,-2.51955,-2.210599,-1.424904,-0.516694,-0.516694,1.09731,1.709885,1.970896,1.970896,0.125179,0.125179',Walking +'-0.771623,-0.771623,-2.323824,-2.752338,-2.45097,-0.93746,6.28485,2.756402,2.756402,3.242334,3.918814,6.635823,10.507528,18.195707,18.195707,22.839943,8.25415,6.191095,4.126677,9.430202,7.155105,10.015716,0.723938,2.393076,13.640159,18.64572,28.408508,13.113796,-0.817106,1.513932,4.881533,6.12257,2.16431,-1.936317,-1.936317,11.388661,12.526302,26.377253,26.377253,10.016179,-4.5573,2.611873,-2.155444,0.922488,0.981861,-1.178172,-0.237505,1.943103,5.427128,11.92063,16.547655,28.768162,18.251947,6.00441,5.468162,1.850925,1.555283,0.707126,1.073684,1.760582,5.337998,5.337998,8.537132,22.979437,12.291254,12.291254,4.048561,1.610986,-1.968335,-1.184172,3.514402,1.87814,-1.730367,-2.000344,1.511879,0.488133,25.47078,21.237553,24.188162,16.892605,-1.277784,-6.244718,0.000228,-0.019679,-0.019679,1.647268,1.489048,-0.673188,-4.107069,-4.107069,-8.253124,7.416161,7.416161,16.78165,15.836936,15.834576,29.131315,22.862198,17.441282,7.191927\n0.372042,0.372042,-0.296031,-2.830068,-4.69772,1.649246,-10.179129,-6.056571,-6.056571,2.908353,0.015999,-2.268551,11.053983,9.897648,9.897648,-15.801662,-1.409894,-0.533316,-0.188722,-6.701498,3.838126,11.773987,8.458529,20.208328,16.175755,4.411748,1.046184,4.161999,-4.053085,-5.858306,0.089686,-2.999184,-1.373159,-2.982153,-2.982153,1.2887,13.140068,-24.395222,-24.395222,-1.612834,5.407068,2.394867,2.925131,-0.211837,-1.533917,1.373394,-1.681072,-3.049399,-0.688561,9.680872,10.587934,6.818126,-9.302156,-5.30275,-10.080749,-1.228244,1.289943,1.300153,-0.599698,-1.925871,-0.689183,-0.689183,15.138142,-13.349223,-15.600651,-15.600651,-3.834363,-4.414933,-7.583013,-6.612927,-5.49696,-3.604942,-0.095024,-1.773939,-3.590032,11.866651,12.055592,10.861025,9.061313,5.31084,5.239089,-1.616839,1.130109,-0.659871,-0.659871,1.752387,1.979115,0.586289,-1.745196,-1.745196,-15.04077,-20.660906,-20.660906,-7.67475,1.997124,11.69478,-21.58309,-3.74376,-9.06429,-11.497003\n-0.145753,-0.145753,1.715016,1.941302,1.272646,-1.076785,-5.852981,-6.618349,-6.618349,-2.03265,-5.762189,-3.465497,1.051774,19.523338,19.523338,-22.686333,-4.241193,0.04372,5.157976,10.438023,1.647816,-5.31261,-6.829639,-11.204414,-11.619837,-14.041813,-23.41489,-1.03168,-5.677286,-0.958039,3.590258,8.174298,8.294344,1.134447,1.134447,-1.44506,6.037934,-24.715273,-24.715273,-7.209928,-4.852511,0.7602,2.554967,3.813085,3.267366,6.455228,2.378404,-1.172371,-1.348702,-6.64932,-13.350161,-17.804968,3.265368,6.235881,2.587838,2.281856,0.40296,-0.02752,-1.870216,-0.733859,2.151858,2.151858,-10.838529,-6.092327,-9.442748,-9.442748,-2.165632,-0.349972,-2.349172,0.706654,1.716759,-0.000622,0.04694,-1.73409,2.462246,-3.46394,2.479609,-14.933769,-19.657104,-12.544507,-3.294082,-1.810618,0.679049,0.224821,0.224821,0.388763,1.145351,0.30352,3.171524,3.171524,11.071306,-7.682266,-7.682266,-6.869991,-6.854812,-12.528547,-20.727003,5.725987,3.068515,2.395642\n-0.03196,-0.03196,0.383526,0.732428,0.047941,1.238468,1.440885,2.591461,2.591461,3.297255,2.00552,2.458293,3.920484,-5.182923,-5.182923,0.934844,3.976415,-2.418342,-1.083993,-4.375921,-4.716833,-9.630755,-5.406646,-0.88424,-3.523642,-6.685065,28.772413,-3.696761,-2.764581,-1.765816,2.524877,-1.446211,-1.731192,-0.791022,-0.791022,1.989539,-1.235805,-18.96854,-18.96854,4.245416,-1.946925,-1.608677,-1.065349,-0.894893,-1.502142,1.294399,0.24503,1.211835,1.249122,-2.359748,-3.987069,-10.046241,-2.772571,3.712741,-0.910873,1.195854,-0.021307,0.19709,-0.799012,1.60335,5.992588,5.992588,7.723781,-7.606592,-2.050797,-2.050797,-3.952445,-2.932373,-3.949781,-0.852279,-1.209171,-0.937507,-0.050604,0.934844,1.020072,-3.068205,-0.767051,8.450881,34.86621,-6.911452,1.115953,-3.864554,-0.807002,-1.163894,-1.163894,-0.487397,-1.368974,0.641873,1.270429,1.270429,0.577952,2.631412,2.631412,4.013702,1.885668,-6.442698,-5.475894,-2.261203,-0.897557,0.556645\n0.167792,0.167792,0.22905,0.378199,-0.386189,-0.053267,-0.290308,-1.651291,-1.651291,-1.038715,-1.416914,-1.214498,-0.982784,-9.862469,-9.862469,3.369166,-1.094646,-2.082757,-2.082757,-2.793878,4.373258,6.746323,7.02065,1.041379,-0.346238,-3.917821,-18.467825,4.234762,2.104064,-2.032153,-2.663373,-2.607442,-0.226387,0.857606,0.857606,-3.235998,-11.369937,1.651291,1.651291,3.808623,1.701895,-0.825646,-0.761725,-0.125179,0.545991,1.265102,2.423669,3.281275,3.907167,4.069634,2.207936,2.514224,-4.293356,-1.416914,-0.868259,-1.185201,-0.498051,0.026634,-0.351565,-1.142587,-1.608677,-1.608677,-1.227815,-11.103601,1.592697,1.592697,-0.543328,-0.767051,-0.098545,-0.593932,-0.364882,0.857606,2.199946,1.946925,1.869688,5.40132,6.850194,9.052803,-12.877406,2.114718,-0.351565,-0.21307,-0.559308,0.021307,0.021307,-0.189099,0.673833,0.583279,0.495387,0.495387,4.05898,5.076388,5.076388,1.520786,0.378199,-1.608677,6.533253,-4.993824,-2.285174,-1.318369\n-0.362219,-0.362219,-0.239704,0.684487,1.890995,2.772571,2.791215,3.728722,3.728722,3.433087,2.801868,3.126799,3.206701,-18.07631,-18.07631,-1.238468,3.611533,2.104064,0.444783,-0.817655,-1.691242,-0.532675,4.189485,0.356892,-3.291929,-9.367082,-16.254562,4.52507,0.242367,-0.117188,0.807002,0.215733,-0.412823,-0.945497,-0.945497,0.953487,-6.543906,-16.851158,-16.851158,2.69267,4.05099,1.787123,0.447447,-0.476744,-0.090555,0.572625,0.926854,2.604778,3.302582,3.63284,-12.326088,-18.598331,-1.337013,-1.179874,0.476744,1.073339,0.785695,0.756398,0.87625,1.315706,1.390281,1.390281,1.843054,-22.169912,0.844289,0.844289,1.672598,0.956151,0.061258,-0.386189,-0.037287,0.468754,0.825646,1.201181,1.941599,3.880534,-0.721774,-10.261974,-1.451538,7.433473,0.89223,-1.257112,-2.303817,-1.672598,-1.672598,-1.507469,-2.032153,-1.35033,-0.399506,-0.399506,-0.580615,3.952445,3.952445,5.001813,4.181495,-4.615624,-20.43073,-4.168178,-4.237426,-1.099973',Badminton +'0.130669,0.130669,0.068821,1.076776,1.106951,6.979507,6.979507,5.526448,12.68751,28.281353,12.212637,2.695508,4.362091,1.439722,0.056754,4.681248,9.46049,4.77813,8.705316,18.696245,12.417027,4.393882,-1.603636,0.53456,0.202574,0.202574,4.04372,8.046962,8.046962,17.992743,1.4261,6.26541,14.18726,27.20738,19.991096,5.922827,0.856757,-4.18574,-1.499792,2.69432,2.007466,-0.894913,-0.609728,-0.549298,-0.416216,1.622963,-0.81477,-0.187989,6.173616,10.653095,6.068772,18.61019,3.592144,3.592144,-1.893679,-0.21577,-0.21577,0.222078,1.283395,1.283395,2.049775,2.049775,2.456584,2.253637,2.642323,2.320242,1.326611,-1.448187,15.030941,12.129501,5.690308,4.634069,6.569725,15.63417,29.363152,26.280546,16.492428,9.997568,4.185562,1.013015,1.135246,0.75377,-0.319845,-1.373341,-0.733017,-0.733017,-0.500584,-0.500584,-1.743114,-1.743114,-1.492494,1.251521,-1.72232,-1.72232,-6.587615,0.019402,10.99736,5.448675,3.880618,14.769772\n-0.119724,-0.119724,-4.083609,-4.857832,-4.32575,-0.916708,-0.916708,3.759596,11.046341,-3.161823,-11.366831,-8.733141,-0.266826,1.25177,0.965131,3.867685,-4.063008,11.197021,14.496245,-1.259233,-18.405384,-3.841191,-2.537377,-0.36781,-3.084588,-3.084588,3.597441,4.116344,4.116344,2.755152,1.884197,11.637951,-6.484013,-5.847653,1.199543,-1.382493,-1.987644,-7.801239,-2.975568,1.887507,3.75671,0.183339,-1.732678,-0.790295,-1.449561,-3.603668,-1.247199,-4.552547,-4.331738,1.818565,13.419997,-27.822042,-3.877969,-3.877969,-2.434246,-4.669673,-4.669673,-3.236156,-4.224456,-4.224456,-1.794113,-1.794113,-0.977395,0.060709,-1.303753,-4.881591,-11.466263,-13.567987,-11.862476,-5.890267,0.484283,0.133327,5.373993,11.049356,-19.840643,-5.480073,-10.453169,-12.801989,-3.654261,-0.604945,0.213364,1.153655,0.663853,1.8009,0.160241,0.160241,-0.441504,-0.441504,0.299958,0.299958,0.996572,-6.947818,-2.025007,-2.025007,8.542692,-12.302016,-10.183113,11.008286,1.651236,14.047495\n-1.019916,-1.019916,5.390252,4.578098,2.305553,-4.870124,-4.870124,-3.648549,-9.616472,-16.317772,-1.65007,-1.498496,3.283893,10.573519,3.421475,3.019021,4.660543,4.93829,-10.662457,7.840405,1.085396,-4.029026,1.251869,8.124569,8.065849,8.065849,-4.245229,4.558466,4.558466,1.464685,-1.908821,-12.806659,-12.024311,0.9319,4.715064,-0.563379,-3.976503,-1.186005,5.078182,4.22224,0.895839,-1.742833,-0.966759,-1.613194,-0.421453,2.581924,-0.456892,0.435422,-1.837682,-0.031974,-10.940715,5.933984,1.134253,1.134253,6.22393,3.078392,3.078392,-2.074261,3.664624,3.664624,-2.964297,-2.964297,-3.596912,-2.914444,-3.077653,1.719183,3.773886,5.383225,-8.118355,-4.90403,-1.433554,-1.511251,-5.955382,-13.499431,-18.779282,-3.940388,-3.226366,-0.061221,1.149626,-0.04302,-1.611751,-2.279173,-1.826974,-2.201588,-3.137796,-3.137796,-1.457143,-1.457143,-0.15312,-0.15312,-0.596147,-3.770396,-0.6006,-0.6006,-3.10547,-11.038343,-6.38185,-1.559702,-3.174812,-8.102727\n0.684487,0.684487,0.394179,1.201181,3.462384,2.415679,2.415679,1.057359,0.431466,-10.1874,-1.954915,-0.021307,1.238468,1.060022,-0.769715,0.372872,2.000193,8.269772,1.206508,0.380862,-4.588991,-7.297641,-3.297255,-2.70865,-0.506041,-0.506041,0.838962,-2.559501,-2.559501,-3.100166,-0.037287,2.655382,-3.076195,2.207936,1.398271,-0.972131,-0.055931,4.815378,2.314471,2.0215,1.12927,1.736519,0.111862,-0.511368,0.037287,0.961478,1.880341,1.994866,3.590226,5.02312,3.225344,-6.82356,-2.327788,-2.327788,-4.072297,-3.36384,-3.36384,-2.136025,1.683252,1.683252,-0.44212,-0.44212,0.050604,0.503377,-0.186436,-0.902883,-1.16123,5.260161,5.609063,4.546377,2.498244,0.495387,-0.407496,-1.582043,-3.409117,-5.92334,-1.568726,-1.813757,0.705794,-0.189099,-0.013317,1.203844,1.046705,0.902883,1.185201,1.185201,1.755163,1.755163,0.727101,0.727101,1.707222,1.896321,-0.332922,-0.332922,0.308951,-0.327595,6.698382,4.032346,0.68715,2.357085\n0.290308,0.290308,0.617902,1.688578,2.900413,2.548847,2.548847,2.077431,0.039951,-1.845717,-3.169413,-4.911259,-5.318755,-1.414251,-0.660516,-2.074767,-2.876442,-3.584899,-1.917628,-8.685258,2.341105,0.476744,-0.532675,0.436793,3.286602,3.286602,5.388003,2.000193,2.000193,5.044427,10.573589,0.543328,-8.831743,-10.155439,1.432895,4.804724,6.607827,-3.230671,-3.294592,-2.508897,-0.463427,-0.415486,-0.490061,-0.940171,-0.793685,-0.303624,0.111862,-0.428803,-2.346431,-3.662137,-5.103022,3.995059,2.365075,2.365075,-0.183773,0.599259,0.599259,0.338248,0.47408,0.47408,1.773806,1.773806,1.448875,0.945497,0.047941,0.391516,1.281082,2.452966,4.506426,3.518315,1.659281,0.577952,1.78446,1.017408,-1.193191,-4.847338,-1.917628,-1.411588,-1.089319,0.029297,0.103872,0.005327,-0.167792,-0.125179,-0.292971,-0.292971,-0.697804,-0.697804,-0.612576,-0.612576,-0.737754,-0.343575,1.973559,1.973559,2.319798,-0.226387,-4.269386,-1.962906,-1.725865,-0.540665\n0.67916,0.67916,1.59536,2.042807,2.807195,3.441077,3.441077,2.466283,-6.57853,-15.106649,-1.749836,-0.428803,0.929517,2.157332,0.69514,-1.307716,-2.860462,0.047941,-4.751457,-14.581965,0.972131,2.482263,2.138688,-0.335585,0.796348,0.796348,2.572818,1.022735,1.022735,-2.940363,0.364882,-4.040336,-6.839541,-6.405411,-2.959007,-2.604778,-4.788744,-4.791407,-0.087891,0.44212,0.165129,0.01598,-0.141159,-0.050604,-0.079901,0.394179,0.799012,1.281082,0.668507,0.303624,-4.794071,-1.209171,4.54904,4.54904,0.652526,-0.077238,-0.077238,-1.60335,0.26101,0.26101,0.319605,0.319605,0.082565,0.149149,-0.295634,0.042614,0.604586,3.462384,5.784845,5.579765,3.446404,1.486162,0.804339,-6.147064,-15.511481,-5.276141,-5.763538,-2.175975,-0.01598,0.735091,0.506041,0.620566,1.041379,1.049369,0.838962,0.838962,1.347667,1.347667,0.303624,0.303624,0.572625,0.138495,0.511368,0.511368,0.02397,-1.225151,5.699617,5.566449,1.560736,1.925618',Badminton +'-0.592124,-0.592124,0.330361,0.834415,2.385987,2.385987,0.556966,0.111055,0.628035,0.628035,-1.369799,-1.369799,-2.526851,0.194443,0.194443,2.456769,8.209677,13.359024,19.865013,9.976207,2.27796,0.428317,-0.152973,-0.796999,-0.43834,-0.34165,-0.053646,-0.106297,0.084382,0.73838,1.291051,4.781242,11.429852,23.626205,22.607058,-1.44032,-1.44032,2.667098,5.121405,5.121405,3.139364,3.139364,3.287919,2.91,1.296037,-0.321187,2.221088,10.729059,8.691158,11.960352,7.371729,0.748106,1.431398,0.744652,-0.846807,-1.052182,-1.165689,0.433908,0.882093,0.985155,0.648418,3.899149,7.560155,7.560155,-2.456701,-1.483189,22.920322,3.060077,3.060077,2.421898,2.977151,-2.120728,-2.268824,-0.953892,0.791682,4.144262,9.44901,9.44901,27.1101,27.1101,-0.770033,-0.770033,1.193033,-1.369049,-0.896211,-2.003327,-1.24072,-0.790491,0.234605,2.125762,4.071154,3.142996,1.567428,1.869343,0.633303,18.863441,-2.562504,2.052066,-0.427342,-0.427342\n-0.39274,-0.39274,0.144771,-0.359371,0.866971,0.866971,5.598286,1.159097,-1.204296,-1.204296,-0.770784,-0.770784,0.5262,0.107947,0.107947,3.48374,4.770407,-0.975222,-1.008089,4.700312,6.122298,1.90493,-2.393661,-0.310175,-0.406591,-0.324664,-2.599225,-1.90079,-3.480524,-2.470299,-0.996007,0.808646,5.719504,-0.609274,-11.059025,3.183676,3.183676,-2.473321,-2.107966,-2.107966,-2.368119,-2.368119,-2.448763,-3.091514,-2.873041,1.508345,4.1512,7.438344,6.44864,-3.50497,-15.484932,-2.198915,1.249523,-0.748438,1.193548,0.94499,1.501137,-0.029284,-0.255995,-1.238738,-0.866406,-0.023492,1.900606,1.900606,11.201593,7.655206,-23.472906,7.535774,7.535774,-2.77754,-4.97901,-2.890356,-2.145586,2.459846,3.756833,0.914715,-0.466456,-0.466456,-14.890586,-14.890586,-3.879798,-3.879798,-3.140595,-1.784713,-2.831454,-2.541593,-1.958757,-3.012121,-5.007889,-3.991669,-0.432733,-0.027694,0.376973,0.851256,13.531952,-23.487123,-1.066755,-0.253191,0.664755,0.664755\n-1.411327,-1.411327,-0.982163,-0.141869,0.073025,0.073025,-3.054164,-4.465828,-3.861423,-3.861423,-3.170381,-3.170381,-2.885201,-3.837353,-3.837353,-5.195936,-6.306694,-5.840313,-0.823371,6.974834,2.77615,1.037491,-0.511128,0.116607,-0.388629,-0.279104,-0.700091,-0.086203,1.007324,-1.95324,-3.849863,-4.436028,-8.400501,-7.163248,17.044888,12.980691,12.980691,2.138011,2.630908,2.630908,0.54645,0.54645,-0.605729,-1.979737,-3.743005,-0.343213,-4.039292,4.460332,4.098729,10.528778,6.844734,2.229429,2.180298,1.13365,1.459524,-0.18363,-0.485835,-1.620737,-1.440937,-1.194234,-0.830617,-2.067071,-3.25931,-3.25931,-8.449867,-11.807385,-11.233436,8.801806,8.801806,0.093905,-1.650281,-5.399641,-5.004798,-0.837604,-4.100883,-7.12421,-2.535893,-2.535893,11.579243,11.579243,4.702202,4.702202,2.480589,2.469172,2.497622,2.336832,2.321746,0.184069,-2.737345,-4.132617,-1.00963,1.366777,-1.156508,-3.248166,-14.575851,16.160149,2.36296,1.181257,0.418198,0.418198\n-0.306288,-0.306288,-0.133169,0.210406,-0.239704,-0.239704,-4.165514,-2.852472,-2.23457,-2.23457,-1.744509,-1.744509,-1.169221,0.138495,0.138495,0.410159,1.32636,1.80843,4.157525,1.464855,1.32636,0.292971,-0.287644,0.274327,0.047941,0.886903,1.58737,1.651291,5.888717,5.262824,3.773999,2.626085,-0.836299,-0.977458,8.831743,-0.657853,-0.657853,-0.508704,-0.269001,-0.269001,3.651484,3.651484,3.784653,2.436986,1.147914,0.183773,-1.379627,0.719111,2.23457,-1.190528,-1.107963,-0.258347,-0.053267,-0.41815,0.045277,-0.604586,0.681823,0.189099,0.308951,0.553982,1.214498,0.332922,-0.322268,-0.322268,0.556645,-3.313236,5.547805,1.142587,1.142587,-0.46609,-0.729764,-0.117188,1.222488,2.70865,1.728529,3.156097,4.644922,4.644922,-4.322654,-4.322654,1.77647,1.77647,1.233142,0.370209,1.147914,0.620566,1.432895,0.649863,-0.234377,0.029297,-0.324931,0.431466,-1.046705,-0.838962,-4.53306,-3.987069,0.471417,-1.123943,-1.249122,-1.249122\n0.354229,0.354229,0.22106,0.173119,0.905547,0.905547,2.543521,3.369166,3.017601,3.017601,1.920292,1.920292,1.819084,-0.93218,-0.93218,-1.677925,-2.050797,-7.587948,-10.40047,-2.68468,0.276991,0.564635,0.412823,0.22106,-0.058594,-0.149149,-0.207743,-0.106535,0.290308,1.363647,1.717875,1.906975,1.883004,-8.243138,-4.146871,-2.146678,-2.146678,-1.012082,-1.166557,-1.166557,-0.767051,-0.767051,-0.498051,-0.082565,-0.03196,-0.468754,-0.631219,-0.03196,-0.26101,-5.907361,-0.039951,1.249122,0.042614,0.298298,0.724437,0.910873,0.945497,1.036052,1.198518,1.182537,1.536766,3.13479,4.948546,4.948546,5.076388,5.308102,1.478172,-0.894893,-0.894893,0.788358,1.36631,-0.420813,-2.421006,-3.212027,-2.04547,-1.739182,-1.227815,-1.227815,-12.440613,-12.440613,-0.953487,-0.953487,-0.777705,-0.202416,-0.239704,-0.082565,-0.002663,0.615239,0.727101,0.20508,-0.759061,-1.211835,-0.878913,-0.841626,-2.940363,-3.494345,1.880341,0.713784,0.889566,0.889566\n-0.143822,-0.143822,0.21307,0.311615,1.13726,1.13726,-0.058594,-1.864361,-1.933608,-1.933608,-0.527348,-0.527348,-0.508704,-0.9162,-0.9162,-0.727101,-1.257112,-2.514224,0.079901,0,-0.822982,-0.44212,-0.303624,0.071911,0.295634,0.548655,0.945497,1.632647,2.00552,5.4173,5.907361,5.124329,-2.255877,-11.516423,-0.878913,1.472845,1.472845,1.494152,1.395607,1.395607,1.680588,1.680588,2.098738,2.668699,3.286602,3.076195,0.604586,-1.182537,-2.711313,-10.87455,-0.668507,1.813757,1.424904,0.950824,0.822982,0.178446,-0.194426,-1.134597,-1.512796,-1.707222,-1.627321,-2.010846,-1.651291,-1.651291,-1.861697,-3.563592,-10.051568,0.00799,0.00799,-0.953487,-0.085228,2.042807,2.876442,4.650249,4.365268,2.895086,2.032153,2.032153,-16.108078,-16.108078,1.496815,1.496815,1.416914,0.623229,0.375536,0.383526,0.846953,0.745744,1.731192,2.796541,2.993631,2.985641,2.186629,1.392944,-1.278419,-1.432895,2.52754,1.667271,1.025398,1.025398',Badminton +'-0.166323,-0.166323,-0.2273,0.081961,2.985319,3.714295,5.123566,5.123566,1.934277,1.934277,9.595146,23.008554,1.483718,3.472195,2.296354,1.516054,0.167128,-0.257412,3.620402,5.229559,5.500012,15.311742,29.126005,-2.632734,3.452442,14.532681,13.888377,19.515387,14.803753,0.093219,0.093219,-0.604349,-2.154403,-2.154403,-2.51304,1.442817,4.344946,13.324367,17.409658,2.611435,-1.136499,0.782392,1.273306,2.558389,3.736392,7.837251,19.433733,13.42026,9.13287,25.871246,15.75037,15.526218,23.327515,1.82758,4.277356,1.175496,-0.528067,0.900786,4.122,9.269766,9.990976,25.509972,11.010164,8.504203,1.949031,-0.702096,-0.702096,4.710939,4.328833,4.328833,5.067588,19.24957,20.089771,7.918431,11.660852,8.655474,11.951458,11.614944,10.511136,1.244979,8.326054,7.594046,1.008481,7.235857,7.390644,1.753438,18.318577,29.023777,10.009113,6.449137,4.157961,5.110259,19.045622,18.969835,7.09777,7.09777,5.988524,6.835404,3.84588,3.84588\n0.768712,0.768712,-0.67796,-1.7043,-4.782449,-4.911507,-4.11023,-4.11023,1.745573,1.745573,11.314085,-25.233425,-7.924374,-2.72069,9.528614,5.643556,-2.722611,-6.541776,-5.025591,-0.867023,10.007272,9.903418,-13.159349,-5.378293,-5.104196,6.174933,11.841068,9.966466,-23.48326,4.091079,4.091079,2.601892,-1.411717,-1.411717,-1.543298,-0.668542,8.372691,10.160916,-17.889948,-9.428535,-9.499942,-0.209133,-0.033153,1.74961,1.639422,10.232243,11.837156,-10.592106,-6.546259,4.37481,7.134476,11.56846,-26.301262,-3.490665,-0.870008,6.472088,-2.115764,-5.902359,-6.360045,1.716279,10.116263,5.764475,-14.718886,-8.31531,2.000507,-0.497372,-0.497372,-2.723209,4.452553,4.452553,2.482691,11.670509,-9.122946,-5.830237,-1.576441,3.559962,6.278144,14.333215,-6.91396,-5.207451,11.277771,-1.447109,-10.578851,-8.496178,0.683891,11.156827,9.94191,-18.186668,-15.106774,-7.587767,5.051556,13.490128,11.037158,-21.35238,3.058366,3.058366,0.941732,0.185777,0.68532,0.68532\n-0.344511,-0.344511,-1.588044,-1.705492,-0.595928,0.224886,-0.525214,-0.525214,-5.088161,-5.088161,-4.750675,-23.68985,-5.860971,-1.196967,10.394205,7.442099,3.25005,-4.343818,-7.14101,-8.357567,-7.364091,-6.903203,-13.580918,-0.10672,-3.118879,-5.32495,-5.667622,1.15753,-9.498877,3.823942,3.823942,2.6884,-0.766432,-0.766432,-0.484173,-3.083846,-4.249536,-3.608333,-13.640844,-0.891095,1.492724,1.041597,-1.38902,-0.07709,-1.549422,5.296674,-18.940058,-16.557545,2.313098,0.955793,1.65684,10.209234,7.774971,-1.463832,0.359625,5.845071,7.542927,5.823278,-3.144079,-5.121481,-13.729032,-13.135656,-5.800932,1.359333,5.318978,3.211233,3.211233,-1.315811,-5.372076,-5.372076,0.302103,-1.172513,-17.258856,2.82963,-1.158697,-0.654286,-5.482271,3.720725,18.687325,-3.798078,11.060687,4.799343,0.955722,-5.145403,-4.636046,-3.400038,-6.152968,-14.530646,-4.026683,-3.835455,2.618586,-4.081799,4.292287,-1.757158,-1.437977,-1.437977,-5.033005,-4.122738,-12.87181,-12.87181\n0.218397,0.218397,2.141352,2.189292,2.375728,3.065542,5.350716,5.350716,5.079052,5.079052,3.760682,-12.640367,-0.982784,-0.287644,2.162659,1.254448,2.841819,2.4796,-0.543328,-3.61686,0.44212,0.897557,-2.578145,1.515459,3.520979,7.388196,3.265295,-1.459528,-9.281854,-1.403597,-1.403597,0.01598,2.25854,2.25854,1.1053,-0.055931,1.187864,-0.378199,4.05898,-0.463427,2.540857,6.506619,2.237233,-0.620566,-0.929517,-4.96719,-3.286602,11.103601,4.780754,8.770486,-4.461149,-1.877678,-3.37982,0.002663,-2.26653,0.88424,0.817655,1.970896,-0.24503,1.507469,0.902883,-7.638553,5.664993,1.872351,6.522599,0.942834,0.942834,-1.680588,-3.425097,-3.425097,-7.28965,-0.41815,-3.305245,6.157717,4.415872,1.994866,-2.828502,-5.577102,1.16123,2.104064,2.46362,-1.009418,2.743274,-3.534295,2.508897,1.009418,-4.591654,11.929246,1.099973,3.827267,-1.243795,-0.135832,-0.141159,-8.496159,-3.251978,-3.251978,-1.251785,-0.732428,-2.863126,-2.863126\n0.135832,0.135832,0.250357,-0.178446,-0.359555,-0.351565,-0.428803,-0.428803,-1.645964,-1.645964,1.331686,0.921527,-1.134597,-3.576909,-3.025591,-0.423476,2.319798,4.887289,5.547805,4.929903,1.448875,2.229243,9.478943,-4.277376,-6.147064,-5.744895,-0.165129,-11.955879,2.508897,1.14525,1.14525,1.475509,1.949589,1.949589,2.085421,1.984213,2.048133,-4.192148,-0.039951,-3.800633,-2.90574,0.23704,1.368974,2.285174,2.543521,2.658046,9.449646,-6.085806,-9.433665,-9.76126,-8.000772,-3.83792,0.034624,1.851044,0.029297,1.763153,2.68468,4.322654,5.145636,3.020264,2.239896,-4.138881,-3.486355,-5.337399,-1.403597,0.649863,0.649863,2.91373,5.18026,5.18026,2.721967,5.398656,18.212141,-7.816999,-8.538773,-6.503956,-7.555988,-10.174083,10.592233,0.716447,0.868259,1.491489,5.153626,4.06697,2.255877,3.843247,-2.796541,-0.910873,-4.261396,-7.124522,-3.046898,-2.974987,-7.870266,2.317134,2.817848,2.817848,5.936657,5.694291,8.536109,8.536109\n0.162466,0.162466,1.80843,1.957579,2.815185,3.859227,4.623615,4.623615,0.335585,0.335585,-3.848573,-13.050526,1.134597,2.226579,2.426333,0.538001,-2.887096,-2.25854,-0.082565,4.868645,3.574246,-7.795692,-17.506348,1.387617,1.006755,3.377157,3.305245,-17.876556,-0.783032,3.515652,3.515652,2.666036,1.345003,1.345003,1.675261,1.57139,1.123943,-16.98699,-1.187864,0.822982,1.041379,1.760489,2.2905,2.812522,2.500907,0.961478,1.432895,-2.785888,-1.696568,3.113483,1.057359,-11.042342,-9.140695,3.816613,3.3958,3.073532,0.324931,-1.193191,0.538001,3.576909,3.723395,-18.957886,-0.420813,1.781796,2.793878,-1.499479,-1.499479,-0.942834,1.606014,1.606014,4.346624,-3.318562,-0.977458,-1.001428,1.099973,3.057552,-2.157332,-7.183116,-9.867795,3.872544,2.908403,-1.363647,-2.508897,2.389045,5.878063,5.795499,-16.121393,-8.666615,2.889759,3.347859,2.764581,0.159802,-14.629906,1.227815,6.091133,6.091133,2.090747,-0.346238,2.413016,2.413016',Badminton +'0.052231,0.052231,-0.548047,-0.012414,1.011521,-0.484169,-1.27686,1.011774,1.829868,2.120556,2.120556,-0.135867,-0.135867,17.191116,2.801915,0.790672,0.790672,1.720672,-0.748353,-0.184469,-0.01151,-0.371224,-0.480371,1.590517,1.591592,7.661543,16.402634,22.81614,14.548894,-0.726083,-3.606665,-2.470355,-1.866242,-2.972295,-4.450536,-4.410252,-3.438087,-2.447785,-4.202509,9.974581,15.046455,8.248698,28.609226,6.669135,-1.816772,-1.816772,-1.011058,-1.011058,-0.221207,4.737394,3.244058,2.202449,1.398032,3.933248,-4.302154,2.228922,9.010148,-1.630447,-10.213043,15.192524,22.591616,14.927385,7.890259,6.502622,4.545393,1.948973,0.234295,-0.279396,-1.711413,-1.499739,-1.922562,-1.347565,1.325902,0.251431,0.251431,4.10769,4.10769,3.270422,-3.978425,-2.068148,9.097653,3.558437,1.95508,10.257607,25.174408,20.161015,-2.568313,0.65488,-0.813526,-0.563636,-2.579798,-2.579798,-2.0283,0.558956,3.878525,0.644979,3.540639,11.749453,1.14465,17.64946\n-0.730486,-0.730486,0.707006,0.191957,-0.936402,-1.22424,-3.12289,-1.979156,-2.56745,-4.064626,-4.064626,1.352137,1.352137,9.78925,-9.065123,-5.63151,-5.63151,0.476348,0.529138,1.008486,0.71012,-4.425037,2.079816,5.605416,11.273728,13.710423,7.916841,-22.13492,10.887106,4.530348,-2.083423,-0.688251,-0.40916,-3.817659,0.48258,1.743499,5.891292,-3.4225,-13.77801,-2.435783,5.587421,12.619705,-17.311832,4.492133,4.87136,4.87136,0.744453,0.744453,1.704137,-5.636684,8.662836,-3.017465,1.238142,-8.130435,-8.358312,0.338059,2.936653,-0.622735,17.071737,5.691902,-10.358342,-3.292444,0.972426,-0.395248,0.782819,-0.217259,-1.447788,0.039903,0.960159,0.951035,1.702151,-1.492512,-3.46034,-4.023946,-4.023946,2.077969,2.077969,-2.969665,-2.648246,-0.039936,2.146863,-6.277846,5.901938,9.832666,3.95486,-12.372107,-0.252136,-1.66601,0.232584,-0.580272,-1.341981,-1.341981,-5.880747,-3.58934,-4.006235,-7.254929,-5.886849,-1.847987,13.558,5.7017\n-0.518104,-0.518104,-1.17943,-0.792904,-0.974097,0.295685,-0.202464,-1.898568,-1.179886,-0.084766,-0.084766,-5.945134,-5.945134,7.910649,-2.759228,-1.705687,-1.705687,2.208364,-2.650019,-1.038112,-2.712547,-1.189282,-2.678535,-1.299521,1.795369,-5.654656,-14.174992,-4.395906,8.099365,1.520363,-3.931994,-1.281345,1.305909,-1.680837,1.217401,2.233346,0.682284,-1.569243,-11.937906,-10.974827,-10.628109,-10.302189,-18.695854,2.102856,3.269658,3.269658,1.980219,1.980219,-3.123072,-6.03672,-5.555702,-2.15056,-3.261995,-4.270055,-2.801171,1.549316,-0.01253,7.782911,-1.133023,-11.973101,1.504297,6.672788,2.725758,-0.088368,-2.973708,-2.252893,-2.51712,-3.317362,-1.897336,-1.84168,-2.16082,-4.108322,-4.943515,-2.625471,-2.625471,-2.307556,-2.307556,-0.748767,1.551708,-1.08446,-4.159033,-1.333647,-1.944911,-7.043038,-20.832016,3.805867,7.031204,5.559029,5.243601,2.869099,1.636674,1.636674,1.253834,-0.932842,-2.999965,-1.321633,-3.497949,1.932888,3.23139,2.6635\n-0.159802,-0.159802,-0.239704,-0.101208,-0.013317,0.396843,1.299726,2.868452,4.53306,4.442505,4.442505,3.590226,3.590226,2.322461,2.010846,-1.693905,-1.693905,-1.217161,-4.016366,-2.210599,-3.068205,-3.435751,-2.383719,-2.271857,-4.189485,-5.321418,-2.713977,8.456208,5.126992,-0.913537,-2.642066,1.539429,-0.415486,2.402362,1.299726,1.214498,0.346238,-4.184158,-0.982784,10.293935,8.818426,3.989732,-9.124714,6.882155,0.079901,0.079901,-0.415486,-0.415486,-2.24256,-3.80596,-7.926197,-7.21774,-2.333114,2.016173,-2.231906,-3.723395,-3.686108,-8.205851,-1.669935,0.018644,1.752499,0.737754,1.190528,0.050604,0.013317,0.868259,3.145443,0.652526,1.083993,0.865596,0.335585,0.926854,0.122515,1.36631,1.36631,5.816806,5.816806,2.287837,2.322461,2.767244,1.811093,0.593932,2.852472,0.724437,-9.32713,-4.54105,4.602308,2.96167,-3.502335,-0.556645,-2.697996,-2.697996,-1.001428,0.593932,0.538001,0.708457,0.002663,2.47161,2.820512,-0.522021\n-0.045277,-0.045277,0.02397,0.20508,0.191763,-0.338248,-0.761725,-1.193191,-1.914965,-2.0215,-2.0215,-0.820319,-0.820319,-6.266916,1.302389,-0.921527,-0.921527,0,1.789786,2.444976,2.91373,3.936465,4.519743,3.560929,2.74061,1.608677,4.506426,-5.217547,-2.101401,3.611533,3.968425,-0.681823,0.029297,-0.945497,-1.134597,-0.279654,0.89223,1.704558,-0.319605,-4.658238,-1.954915,2.279847,3.672791,-3.773999,-2.466283,-2.466283,-1.946925,-1.946925,-1.036052,-0.258347,0.380862,5.00714,5.374686,1.001428,-1.169221,-1.845717,1.187864,-3.315899,-0.22905,-1.470182,-10.445747,0.604586,1.225151,3.547612,3.228008,1.387617,1.829737,0.591269,0.41815,-0.300961,0.005327,-1.174547,-1.480835,-1.270429,-1.270429,-0.69514,-0.69514,-0.093218,0.394179,-0.303624,0.231713,0.476744,0.527348,0.793685,-1.086656,-2.165322,-1.102636,-1.337013,0.210406,0.101208,0.620566,0.620566,0.218397,-0.167792,-1.552746,-2.514224,-3.82194,-5.081715,-4.724823,-3.64083\n-0.029297,-0.029297,0.298298,0.119852,0.101208,0.516694,0.700467,1.094646,2.543521,3.217354,3.217354,2.346431,2.346431,-15.764503,2.271857,1.739182,1.739182,1.643301,0.535338,-0.48207,-1.068012,-1.219825,1.648628,3.720732,4.612961,5.590419,-8.030068,-8.738525,0.085228,-1.875014,-1.190528,-1.566063,-1.360983,-1.968232,-0.569962,0.066584,0.527348,-1.504805,0.21307,6.986026,7.747751,3.523642,-10.520322,3.222681,1.536766,1.536766,0.849616,0.849616,-0.178446,-1.318369,-2.887096,-3.102829,-3.630177,-2.879106,0.247694,1.57938,-1.861697,4.873972,1.864361,-5.047091,-5.561122,-0.862933,-0.037287,0.43413,-0.101208,-0.878913,-1.79245,-0.812329,-0.042614,0.370209,-0.471417,-0.258347,1.025398,0.4581,0.4581,4.7701,4.7701,3.872544,2.809858,4.778091,3.595553,3.129463,4.71417,1.928282,-19.565134,1.13726,1.318369,1.054696,0.090555,-1.068012,-0.724437,-0.724437,-0.404833,0.117188,-0.282318,0.721774,2.085421,1.779133,-0.058594,-13.335506',Badminton +'1.102297,1.102297,0.732385,-0.920942,-0.920942,-0.007309,0.7689,2.74994,6.124509,7.584331,5.82032,5.82032,4.252384,2.413871,6.762723,28.026657,28.026657,17.320156,11.104436,8.887936,5.510532,2.864203,1.198489,-0.339619,0.298232,-0.082866,-1.311864,-0.217896,-1.916793,-4.722529,-0.518163,0.699484,2.880201,7.857451,13.871069,18.024126,24.548294,12.199043,3.778424,1.684454,1.937527,1.265806,1.153049,0.191962,0.590658,1.463516,1.463516,2.20378,1.880041,0.132633,-2.280982,5.846597,10.24493,0.36655,23.123938,20.369907,4.830317,5.97667,0.933091,-1.074053,-1.535124,-2.843964,-4.466692,-1.977085,-1.034104,-1.034104,-0.152971,3.132268,2.795041,4.33773,12.786496,12.489007,15.265581,13.054003,13.054003,23.157085,25.897846,25.897846,19.226326,13.593466,5.517743,1.577532,1.577532,0.443568,0.443568,0.960194,2.14672,2.399849,2.969822,3.807897,2.801348,2.251025,0.27442,-1.606587,-0.250374,-0.28029,-0.28029,-1.362502,2.849978,15.885976\n-1.790773,-1.790773,0.661191,4.488292,4.488292,-8.698994,-10.026559,-9.853507,-1.498929,3.175421,-0.037238,-0.037238,0.24509,3.714246,10.486633,14.907249,14.907249,-3.521389,-3.874089,-8.574099,-7.379726,-3.338044,-3.992871,-2.962209,-1.356787,-0.715683,-0.642736,-0.087785,1.76406,0.115479,-1.761415,-1.501464,0.614698,6.846182,8.090149,9.077427,-20.008701,-11.993302,-4.248735,-4.041217,-4.729475,-2.701756,-1.920272,-3.057899,1.521827,0.748554,0.748554,1.956207,1.333964,3.084032,2.837438,3.360693,2.19153,-6.796776,5.811691,7.799842,-0.618321,1.032088,0.056039,-1.142907,-1.635121,-0.763566,-0.60719,-0.299825,1.214898,1.214898,0.58562,-4.418409,0.742695,-0.883601,-9.146558,-10.546078,-1.599874,-3.021882,-3.021882,10.467781,24.805077,24.805077,-9.834171,-12.013878,-8.06319,2.736308,2.736308,2.388513,2.388513,4.316973,2.22158,2.432298,0.079321,0.988617,0.289877,-0.13653,-0.61614,0.931487,2.770658,3.982322,3.982322,0.859302,-2.920563,-2.012929\n0.001413,0.001413,-1.579566,-2.274492,-2.274492,0.781637,-2.773765,-5.671502,-5.683643,-5.182618,-4.983628,-4.983628,-4.098072,-3.368946,-7.823473,-21.338192,-21.338192,2.360904,-0.049963,1.183689,-0.497659,-2.202999,-1.755909,1.391503,0.384499,-0.253358,-0.566822,0.499091,-1.513157,-5.039532,-3.394929,-0.44771,1.052806,2.009035,0.902057,-4.585222,-5.02821,-4.07599,1.115625,2.890616,2.5356,-1.237532,-0.727016,0.155031,0.106343,-1.065834,-1.065834,-2.150805,-2.249584,-0.532784,-3.419107,-13.01594,-12.064693,-7.277516,-11.310157,13.214352,5.444113,0.49033,-1.715012,-3.556631,-4.009774,-2.999441,-1.863943,-2.281252,-2.574477,-2.574477,-5.583682,-4.900953,0.770283,-4.95258,-13.326967,-4.93895,-9.277232,-8.284441,-8.284441,-7.927259,-4.593456,-4.593456,-2.380273,2.82458,2.080106,0.129205,0.129205,-1.847873,-1.847873,-2.601832,-1.631437,-1.28275,-0.373684,5.195253,-1.136198,-4.68171,-4.299209,3.605506,5.225301,2.949889,2.949889,-0.329923,-12.358777,-5.047484\n0.258347,0.258347,-0.127842,0.564635,0.564635,-1.440885,-0.463427,3.193384,5.515844,4.242753,2.146678,2.146678,2.450303,0.721774,-1.142587,-11.108927,-11.108927,2.895086,-0.721774,-1.198518,-1.536766,-1.110626,0.740418,1.629984,2.96966,2.793878,2.551511,3.281275,2.876442,1.337013,1.337013,0.463427,2.359748,4.213455,1.041379,-5.009804,1.619331,-1.467518,-1.701895,-1.669935,-1.813757,-2.458293,-2.887096,-2.860462,-2.317134,-1.387617,-1.387617,-1.507469,-2.000193,-3.297255,-5.217547,-0.20508,2.056124,-5.238854,-5.257497,3.579573,-1.82441,-0.514031,0.391516,0.359555,0.865596,-0.346238,0.114525,0.119852,-0.567298,-0.567298,2.287837,2.186629,2.836492,0.985448,3.957772,8.237811,6.812907,2.865789,2.865789,-8.485505,10.962441,10.962441,-3.87787,-2.506234,1.5634,1.941599,1.941599,1.520786,1.520786,-0.276991,-4.55703,-4.924576,-5.254834,-2.70865,-2.887096,-2.173312,0.633883,0.44212,0.929517,-0.157139,-0.157139,-0.844289,0.599259,4.740803\n-0.165129,-0.165129,-0.167792,-0.298298,-0.298298,0.396843,-0.029297,-0.351565,0.042614,1.033389,0.588605,0.588605,0.740418,0.553982,1.763153,-1.219825,-1.219825,-3.129463,-2.018837,-0.561972,-0.583279,-0.759061,-1.259775,-1.329023,-0.868259,-1.267765,-1.709885,-2.034817,-1.723202,-0.844289,-2.269193,-1.986876,-0.436793,-0.322268,-1.829737,-3.222681,0.22905,-0.165129,-1.363647,-1.928282,-1.829737,0.532675,1.211835,2.024163,2.793878,3.246651,3.246651,3.491681,3.654147,3.662137,5.00714,3.241324,-7.313621,-7.827652,-0.178446,-5.870073,-0.23704,1.835064,2.580808,2.91373,2.008183,2.080094,1.619331,1.507469,2.117381,2.117381,0.354229,-1.448875,-1.741846,-2.085421,-3.497008,-5.140309,-0.6472,0.194426,0.194426,-0.138495,-1.478172,-1.478172,-3.976415,-2.51955,-2.018837,-0.050604,-0.050604,-0.423476,-0.423476,-0.551318,-0.22905,0.88424,0.945497,2.51156,2.626085,1.169221,-0.183773,-0.942834,-0.588605,0.314278,0.314278,0.522021,0.775041,-12.682981\n0.516694,0.516694,-0.588605,-1.462192,-1.462192,-0.402169,1.259775,3.520979,5.542478,5.44926,3.590226,3.590226,2.639402,1.61134,-1.693905,-17.026941,-17.026941,-4.144208,-3.832593,-2.966997,-2.301154,-1.022735,-0.380862,0.966804,0.934844,1.025398,0.990775,1.430231,0.902883,0.801675,1.677925,1.709885,0.809665,-1.984213,-6.448025,-9.833172,-2.381055,4.78608,4.008376,1.978886,0.591269,-0.476744,-0.681823,0.037287,0.340912,-0.058594,-0.058594,-0.764388,-0.173119,0.242367,1.057359,1.206508,-1.608677,-0.745744,-6.165708,3.547612,-0.556645,-0.516694,-1.14525,-0.396843,-0.255684,-0.402169,-0.292971,-0.181109,-0.410159,-0.410159,-1.337013,-1.880341,-0.745744,1.025398,3.795306,10.467054,10.102172,5.470567,5.470567,-16.387732,-9.502913,-9.502913,-6.78361,-2.695333,-0.737754,0.623229,0.623229,0.311615,0.311615,0,-0.705794,-0.639209,0.178446,0.596595,0.372872,-0.25302,-0.266337,0.231713,0.45011,0.218397,0.218397,-0.300961,-0.306288,13.948082',Badminton +'1.686827,1.686827,0.882479,-1.349818,-2.882074,-2.167791,3.724496,3.724496,9.5438,9.5438,7.50011,7.50011,17.12429,8.001104,1.752601,-1.647462,1.25149,0.441278,0.708047,1.203661,2.62483,4.86998,-2.798478,-5.703418,2.512591,20.986364,23.799438,26.50722,4.437573,9.617672,-3.33621,-1.099901,4.285956,2.086313,2.086313,0.673776,-3.612425,0.489047,21.428917,21.428917,15.050072,27.615267,27.615267,23.968872,7.071899,2.886547,1.020496,-0.865536,-4.365707,1.581533,4.785892,5.878265,8.272423,12.17296,23.354649,9.554585,3.749157,-0.799412,0.062048,2.362556,3.409136,2.862491,16.530151,8.43048,3.810015,3.810015,-0.291376,-0.291376,0.878069,0.878069,2.9983,2.9983,5.533767,-3.319059,3.262473,3.262473,1.603885,4.643693,16.930538,2.979319,5.319689,2.795589,-1.442044,-1.466919,0.48909,1.738196,1.851965,1.192643,2.382976,2.339004,0.970309,0.164806,1.478036,2.713434,5.157674,8.141355,1.99185,6.013556,6.013556,16.020191\n-3.375054,-3.375054,1.149305,-3.585759,-5.521821,1.615502,-1.778448,-1.778448,0.933454,0.933454,-0.071307,-0.071307,-6.883269,-18.242182,-3.001344,2.962804,-2.664426,0.413194,-2.795093,-1.852807,-1.948059,2.433305,-6.931548,-3.498143,-0.08191,9.909281,10.737345,-17.77658,-3.803396,-2.826607,-6.636908,-1.845835,-0.843405,3.052915,3.052915,4.883533,-4.703164,12.310123,15.238426,15.238426,-0.752153,-23.000828,-23.000828,18.379707,4.177735,-1.833689,-6.737886,-9.410219,-7.701208,-2.506801,3.786052,2.703797,0.603575,11.247242,1.470525,-16.417183,-1.760197,-6.277208,-4.772907,1.129715,-1.858763,16.173885,-10.275782,-20.965443,0.808044,0.808044,-0.306174,-0.306174,-10.646277,-10.646277,-0.252148,-0.252148,0.171817,-2.780693,-5.542886,-5.542886,12.956993,13.433155,20.548306,4.144673,-9.188584,-13.554322,-3.504561,-2.64504,0.185509,-1.341356,-1.328354,-0.273615,-1.087167,-0.874962,-1.358457,-1.229669,-0.778035,-1.588168,-0.284451,5.115477,4.248501,8.449398,8.449398,-3.969757\n-1.295042,-1.295042,-0.973728,-0.839587,-5.010687,-6.46485,-9.434383,-9.434383,2.793168,2.793168,0.477328,0.477328,-19.312916,-5.562645,-1.006702,3.231789,3.848016,6.664454,2.165072,0.550655,-1.841864,-6.565598,3.32281,-1.096975,-4.878931,-10.298571,-20.691076,3.367933,3.219827,11.007706,9.462284,1.750761,-0.257695,0.003787,0.003787,0.718233,-6.818808,2.836893,9.687359,9.687359,-11.3193,-15.150129,-15.150129,-0.691022,4.395261,1.177952,2.163822,-3.145135,-9.609603,-6.529256,-3.713212,-4.110999,-3.802118,-10.89662,-14.293199,0.346551,-0.488664,6.481587,9.120304,3.349625,0.50668,-7.788994,-21.645998,-14.420609,-1.721617,-1.721617,-0.113958,-0.113958,2.999767,2.999767,-6.042516,-6.042516,-3.539131,4.475167,-0.537881,-0.537881,-3.552081,-0.314747,17.076944,5.330967,4.753362,2.992521,1.707256,1.005922,0.370583,-0.157363,0.010987,0.199713,1.103694,-1.380543,-1.786675,-1.372032,-0.472936,0.827623,-0.210332,0.547058,1.087711,-14.311602,-14.311602,-10.551959\n-0.711121,-0.711121,-1.861697,1.981549,3.350523,3.773999,2.394372,2.394372,0.506041,0.506041,1.3743,1.3743,-6.245609,2.428996,-3.278612,-0.266337,-1.249122,0.143822,1.451538,1.614004,0.764388,-3.920484,0.868259,1.582043,3.507662,0.340912,-11.439185,1.406261,0.713784,-1.643301,-1.491489,-1.163894,-0.005327,0.969468,0.969468,-0.833636,0.340912,0.43413,-7.196433,-7.196433,-10.016944,-3.590226,-3.590226,12.195583,-0.343575,-3.683444,-2.301154,-7.140502,1.558073,3.425097,5.566449,3.917821,0.6472,1.150577,-8.035395,-5.987261,-4.061643,-2.642066,1.637974,3.840583,1.187864,1.986876,-3.350523,-18.888638,-2.879106,-2.879106,-4.168178,-4.168178,-4.05898,-4.05898,1.470182,1.470182,1.443548,0.793685,1.494152,1.494152,3.140116,-4.530397,12.262167,-0.287644,-0.308951,-3.065542,-0.668507,-1.283746,0.130505,0.010653,0.146486,0.428803,-0.149149,0.103872,-0.316941,-0.391516,-0.061258,0.276991,-4.365268,-4.668892,-4.469139,-0.849616,-0.849616,0.868259\n0.013317,0.013317,0.20508,0.346238,-1.736519,-3.443741,-5.356042,-5.356042,-1.875014,-1.875014,-1.467518,-1.467518,-7.119195,-0.689814,-0.708457,-0.708457,0.101208,1.044042,2.298491,2.756591,3.209364,1.416914,1.515459,1.944262,0.612576,0.396843,0.436793,-3.37183,-3.60088,-2.727294,1.619331,2.823175,2.911066,2.357085,2.357085,1.558073,1.576717,-1.432895,5.561122,5.561122,11.103601,-2.077431,-2.077431,-9.084764,-1.190528,0.492724,2.450303,5.606399,-1.131933,-4.391902,-3.979079,-0.67117,-0.098545,0.519358,-4.73814,-0.490061,-2.68468,-3.102829,-3.100166,-2.713977,-2.285174,-4.458486,-5.574439,1.614004,-0.005327,-0.005327,-2.399699,-2.399699,4.274713,4.274713,1.392944,1.392944,0.439456,0.572625,1.741846,1.741846,3.100166,-4.037673,0.186436,-1.582043,-1.368974,-1.352993,0.154476,0.514031,0.063921,-0.375536,-0.269001,0.149149,0.138495,0.67916,0.476744,0.127842,0.106535,1.060022,2.644729,5.579765,6.400084,6.892808,6.892808,-10.85857\n-0.207743,-0.207743,0.114525,0.47408,0.41815,1.390281,1.82441,1.82441,1.195854,1.195854,-3.017601,-3.017601,-20.641138,4.474466,4.056316,1.877678,0.964141,0.388852,-0.250357,-0.6472,-0.740418,-0.569962,0.069248,4.575674,4.916586,3.161423,-19.722273,-4.626278,-2.162659,-5.302775,0.002663,1.060022,1.856371,0.814992,0.814992,-0.993438,3.864554,5.814142,-8.051375,-8.051375,-6.831551,-3.481028,-3.481028,-0.503377,-0.870923,-4.210792,-3.819276,-0.772378,3.307909,5.462577,6.690392,5.643686,3.574246,2.317134,-16.688692,1.984213,1.211835,-1.685915,-0.681823,0.918864,1.278419,1.688578,-16.23592,5.643686,4.97518,4.97518,0.170456,0.170456,0.588605,0.588605,2.943027,2.943027,1.677925,0.985448,2.591461,2.591461,2.500907,-13.165051,0.02397,0.652526,-1.206508,-1.77647,-1.502142,-1.12128,-0.852279,-0.47408,-0.44212,-0.223723,-0.266337,-0.271664,-0.585942,-0.290308,-0.141159,-0.175783,-0.378199,-1.305053,-2.351758,-0.149149,-0.149149,-5.459914',Badminton +'1.142016,1.142016,0.840727,-0.013852,-0.117969,-0.891992,1.238552,1.238552,2.166201,3.915269,20.746006,20.746006,6.314988,1.719709,5.526621,-2.279624,-4.189076,0.005594,2.286758,2.792679,2.792679,10.894963,22.914282,1.518448,-6.764307,0.443768,2.057078,0.39841,-2.443698,0.233393,3.346711,4.741635,1.612594,2.056685,-0.889903,29.011864,14.296011,3.881154,9.595996,2.54158,2.54158,2.896197,2.896197,4.059815,6.796419,5.809544,1.637877,10.985018,10.415792,26.997185,26.997185,11.950981,11.336212,9.351306,5.637024,4.888613,-0.52258,1.98575,9.144775,6.732072,4.382076,4.382076,2.206334,-1.770951,-1.770951,-1.1494,7.499629,10.862268,2.732324,10.84017,10.84017,4.207675,1.39692,-1.485626,0.011322,-0.276645,1.437291,0.627366,0.013636,1.75087,3.438641,2.188768,-2.036194,-3.938515,-6.861679,-0.396282,7.010911,29.193157,9.157318,6.083257,1.532466,2.886932,2.26083,0.565641,1.422936,1.422936,1.268257,1.268257,0.327786,0.327786\n1.018433,1.018433,-2.015249,-0.92355,-0.230842,0.270666,-4.367179,-4.367179,1.690412,14.443416,-0.66047,-0.66047,-24.025938,-2.507801,5.27359,-4.133046,-9.090279,-2.169524,-2.819684,0.9293,0.9293,10.254079,-27.60962,-3.399812,-1.202284,-8.080437,-7.097359,-6.554809,-6.099242,-3.786052,-5.575164,-5.491474,-1.160511,-1.511372,10.628961,-21.61354,-4.730777,-12.831744,-17.341148,-12.241869,-12.241869,-1.326564,-1.326564,2.8912,1.777487,0.703823,1.525167,14.953884,19.461237,6.454645,6.454645,5.220694,-2.148679,-2.450654,-0.79283,0.041452,0.351833,0.866396,-1.02109,3.608632,-0.168656,-0.168656,-12.40147,-4.79898,-4.79898,0.996969,-0.768821,8.486872,10.299543,-23.908993,-23.908993,-6.315601,-2.247066,0.421819,-0.932787,0.833308,-0.959602,2.254629,-0.301494,-2.328129,1.139214,-7.091272,-2.831004,-2.114071,-6.818404,-1.666613,12.109478,-18.435947,3.87954,-0.394948,-12.54406,-10.78949,-5.121258,-4.515091,-1.792333,-1.792333,-1.155381,-1.155381,-0.120654,-0.120654\n0.677593,0.677593,-0.742828,-0.614269,-2.228961,-0.822522,1.939218,1.939218,-0.666129,-3.076536,-1.873601,-1.873601,-10.685862,0.907486,10.353405,0.561749,-1.058651,1.031222,4.777535,-5.022938,-5.022938,-9.242382,2.403798,-4.545327,-1.488679,4.778444,5.589742,5.567298,2.840644,-2.483861,-4.436595,-2.236343,-1.436001,-1.106343,-13.281665,-21.448755,1.77299,-0.790259,5.520644,8.382631,8.382631,0.370246,0.370246,-1.484807,2.605631,0.001848,0.337989,-12.325815,-12.243287,3.539221,3.539221,-1.033208,-6.059922,-3.322557,-2.216116,-9.564203,-10.189299,-10.510876,-7.779326,-4.153551,-4.444857,-4.444857,-0.163012,-1.030702,-1.030702,-0.808549,2.251308,2.165967,0.504287,-9.23934,-9.23934,-5.274786,-1.166993,1.896214,0.866121,3.226571,1.931976,0.047781,-2.753982,-1.638961,2.419407,-2.581426,1.66135,1.258066,3.099867,-1.949485,-11.741148,-11.76856,-3.750663,8.934949,5.607427,3.091045,2.340079,4.262963,2.57545,2.57545,3.63289,3.63289,1.35016,1.35016\n0.175783,0.175783,1.61134,1.222488,0.854943,0.953487,1.582043,1.582043,2.048133,4.551704,-5.718261,-5.718261,-2.359748,-4.740803,-0.966804,-2.064114,-1.632647,1.510132,1.845717,2.674026,2.674026,3.124136,-6.005905,-2.562164,-6.57853,-4.469139,-2.210599,0.026634,3.851237,3.563592,2.572818,4.54904,1.504805,1.158567,0.881576,-11.303353,1.8324,-1.35033,-3.449067,-1.12128,-1.12128,0.154476,0.154476,1.123943,-1.661945,-3.811286,0.103872,-0.854943,0.340912,5.185587,5.185587,-0.929517,-2.317134,-1.528776,-2.181302,-0.25302,1.946925,6.285559,4.200139,3.917821,1.683252,1.683252,-1.59536,0.300961,0.300961,1.049369,1.614004,2.940363,1.251785,-1.486162,-1.486162,-2.72463,-3.710078,-3.720732,-2.112054,-0.599259,-1.16123,0.540665,0.380862,0.476744,-2.47161,-3.049562,1.16123,2.287837,1.875014,2.226579,4.498437,-0.788358,-5.803489,4.690199,-3.16675,-2.319798,-1.946925,-2.215926,-0.101208,-0.101208,0.591269,0.591269,-0.44212,-0.44212\n-0.460763,-0.460763,-1.35832,-0.769715,-0.556645,-0.588605,-1.030725,-1.030725,-1.11329,-1.446211,-5.997915,-5.997915,-1.203844,-2.96966,-2.06944,0.807002,-0.210406,-1.712549,-1.510132,-0.24503,-0.24503,-4.466476,-5.108348,-2.663373,-2.642066,-0.343575,1.073339,2.852472,3.350523,2.927047,1.446211,1.235805,0.444783,-0.061258,3.499672,5.814142,-2.303817,-2.136025,-2.833828,-0.034624,-0.034624,3.347859,3.347859,3.995059,5.641023,7.044621,3.789979,5.126992,-4.272049,-4.53306,-4.53306,0.822982,2.199946,3.528969,6.245609,5.907361,0.926854,-7.832979,-8.107307,-4.607635,-2.458293,-2.458293,-1.081329,-0.697804,-0.697804,-1.435558,-2.146678,-0.905547,-1.544756,2.186629,2.186629,-0.346238,-1.773806,-0.364882,0.692477,-0.058594,0.625893,0.367545,-0.207743,-0.316941,1.643301,4.250742,2.373065,1.699232,1.861697,1.709885,2.271857,-8.749179,-1.872351,-2.642066,-2.844482,-1.318369,-0.279654,0.708457,1.214498,1.214498,1.869688,1.869688,3.526305,3.526305\n0.67916,0.67916,2.615432,1.675261,1.321033,0.9162,1.142587,1.142587,1.896321,-0.170456,-16.97101,-16.97101,3.164087,4.727486,1.789786,-0.783032,-0.269001,0.569962,1.566063,-0.186436,-0.186436,-10.437758,-10.168757,5.079052,1.864361,0.053267,0.548655,1.321033,3.145443,3.41178,2.650056,4.450496,3.646157,2.354421,0.48207,-8.450881,1.869688,-1.262439,-4.676882,-3.518315,-3.518315,1.651291,1.651291,1.411588,1.273092,4.722159,4.05099,-0.759061,-5.193576,0.724437,0.724437,-0.894893,-2.97765,-0.612576,0.45011,0.117188,-0.013317,0.607249,1.515459,2.237233,0.231713,0.231713,-1.752499,0.972131,0.972131,1.360983,2.218589,1.744509,-3.755355,1.195854,1.195854,3.715405,2.892423,1.526112,0.538001,0.047941,-0.388852,-0.191763,-0.383526,-0.175783,0.372872,2.50357,3.294592,3.784653,4.426525,4.911259,4.953873,-15.812443,-0.436793,2.428996,-1.398271,-1.411588,-1.408924,-0.583279,0.348902,0.348902,0.599259,0.599259,1.472845,1.472845',Badminton +'-0.39606,-0.39606,-0.268022,0.353698,0.019509,0.046675,1.473942,1.11252,0.788665,1.331374,2.174909,2.174909,5.033994,5.033994,5.323122,4.41245,1.978044,2.352644,6.244677,19.513924,6.7642,-1.788132,1.075759,1.233284,-0.453586,-0.453586,-0.338429,-0.649726,-0.895786,-0.492988,-0.381195,-1.057028,-1.566152,-0.300546,1.000154,1.000154,2.996957,19.172228,6.236474,6.236474,2.015671,-1.65908,-1.65908,-2.686077,-2.559848,-2.920795,-0.496976,0.203608,0.186817,0.215769,0.320382,-0.536633,-1.002283,-0.178338,4.478619,3.402654,-5.927079,-0.485431,2.591664,-0.484731,7.827384,13.909917,13.909917,1.174934,2.564805,3.495769,2.014211,-0.467314,-0.467314,-0.452497,-0.452497,-2.965723,-1.555926,-2.296014,-0.296673,-0.693031,1.081543,4.228957,5.61498,-1.199635,0.296852,1.331654,4.008551,-1.681412,-4.308269,-0.683732,5.999999,9.036291,9.036291,29.306435,8.241314,-4.240549,-1.140091,-1.39386,-1.39386,0.685694,1.015222,0.873364,-0.005607,-0.005607\n-0.686878,-0.686878,0.10351,0.251851,0.679806,-0.521236,-3.115834,-1.315358,-0.939864,-4.225885,-6.186372,-6.186372,-2.549765,-2.549765,-0.590637,-3.106727,-0.76267,1.697176,10.847278,-7.056283,-12.887537,-5.218414,-5.820421,-4.384105,-2.673153,-2.673153,-2.291076,-2.718932,-1.602981,-2.804397,-2.992984,-0.809916,-0.480192,0.170135,-4.571617,-4.571617,14.316679,-9.487671,-19.732403,-19.732403,-3.901621,-1.377233,-1.377233,-0.843737,-1.419812,-1.383652,-1.776185,-1.282715,-0.317961,-0.643214,-1.251289,-0.003485,-0.66451,0.381232,0.37703,-0.016978,-0.970194,4.114737,-2.511882,1.953555,5.996785,9.610155,9.610155,-4.850122,-1.726457,-1.772258,-0.649141,-0.402909,-0.402909,-1.067962,-1.067962,0.535797,-0.937182,0.8682,-0.069107,0.85833,0.497977,-3.873177,-4.928167,-0.499499,2.429588,5.947897,0.826981,-4.272204,-3.193861,-2.09108,0.142563,7.612906,7.612906,-20.89208,-7.091173,1.247809,-8.498796,-5.723597,-5.723597,-2.105519,-2.41169,-2.683228,-2.185891,-2.185891\n-0.350328,-0.350328,-1.281489,-1.933435,-1.08071,-0.007501,0.48972,0.536458,0.688567,1.755178,3.566515,3.566515,-4.751417,-4.751417,-5.23685,-6.356656,-3.204438,-3.857822,-15.19386,-8.624824,7.02928,2.618904,0.126519,0.434062,2.143112,2.143112,-0.505549,-1.463775,-0.672764,-0.108103,-0.650058,0.628582,-0.06494,0.527375,-3.313823,-3.313823,-9.807307,-7.97366,-1.196153,-1.196153,-0.987927,-0.198735,-0.198735,-0.649079,0.447587,-0.465251,-1.061943,-0.391711,0.434341,-0.13015,-0.44332,0.195077,0.922593,0.820876,7.866607,-10.998787,-1.594725,3.206118,1.457023,-2.592014,-1.687791,-5.850387,-5.850387,0.684683,-2.475793,-3.241774,0.546923,4.782527,4.782527,0.722445,0.722445,1.129381,0.486571,0.566267,0.890708,0.287527,0.18905,0.717782,-0.605474,-0.684603,0.797052,-1.745529,0.513207,2.496596,2.960435,-2.776202,-4.850642,-7.821162,-7.821162,-12.768056,5.773161,6.110567,0.920785,2.208508,2.208508,1.165885,0.087346,0.555119,1.224647,1.224647\n-0.157139,-0.157139,0.274327,-0.311615,-0.122515,-0.487397,-0.506041,-0.444783,0.135832,0.68715,2.010846,2.010846,3.590226,3.590226,4.114911,2.357085,1.419578,-0.335585,-3.299919,-4.458486,2.341105,-0.061258,-0.335585,0.194426,0.319605,0.319605,-0.119852,-0.058594,-0.047941,0.026634,-1.017408,0.359555,0.002663,0.524684,0.657853,0.657853,1.211835,-4.652912,-0.22905,-0.22905,-2.52754,-1.230478,-1.230478,0.23704,-1.507469,-1.424904,-2.085421,-1.667271,-0.854943,-0.21307,-0.282318,0.018644,-0.143822,0.330258,1.139924,0.748408,-0.48207,1.022735,0.65519,2.434323,0.993438,0.913537,0.913537,0.25302,-2.183965,-3.787316,-3.883197,-3.763346,-3.763346,-0.732428,-0.732428,-0.290308,-0.569962,-0.167792,0.26101,0.095881,0.532675,0.814992,0.740418,0.346238,0.223723,-0.716447,-0.402169,0.362219,3.417107,3.944455,2.841819,0.122515,0.122515,-5.739568,-0.119852,-0.68715,-2.301154,-0.455437,-0.455437,0.26101,-0.058594,0.431466,1.102636,1.102636\n-0.058594,-0.058594,-0.471417,-0.535338,-0.45011,-0.127842,-0.039951,0.556645,1.14525,1.723202,1.883004,1.883004,2.306481,2.306481,3.315899,2.010846,1.486162,2.564828,3.385147,-8.211178,0.367545,-0.950824,-1.115953,-1.869688,-0.9162,-0.9162,-0.751071,-0.926854,-0.985448,-0.910873,-0.982784,-0.516694,-0.569962,-0.617902,-0.825646,-0.825646,0.633883,-10.357856,0.234377,0.234377,0.292971,0.569962,0.569962,-0.111862,-0.154476,0.340912,0.452773,0.332922,-0.175783,-0.226387,-0.319605,-0.274327,-0.609912,0.005327,0.921527,3.334543,-1.262439,-1.352993,-1.688578,-2.338441,-1.052032,-2.812522,-2.812522,0.039951,0.162466,0.263674,-0.9162,-0.897557,-0.897557,1.614004,1.614004,1.427568,1.057359,0.580615,0.037287,-0.170456,0.074574,1.150577,1.542093,1.416914,0.119852,0.881576,0.143822,1.803103,1.38229,2.96966,2.916393,1.243795,1.243795,-0.125179,-0.338248,-1.507469,-0.700467,-1.653954,-1.653954,-0.793685,-0.697804,-0.617902,-1.273092,-1.273092\n0.151812,0.151812,0.332922,0.082565,0.114525,0.135832,0.231713,0.996101,1.440885,1.920292,2.799205,2.799205,4.045663,4.045663,4.269386,2.51955,2.026827,1.416914,-1.640638,-13.716369,1.504805,0.159802,0.087891,0.039951,0.636546,0.636546,0.860269,1.14525,1.155904,1.267765,1.347667,1.568726,1.797777,1.166557,1.379627,1.379627,0.050604,-15.285095,3.180067,3.180067,4.019029,1.648628,1.648628,0.993438,0.250357,0.218397,0.346238,0.540665,0.391516,0.154476,0,0.079901,0.029297,-0.26101,-0.588605,-1.478172,-0.673833,0.330258,1.131933,1.909638,-0.276991,-12.997258,-12.997258,1.185201,2.863126,3.230671,1.57938,-0.173119,-0.173119,-0.287644,-0.287644,0.053267,0.234377,0.322268,-0.045277,0.343575,0.564635,0.937507,1.211835,1.720539,1.251785,0.865596,0.945497,2.162659,3.587563,4.927239,5.18825,0.972131,0.972131,-10.608212,4.173505,1.422241,-1.099973,-0.633883,-0.633883,0.013317,0.02397,0.319605,0.977458,0.977458',Badminton +'1.211973,1.211973,-0.605948,0.476761,2.502923,1.885719,1.064432,1.348911,-0.018416,0.205855,-1.791406,-1.791406,19.76445,17.45156,10.477423,7.937528,20.730759,29.210932,22.798185,9.716433,4.051289,3.204811,1.625685,0.950711,0.83831,1.81445,4.459977,9.695296,10.540136,10.540136,13.470055,13.470055,2.581541,-1.271124,-1.271124,-1.92519,12.764168,7.991649,7.991649,-0.141216,12.574171,14.135809,16.263723,12.247869,8.743608,6.394096,6.246069,0.907817,-3.082661,-2.695166,-1.56039,-0.17828,2.065186,-0.284523,3.291713,-2.446478,-1.911459,3.143687,9.96962,7.293747,7.83117,5.271797,11.802874,3.882938,13.02179,25.008305,20.597925,9.352051,9.352051,1.562592,3.447731,5.43623,1.236172,-1.524237,-1.657844,6.095256,3.929942,4.574257,-2.669635,2.576337,4.697536,4.377567,-0.319225,-2.559352,-0.666237,5.713467,5.713467,12.488177,4.591875,4.591875,13.075892,29.06857,16.726345,10.118518,5.219278,1.239144,0.261434,2.490353,4.12212,3.16927\n-0.247107,-0.247107,-3.855673,-5.442304,0.558606,-1.346022,-2.858027,-1.238362,-3.477896,-9.186642,-11.640299,-11.640299,-4.568086,-1.250338,-0.13442,1.606048,10.122902,8.789059,-10.328762,-10.042195,-5.564781,-0.991143,0.246348,1.09158,0.429665,-0.775166,-9.768941,5.418245,14.970985,14.970985,-17.032898,-17.032898,-11.431206,-4.790321,-4.790321,-3.576086,3.607828,6.988493,6.988493,-7.947864,4.604019,1.693437,14.937097,6.460567,1.525928,0.765709,-2.254439,-2.598195,-6.670402,-3.088241,0.158461,1.753921,2.072551,0.402156,1.021601,1.447641,3.130537,-1.173584,-5.434012,9.107001,9.702684,4.692602,10.227391,5.9927,0.434144,12.860642,11.630592,5.40825,5.40825,2.972612,-0.101502,-3.408565,0.137858,1.315859,-2.964042,-4.904716,-0.414085,4.262999,0.942791,8.387078,7.675091,2.140276,-1.075803,-10.060741,-10.201356,-4.933107,-4.933107,-2.75563,1.463287,1.463287,10.207576,3.801516,-2.971716,-8.997391,-10.253163,-6.142442,0.205915,-0.878765,0.91162,0.826934\n0.327837,0.327837,7.113185,3.593358,-1.671816,-2.318916,0.405718,0.6741,0.033751,2.477768,4.81029,4.81029,-8.174955,-9.084574,-7.912794,-7.638139,-12.679352,-21.525084,-4.595441,-2.844166,0.663996,0.052996,-0.415176,-0.126493,-1.549524,-3.508066,-3.956234,-8.917387,-6.073171,-6.073171,-5.048426,-5.048426,-2.909386,3.351369,3.351369,-0.864276,9.470873,8.89761,8.89761,-15.461378,-7.118167,-15.296504,-4.745301,-5.24509,-4.459883,-4.296922,-1.416941,-2.027847,-1.869354,-0.320085,-1.380971,-0.316633,0.718631,0.958371,-0.494156,-3.054677,-2.446974,-2.162593,-4.9064,9.237209,-3.547837,-2.65799,-10.99157,-17.956661,-11.163048,5.684005,3.762926,-0.954049,-0.954049,-4.214224,-3.926177,-7.593454,-5.552743,-0.338965,-0.744142,-2.01927,-3.119495,-5.009863,-0.36174,3.034525,-6.215736,-1.344612,2.137947,0.012288,0.550098,-6.93033,-6.93033,-5.733662,-4.138863,-4.138863,-14.984287,-20.545269,4.947195,2.406808,2.704484,0.028264,-0.224944,-0.597296,-0.465409,-0.362036\n0.058594,0.058594,0.90022,-0.865596,0.250357,-1.949589,-1.052032,-1.459528,-2.636739,0.071911,2.207936,2.207936,6.285559,3.382483,1.219825,-0.612576,-2.92971,-18.209478,-3.126799,-2.042807,-0.087891,0.362219,0.03196,1.3743,0.729764,2.024163,7.566641,11.780097,6.274906,6.274906,0.061258,0.061258,-6.519936,-2.48759,-2.48759,-2.849809,0.668507,-3.19871,-3.19871,-13.894815,-2.615432,-4.469139,3.42776,-3.497008,-1.491489,-3.568919,-0.69514,0.66318,-0.055931,-0.335585,-1.58737,-1.5634,-1.185201,-2.578145,-3.382483,-1.526112,0.974794,1.057359,9.73729,3.204037,-3.672791,-3.973752,-5.406646,0.849616,3.331879,4.125564,3.465048,1.001428,1.001428,-2.652719,-1.448875,-0.9162,1.451538,3.451731,2.008183,2.927047,1.558073,0.545991,-0.495387,2.162659,-2.490253,0.604586,0.338248,-0.386189,-0.44212,6.677075,6.677075,4.237426,0.809665,0.809665,-2.4796,-8.192534,-2.426333,-2.636739,-3.742039,-2.309144,-0.524684,0.111862,0.535338,-0.298298\n-0.527348,-0.527348,-1.32636,-0.993438,-0.921527,-1.036052,-1.166557,-1.297062,-0.436793,-0.247694,1.174547,1.174547,4.461149,3.920484,1.744509,0.48207,-1.321033,1.118617,-4.97518,-0.708457,-0.804339,-0.532675,-0.69514,-0.681823,-0.793685,-0.410159,-3.872544,-4.312,-0.69514,-0.69514,-0.431466,-0.431466,-1.984213,-0.785695,-0.785695,-1.459528,-4.668892,1.946925,1.946925,1.126607,4.719496,1.470182,-1.771143,0.063921,-0.993438,0.173119,1.206508,1.60335,1.5634,1.811093,1.712549,0.506041,0.511368,0.524684,2.564828,2.159995,2.008183,0.063921,-7.457443,0.764388,4.197475,4.642258,5.505191,-0.721774,-9.998301,-10.560272,-0.223723,1.829737,1.829737,3.40379,3.486355,3.699425,0.484734,-0.881576,-0.929517,0.071911,-0.479407,-1.531439,-0.732428,-0.857606,0.117188,0.950824,0.628556,1.243795,0.756398,1.294399,1.294399,1.123943,0.596595,0.596595,1.624657,-0.660516,-3.83792,-2.066777,-0.02397,1.472845,0.769715,-0.117188,0.19709,0.250357\n-0.042614,-0.042614,-0.095881,1.12927,1.811093,1.376964,1.307716,0.223723,-1.243795,-0.295634,2.51156,2.51156,7.422819,8.301732,1.600687,0.047941,-7.348245,-24.516344,-4.54105,-3.241324,-1.307716,-0.628556,-0.335585,-0.359555,-0.125179,0.149149,2.982977,3.795306,-2.415679,-2.415679,5.028447,5.028447,4.887289,0.684487,0.684487,0.620566,-0.415486,-2.306481,-2.306481,4.373258,4.764773,7.782374,4.021693,-1.917628,-2.229243,-2.114718,-2.421006,-1.360983,-0.729764,-0.410159,0.492724,0.340912,0.665843,0.812329,0.767051,0.977458,-0.522021,0.346238,6.948739,3.457058,-3.289265,-3.193384,-3.318562,-4.839348,-6.045856,5.675647,0.010653,-0.383526,-0.383526,-1.227815,-1.163894,-1.962906,-0.719111,0.002663,1.648628,3.512988,3.728722,1.843054,2.109391,1.837727,0.247694,-0.66318,-0.111862,-2.876442,-0.388852,7.169799,7.169799,7.782374,3.19072,3.19072,-4.937893,-23.570847,0.889566,-2.090747,-3.094839,-0.998765,0.157139,-0.050604,0.44212,0.428803',Badminton diff --git a/src/main/java/experiments/data/tsc/Beef/Beef_TEST.arff b/src/main/java/experiments/data/tsc/Beef/Beef_TEST.arff new file mode 100644 index 000000000..368168a07 --- /dev/null +++ b/src/main/java/experiments/data/tsc/Beef/Beef_TEST.arff @@ -0,0 +1,516 @@ +%"Food spectrographs are used in chemometrics to classify food +%types, a task that has obvious applications in food safety and +%quality assurance. The beef dataset consists of four classes of +%beef spectrograms, from pure beef and beef adulterated with varying +%degrees of offal. Further information can be found in the original +%paper. Related data can be found at the IFR +%data download page. The data was first used in the time series +%classification literature in this +%paper." +@Relation Beef +@attribute att1 numeric +@attribute att2 numeric +@attribute att3 numeric +@attribute att4 numeric +@attribute att5 numeric +@attribute att6 numeric +@attribute att7 numeric +@attribute att8 numeric +@attribute att9 numeric +@attribute att10 numeric +@attribute att11 numeric +@attribute att12 numeric +@attribute att13 numeric +@attribute att14 numeric +@attribute att15 numeric +@attribute att16 numeric +@attribute att17 numeric +@attribute att18 numeric +@attribute att19 numeric +@attribute att20 numeric +@attribute att21 numeric +@attribute att22 numeric +@attribute att23 numeric +@attribute att24 numeric +@attribute att25 numeric +@attribute att26 numeric +@attribute att27 numeric +@attribute att28 numeric +@attribute att29 numeric +@attribute att30 numeric +@attribute att31 numeric +@attribute att32 numeric +@attribute att33 numeric +@attribute att34 numeric +@attribute att35 numeric +@attribute att36 numeric +@attribute att37 numeric +@attribute att38 numeric +@attribute att39 numeric +@attribute att40 numeric +@attribute att41 numeric +@attribute att42 numeric +@attribute att43 numeric +@attribute att44 numeric +@attribute att45 numeric +@attribute att46 numeric +@attribute att47 numeric +@attribute att48 numeric +@attribute att49 numeric +@attribute att50 numeric +@attribute att51 numeric +@attribute att52 numeric +@attribute att53 numeric +@attribute att54 numeric +@attribute att55 numeric +@attribute att56 numeric +@attribute att57 numeric +@attribute att58 numeric +@attribute att59 numeric +@attribute att60 numeric +@attribute att61 numeric +@attribute att62 numeric +@attribute att63 numeric +@attribute att64 numeric +@attribute att65 numeric +@attribute att66 numeric +@attribute att67 numeric +@attribute att68 numeric +@attribute att69 numeric +@attribute att70 numeric +@attribute att71 numeric +@attribute att72 numeric +@attribute att73 numeric +@attribute att74 numeric +@attribute att75 numeric +@attribute att76 numeric +@attribute att77 numeric +@attribute att78 numeric +@attribute att79 numeric +@attribute att80 numeric +@attribute att81 numeric +@attribute att82 numeric +@attribute att83 numeric +@attribute att84 numeric +@attribute att85 numeric +@attribute att86 numeric +@attribute att87 numeric +@attribute att88 numeric +@attribute att89 numeric +@attribute att90 numeric +@attribute att91 numeric +@attribute att92 numeric +@attribute att93 numeric +@attribute att94 numeric +@attribute att95 numeric +@attribute att96 numeric +@attribute att97 numeric +@attribute att98 numeric +@attribute att99 numeric +@attribute att100 numeric +@attribute att101 numeric +@attribute att102 numeric +@attribute att103 numeric +@attribute att104 numeric +@attribute att105 numeric +@attribute att106 numeric +@attribute att107 numeric +@attribute att108 numeric +@attribute att109 numeric +@attribute att110 numeric +@attribute att111 numeric +@attribute att112 numeric +@attribute att113 numeric +@attribute att114 numeric +@attribute att115 numeric +@attribute att116 numeric +@attribute att117 numeric +@attribute att118 numeric +@attribute att119 numeric +@attribute att120 numeric +@attribute att121 numeric +@attribute att122 numeric +@attribute att123 numeric +@attribute att124 numeric +@attribute att125 numeric +@attribute att126 numeric +@attribute att127 numeric +@attribute att128 numeric +@attribute att129 numeric +@attribute att130 numeric +@attribute att131 numeric +@attribute att132 numeric +@attribute att133 numeric +@attribute att134 numeric +@attribute att135 numeric +@attribute att136 numeric +@attribute att137 numeric +@attribute att138 numeric +@attribute att139 numeric +@attribute att140 numeric +@attribute att141 numeric +@attribute att142 numeric +@attribute att143 numeric +@attribute att144 numeric +@attribute att145 numeric +@attribute att146 numeric +@attribute att147 numeric +@attribute att148 numeric +@attribute att149 numeric +@attribute att150 numeric +@attribute att151 numeric +@attribute att152 numeric +@attribute att153 numeric +@attribute att154 numeric +@attribute att155 numeric +@attribute att156 numeric +@attribute att157 numeric +@attribute att158 numeric +@attribute att159 numeric +@attribute att160 numeric +@attribute att161 numeric +@attribute att162 numeric +@attribute att163 numeric +@attribute att164 numeric +@attribute att165 numeric +@attribute att166 numeric +@attribute att167 numeric +@attribute att168 numeric +@attribute att169 numeric +@attribute att170 numeric +@attribute att171 numeric +@attribute att172 numeric +@attribute att173 numeric +@attribute att174 numeric +@attribute att175 numeric +@attribute att176 numeric +@attribute att177 numeric +@attribute att178 numeric +@attribute att179 numeric +@attribute att180 numeric +@attribute att181 numeric +@attribute att182 numeric +@attribute att183 numeric +@attribute att184 numeric +@attribute att185 numeric +@attribute att186 numeric +@attribute att187 numeric +@attribute att188 numeric +@attribute att189 numeric +@attribute att190 numeric +@attribute att191 numeric +@attribute att192 numeric +@attribute att193 numeric +@attribute att194 numeric +@attribute att195 numeric +@attribute att196 numeric +@attribute att197 numeric +@attribute att198 numeric +@attribute att199 numeric +@attribute att200 numeric +@attribute att201 numeric +@attribute att202 numeric +@attribute att203 numeric +@attribute att204 numeric +@attribute att205 numeric +@attribute att206 numeric +@attribute att207 numeric +@attribute att208 numeric +@attribute att209 numeric +@attribute att210 numeric +@attribute att211 numeric +@attribute att212 numeric +@attribute att213 numeric +@attribute att214 numeric +@attribute att215 numeric +@attribute att216 numeric +@attribute att217 numeric +@attribute att218 numeric +@attribute att219 numeric +@attribute att220 numeric +@attribute att221 numeric +@attribute att222 numeric +@attribute att223 numeric +@attribute att224 numeric +@attribute att225 numeric +@attribute att226 numeric +@attribute att227 numeric +@attribute att228 numeric +@attribute att229 numeric +@attribute att230 numeric +@attribute att231 numeric +@attribute att232 numeric +@attribute att233 numeric +@attribute att234 numeric +@attribute att235 numeric +@attribute att236 numeric +@attribute att237 numeric +@attribute att238 numeric +@attribute att239 numeric +@attribute att240 numeric +@attribute att241 numeric +@attribute att242 numeric +@attribute att243 numeric +@attribute att244 numeric +@attribute att245 numeric +@attribute att246 numeric +@attribute att247 numeric +@attribute att248 numeric +@attribute att249 numeric +@attribute att250 numeric +@attribute att251 numeric +@attribute att252 numeric +@attribute att253 numeric +@attribute att254 numeric +@attribute att255 numeric +@attribute att256 numeric +@attribute att257 numeric +@attribute att258 numeric +@attribute att259 numeric +@attribute att260 numeric +@attribute att261 numeric +@attribute att262 numeric +@attribute att263 numeric +@attribute att264 numeric +@attribute att265 numeric +@attribute att266 numeric +@attribute att267 numeric +@attribute att268 numeric +@attribute att269 numeric +@attribute att270 numeric +@attribute att271 numeric +@attribute att272 numeric +@attribute att273 numeric +@attribute att274 numeric +@attribute att275 numeric +@attribute att276 numeric +@attribute att277 numeric +@attribute att278 numeric +@attribute att279 numeric +@attribute att280 numeric +@attribute att281 numeric +@attribute att282 numeric +@attribute att283 numeric +@attribute att284 numeric +@attribute att285 numeric +@attribute att286 numeric +@attribute att287 numeric +@attribute att288 numeric +@attribute att289 numeric +@attribute att290 numeric +@attribute att291 numeric +@attribute att292 numeric +@attribute att293 numeric +@attribute att294 numeric +@attribute att295 numeric +@attribute att296 numeric +@attribute att297 numeric +@attribute att298 numeric +@attribute att299 numeric +@attribute att300 numeric +@attribute att301 numeric +@attribute att302 numeric +@attribute att303 numeric +@attribute att304 numeric +@attribute att305 numeric +@attribute att306 numeric +@attribute att307 numeric +@attribute att308 numeric +@attribute att309 numeric +@attribute att310 numeric +@attribute att311 numeric +@attribute att312 numeric +@attribute att313 numeric +@attribute att314 numeric +@attribute att315 numeric +@attribute att316 numeric +@attribute att317 numeric +@attribute att318 numeric +@attribute att319 numeric +@attribute att320 numeric +@attribute att321 numeric +@attribute att322 numeric +@attribute att323 numeric +@attribute att324 numeric +@attribute att325 numeric +@attribute att326 numeric +@attribute att327 numeric +@attribute att328 numeric +@attribute att329 numeric +@attribute att330 numeric +@attribute att331 numeric +@attribute att332 numeric +@attribute att333 numeric +@attribute att334 numeric +@attribute att335 numeric +@attribute att336 numeric +@attribute att337 numeric +@attribute att338 numeric +@attribute att339 numeric +@attribute att340 numeric +@attribute att341 numeric +@attribute att342 numeric +@attribute att343 numeric +@attribute att344 numeric +@attribute att345 numeric +@attribute att346 numeric +@attribute att347 numeric +@attribute att348 numeric +@attribute att349 numeric +@attribute att350 numeric +@attribute att351 numeric +@attribute att352 numeric +@attribute att353 numeric +@attribute att354 numeric +@attribute att355 numeric +@attribute att356 numeric +@attribute att357 numeric +@attribute att358 numeric +@attribute att359 numeric +@attribute att360 numeric +@attribute att361 numeric +@attribute att362 numeric +@attribute att363 numeric +@attribute att364 numeric +@attribute att365 numeric +@attribute att366 numeric +@attribute att367 numeric +@attribute att368 numeric +@attribute att369 numeric +@attribute att370 numeric +@attribute att371 numeric +@attribute att372 numeric +@attribute att373 numeric +@attribute att374 numeric +@attribute att375 numeric +@attribute att376 numeric +@attribute att377 numeric +@attribute att378 numeric +@attribute att379 numeric +@attribute att380 numeric +@attribute att381 numeric +@attribute att382 numeric +@attribute att383 numeric +@attribute att384 numeric +@attribute att385 numeric +@attribute att386 numeric +@attribute att387 numeric +@attribute att388 numeric +@attribute att389 numeric +@attribute att390 numeric +@attribute att391 numeric +@attribute att392 numeric +@attribute att393 numeric +@attribute att394 numeric +@attribute att395 numeric +@attribute att396 numeric +@attribute att397 numeric +@attribute att398 numeric +@attribute att399 numeric +@attribute att400 numeric +@attribute att401 numeric +@attribute att402 numeric +@attribute att403 numeric +@attribute att404 numeric +@attribute att405 numeric +@attribute att406 numeric +@attribute att407 numeric +@attribute att408 numeric +@attribute att409 numeric +@attribute att410 numeric +@attribute att411 numeric +@attribute att412 numeric +@attribute att413 numeric +@attribute att414 numeric +@attribute att415 numeric +@attribute att416 numeric +@attribute att417 numeric +@attribute att418 numeric +@attribute att419 numeric +@attribute att420 numeric +@attribute att421 numeric +@attribute att422 numeric +@attribute att423 numeric +@attribute att424 numeric +@attribute att425 numeric +@attribute att426 numeric +@attribute att427 numeric +@attribute att428 numeric +@attribute att429 numeric +@attribute att430 numeric +@attribute att431 numeric +@attribute att432 numeric +@attribute att433 numeric +@attribute att434 numeric +@attribute att435 numeric +@attribute att436 numeric +@attribute att437 numeric +@attribute att438 numeric +@attribute att439 numeric +@attribute att440 numeric +@attribute att441 numeric +@attribute att442 numeric +@attribute att443 numeric +@attribute att444 numeric +@attribute att445 numeric +@attribute att446 numeric +@attribute att447 numeric +@attribute att448 numeric +@attribute att449 numeric +@attribute att450 numeric +@attribute att451 numeric +@attribute att452 numeric +@attribute att453 numeric +@attribute att454 numeric +@attribute att455 numeric +@attribute att456 numeric +@attribute att457 numeric +@attribute att458 numeric +@attribute att459 numeric +@attribute att460 numeric +@attribute att461 numeric +@attribute att462 numeric +@attribute att463 numeric +@attribute att464 numeric +@attribute att465 numeric +@attribute att466 numeric +@attribute att467 numeric +@attribute att468 numeric +@attribute att469 numeric +@attribute att470 numeric +@attribute target {1,2,3,4,5} + +@data +-0.11453835,-0.11398766,-0.12747962,-0.1301413,-0.12151379,-0.11463013,-0.10343272,-0.091133926,-0.08333245,-0.083516014,-0.058734857,-0.04193874,-0.028905687,0.0067975358,0.033138988,0.050210452,0.073155967,0.09775356,0.12033195,0.14199251,0.17925603,0.20064125,0.20972768,0.22248538,0.23836368,0.26406266,0.27847244,0.28269442,0.30738379,0.34611582,0.3564872,0.35538581,0.37566965,0.39145616,0.3922822,0.43945818,0.46231192,0.4367965,0.46313795,0.48947941,0.49829048,0.53261698,0.56143654,0.58153682,0.60503302,0.62476617,0.64624317,0.66891334,0.68148748,0.70920566,0.72434971,0.71783318,0.69222598,0.66900512,0.65046514,0.63614714,0.62852923,0.59374383,0.55436932,0.53674717,0.53527866,0.50416454,0.47727239,0.48076011,0.48608347,0.47892447,0.44927886,0.43927462,0.4383568,0.38604102,0.35180631,0.33289921,0.28425471,0.25084604,0.26397088,0.29572747,0.33712118,0.41118931,0.46258726,0.48186149,0.51325096,0.55831595,0.59300957,0.62045241,0.6368814,0.65707345,0.67019829,0.67570521,0.70691111,0.71342764,0.71214269,0.69865073,0.65588029,0.63899239,0.6394513,0.6287128,0.58236285,0.52545797,0.45506113,0.37365044,0.30729201,0.2674586,0.24855149,0.22009905,0.19348225,0.18852602,0.19394116,0.19394116,0.16539694,0.1216169,0.11739492,0.12730738,0.14199251,0.16126675,0.16824218,0.19586859,0.22790053,0.2418514,0.25534336,0.27782997,0.29462609,0.28930273,0.28966985,0.3104126,0.33721296,0.34483087,0.352357,0.37622034,0.38686706,0.37677103,0.36474758,0.33895682,0.30435498,0.27388334,0.23643626,0.19871383,0.16108318,0.14447063,0.11950591,0.093990496,0.095642573,0.075542301,0.050302234,0.01808673,-0.01568907,-0.034963303,-0.047078535,-0.03083311,-0.029548161,-0.049831997,-0.053411498,-0.058367729,-0.073052859,-0.10077104,-0.12160557,-0.11105063,-0.091501054,-0.090124323,-0.11206024,-0.12995774,-0.1245426,-0.11040816,-0.10288203,-0.090399669,-0.059377332,-0.059193768,-0.083148886,-0.088105117,-0.09443808,-0.098476491,-0.10829717,-0.12949883,-0.14436752,-0.1654774,-0.19457231,-0.20815606,-0.21311229,-0.20980813,-0.21448902,-0.20310804,-0.17603233,-0.17428847,-0.18548589,-0.18135569,-0.17988718,-0.1787858,-0.15721701,-0.14556069,-0.14886484,-0.15427998,-0.13656605,-0.10793004,-0.10416698,-0.09709976,-0.070574743,-0.063048614,-0.052493677,-0.027987866,-0.0047670041,0.012488024,0.054432427,0.092521983,0.10335227,0.11436611,0.13804589,0.17760396,0.18476296,0.20073304,0.24745011,0.27617789,0.29058767,0.27957383,0.25947356,0.21899767,0.20945233,0.17246416,0.11106196,0.091695944,0.068933993,0.055442029,0.054707773,0.040022643,0.0094592157,-0.073236423,-0.088564028,-0.081680373,-0.10673688,-0.09443808,-0.081955719,-0.093061349,-0.074980282,-0.049648433,-0.03303588,0.026897808,0.071320326,0.10087415,0.14538845,0.17696148,0.20064125,0.26709147,0.32748406,0.37429292,0.39677952,0.33840613,0.35327482,0.42137711,0.45937489,0.39788091,0.30206043,0.1876082,0.05415708,-0.15905265,-0.26313351,-0.33233719,-0.32572888,-0.31829453,-0.31361365,-0.29222843,-0.26900756,-0.28038854,-0.28718041,-0.20806427,-0.15189365,-0.12151379,-0.088747592,-0.071584346,-0.0036656194,0.11041949,0.18421226,0.17035317,0.2935247,0.40393852,0.48498208,0.52472372,0.53794034,0.62421547,0.64633495,0.73224296,0.84862262,0.8942383,0.93260321,0.99997124,1.0347566,1.0470554,1.1093755,1.1430595,1.082208,1.1313114,1.1653625,1.1909697,1.193356,1.1601309,1.1423252,1.076701,1.0465047,0.9633502,0.85513915,0.90571106,0.89616573,0.8701914,0.8502747,0.74903908,0.72398258,0.74876373,0.69406162,0.63440328,0.6788258,0.69094103,0.68130392,0.70314805,0.71847565,0.75271036,0.7944712,0.84027045,0.90984125,0.97895315,1.0491664,1.1420499,1.2432855,1.3693023,1.4933916,1.6480444,1.8147206,1.9877298,2.134214,2.2330633,2.3257631,2.406256,2.4245206,2.4044204,2.4451716,2.4418675,2.4339742,2.4482004,2.429018,2.3391633,2.2750994,2.2574773,2.2152575,2.1849695,2.1117274,1.9306414,1.8523513,1.8790598,1.6484115,1.3859148,1.3815093,1.2842203,1.1924382,1.0519199,0.88193951,0.80759604,0.68359847,0.51013037,0.42257028,0.36419689,0.19669462,0.14382816,0.061958556,-0.034779739,-0.16244859,-0.33453996,-0.35638409,-0.44908397,-0.5359098,-0.58694063,-0.65118807,-0.76417179,-0.77500208,-0.86054296,-0.88431452,-0.91139022,-0.9591169,-0.98573369,-1.0081285,-0.9949119,-0.97637192,-0.99096527,-1.0031723,-0.92598357,-0.85136475,-0.77270753,-0.67073765,-0.58079123,-0.51112865,-0.42109044,-0.33114402,-0.10379985,0.10252623,0.34584048,0.47194903,0.45909954,0.31931546,0.10518791,-0.19429696,-0.51305607,-0.80464768,-0.97031431,-1.2252849,-1.4274808,-1.5548743,-1.6953926,-1.7456892,-1.7612003,-1.783228,-1.7952515,-1.8337082,-1.8550016,-1.8684936,-1.8689525,-1.8608757,-1.8662908,-1.8895117,-1.89612,-1.887676,-1.8907048,-1.891072,-1.9181477,-1.9277848,-1.9065831,-1.8866664,-1.8959364,-1.8993324,-1.8976803,-1.9086023,-1.8949268,-1.8988734,-1.9132832,-1.9061242,-1.9046557,-1.9085106,-1.9034625,-1.8936419,-1.9075927,-1.9228286,-1.9308136,-1.9436631,-1.913375,-1.9060324,-1.911264,-1.9012598,-1.9037379,-1.9072256,-1.9293451,-1.9431124,-1.9114476,-1.9026365,-1.912549,-1.913375,-1.9078681,-1.9107133,-1.9171381,-1.9028201,-1.8986899,-1.9049311,-1.9139257,-1.9186984,-1.8978638,-1.900342,-1.9071338,-1.9078681,-1.8984145,-1.9085106,-1.9357698,-1.9309972,-1.9121818,-1.8934583,-1.9021776,-1.9018105,-1.8945597,1 +-0.12492882,-0.11307221,-0.10246967,-0.091563108,-0.07172609,-0.058273401,-0.039614444,-0.028973898,-0.028707885,-0.018181345,0.0057598826,0.022024717,0.041177699,0.065536948,0.080737727,0.10600902,0.13747464,0.15951577,0.17878275,0.19512359,0.2167467,0.23947187,0.25087245,0.25805482,0.27397764,0.29073649,0.30532924,0.32072003,0.32649633,0.3356928,0.33622483,0.3279024,0.33356469,0.33588281,0.34116508,0.3552258,0.3513496,0.34975352,0.3629782,0.37529083,0.38547535,0.40139817,0.43229375,0.45688101,0.47010569,0.48895466,0.49970921,0.49385691,0.49017072,0.48618052,0.46752156,0.45163674,0.42644145,0.39638191,0.37966105,0.35978603,0.34895548,0.33250064,0.30855941,0.30472121,0.29567675,0.28347812,0.2829841,0.27872788,0.27705579,0.28477019,0.2868603,0.29168654,0.28936842,0.27241956,0.26310908,0.25414062,0.23890184,0.21587266,0.19953182,0.19196943,0.19687168,0.20717021,0.22271301,0.242018,0.25406461,0.2732556,0.30217508,0.32858644,0.34295117,0.34207713,0.3434072,0.35199564,0.35469377,0.35343971,0.34184912,0.32828242,0.31995999,0.320036,0.31585578,0.30198507,0.27948792,0.26880937,0.25349458,0.2285273,0.2148086,0.1972517,0.1854331,0.17832673,0.17931478,0.19166541,0.20279999,0.20793025,0.20386404,0.20348402,0.2128325,0.22518313,0.24661623,0.26493317,0.27447166,0.28393415,0.30567126,0.32702836,0.34652335,0.36871649,0.38106713,0.39326575,0.40519836,0.42237524,0.43449787,0.43673998,0.44635447,0.46197327,0.46782557,0.46406338,0.45938914,0.46026319,0.45064869,0.4292536,0.41694097,0.39535586,0.38349925,0.37403677,0.35347771,0.34424324,0.33649084,0.32174608,0.30749535,0.30190907,0.29294061,0.28085599,0.27154551,0.2635651,0.26409713,0.27690379,0.28526421,0.27618175,0.2772078,0.28260408,0.28051397,0.2752697,0.27868988,0.28925442,0.29202856,0.29149653,0.30954746,0.3317786,0.34678937,0.3572019,0.36468829,0.37460679,0.38425929,0.38855351,0.38045909,0.36791845,0.35039955,0.34097507,0.34435724,0.34131709,0.32410221,0.31292963,0.31330965,0.3122456,0.31190358,0.32934647,0.34606733,0.33626283,0.33322267,0.34994353,0.36016605,0.36176214,0.3610021,0.35685988,0.35914,0.37107261,0.38156115,0.39330375,0.40478034,0.4098726,0.42571942,0.44130021,0.45243479,0.47097974,0.49248884,0.51361792,0.5424234,0.57419303,0.61040889,0.64240653,0.68572875,0.72992501,0.749078,0.78468582,0.82413184,0.84944114,0.84001666,0.82994614,0.83397435,0.82428385,0.82816005,0.80908307,0.76701492,0.73980552,0.72361669,0.70526175,0.6828406,0.64514267,0.62108743,0.58175542,0.56256443,0.55952428,0.53125083,0.52741263,0.52216836,0.51795014,0.53128883,0.54933975,0.54732565,0.56229842,0.59916031,0.62359556,0.64054443,0.65319908,0.66965392,0.6887689,0.69275911,0.70366567,0.70024549,0.63967039,0.62929585,0.64039242,0.64046843,0.63423611,0.63541417,0.61352505,0.56279244,0.46926965,0.42986163,0.3942158,0.39410179,0.39839601,0.40105615,0.41697897,0.4332438,0.44544243,0.4742479,0.52004025,0.56150038,0.58281947,0.6088128,0.65414913,0.70985998,0.77244919,0.83401235,0.8896472,0.95827872,1.0290384,1.1079304,1.157789,1.1924467,1.2443194,1.2459915,1.2845635,1.3316859,1.3462026,1.3688518,1.3856106,1.3496228,1.2782931,1.2733909,1.2606602,1.2076855,1.2271425,1.275937,1.3104428,1.294368,1.2266485,1.1800201,1.0850152,1.0310905,0.93407148,0.6867548,0.68295461,0.62788978,0.5230044,0.44988865,0.31110554,0.19295748,0.12257787,0.0036697754,-0.16095467,-0.245433,-0.34940633,-0.460106,-0.57012165,-0.68484953,-0.79839935,-0.91795348,-1.045906,-1.1675883,-1.2766539,-1.3858335,-1.5054256,-1.6261198,-1.7410377,-1.825668,-1.9063462,-1.9842502,-2.0718826,-2.1396401,-2.2202043,-2.3825866,-2.4922222,-2.584985,-2.7357387,-2.8443103,-2.9434953,-3.0666597,-3.1477938,-3.1841617,-3.209889,-3.2843348,-3.3140523,-3.3378796,-3.3436939,-3.3024997,-3.2621037,-3.2644978,-3.2003505,-3.0588313,-3.1160242,-3.1300089,-3.0903349,-3.0483047,-3.0125829,-2.9434953,-2.8758139,-2.7932736,-2.721412,-2.6404678,-2.5548494,-2.4431237,-2.3562892,-2.2677827,-2.1822783,-2.0864374,-1.9755477,-1.904142,-1.8222478,-1.7360214,-1.649605,-1.5845077,-1.5145081,-1.4713759,-1.4002742,-1.3327827,-1.2484944,-1.1506394,-1.0812099,-1.0031919,-0.93247022,-0.85741638,-0.77966439,-0.68872573,-0.61637002,-0.5537048,-0.46409621,-0.38106195,-0.31923278,-0.26610606,-0.21689353,-0.17220324,-0.046302787,0.055352425,0.16582409,0.23099743,0.27500369,0.28792435,0.27044345,0.23658372,0.18531909,0.13428247,0.1114433,0.068729111,0.048664082,0.026128927,0.0075839761,0.019592592,0.026546948,0.03300728,0.037605515,0.044141851,0.059874657,0.080129696,0.10198082,0.10186681,0.097724598,0.11467347,0.13029227,0.1367526,0.13857669,0.14537904,0.15989579,0.16118785,0.16776219,0.17517257,0.17787071,0.18436904,0.18668716,0.19493358,0.20819626,0.20633417,0.21393456,0.2246131,0.22381506,0.2284513,0.23833181,0.23878783,0.23928186,0.23498764,0.22856531,0.2284893,0.2323655,0.24095394,0.2478703,0.25106246,0.25364659,0.25474865,0.25463464,0.25547069,0.25436863,0.25201251,0.25433063,0.25212651,0.24479214,0.24236001,0.24673024,0.24277804,0.24129596,0.2402319,0.23464562,0.22742525,0.22864131,0.22769126,0.22480311,0.21974885,0.21321252,0.21176845,0.20869029,0.20378804,0.19584563,0.18539509,0.18060685,0.18262095,0.17437453,1 +-0.072243558,-0.06989151,-0.056517653,-0.046070182,-0.033571506,-0.024464155,-0.0077263221,0.013688259,0.015848861,0.020088018,0.036552358,0.058213083,0.083702724,0.10202682,0.12152695,0.14622345,0.16884141,0.17956237,0.1921978,0.21910961,0.23866443,0.25209298,0.26877612,0.28217733,0.29347263,0.30627215,0.31740335,0.32497914,0.33649323,0.35355926,0.36228372,0.37273119,0.39800204,0.41824059,0.4295359,0.45062228,0.46924723,0.48177325,0.49561205,0.51738217,0.53494049,0.55118603,0.58050459,0.60238411,0.62811989,0.6642758,0.70125219,0.73180147,0.75644328,0.78669172,0.80909088,0.82932943,0.85271317,0.87059968,0.8788045,0.87768318,0.87256884,0.85676088,0.82894654,0.79943654,0.7808116,0.77895184,0.79309148,0.81242751,0.83447112,0.85358835,0.86135558,0.85126365,0.8057816,0.74134641,0.69176195,0.65869652,0.64485773,0.65855978,0.71252014,0.79790497,0.90295402,1.0180676,1.1217766,1.2047,1.2641576,1.3067953,1.3439084,1.3815138,1.4129383,1.4416005,1.4718489,1.4945216,1.5002649,1.487274,1.4643278,1.4336691,1.3902383,1.3423221,1.2910967,1.2300529,1.1489619,1.0697307,0.9859868,0.90120366,0.83337715,0.76768389,0.71038689,0.66115797,0.62177483,0.59406989,0.57126049,0.55104928,0.52586049,0.49922217,0.47890156,0.47179072,0.48010494,0.48500048,0.48543807,0.49126349,0.5070988,0.52977145,0.55228001,0.57353049,0.5890923,0.60350543,0.61838351,0.63657086,0.65445737,0.66988243,0.68700315,0.69684894,0.69348496,0.68626472,0.67981026,0.66093917,0.62642423,0.58545483,0.54571615,0.5025041,0.46971217,0.44955566,0.42529674,0.41017252,0.39193047,0.36023251,0.34248275,0.33416854,0.31710251,0.30184154,0.28764721,0.27019829,0.26880347,0.27492973,0.26667021,0.25058877,0.23313985,0.21623792,0.20562635,0.19340117,0.18604418,0.18735695,0.18918936,0.18913466,0.1990625,0.21057659,0.2150619,0.22102407,0.23035021,0.23128009,0.2264119,0.22075057,0.2080331,0.19799587,0.19113117,0.17822225,0.16501249,0.15183008,0.12902068,0.11367767,0.11343152,0.11138032,0.11840911,0.13558454,0.14797382,0.15858538,0.17288912,0.19044744,0.19777707,0.19758563,0.20321961,0.21205346,0.22036768,0.22427864,0.22652129,0.23841828,0.2560313,0.2673813,0.27834841,0.2922966,0.30506877,0.31929046,0.34207251,0.36698782,0.40199505,0.44258156,0.44971975,0.42630867,0.40680854,0.40070963,0.38536661,0.3766695,0.39031686,0.40456589,0.406453,0.40150276,0.40128397,0.38629649,0.39026216,0.38211204,0.34560059,0.32489709,0.31915371,0.32257239,0.3314336,0.33665733,0.34166227,0.29144877,0.25406214,0.240196,0.21459696,0.23007672,0.26254046,0.29188636,0.33403179,0.37992408,0.40612481,0.43995602,0.4866141,0.51880434,0.55307314,0.58591977,0.61761772,0.66485014,0.7327587,0.81073184,0.84617667,0.79497859,0.78573449,0.80657473,0.8105951,0.77804931,0.69069532,0.51926928,0.30878829,0.056654167,-0.031930542,-0.10019465,-0.12800899,-0.13924959,-0.1455673,-0.14135549,-0.12784489,-0.11345911,-0.095736693,-0.065871148,-0.033954397,-0.0075622257,0.017818018,0.051156938,0.096912485,0.15426418,0.2218172,0.27624251,0.33053107,0.37338758,0.42595312,0.46982156,0.49771795,0.53379181,0.53874205,0.56931868,0.60068845,0.60881122,0.62322435,0.632277,0.60459941,0.56034808,0.5617976,0.55036555,0.5230982,0.52651687,0.52687241,0.53556952,0.52153928,0.46079626,0.41668168,0.33154299,0.28132949,0.18801334,-0.0085741535,-0.0015180081,-0.048750423,-0.1387026,-0.19884393,-0.31007395,-0.39811167,-0.44813372,-0.53535096,-0.66134965,-0.73396231,-0.82435208,-0.91342907,-0.99624306,-1.0812997,-1.1729475,-1.2698738,-1.3578842,-1.4444997,-1.5296384,-1.6109755,-1.696798,-1.7869142,-1.8686069,-1.9227861,-1.9833103,-2.037845,-2.0844484,-2.1215615,-2.1903452,-2.3230445,-2.4013459,-2.4680511,-2.5877867,-2.6674829,-2.7443074,-2.8473599,-2.9110293,-2.9315687,-2.9376676,-2.9959492,-3.01214,-3.0183483,-3.0104717,-2.959383,-2.9134087,-2.9076927,-2.8475787,-2.7439245,-2.7878749,-2.7909381,-2.7592675,-2.7083976,-2.6615481,-2.6134405,-2.5609843,-2.4871956,-2.4143368,-2.3418609,-2.2715183,-2.1802807,-2.1064646,-2.0203961,-1.930061,-1.8455513,-1.7522078,-1.6888119,-1.6157343,-1.5358741,-1.4457578,-1.3676479,-1.2953908,-1.2464901,-1.1769132,-1.1155138,-1.0400568,-0.96301354,-0.90287221,-0.83135352,-0.75190351,-0.65563362,-0.54957265,-0.43194288,-0.32951937,-0.21339382,-0.057912472,0.11348622,0.29079239,0.49528386,0.73161003,0.99443777,1.4462499,1.7495821,2.1117975,2.3530739,2.4595452,2.408183,2.2307127,1.9081265,1.5272041,1.1182759,0.85853859,0.4999606,0.2398678,0.067402482,-0.098006694,-0.17814044,-0.22326695,-0.2666978,-0.28390057,-0.3009666,-0.30690142,-0.30216997,-0.29820431,-0.29694623,-0.3008572,-0.29623515,-0.28792093,-0.2849672,-0.27826659,-0.27167539,-0.26959683,-0.27312491,-0.27142924,-0.2644278,-0.26393551,-0.2619937,-0.25400768,-0.24812755,-0.23984069,-0.23748864,-0.23327683,-0.22955731,-0.23054189,-0.22591984,-0.218809,-0.21782442,-0.22176273,-0.22354044,-0.22816249,-0.23100683,-0.22269261,-0.2185355,-0.21749623,-0.2187543,-0.21703129,-0.2118896,-0.20786924,-0.20535309,-0.21147936,-0.22028586,-0.21678514,-0.21558177,-0.22198153,-0.22345839,-0.22414213,-0.22887358,-0.23029574,-0.22895562,-0.2279437,-0.2276155,-0.23155382,-0.23625791,-0.23899285,-0.24216538,-0.2435602,-0.24613105,-0.24916683,-0.25039755,-0.25376153,-0.26412695,-0.2665337,-0.26109117,-0.2709643,1 +-0.073526164,-0.06841682,-0.053679465,-0.040566467,-0.017795924,-2.5285941E-4,0.021188664,0.043663869,0.047709997,0.064101244,0.094225698,0.12225325,0.15512435,0.19552656,0.23146917,0.26764804,0.30167096,0.3286353,0.35489083,0.37901992,0.40323762,0.42030815,0.43554757,0.45140721,0.46514042,0.48463271,0.49650529,0.50870274,0.51596805,0.51812402,0.52261315,0.52916965,0.54452722,0.55554332,0.57305685,0.59322842,0.60959013,0.6276648,0.64565087,0.66446389,0.68457639,0.71419877,0.75968079,0.80123482,0.84290698,0.89264186,0.9368244,0.9789691,1.0149708,1.0412558,1.0546642,1.0658279,1.0778482,1.0857632,1.0922607,1.0919653,1.0779959,1.0530103,1.0093298,0.9699613,0.94606847,0.93898036,0.96018561,0.97967791,1.0037184,1.0320118,1.0380957,1.0268138,0.98859711,0.91709583,0.84529922,0.79187261,0.76481967,0.77370934,0.82914424,0.91299064,1.0237128,1.1600702,1.2820447,1.3772321,1.4485562,1.5002994,1.5491187,1.5933308,1.6282101,1.660018,1.6813119,1.6963741,1.6964036,1.6762025,1.6437449,1.5911157,1.5243694,1.4557624,1.3839363,1.3015961,1.2070585,1.1176007,1.0216159,0.92382953,0.84210957,0.76691657,0.70451169,0.65211877,0.60374244,0.56593921,0.53684843,0.5143437,0.48321509,0.45424246,0.43853049,0.42807553,0.43575431,0.44570719,0.45831812,0.47432543,0.49198663,0.51511157,0.54299146,0.57078275,0.59712688,0.61605803,0.63336482,0.66930743,0.69396814,0.7068744,0.729261,0.7487533,0.75341963,0.75126367,0.74328955,0.72096201,0.68563961,0.6383265,0.58820768,0.54189871,0.50161464,0.46726685,0.43743774,0.4125703,0.38808679,0.36443024,0.33787937,0.31153524,0.28530924,0.26150502,0.24192412,0.22571008,0.22411526,0.22866346,0.22376085,0.20680846,0.18728663,0.16755807,0.14785904,0.13527765,0.1363704,0.1299025,0.13002064,0.13338749,0.13823103,0.15790052,0.16605185,0.17328762,0.18409699,0.19168717,0.1940794,0.18572134,0.17316949,0.1629508,0.15181657,0.13264914,0.12181025,0.10615734,0.074644803,0.056304326,0.049984098,0.045199626,0.04992503,0.06587327,0.082648457,0.097031407,0.11445634,0.13648853,0.15031034,0.15905234,0.16605185,0.16856222,0.17296275,0.17857417,0.18557367,0.19892294,0.21826757,0.22999248,0.24718114,0.27033562,0.28997558,0.30491967,0.32969851,0.3595867,0.40323762,0.46085802,0.47497517,0.4572549,0.44573673,0.45131861,0.4569005,0.46011968,0.48740889,0.5213432,0.52851991,0.52592094,0.5345448,0.51351675,0.51136078,0.48433738,0.41407652,0.37910852,0.36336702,0.36132919,0.37476706,0.36924424,0.36132919,0.29824504,0.25698635,0.24210133,0.19977942,0.207281,0.23584017,0.26082574,0.31221452,0.37470799,0.40719515,0.44877871,0.5098841,0.55005003,0.58986157,0.63298088,0.6694551,0.73047189,0.81659238,0.91189789,0.95534208,0.88127136,0.88277758,0.92368186,0.92164403,0.85968217,0.751116,0.54372981,0.29623674,-0.0041808519,-0.11354443,-0.20279551,-0.2353122,-0.2506107,-0.26124286,-0.24635783,-0.22506398,-0.19818824,-0.1667643,-0.1224341,-0.070100245,-0.036668008,0.004088606,0.059287238,0.12243046,0.20568618,0.29756576,0.36454837,0.46192124,0.55167439,0.64618248,0.71354903,0.74308281,0.80622603,0.82347375,0.87811124,0.93608605,0.95120735,0.99098935,1.0507066,1.0761648,1.0922607,1.1650319,1.177761,1.0585922,1.0528921,1.0067604,0.98147947,0.96570843,0.8883004,0.84069195,0.74512064,0.68543287,0.61127356,0.33356744,0.34558769,0.29924919,0.18371305,0.12083563,-0.014222337,-0.1198942,-0.15805184,-0.2506993,-0.40383194,-0.47465394,-0.56768534,-0.66316805,-0.75188752,-0.84745883,-0.94243946,-1.0389854,-1.1206463,-1.202189,-1.2833183,-1.3579797,-1.4301603,-1.4991512,-1.5616742,-1.5935116,-1.6128562,-1.633648,-1.6549714,-1.6507185,-1.6841803,-1.7983284,-1.8400301,-1.8877566,-2.0234348,-2.0952314,-2.1698928,-2.2807626,-2.3382944,-2.3545971,-2.3919278,-2.4904229,-2.4910136,-2.4954732,-2.4910727,-2.4433461,-2.4417513,-2.469956,-2.3845739,-2.3052166,-2.4449409,-2.4330979,-2.41269,-2.3843671,-2.3797599,-2.3745324,-2.3291094,-2.2746787,-2.2511402,-2.2158474,-2.1529404,-2.0966195,-2.0486271,-1.994344,-1.9277749,-1.8508985,-1.8162849,-1.7712754,-1.7200048,-1.6653673,-1.5921826,-1.5355663,-1.5076274,-1.467107,-1.450066,-1.4022804,-1.3327283,-1.2752556,-1.2142979,-1.1461044,-1.0749871,-0.98331421,-0.88721129,-0.77052333,-0.66068721,-0.53676348,-0.37057691,-0.18885557,2.787486E-4,0.21909451,0.48832444,0.78549332,1.2977862,1.6328765,2.0122379,2.2633931,2.3684448,2.2970026,2.0912998,1.7179928,1.2842893,0.82187893,0.52722042,0.12328694,-0.16770938,-0.35905873,-0.55557649,-0.65758617,-0.71801228,-0.76789483,-0.78871614,-0.81606442,-0.82516082,-0.82270952,-0.81733437,-0.81975614,-0.8232116,-0.81751158,-0.81393799,-0.80862191,-0.80460531,-0.80079546,-0.79772394,-0.80014571,-0.79840322,-0.79660166,-0.7995255,-0.79367782,-0.7884208,-0.7860581,-0.78088969,-0.77569175,-0.76662488,-0.76110206,-0.76033418,-0.75859169,-0.75569738,-0.75870982,-0.76080672,-0.76039325,-0.76057045,-0.76759949,-0.76440984,-0.75856215,-0.7618404,-0.76251968,-0.75924143,-0.75445696,-0.74999736,-0.75171032,-0.75800101,-0.76000931,-0.75194659,-0.75676059,-0.76650674,-0.76934198,-0.76473471,-0.76624094,-0.77474666,-0.77264977,-0.77303371,-0.77545548,-0.77601662,-0.77894046,-0.77843839,-0.78632391,-0.79394362,-0.7970742,-0.79512497,-0.78927728,-0.80032292,-0.81588722,-0.82005148,-0.81207736,-0.81526701,1 +-0.11046029,-0.10334567,-0.092532846,-0.081438257,-0.060657915,-0.051711802,-0.038750504,-0.017934941,-0.0066290264,0.004395121,0.014221757,0.031022135,0.061981322,0.091144242,0.11114972,0.1400661,0.16796107,0.18046449,0.19363711,0.21290296,0.23815636,0.25368878,0.25964112,0.26981996,0.28792351,0.30359682,0.31814306,0.32641998,0.32568034,0.33459123,0.33881774,0.34276248,0.35287089,0.35706217,0.3586119,0.36340194,0.37442609,0.38766915,0.3902755,0.39372715,0.40989355,0.42440457,0.44902399,0.47459438,0.49889681,0.53334287,0.54986148,0.55539117,0.56574612,0.57099403,0.56081519,0.5490514,0.54169023,0.53091263,0.52267093,0.5083008,0.49931946,0.48973937,0.46497907,0.44493837,0.4332098,0.42236176,0.42053027,0.42215043,0.42521465,0.43546394,0.43581615,0.43525261,0.42739835,0.38844401,0.36146479,0.34688333,0.32733572,0.31469141,0.31726254,0.3363875,0.37407388,0.42422847,0.47026221,0.50939265,0.54848787,0.58483585,0.61509062,0.64538061,0.66929561,0.68468716,0.70257938,0.72219743,0.73406688,0.7307209,0.71744261,0.70363601,0.68838535,0.67545928,0.66485778,0.65710918,0.62231091,0.58177163,0.54267641,0.49438853,0.45328572,0.41743083,0.3894302,0.36255664,0.34765819,0.3426216,0.34188196,0.34385433,0.33952216,0.33550697,0.32832191,0.32455327,0.33652838,0.3495249,0.35639298,0.36516299,0.38192814,0.40520917,0.42232654,0.43821117,0.44927054,0.45279263,0.4677263,0.48938716,0.50474348,0.51280908,0.5251364,0.53816814,0.53728761,0.53735806,0.53242713,0.51936017,0.50410951,0.47815169,0.45888585,0.436908,0.41070363,0.3879157,0.36815676,0.36093648,0.34977144,0.32944897,0.31846005,0.31317691,0.30246975,0.29264312,0.28306303,0.2673545,0.26326887,0.27457478,0.27711069,0.27239109,0.26640353,0.25717565,0.25210384,0.24266463,0.24400303,0.25266737,0.25837316,0.26407895,0.27186277,0.2880644,0.29718661,0.30387859,0.32053808,0.32694829,0.33018861,0.33022384,0.31884748,0.31155675,0.30165967,0.28922669,0.28679644,0.27844909,0.25802095,0.25009625,0.25411143,0.25633035,0.25520328,0.26052164,0.26974952,0.26957341,0.27478611,0.29690485,0.30750634,0.30866863,0.31088755,0.30898562,0.31345868,0.32863889,0.33846553,0.34318513,0.35730872,0.3581188,0.36301451,0.37847649,0.39580518,0.41651508,0.43468908,0.45335617,0.4800184,0.52112121,0.55289048,0.57046572,0.5842371,0.59497948,0.60149535,0.62921421,0.66313195,0.68518025,0.68046065,0.67232461,0.6685912,0.66006773,0.67602281,0.65939854,0.61530195,0.59924121,0.58085589,0.5621888,0.5561308,0.53799203,0.51995892,0.47205847,0.45342661,0.44486792,0.4170434,0.42246742,0.42922984,0.42834931,0.44571323,0.47022698,0.47272767,0.50023521,0.54257075,0.57025439,0.59392285,0.60952572,0.62657264,0.65894066,0.69236532,0.73389078,0.74202681,0.67989711,0.6908156,0.71631554,0.71807659,0.70772164,0.6862721,0.61565416,0.50608188,0.3432908,0.2882405,0.24410869,0.22357489,0.21498099,0.21642505,0.22477241,0.23206314,0.24171367,0.25918324,0.29609477,0.33025906,0.33835987,0.36107736,0.39689703,0.43694322,0.48977459,0.52432632,0.54750168,0.62083163,0.68518025,0.7617153,0.80204326,0.80408607,0.84853487,0.84705559,0.88822884,0.92661964,0.93440347,0.96212233,0.97983845,0.93986271,0.87558453,0.87801478,0.85026069,0.83187537,0.87945883,0.89495604,0.91658168,0.90805822,0.85441676,0.8221544,0.73163664,0.68334876,0.59212658,0.37650412,0.3965096,0.3402618,0.23562045,0.17687196,0.050464082,-0.040652433,-0.083762837,-0.19101053,-0.34904679,-0.4231516,-0.523496,-0.62764426,-0.72781255,-0.83185514,-0.94230794,-1.0587131,-1.1735333,-1.2850779,-1.3958125,-1.5025671,-1.6211911,-1.7559111,-1.8794309,-1.9726607,-2.0718076,-2.1605643,-2.2492858,-2.3084569,-2.4006653,-2.5870544,-2.678664,-2.7652722,-2.920526,-3.0021329,-3.0820139,-3.1899308,-3.2509687,-3.2669942,-3.2870349,-3.3775174,-3.3790319,-3.3857944,-3.3785389,-3.3064769,-3.2690018,-3.2832663,-3.2050406,-3.0955036,-3.1573515,-3.1277659,-3.0722225,-3.0077682,-2.957508,-2.8942864,-2.817047,-2.7207882,-2.6566509,-2.5804328,-2.4872031,-2.3830548,-2.2950025,-2.1978632,-2.1073103,-2.0278519,-1.9021132,-1.8212812,-1.743126,-1.6608499,-1.5673031,-1.4939732,-1.423003,-1.3553436,-1.2638045,-1.2088598,-1.1374318,-1.0506475,-0.98027609,-0.89835223,-0.82093666,-0.73753352,-0.65032653,-0.54170522,-0.44833456,-0.35749981,-0.2290139,-0.10105631,-0.0039874576,0.089066208,0.2030411,0.33290062,0.60399603,0.78587685,1.025203,1.2061681,1.2922128,1.2949248,1.2290264,1.0854308,0.90710725,0.71790048,0.59702229,0.41848746,0.29560167,0.21005006,0.13291625,0.10104132,0.084452268,0.068461971,0.057613928,0.052225128,0.059163649,0.069800366,0.0787817,0.084240943,0.086741628,0.088925325,0.097730554,0.10234449,0.10597225,0.11146671,0.11107928,0.1148127,0.12548464,0.13027468,0.13460686,0.14010132,0.14316554,0.14531401,0.15175944,0.15936716,0.17183537,0.1762732,0.17595621,0.18345827,0.18715647,0.1814859,0.17715372,0.17747071,0.16975733,0.16278359,0.16901769,0.18035883,0.18694514,0.18648727,0.18641683,0.18405702,0.18849486,0.19539816,0.19201695,0.18934016,0.1900798,0.18599418,0.17909088,0.17680152,0.18296518,0.18134501,0.17732983,0.17666063,0.17380774,0.16855982,0.16996866,0.16838372,0.16729187,0.16126909,0.14911787,0.1499984,0.14506747,0.14232024,0.14203847,0.12805576,0.11671463,0.11780648,0.112629,1 +-0.34286779,-0.34585041,-0.3945665,-0.39324089,-0.37600799,-0.34817022,-0.33325713,-0.35844368,-0.35463256,-0.33922237,-0.3274576,-0.33160012,-0.32033246,-0.29083768,-0.26200571,-0.24228729,-0.21279251,-0.20633017,-0.18528615,-0.15413436,-0.13325603,-0.12414248,-0.13209613,-0.1107207,-0.086859756,-0.066312833,-0.055707969,-0.022070667,0.050009265,0.10734181,0.11927228,0.12540322,0.14512164,0.10386209,0.088120494,0.18174156,0.21869288,0.18025025,0.19814595,0.26492345,0.29508104,0.3063487,0.33269516,0.34893386,0.39798135,0.4221737,0.44122931,0.51927448,0.54976346,0.58754329,0.62466031,0.60295348,0.61223274,0.61405545,0.57842973,0.59698825,0.58754329,0.53369047,0.48464297,0.44272062,0.44537184,0.43377277,0.3729605,0.32374731,0.35953872,0.33783189,0.29309262,0.31446805,0.29872646,0.24818765,0.18257006,0.14197332,0.071384693,2.989669E-4,0.01256084,0.043546926,0.086132082,0.17759903,0.23194896,0.25448429,0.31413665,0.37809723,0.40460939,0.44470903,0.46972988,0.51165223,0.58422927,0.62167769,0.67503341,0.67370781,0.68282136,0.73253166,0.7058538,0.69640884,0.73783409,0.7562269,0.72540652,0.6720508,0.59980516,0.49690485,0.42018529,0.33170095,0.2384113,0.19947156,0.1732908,0.17445071,0.18290146,0.17627342,0.14429313,0.082983763,0.10220508,0.1217578,0.089280401,0.065916561,0.068899178,0.10005097,0.12739163,0.12358051,0.1063476,0.11794667,0.13799649,0.14197332,0.15870912,0.18787249,0.19698605,0.17875894,0.1719652,0.21488175,0.24023401,0.2394055,0.26508916,0.21803007,0.16467435,0.14213902,0.066579364,0.019354581,-0.0091459898,-0.031681325,-0.022899172,-0.028201604,-0.032178428,-0.045434507,-0.079071809,-0.12414248,-0.13971837,-0.15860829,-0.19721662,-0.20583307,-0.20566737,-0.21610653,-0.22969401,-0.23151672,-0.23847617,-0.25338925,-0.29315749,-0.3112189,-0.30475656,-0.33044022,-0.34800452,-0.3276233,-0.31817834,-0.32546919,-0.3282861,-0.30309955,-0.28006711,-0.29514591,-0.30823628,-0.31237881,-0.3103904,-0.29730002,-0.29763142,-0.3110532,-0.30923049,-0.31834404,-0.3448562,-0.38131042,-0.40053174,-0.41809604,-0.44808792,-0.42588399,-0.39522931,-0.38346454,-0.35628957,-0.36391182,-0.37948771,-0.3768365,-0.36921425,-0.36904855,-0.38114472,-0.39556071,-0.38197323,-0.37501378,-0.39174958,-0.37020846,-0.32397788,-0.32878321,-0.31254451,-0.26498832,-0.23565925,-0.1945654,-0.16457352,-0.15695128,-0.15744838,-0.15314015,-0.13739856,-0.13043912,-0.13093622,-0.15595707,-0.13657005,-0.063661617,-0.024390481,-0.064987225,-0.062998813,-0.089676673,-0.12082846,-0.10276705,-0.12927921,-0.15612277,-0.15015754,-0.1107207,-0.097796022,-0.15314015,-0.22654569,-0.25670327,-0.2606801,-0.28089562,-0.31668703,-0.31204741,-0.28901497,-0.29116908,-0.28106132,-0.2780787,-0.25189795,-0.21279251,-0.20682728,-0.15363726,-0.068798348,-0.041126282,-0.001523744,0.069893384,0.13468247,0.21753297,0.31778207,0.43476697,0.4390752,0.4897797,0.5895317,0.61239844,0.52424551,0.41372295,0.28745879,0.019520282,-0.17285857,-0.32464068,-0.39638921,-0.4113023,-0.42406128,-0.47078896,-0.47277737,-0.44063138,-0.47377158,-0.47575999,-0.49680401,-0.52596739,-0.49580981,-0.52895001,-0.5113857,-0.42538689,-0.26664533,-0.29879133,-0.33723396,-0.29166618,-0.2608458,-0.22024906,-0.15877399,-0.12563379,-0.056039371,0.030125146,0.11612396,0.19549474,0.17113669,0.12457471,0.11844378,-0.077414799,-0.22671139,-0.016602534,0.51148653,0.64338452,0.82615272,0.96749567,1.0029557,1.0488549,1.0563114,1.0306277,1.0360959,1.1134782,1.1539093,1.0496834,1.0306277,1.0104122,0.98307156,0.97992324,0.93849799,0.93269846,0.89574714,0.8235015,0.82366721,0.8067657,0.79102411,0.80196038,0.80809131,0.82946674,0.84404843,0.85465329,0.87917704,0.94247482,1.0309591,1.1151353,1.1882094,1.2800077,1.4011352,1.5413182,1.6919404,1.8561501,2.0026298,2.1810897,2.3535845,2.4114141,2.465267,2.6142321,2.7040421,2.7322113,2.8042912,2.8737199,2.8883016,2.9057002,2.9141509,2.8854847,2.8528416,2.779436,2.7237605,2.6644395,2.5327073,2.5174628,2.4548278,2.1771129,2.0377584,1.8699033,1.7494387,1.62566,1.4703982,1.401798,1.2955836,1.142973,1.0220113,0.96517585,0.76915158,0.6218434,0.55804851,0.5065155,0.3890335,0.1895295,0.10684471,-0.017431039,-0.093984899,-0.160431,-0.21560943,-0.26813664,-0.28238693,-0.32911461,-0.38147612,-0.39589211,-0.44659661,-0.50641467,-0.5105572,-0.51006009,-0.477417,-0.40185735,-0.39804622,-0.38860127,-0.32480638,-0.18528615,0.0067613057,0.15241248,0.17461641,0.20957932,0.39731855,0.84288852,1.112484,1.5161317,1.8221814,1.9229276,1.7532498,1.4152198,1.0122349,0.59864526,0.14793855,-0.12066276,-0.46482372,-0.78711216,-1.0131283,-1.1927482,-1.2905118,-1.3620946,-1.3997087,-1.4171073,-1.4530645,-1.5004549,-1.5592788,-1.5972243,-1.5992127,-1.599047,-1.624565,-1.6099833,-1.5925847,-1.6121374,-1.6268848,-1.6596936,-1.6939937,-1.7017816,-1.6929995,-1.6999589,-1.6981362,-1.6989647,-1.7263054,-1.7213344,-1.7316078,-1.7392301,-1.7314421,-1.7254769,-1.7375731,-1.7516576,-1.7423784,-1.7473494,-1.7433726,-1.742047,-1.737076,-1.727631,-1.735916,-1.751989,-1.750332,-1.7430412,-1.759777,-1.7566287,-1.7518233,-1.732602,-1.7340933,-1.7644166,-1.7930829,-1.8038535,-1.7806553,-1.7669021,-1.7703819,-1.7576229,-1.7304479,-1.7625939,-1.7798268,-1.7672335,-1.7874491,-1.7929172,-1.8008708,-1.790266,-1.7761814,-1.8055105,-1.814624,-1.7967283,-1.7859577,-1.7553031,-1.7468523,-1.7662393,1 +-0.25304945,-0.25868759,-0.26768913,-0.27313229,-0.2725961,-0.2730673,-0.27236862,-0.26993138,-0.26595056,-0.25932127,-0.24747629,-0.23506263,-0.22433878,-0.20914666,-0.19221597,-0.17715384,-0.15729847,-0.13723187,-0.11827016,-0.097618626,-0.073213744,-0.04781772,-0.027572392,-0.0087244148,0.00679267,0.026843018,0.05180034,0.070274608,0.08031603,0.090048736,0.10379476,0.11412865,0.12530745,0.14145822,0.15809643,0.17600201,0.20107307,0.22536422,0.24712063,0.26533493,0.28800124,0.3196366,0.34425271,0.36979497,0.39946428,0.42180563,0.4431396,0.4668458,0.48387397,0.49398039,0.49786372,0.49315173,0.48725361,0.48558004,0.48171296,0.46960801,0.4477866,0.42208186,0.39246128,0.36739022,0.34461017,0.33237523,0.32988925,0.33651854,0.35005333,0.35504155,0.35679636,0.33477997,0.29537795,0.25516352,0.20779985,0.1663668,0.1430668,0.13989839,0.15778772,0.20321784,0.27446645,0.35611393,0.42903611,0.48988583,0.54023918,0.57811386,0.61156902,0.6466815,0.68267139,0.71953869,0.75154775,0.77747997,0.79104726,0.79293206,0.79067355,0.77575765,0.75130403,0.7301488,0.70764496,0.67880431,0.63171686,0.56825117,0.49861114,0.4277525,0.36635034,0.31133374,0.26551366,0.22988123,0.20427398,0.19356638,0.18617342,0.17530334,0.1625972,0.14292056,0.13245668,0.13404901,0.1369737,0.14279058,0.15817767,0.17473465,0.19520745,0.21756505,0.23673799,0.26289769,0.27938967,0.29308695,0.3080191,0.31638695,0.33326889,0.355529,0.36917753,0.37956017,0.38687188,0.38526331,0.37366205,0.35323799,0.32720829,0.29282698,0.25306749,0.21563151,0.18009657,0.15054099,0.12650982,0.099683952,0.072289392,0.049769308,0.030125166,0.012414567,-0.003914931,-0.025801332,-0.046826576,-0.061011304,-0.068241778,-0.072661304,-0.080996659,-0.089153284,-0.099584665,-0.11219331,-0.12434701,-0.13843425,-0.15008425,-0.15715224,-0.1542763,-0.14964554,-0.14569722,-0.13971786,-0.13221116,-0.1230309,-0.1160279,-0.11526423,-0.11857888,-0.12446075,-0.13853174,-0.15182281,-0.15768843,-0.17455412,-0.19687922,-0.21608466,-0.23668745,-0.25119715,-0.26531688,-0.26898899,-0.26135231,-0.24966981,-0.22999317,-0.2156947,-0.22401381,-0.22208027,-0.21215258,-0.20518208,-0.19891026,-0.20311855,-0.20264735,-0.20061632,-0.20112002,-0.19442574,-0.17980231,-0.16756737,-0.17002086,-0.14756577,-0.11666158,-0.10702637,-0.08257274,-0.051051123,-0.028092336,0.019320076,0.045349782,0.037908081,0.039760382,0.069364705,0.093135905,0.097669168,0.12888207,0.16929148,0.17025013,0.14899741,0.14812,0.11187014,0.11289378,0.098692808,0.04266882,0.024535766,0.0096848597,-0.011291639,-0.01528871,-0.018684596,-0.02591507,-0.10504408,-0.14192762,-0.15010049,-0.18947002,-0.17676388,-0.15923201,-0.1542113,-0.11165712,-0.043576925,-0.021170579,0.0013495041,0.055797411,0.08712405,0.1300032,0.17749685,0.19878207,0.24952537,0.3210502,0.40224273,0.44456944,0.35184064,0.34360278,0.3885942,0.4053949,0.36054971,0.3107813,0.21725634,0.069153478,-0.1919885,-0.29235398,-0.37070307,-0.38784498,-0.39055844,-0.39712274,-0.37258787,-0.33533062,-0.29368634,-0.29388131,-0.25225328,-0.1738392,-0.122121,-0.089673228,-0.038328738,0.044131163,0.16506694,0.2730366,0.27404399,0.3830373,0.48639245,0.60099141,0.69508506,0.73487704,0.82429119,0.84136811,0.88964168,0.98609133,1.0223899,1.0717521,1.1466728,1.1162886,1.0295067,1.0867818,1.1240878,1.0461449,1.1262813,1.1626936,1.219855,1.275294,1.2261431,1.2157604,1.1570392,1.1262163,1.1229829,0.80147864,0.84556016,0.84040946,0.78105458,0.78048589,0.68791958,0.6243564,0.6621011,0.63192809,0.52589197,0.53131888,0.54123032,0.54595856,0.55660117,0.56985975,0.6057034,0.64549538,0.69815598,0.75128778,0.81975793,0.90855465,1.0136646,1.1260538,1.2638715,1.4198548,1.5880892,1.7580622,1.9424962,2.1272064,2.2540403,2.3047673,2.4361345,2.531723,2.4965292,2.5263448,2.5443804,2.5236151,2.5494661,2.5768444,2.5075456,2.391793,2.4233309,2.4109334,2.3950589,2.3961475,2.2381657,2.116775,2.1738551,2.0073755,1.6975212,1.7129408,1.6434958,1.5501658,1.4009906,1.2281904,1.1853599,1.1045086,0.89945563,0.77705751,0.73541323,0.5432776,0.47042042,0.38524706,0.31352725,0.23974392,-0.024680203,-0.056673019,-0.13809303,-0.22948947,-0.25456053,-0.31968355,-0.49448229,-0.51032434,-0.68785279,-0.71597852,-0.72673487,-0.81026715,-0.83186108,-0.85512859,-0.85975934,-0.85845948,-0.85810202,-0.88934742,-0.87480523,-0.81047838,-0.74299937,-0.65688361,-0.55148117,-0.46378933,-0.33721541,-0.1808097,0.056349852,0.27420647,0.5004147,0.6271511,0.65517934,0.57356435,0.42091198,0.13133556,-0.19504317,-0.51901716,-0.7147274,-1.0106406,-1.2253451,-1.3569072,-1.5193736,-1.5926207,-1.6239636,-1.6765104,-1.6927749,-1.7284724,-1.7685893,-1.7791019,-1.7835052,-1.7925555,-1.8075201,-1.8079913,-1.8191701,-1.8243533,-1.8152706,-1.8179678,-1.834476,-1.8406016,-1.845866,-1.8434938,-1.8538602,-1.8638528,-1.8633004,-1.8647952,-1.862813,-1.8646653,-1.8681749,-1.8646328,-1.8701409,-1.8738618,-1.8734393,-1.8711321,-1.8746092,-1.8794187,-1.8669075,-1.8870229,-1.897698,-1.8882415,-1.8880952,-1.8927585,-1.8952282,-1.8828633,-1.8831883,-1.8982017,-1.8965931,-1.897763,-1.8949195,-1.8929372,-1.892531,-1.8953582,-1.8972593,-1.8961219,-1.8972268,-1.8948708,-1.8864054,-1.8964468,-1.9094454,-1.9011751,-1.8968855,-1.8969668,-1.8962681,-1.8986241,-1.8992415,-1.895277,-1.8916699,-1.8873316,-1.8948383,-1.8978929,-1.8937171,2 +-0.24585798,-0.24976773,-0.25620079,-0.25791997,-0.26166335,-0.26446395,-0.25567395,-0.25170874,-0.24810401,-0.23401782,-0.221734,-0.20795283,-0.19106605,-0.17512204,-0.16882762,-0.15756976,-0.13499859,-0.11381386,-0.087832052,-0.068616055,-0.048179994,-0.019563963,0.0027299212,0.020309925,0.043990245,0.070609808,0.091794544,0.10122231,0.10934682,0.11777635,0.12914512,0.13416402,0.13419174,0.14098528,0.15038531,0.16358418,0.1760621,0.19394712,0.21649056,0.23415375,0.24427473,0.25528303,0.27558045,0.29682064,0.30896582,0.31883724,0.33040011,0.33677771,0.3360845,0.31916998,0.29402004,0.27433266,0.25453435,0.2268611,0.20110113,0.17986093,0.15418415,0.14328676,0.12648316,0.098144419,0.087912524,0.084113691,0.07682104,0.074990945,0.076987412,0.08134082,0.085056467,0.078817507,0.057632771,0.041328288,0.029210841,0.0053918775,-0.019175761,-0.037948099,-0.044575261,-0.046571729,-0.044325703,-0.030655448,-0.01360229,3.7298068E-4,0.026465699,0.051393811,0.062291195,0.077902459,0.098172148,0.11494802,0.12975515,0.14342541,0.14472866,0.13677052,0.13693689,0.13857288,0.12789733,0.1202442,0.11480938,0.10441111,0.087718424,0.063538987,0.044406175,0.016871564,-0.015127369,-0.030988193,-0.038280844,-0.045240751,-0.053198891,-0.052977061,-0.045545766,-0.035313872,-0.027854848,-0.02544245,-0.025553365,-0.014933268,-2.9250841E-4,0.013710491,0.031151851,0.045127122,0.061819806,0.086609275,0.11245243,0.12983834,0.14320358,0.15648563,0.17459248,0.19023147,0.19921557,0.20409583,0.21241444,0.22206403,0.23249003,0.23229593,0.22059441,0.21302447,0.1954722,0.17057181,0.14910979,0.12395985,0.10138868,0.082311325,0.055608575,0.03267693,0.022611408,0.0099393863,-0.0088606804,-0.021893175,-0.031820054,-0.044547533,-0.058744633,-0.067922837,-0.074494542,-0.076962397,-0.072082144,-0.070612522,-0.07732287,-0.077572429,-0.076768296,-0.089662147,-0.10297193,-0.10305512,-0.095901107,-0.089440318,-0.082729969,-0.070196591,-0.058051416,-0.051368796,-0.04288381,-0.034953398,-0.029712672,-0.032291442,-0.043882044,-0.04590624,-0.052034285,-0.075631419,-0.094376028,-0.10693713,-0.12296433,-0.13449947,-0.14326175,-0.15097033,-0.14803109,-0.13949064,-0.12202155,-0.11034777,-0.11786225,-0.1167531,-0.11517256,-0.11068051,-0.10718669,-0.11567168,-0.11126281,-0.10416426,-0.10250054,-0.097010256,-0.081482177,-0.064345833,-0.06506678,-0.047264947,-0.01662472,-0.0048400172,0.015790145,0.048149551,0.069972048,0.10538161,0.14694695,0.17952819,0.21410589,0.26082877,0.30680298,0.32973462,0.36350819,0.40912192,0.42578688,0.42878158,0.43091669,0.37282504,0.35219488,0.32576942,0.25190013,0.221454,0.19483444,0.16577475,0.15185493,0.14007023,0.13322124,0.061653434,0.030458633,0.029654501,-0.0018175876,-0.0032594806,-0.0051173043,-0.010413488,0.011298093,0.056135421,0.068003309,0.078373848,0.11533622,0.13818468,0.16757711,0.1978846,0.20861561,0.2344865,0.27347307,0.31750626,0.33270159,0.24657621,0.22935668,0.25104054,0.25750133,0.22278498,0.18851229,0.14212216,0.082671798,-0.024444217,-0.060630186,-0.091353599,-0.093876911,-0.097648016,-0.092046816,-0.04998236,-0.0032594806,0.04301974,0.055858133,0.10674032,0.19175655,0.2430824,0.28168076,0.34182434,0.42961344,0.55073246,0.657488,0.68835005,0.79197225,0.89121331,1.0061211,1.1015079,1.1359469,1.2123395,1.2265089,1.2695439,1.34455,1.3751625,1.4247969,1.5038515,1.5348244,1.5593366,1.6647057,1.720385,1.5852907,1.5855957,1.5537909,1.52792,1.5298055,1.4476454,1.4238264,1.3717519,1.3417772,1.3413335,1.0541472,1.0867285,1.0837892,1.0388687,1.0301896,0.94533976,0.89944874,0.93433146,0.90507767,0.82524671,0.83902788,0.84523911,0.84809516,0.86478785,0.88344927,0.91616915,0.95673626,1.0153548,1.0757202,1.1444042,1.2225437,1.3238921,1.427958,1.5545673,1.7043855,1.8598604,2.0126456,2.1688692,2.3309158,2.433817,2.4635145,2.5660552,2.6283894,2.5858535,2.6082029,2.6080088,2.5669148,2.5732647,2.5858813,2.5021128,2.3826575,2.402844,2.3742835,2.3473312,2.3310544,2.1790456,2.065247,2.095499,1.9307905,1.6559989,1.6468484,1.5662688,1.4679428,1.3213134,1.1578249,1.1092164,1.023202,0.8382792,0.71596785,0.67182374,0.50337182,0.41183934,0.32163784,0.23617795,0.13973749,-0.071638484,-0.1123165,-0.19866371,-0.29219266,-0.34185478,-0.42548458,-0.58966628,-0.60807815,-0.77847108,-0.83159929,-0.86032624,-0.93466692,-0.96417027,-1.0001899,-1.0210141,-1.0255616,-1.0399528,-1.0905577,-1.0928038,-1.0708704,-1.0601948,-1.0453045,-1.0261994,-1.0270035,-1.006817,-0.96749771,-0.92096893,-0.85519643,-0.79585698,-0.76297073,-0.76513357,-0.81609894,-0.88747265,-0.99941346,-1.1038952,-1.2041623,-1.2647495,-1.3647115,-1.4388581,-1.4792865,-1.5402065,-1.5681016,-1.5746179,-1.5910887,-1.5972999,-1.6238086,-1.6396694,-1.6395308,-1.6447715,-1.6493745,-1.6523692,-1.6480712,-1.6569167,-1.6647639,-1.6576931,-1.6577485,-1.6716961,-1.6709751,-1.6725002,-1.6795988,-1.6814843,-1.6813457,-1.6872242,-1.6912448,-1.687446,-1.6862537,-1.6868082,-1.6844513,-1.690302,-1.689997,-1.6893315,-1.6910785,-1.6905793,-1.6953209,-1.6900525,-1.6897475,-1.6997021,-1.7071334,-1.7035009,-1.7012549,-1.7029741,-1.6948218,-1.6942673,-1.6980384,-1.6931304,-1.6959032,-1.6943227,-1.6926867,-1.7007835,-1.6999794,-1.6918826,-1.6926035,-1.6919935,-1.6894147,-1.6877233,-1.689692,-1.6990089,-1.6986207,-1.6946555,-1.6976502,-1.699203,-1.6993693,-1.697567,-1.6895534,-1.6893038,-1.6912171,-1.6939068,-1.6934908,-1.683148,2 +-0.23477857,-0.23394933,-0.23715719,-0.24219812,-0.23988497,-0.2334256,-0.23215991,-0.22849378,-0.22284183,-0.21343646,-0.19851007,-0.18373644,-0.16645326,-0.14635501,-0.13173413,-0.10823162,-0.080582892,-0.057058558,-0.035847378,-0.02011357,0.001381299,0.028309896,0.051528719,0.067502571,0.084349311,0.10571325,0.13021958,0.15084156,0.16273466,0.17661358,0.19335121,0.20074894,0.20860493,0.22263661,0.23834859,0.25737755,0.27850144,0.29923254,0.3184579,0.33641757,0.35655946,0.38080393,0.40079306,0.42702335,0.45541404,0.47723624,0.50300826,0.52758006,0.54372849,0.5496423,0.55463959,0.55210821,0.54084796,0.53788014,0.53307925,0.51391936,0.48864925,0.46931478,0.44707795,0.42130593,0.40096764,0.39269703,0.40321533,0.42536486,0.44258258,0.45244622,0.45159515,0.43134415,0.39756338,0.35514102,0.30765591,0.26667381,0.24035623,0.23638459,0.25521715,0.29982173,0.36552839,0.43671241,0.50447035,0.56131718,0.60679465,0.64546359,0.6820376,0.71263233,0.74008466,0.76851899,0.79664781,0.82067405,0.83112689,0.83003578,0.82167788,0.79642959,0.7628234,0.72435085,0.68221218,0.6372148,0.57312299,0.50966403,0.4481036,0.38571392,0.33766143,0.29619925,0.26379328,0.23479157,0.2096524,0.19404952,0.17805385,0.15819564,0.14274552,0.1335802,0.13059056,0.13635162,0.14418579,0.15250005,0.16982688,0.18673908,0.20478604,0.23169282,0.25432244,0.27706118,0.29709396,0.31900345,0.34038921,0.35607937,0.38010562,0.40035662,0.4149775,0.42643415,0.42807082,0.42547397,0.41220608,0.39226058,0.36958731,0.33120206,0.29124561,0.25726844,0.22481883,0.19819574,0.1729911,0.14318197,0.11601333,0.093012726,0.069051948,0.046815124,0.027131497,0.015020175,-0.0011282543,-0.017800417,-0.022317613,-0.022273968,-0.028362362,-0.039077064,-0.049464432,-0.06550375,-0.080517425,-0.092039548,-0.099306341,-0.102907,-0.10399811,-0.098127943,-0.09225777,-0.083856222,-0.074407209,-0.064521751,-0.049791765,-0.045143636,-0.048962521,-0.056993092,-0.075716541,-0.091297593,-0.099699141,-0.11733148,-0.13985199,-0.16019029,-0.17834636,-0.1975499,-0.21749539,-0.22397658,-0.21710259,-0.2043366,-0.18316906,-0.16876641,-0.1710141,-0.16060491,-0.15198514,-0.14932283,-0.14528572,-0.1468351,-0.14358359,-0.14103039,-0.14072488,-0.13354538,-0.11600033,-0.10417269,-0.1034962,-0.071723078,-0.039688085,-0.031352004,-0.0047289176,0.028680874,0.055871338,0.10510223,0.13641709,0.13739908,0.15055787,0.18654268,0.21026342,0.21964696,0.26045448,0.30785231,0.31540279,0.30695759,0.30569191,0.26366235,0.2552608,0.22900869,0.15898124,0.12413119,0.092074371,0.057617114,0.050066632,0.047928056,0.040879485,-0.028776984,-0.059829978,-0.071875833,-0.112727,-0.10522016,-0.086060265,-0.075847474,-0.036000133,0.029924739,0.052336141,0.084131089,0.14152348,0.17329661,0.21632999,0.25763942,0.27269674,0.321513,0.38909636,0.46115327,0.47983308,0.36982736,0.37881811,0.4168542,0.41971291,0.368889,0.30093467,0.18691366,0.029684695,-0.20929024,-0.28804657,-0.34537349,-0.35883779,-0.3632677,-0.36038717,-0.32708649,-0.28761012,-0.2524982,-0.23877204,-0.1779972,-0.092235948,-0.034232535,0.0098919578,0.0729363,0.16766648,0.29281681,0.39861084,0.42833268,0.55365759,0.67254495,0.79409461,0.88788644,0.93133444,1.0210673,1.0362774,1.0870577,1.1756995,1.2114879,1.2726119,1.3542705,1.3538996,1.3506917,1.4545217,1.4736162,1.3113681,1.3601625,1.3526993,1.3612536,1.3854326,1.3064799,1.2733538,1.1987655,1.1583072,1.1207948,0.82117596,0.88094698,0.86678437,0.79800079,0.78527844,0.68974084,0.62975161,0.65711665,0.61491251,0.51579607,0.52775464,0.53486867,0.53393032,0.5475692,0.56297567,0.59302484,0.63173743,0.687144,0.73866622,0.80594407,0.89203265,0.99405145,1.1026387,1.2343357,1.3845816,1.5449311,1.7117837,1.8932571,2.0677256,2.1738252,2.2059693,2.3158004,2.3794558,2.3231108,2.3353967,2.320885,2.2811031,2.2961386,2.3074207,2.212385,2.0883694,2.1158217,2.098735,2.0760181,2.0654779,1.911806,1.8025859,1.8582979,1.6896778,1.3971512,1.4139979,1.34157,1.2466653,1.1046464,0.94198368,0.89622252,0.81840455,0.63398512,0.52011686,0.472479,0.28973988,0.2283322,0.15778102,0.083061801,-0.0087442028,-0.24468585,-0.26081246,-0.33444057,-0.42085649,-0.4527169,-0.52857088,-0.69223739,-0.71316489,-0.87336167,-0.90596404,-0.92233069,-0.9895649,-1.0084629,-1.0322491,-1.0406725,-1.046499,-1.0558826,-1.0710272,-1.0441422,-0.99591516,-0.95497671,-0.89044846,-0.80228676,-0.70356312,-0.56641058,-0.42299507,-0.19113417,0.0078188486,0.21774843,0.35703955,0.42765619,0.39658138,0.27007807,2.9018886E-4,-0.30273291,-0.60248268,-0.79277228,-1.0870447,-1.300444,-1.4263145,-1.5806192,-1.6560586,-1.6972153,-1.7519672,-1.7654969,-1.7981211,-1.8311599,-1.8368555,-1.838645,-1.8431403,-1.8523493,-1.8573902,-1.868585,-1.8721857,-1.8672757,-1.8689342,-1.8810891,-1.8878104,-1.8924585,-1.892153,-1.8986124,-1.9020603,-1.9024749,-1.9057046,-1.9052681,-1.9035224,-1.9013838,-1.8991143,-1.9055737,-1.9103309,-1.908236,-1.9069048,-1.9152191,-1.9202382,-1.9141716,-1.93032,-1.9326332,-1.9238388,-1.9256283,-1.9304728,-1.9291635,-1.9226386,-1.9240789,-1.9317385,-1.9327641,-1.9333533,-1.9295126,-1.9275704,-1.9244062,-1.9255846,-1.9280723,-1.9252791,-1.9259992,-1.9284651,-1.9309092,-1.9420822,-1.9453119,-1.93523,-1.9272431,-1.9293162,-1.9325895,-1.9302109,-1.9283124,-1.9259556,-1.9245153,-1.9223549,-1.9253009,-1.9268939,-1.9282906,2 +-0.25001358,-0.24879684,-0.25112603,-0.24643289,-0.23722042,-0.22929422,-0.22672168,-0.21816973,-0.19644221,-0.18834219,-0.16685802,-0.1385601,-0.12152573,-0.092636819,-0.059610991,-0.031417363,-0.0056572171,0.015583605,0.033382788,0.054136914,0.069502615,0.088309955,0.11918041,0.13708389,0.15130238,0.1742814,0.18797843,0.19614797,0.21426003,0.23341501,0.24002018,0.25896658,0.29091472,0.3140328,0.3482406,0.38269176,0.39694501,0.4141532,0.44123438,0.46643831,0.49039072,0.51528177,0.54580459,0.58804288,0.63977176,0.69097917,0.73895353,0.79245538,0.84136837,0.8804779,0.91086166,0.93109433,0.95362142,0.97646138,0.98984554,0.98953266,0.96592788,0.92761792,0.88843886,0.8466525,0.8114713,0.7930116,0.80243265,0.84296751,0.87953927,0.91545051,0.92459345,0.89048994,0.83483273,0.76068105,0.6760654,0.60594636,0.58515747,0.60935323,0.68854569,0.80903782,0.95216133,1.1234089,1.2871475,1.4139319,1.4995557,1.5615052,1.6163281,1.6568282,1.6975717,1.7513168,1.8066264,1.8483085,1.8665248,1.8612755,1.8364539,1.7909131,1.7170395,1.6404891,1.5569164,1.4602029,1.3601867,1.248038,1.1233742,1.0077142,0.90700285,0.81084555,0.73047111,0.6625422,0.60472962,0.55637285,0.51055386,0.47241772,0.4410258,0.40799997,0.38057115,0.36232004,0.36478828,0.37688617,0.37935441,0.39169564,0.41165019,0.42221846,0.44829148,0.47829284,0.49317184,0.50923283,0.53078652,0.55626856,0.58036003,0.59798539,0.60990946,0.62697859,0.63250607,0.61282963,0.5847403,0.55498229,0.51250064,0.45159406,0.38474284,0.32366244,0.26977819,0.23160729,0.20490851,0.17751446,0.14111652,0.10416235,0.079653712,0.065330931,0.043429593,0.009708484,-0.01897184,-0.030131094,-0.035519519,-0.044140998,-0.054257331,-0.072056514,-0.095035537,-0.12103903,-0.1491979,-0.16901339,-0.18090269,-0.18924606,-0.19734608,-0.19327869,-0.17742629,-0.17301126,-0.17520139,-0.17544474,-0.16838764,-0.16776189,-0.16849193,-0.1759662,-0.19672032,-0.20367313,-0.20645425,-0.22679121,-0.25140414,-0.27382694,-0.2989961,-0.32305281,-0.33734082,-0.34053911,-0.33567215,-0.31835966,-0.29166089,-0.27278402,-0.25547153,-0.23982772,-0.228738,-0.22056845,-0.21083452,-0.20026626,-0.19494736,-0.19150572,-0.19870187,-0.18938511,-0.17221168,-0.16032238,-0.14937172,-0.13046008,-0.099937265,-0.09367974,-0.082138082,-0.041707516,0.016105065,0.065261403,0.059838215,0.0046329357,-0.047721693,-0.071256941,-0.082763835,-0.099763445,-0.088047967,-0.065520876,-0.057073217,-0.056621285,-0.056656049,-0.073064671,-0.083389587,-0.11259137,-0.16998679,-0.19644221,-0.19539929,-0.1794426,-0.15055369,-0.12197766,-0.11429481,-0.17836492,-0.21716157,-0.23440453,-0.26416254,-0.25275994,-0.21378946,-0.16546746,-0.098650996,-0.033503205,0.015792189,0.063801314,0.12498601,0.17678441,0.21697163,0.26352066,0.32380149,0.40094287,0.51775001,0.63587819,0.68298345,0.65993489,0.67874223,0.71899898,0.717817,0.68009803,0.54267582,0.25583781,-0.059576227,-0.4207745,-0.55798812,-0.65633556,-0.70337129,-0.72249151,-0.72186576,-0.7107065,-0.68901375,-0.66273214,-0.65014756,-0.62949773,-0.594247,-0.5507572,-0.50938801,-0.4637776,-0.40537403,-0.34293783,-0.27361836,-0.21563196,-0.15385628,-0.069762088,0.020937266,0.074960568,0.11549543,0.17344706,0.21544201,0.25416914,0.29491258,0.3377071,0.39367719,0.44405027,0.48013533,0.53043888,0.60417339,0.65899627,0.57399821,0.55984925,0.53760027,0.52115689,0.51830624,0.47638082,0.45660008,0.41815107,0.39256474,0.36134664,0.23414506,0.25110991,0.23703047,0.20619478,0.18759602,0.13788346,0.10357136,0.10165934,0.076803061,0.034530001,0.035746742,0.037728292,0.039257909,0.047566512,0.067764413,0.085320248,0.10430141,0.14421051,0.18314623,0.22973003,0.28465719,0.35592346,0.43956571,0.53780886,0.64091897,0.75685701,0.88273756,1.0153971,1.1351939,1.2426148,1.3098484,1.3775688,1.422032,1.422171,1.4492522,1.4571784,1.4442462,1.4478616,1.4501561,1.4079525,1.3728409,1.3951594,1.3889366,1.3704074,1.3467331,1.2753625,1.207816,1.199125,1.0769642,0.9187531,0.90849771,0.84574863,0.76280166,0.65058337,0.53871272,0.49828216,0.43007513,0.31038258,0.22524547,0.17396852,0.038805977,-0.017998448,-0.075289568,-0.13320644,-0.19977956,-0.36171041,-0.38044822,-0.43401959,-0.49642102,-0.51540218,-0.54884518,-0.65397161,-0.67500384,-0.75068514,-0.76476457,-0.7696663,-0.80915823,-0.81572864,-0.80655093,-0.7950788,-0.76813668,-0.71880652,-0.66603472,-0.59341267,-0.48574847,-0.33734082,-0.15378675,0.063731786,0.30760145,0.59454375,0.98928931,1.6393071,2.0091616,2.5030542,2.8486087,2.9703175,2.8725611,2.578666,2.0234149,1.4007564,0.74083079,0.28510913,-0.30348066,-0.73907395,-1.0336643,-1.322623,-1.4868482,-1.5880116,-1.677807,-1.7199063,-1.7661772,-1.8049043,-1.832507,-1.8445006,-1.8483246,-1.8524268,-1.8561118,-1.8729028,-1.8793341,-1.878465,-1.8857655,-1.8903543,-1.8990106,-1.9105175,-1.9156973,-1.9183046,-1.9275866,-1.9272737,-1.9264046,-1.9294639,-1.9272737,-1.9279342,-1.931063,-1.9304025,-1.9242145,-1.918096,-1.9217115,-1.9336008,-1.9368338,-1.9312021,-1.9396845,-1.9422918,-1.9386763,-1.9345046,-1.9356519,-1.9363124,-1.9342613,-1.9422223,-1.9445514,-1.9393368,-1.940936,-1.9468111,-1.9415617,-1.9352694,-1.9373205,-1.9410403,-1.9454205,-1.9383634,-1.9299505,-1.9349913,-1.9455596,-1.9448643,-1.9346089,-1.9279342,-1.932836,-1.9336008,-1.9319669,-1.9278299,-1.9210162,-1.9237626,-1.9206338,-1.9233106,-1.9318278,-1.9313411,2 +-0.23059755,-0.22928329,-0.22911092,-0.22525431,-0.22236724,-0.21456784,-0.21140067,-0.21112058,-0.19918448,-0.18569711,-0.16751286,-0.14226175,-0.12134125,-0.1002053,-0.070688212,-0.050715704,-0.030420016,-0.0024541949,0.021116381,0.041735249,0.058691413,0.078405378,0.097343711,0.1132657,0.13308739,0.16101012,0.1820168,0.19065648,0.2052642,0.21248188,0.20151532,0.19830506,0.20125677,0.19550417,0.19645217,0.20907772,0.21299897,0.21500268,0.22450417,0.23301457,0.25303017,0.27470476,0.29347073,0.31549004,0.34349895,0.36215719,0.36252347,0.36174783,0.35119063,0.32848187,0.29745661,0.26358737,0.22724042,0.19776643,0.1707486,0.14286896,0.11858739,0.092797649,0.073126775,0.058238961,0.042553971,0.029842234,0.025102265,0.029001967,0.026114895,0.019048031,0.014846694,0.0088140056,0.0052590284,-0.0045871812,-0.022965336,-0.040395497,-0.060066371,-0.092125802,-0.11862654,-0.1303041,-0.13885759,-0.13741406,-0.12351733,-0.11127959,-0.10154111,-0.084304852,-0.0668316,-0.052633237,-0.033630268,-0.022814519,-0.011610954,-0.0037253686,-0.010253599,-0.01572611,-0.025680046,-0.03959832,-0.047182272,-0.04737618,-0.053408868,-0.064332344,-0.079263248,-0.10304928,-0.12864511,-0.146183,-0.15749429,-0.17130484,-0.17576472,-0.17606635,-0.17809161,-0.16740514,-0.15844229,-0.15096606,-0.13808196,-0.13133828,-0.12233234,-0.11065477,-0.091953439,-0.068102774,-0.052697873,-0.036603521,-0.011869498,0.0089863681,0.028614151,0.051452187,0.070649064,0.088079225,0.10260077,0.11886748,0.13709482,0.15370626,0.16471592,0.17884964,0.18944994,0.18503315,0.17994845,0.17406658,0.16094548,0.14116688,0.1208712,0.10126496,0.079116373,0.057398694,0.036047286,0.018552489,0.0025443185,-0.011869498,-0.023870239,-0.041235764,-0.057222389,-0.068706043,-0.07497573,-0.075406636,-0.077453441,-0.080879147,-0.08210723,-0.083680038,-0.083378403,-0.079909607,-0.08215032,-0.089863544,-0.087752103,-0.082430409,-0.081310053,-0.07635463,-0.067499505,-0.053732048,-0.039943045,-0.031755825,-0.023180789,-0.015510657,-0.013356125,-0.013054491,-0.02257752,-0.032488366,-0.039339777,-0.059118377,-0.076440812,-0.090380631,-0.10750916,-0.1208888,-0.12774021,-0.12677067,-0.12196607,-0.11739846,-0.11033159,-0.1054839,-0.10964214,-0.099386574,-0.091716441,-0.091845713,-0.086179295,-0.086136204,-0.084972757,-0.0838524,-0.089518819,-0.081223872,-0.061531453,-0.05349505,-0.055671126,-0.029558203,0.0035354031,0.0089432775,0.029562145,0.055804341,0.070886062,0.11725158,0.1666119,0.21190016,0.26272556,0.32335408,0.3692456,0.39843951,0.45129017,0.5049811,0.52036445,0.51265123,0.5095918,0.45906803,0.44534366,0.41481395,0.34302495,0.31540386,0.29017429,0.2487211,0.22133701,0.20679392,0.19347891,0.10753465,0.082175808,0.082089627,0.031759768,0.029066603,0.023400185,0.0089217322,0.03363421,0.079547279,0.070476701,0.082477442,0.14008962,0.165707,0.18682141,0.21498114,0.22013047,0.24171888,0.27205468,0.30827236,0.31396032,0.19591353,0.1841067,0.2261847,0.23695736,0.1859596,0.16366019,0.15338308,0.11093881,-0.014864297,-0.046428186,-0.074372461,-0.067219416,-0.058730561,-0.047570088,-0.0087023367,0.034043571,0.075733758,0.083791707,0.14586376,0.23598782,0.28963566,0.3331572,0.40333029,0.5022233,0.63498554,0.718409,0.71015715,0.86791195,1.0044662,1.1442522,1.2418309,1.2567187,1.3656734,1.3613428,1.4054891,1.508131,1.5355367,1.604654,1.7148583,1.7282164,1.7411221,1.8925641,1.9416659,1.7422424,1.7715225,1.7268806,1.7264928,1.7515931,1.6548762,1.6452239,1.5806741,1.5374973,1.5108457,1.1444461,1.2409476,1.2469802,1.1753205,1.1781861,1.0688651,1.0078703,1.0592559,1.0087968,0.88616084,0.90996841,0.92164597,0.91591492,0.92227079,0.93931313,0.96529678,0.98615265,1.036461,1.0845932,1.1369052,1.2163428,1.3180367,1.4123836,1.5264661,1.6657781,1.8099378,1.9566183,2.114998,2.2939749,2.394807,2.3725938,2.5007453,2.5833716,2.4958114,2.5149868,2.499431,2.4385009,2.4652602,2.5043434,2.3866844,2.2091079,2.25933,2.24957,2.2343806,2.2403055,2.0413992,1.9063747,2.0053754,1.832108,1.4692848,1.5184081,1.462455,1.3844609,1.236897,1.0592559,1.0288339,0.94282502,0.73973887,0.63688152,0.59909104,0.40817799,0.34377904,0.26640981,0.19063493,0.076918751,-0.16634942,-0.16964585,-0.25013915,-0.34075875,-0.37607153,-0.46645413,-0.65723791,-0.68669035,-0.85493773,-0.88971187,-0.9240982,-1.0016829,-1.020061,-1.0434377,-1.0692059,-1.1002527,-1.1206777,-1.1621955,-1.1608812,-1.1458426,-1.1461442,-1.138431,-1.1296836,-1.1439681,-1.1466182,-1.1495915,-1.1456918,-1.1084184,-1.0935737,-1.086593,-1.1002958,-1.1387757,-1.1773418,-1.2385305,-1.3018091,-1.3534748,-1.3820008,-1.4338604,-1.4685053,-1.4918388,-1.5227994,-1.5339168,-1.5424057,-1.5561301,-1.5635847,-1.5843113,-1.5914213,-1.5924985,-1.5905164,-1.5874569,-1.5890728,-1.5907534,-1.5981003,-1.593899,-1.5951917,-1.6165431,-1.6195595,-1.6107259,-1.6102303,-1.6129666,-1.6187838,-1.6183314,-1.6160045,-1.6209384,-1.6249242,-1.6243641,-1.6223388,-1.6216278,-1.6227482,-1.6207229,-1.6196456,-1.6188054,-1.6239763,-1.6306338,-1.6278544,-1.6340595,-1.6320557,-1.6268633,-1.6280699,-1.6322497,-1.6349859,-1.6350936,-1.6414495,-1.6418804,-1.633607,-1.6316464,-1.633607,-1.627402,-1.6271434,-1.6302675,-1.6294919,-1.6300305,-1.6263893,-1.6253767,-1.6314309,-1.643087,-1.6425052,-1.6320557,-1.6263462,-1.6280699,-1.6293841,-1.6320988,-1.6313232,-1.6252474,-1.6242994,-1.6232653,-1.6257645,-1.6289101,-1.6256352,2 +-0.25215677,-0.26004174,-0.26762823,-0.27250349,-0.2756127,-0.28824856,-0.29523808,-0.29344717,-0.29770058,-0.30003871,-0.29695437,-0.29041258,-0.28481599,-0.27543859,-0.27061308,-0.26471801,-0.24384894,-0.22489515,-0.2033545,-0.18514692,-0.16611851,-0.14032445,-0.11768935,-0.093785685,-0.065628615,-0.040879246,-0.024611822,-0.0078469232,0.01553439,0.032672395,0.040059895,0.044960021,0.050457117,0.056899415,0.067893607,0.080778202,0.09500598,0.12244171,0.15184247,0.16432909,0.17820863,0.20104272,0.21666343,0.23432378,0.25663552,0.26785358,0.2738979,0.27165926,0.25924727,0.24730787,0.22745863,0.21061911,0.19004853,0.16012542,0.13564967,0.11351204,0.08821545,0.070057622,0.05314348,0.026528582,0.015459769,0.01366886,0.010261158,0.010435274,0.019812673,0.028468733,0.03297088,0.034065324,0.023817344,0.012624163,-6.1443423E-5,-0.020134549,-0.037173059,-0.05448518,-0.072021165,-0.074831897,-0.07172268,-0.06040513,-0.040406645,-0.032198312,-0.017099953,0.0055351474,0.020509137,0.037572521,0.051526688,0.060207622,0.066202192,0.077047142,0.087916965,0.088066207,0.082842723,0.080554339,0.070206864,0.06092896,0.057794869,0.050780475,0.030334263,0.0017543394,-0.01727407,-0.042695029,-0.068489094,-0.088388084,-0.099307655,-0.10358594,-0.11124705,-0.10786422,-0.10201889,-0.097218261,-0.094606519,-0.09368619,-0.092915104,-0.087268766,-0.072046039,-0.060454877,-0.049833792,-0.036401973,-0.02200008,-0.0050361909,0.017922269,0.04222391,0.054884642,0.064212294,0.080454844,0.097443606,0.11211911,0.11843704,0.12313818,0.13706747,0.15049929,0.15151911,0.14171886,0.13293843,0.11851166,0.10164727,0.083439692,0.057347142,0.036925804,0.017375046,-0.0049366959,-0.025780888,-0.038715231,-0.04829162,-0.061424953,-0.074881645,-0.08669667,-0.097069019,-0.10875968,-0.11928127,-0.12283821,-0.12059957,-0.11671927,-0.11579894,-0.11741574,-0.1170675,-0.12040058,-0.12554945,-0.13010134,-0.12828556,-0.12102243,-0.11438114,-0.10965513,-0.10007874,-0.082990483,-0.071374448,-0.063389978,-0.058788337,-0.054236443,-0.052967882,-0.065106266,-0.074632908,-0.082990483,-0.099556392,-0.11540096,-0.13403139,-0.14967697,-0.16094478,-0.17141662,-0.17631675,-0.17206334,-0.16445197,-0.15296031,-0.14276207,-0.15111965,-0.15032369,-0.14308543,-0.14236409,-0.14171738,-0.14010058,-0.13631978,-0.13709086,-0.13957824,-0.13470298,-0.11885841,-0.10445652,-0.11191864,-0.094606519,-0.065553993,-0.059037074,-0.03538215,-0.0089662413,0.0050376727,0.041676688,0.084583884,0.11823805,0.15214095,0.20270926,0.25034247,0.28228035,0.33028666,0.3831931,0.40321646,0.40388805,0.40055497,0.35279739,0.33615686,0.31031305,0.24004474,0.205321,0.17992492,0.15263843,0.13328666,0.114308,0.10450775,0.031155097,0.0083707535,0.0056595161,-0.035009044,-0.03311864,-0.038864473,-0.056773564,-0.035083665,0.0072265616,0.0071021929,0.021130981,0.062719869,0.083041713,0.11097492,0.14430573,0.15002669,0.16855762,0.20156507,0.25113843,0.2665104,0.17596999,0.16534891,0.18567075,0.18892921,0.15042467,0.12589916,0.09866242,0.052521637,-0.057022302,-0.091049574,-0.11950513,-0.11851018,-0.11632129,-0.10803834,-0.069434296,-0.029661191,0.0046645666,0.01100737,0.064361536,0.14525093,0.1926354,0.23041861,0.28626015,0.36030926,0.46485358,0.55892605,0.58740648,0.68292163,0.78184449,0.9017359,0.98866961,1.0269503,1.1162968,1.1161226,1.1595522,1.2399441,1.2664346,1.3301114,1.4201543,1.4490327,1.4859205,1.6017824,1.6492166,1.5251712,1.5450454,1.5082322,1.5021382,1.5100729,1.4421676,1.4381132,1.4025935,1.3908531,1.3786649,1.0985867,1.1588806,1.1602238,1.1139089,1.1150033,1.0363028,1.0000369,1.0385415,1.0096382,0.92675888,0.93932012,0.95148337,0.95518956,0.97349663,0.99782315,1.0315271,1.0728423,1.1248782,1.1699743,1.2330043,1.3103119,1.4048819,1.5035311,1.622726,1.7600788,1.9028789,2.0462014,2.1987769,2.3546855,2.4543048,2.5011918,2.6239686,2.7000574,2.669388,2.7180411,2.7407757,2.716474,2.7431387,2.7662961,2.6671245,2.5552425,2.5933988,2.5667839,2.539174,2.5297469,2.3627197,2.2469076,2.2879493,2.0994561,1.8422865,1.8476841,1.7676653,1.6790402,1.5239524,1.3564527,1.3154856,1.2225574,1.029363,0.91009347,0.86032113,0.67421582,0.59504272,0.50499979,0.41525535,0.28959323,0.06319247,0.044611789,-0.04356561,-0.1338324,-0.18089351,-0.27924427,-0.45224111,-0.48019919,-0.65605651,-0.68911371,-0.72689692,-0.81313417,-0.84479843,-0.88111409,-0.90265475,-0.92329995,-0.94476598,-1.0026472,-1.0111042,-0.99391649,-0.98998644,-0.98249944,-0.97093315,-0.9768531,-0.96230197,-0.93827394,-0.91506674,-0.85293214,-0.80467709,-0.78644465,-0.7977622,-0.83728656,-0.89285449,-0.98685235,-1.0850787,-1.181763,-1.229222,-1.3165537,-1.3766238,-1.4079896,-1.4732832,-1.4936299,-1.4932568,-1.5130314,-1.5169117,-1.5412879,-1.555267,-1.5571325,-1.5659378,-1.5682013,-1.5677287,-1.568077,-1.5764097,-1.5777528,-1.5710369,-1.5765838,-1.5957863,-1.5923537,-1.5929756,-1.5984478,-1.6036464,-1.6085465,-1.6092927,-1.6123522,-1.6132228,-1.6117552,-1.6121532,-1.6123522,-1.6166056,-1.6171777,-1.6162325,-1.6158843,-1.6236946,-1.6255104,-1.6156604,-1.6241175,-1.6325746,-1.6330472,-1.6312563,-1.6322761,-1.6330223,-1.6277988,-1.6325248,-1.6386935,-1.6318035,-1.6296395,-1.6303111,-1.6289679,-1.6312563,-1.631505,-1.6279729,-1.6316791,-1.6303111,-1.625983,-1.624615,-1.6318284,-1.6371016,-1.6333954,-1.6336441,-1.6349127,-1.6324502,-1.6309329,-1.631306,-1.6286196,-1.6258338,-1.6250378,-1.6316045,-1.6296892,-1.62362,2 +-0.27228056,-0.26477983,-0.26220658,-0.26587482,-0.27906954,-0.28104053,-0.27835779,-0.26910507,-0.26165909,-0.25996184,-0.24260614,-0.22437444,-0.20231025,-0.18106731,-0.15183089,-0.13255894,-0.12106147,-0.085145569,-0.062643381,-0.043042934,-0.0028017945,0.028843619,0.053809551,0.081348725,0.11162539,0.14025956,0.16757974,0.20437164,0.22917332,0.23130856,0.22660008,0.24242278,0.27083796,0.28759141,0.29355914,0.30719186,0.33670203,0.35372923,0.36845694,0.38767414,0.39506537,0.41236632,0.45041746,0.47992763,0.50275832,0.53593673,0.55263543,0.56051941,0.5650089,0.56259991,0.55602993,0.5471057,0.53106399,0.50489357,0.48414337,0.46700667,0.44450448,0.41603456,0.39095913,0.35789022,0.32378106,0.30724661,0.30073137,0.31124335,0.31704683,0.32449281,0.33390978,0.31863458,0.29323064,0.25950474,0.22265809,0.17863921,0.14343506,0.13078784,0.12969284,0.16779874,0.22555983,0.28348517,0.35504323,0.4180603,0.46158643,0.5097663,0.55920542,0.59654481,0.62769748,0.65397741,0.68053108,0.7113005,0.7488589,0.7642436,0.76046587,0.75400538,0.73993467,0.7130525,0.69093356,0.6748371,0.61532401,0.53741498,0.48852336,0.42846277,0.35953271,0.31436409,0.2743967,0.24028754,0.21335061,0.20355039,0.20793038,0.20251014,0.19265517,0.18389519,0.17710621,0.17765371,0.18860368,0.19205292,0.19802066,0.22085134,0.25140176,0.27543694,0.28846741,0.32027707,0.34885649,0.35132024,0.35799972,0.37327493,0.38668864,0.4014711,0.40705558,0.41389931,0.41811505,0.41302332,0.39610561,0.36451495,0.33177454,0.29410664,0.25238726,0.20798513,0.165116,0.13790532,0.12115187,0.11633388,0.095747936,0.064485771,0.049867561,0.023697133,3.7369685E-4,-0.019555249,-0.043371433,-0.051529161,-0.043590433,-0.045889926,-0.060617636,-0.071239107,-0.078958836,-0.096095539,-0.11952847,-0.12850745,-0.12412746,-0.12960245,-0.13885517,-0.14268766,-0.13792442,-0.12160897,-0.10178952,-0.090839553,-0.085474068,-0.076549842,-0.078028088,-0.085255069,-0.086569065,-0.089087558,-0.10211802,-0.11963797,-0.13119019,-0.15796287,-0.19064853,-0.20482874,-0.21446471,-0.21687371,-0.20926348,-0.19902526,-0.18188855,-0.17082908,-0.17750857,-0.17241683,-0.1640401,-0.16765359,-0.16721559,-0.16781784,-0.1661206,-0.16431385,-0.15883887,-0.14038817,-0.12095197,-0.11607923,-0.12308722,-0.097738034,-0.054211904,-0.045178178,-0.01555851,0.023970882,0.040341087,0.10324867,0.14255906,0.14934804,0.15312578,0.17825596,0.2014699,0.2004844,0.23880929,0.28145943,0.26158523,0.23015882,0.24171104,0.21165337,0.22785932,0.21866135,0.15279728,0.11808587,0.10001842,0.097499931,0.099908924,0.10587666,0.099142426,-0.020321746,-0.048572669,-0.041728938,-0.097847534,-0.086623815,-0.076111844,-0.080765581,-0.04835367,0.01395166,0.027584372,0.056820792,0.12295861,0.14995029,0.18603044,0.23536005,0.24817152,0.28600366,0.36057296,0.4557282,0.48578587,0.36210596,0.38652439,0.46038194,0.48808536,0.43820825,0.39479162,0.30571361,0.1263531,-0.17597557,-0.26467033,-0.32609966,-0.32582591,-0.32106267,-0.3113172,-0.27753654,-0.25076387,-0.22831643,-0.25623885,-0.19519277,-0.094617293,-0.075892844,-0.074031349,-0.021964242,0.071384252,0.20875163,0.26870271,0.20891588,0.35591922,0.45731595,0.58783959,0.69881753,0.712067,0.82277119,0.78805979,0.83125742,0.94376836,0.95050259,0.99599972,1.1000792,1.0701858,0.99829921,1.1418533,1.1802877,0.94458961,1.0637253,1.1217054,1.2061844,1.2811369,1.2181199,1.2252373,1.1774955,1.1588805,1.1052804,0.76188936,0.92915015,0.95778432,0.89077051,0.9117397,0.80661999,0.7473259,0.81751521,0.75871387,0.63229647,0.67445385,0.6939448,0.69629904,0.71425699,0.74152242,0.77453658,0.80689374,0.86312183,0.91705044,0.97207404,1.0447271,1.1468356,1.2469183,1.3581152,1.4917596,1.6296197,1.7606361,1.9219292,2.1173314,2.2069569,2.1918459,2.3459668,2.4346068,2.3659505,2.4233283,2.4248066,2.3865912,2.447911,2.4942841,2.363432,2.2041099,2.256177,2.245884,2.2386023,2.2370146,2.0103502,1.8873273,2.0140732,1.7728453,1.3934289,1.4785101,1.4216251,1.340212,1.1726227,0.99758747,0.97672777,0.8753858,0.65019967,0.55460643,0.51425579,0.30127887,0.24516028,0.17562797,0.096952432,-0.071074857,-0.33420264,-0.28301153,-0.35391258,-0.43822735,-0.44310009,-0.53535359,-0.7143856,-0.72993455,-0.92599377,-0.8949506,-0.89839984,-0.96032192,-0.94548471,-0.96081467,-0.95703693,-0.95046695,-0.97127189,-1.0203825,-0.97121714,-0.89369135,-0.82465179,-0.74575726,-0.657829,-0.58747544,-0.48032999,-0.35325558,-0.094069795,0.13598908,0.40765783,0.60826128,0.66700787,0.60738528,0.46355743,0.17354747,-0.17318333,-0.4930867,-0.69774164,-1.0133198,-1.2288699,-1.373738,-1.5479521,-1.6211526,-1.6544953,-1.7136251,-1.7405073,-1.8028126,-1.8348413,-1.8377978,-1.8474337,-1.8607927,-1.8599167,-1.8485287,-1.8633659,-1.8569055,-1.8450247,-1.8764512,-1.9014718,-1.8904671,-1.8912336,-1.8924929,-1.9002126,-1.8998293,-1.8976394,-1.9033881,-1.9030048,-1.9135716,-1.9192108,-1.9062351,-1.9054686,-1.9100128,-1.9100676,-1.9109983,-1.9122576,-1.9153783,-1.9142286,-1.9399062,-1.9368402,-1.9201963,-1.9160901,-1.9148856,-1.9184443,-1.9132431,-1.9232075,-1.9420415,-1.9389755,-1.937114,-1.9281898,-1.9184443,-1.9203058,-1.921565,-1.9226053,-1.9252333,-1.9232075,-1.9262188,-1.9225505,-1.9351978,-1.946531,-1.9214008,-1.9126956,-1.9136263,-1.9120933,-1.9166376,-1.9173493,-1.9216745,-1.9237003,-1.9266568,-1.9426437,-1.931858,-1.9115458,3 +-0.20254275,-0.21036517,-0.21670402,-0.22368349,-0.23153962,-0.23008978,-0.22823533,-0.23713669,-0.23541711,-0.22442527,-0.21232077,-0.19380998,-0.18042421,-0.17432139,-0.15533855,-0.12482441,-0.11167467,-0.09373707,-0.062953187,-0.045487633,-0.027044277,-0.0041839566,0.022115527,0.048077838,0.069488315,0.097170207,0.12239074,0.13624854,0.14990404,0.15941232,0.15206195,0.14289085,0.14457671,0.1554674,0.16416646,0.17596751,0.18851034,0.19515264,0.20402029,0.2225648,0.25098847,0.26970156,0.2804911,0.30166555,0.3169732,0.32685236,0.338822,0.3331575,0.3199066,0.30169927,0.26093507,0.21494469,0.18028332,0.1457231,0.11318592,0.087459629,0.063149465,0.037625479,0.013854792,-0.0072185124,-0.018109196,-0.016288463,-0.020031081,-0.016524484,-0.0076231198,-0.01271443,-0.011433173,-0.012006367,-0.013321341,-0.010050764,-0.022593595,-0.046465434,-0.069764079,-0.091680316,-0.11652996,-0.13268054,-0.1404018,-0.1480219,-0.14562797,-0.13817645,-0.13271425,-0.12300368,-0.11103404,-0.098524925,-0.084768272,-0.077181882,-0.072023138,-0.07124764,-0.07670984,-0.075394866,-0.077889945,-0.090567645,-0.098491208,-0.099300423,-0.10965163,-0.12303739,-0.13271425,-0.14350379,-0.1534841,-0.16568976,-0.17320872,-0.17637814,-0.17691762,-0.17705249,-0.17368076,-0.16666756,-0.16295866,-0.14579656,-0.13193876,-0.12543132,-0.11214671,-0.10122231,-0.090601363,-0.082441779,-0.066729524,-0.046364282,-0.033113389,-0.018480086,-0.0049257369,0.0092355235,0.028454377,0.045009565,0.05488873,0.063318052,0.072556588,0.078895438,0.08607722,0.096833035,0.094236803,0.097439946,0.10509377,0.091438269,0.077647898,0.064262136,0.046796581,0.034489771,0.019451861,9.0735371E-4,-0.010151916,-0.020334537,-0.035170143,-0.052568263,-0.068449105,-0.07957581,-0.085880942,-0.088173718,-0.094040526,-0.10145833,-0.10007592,-0.10584158,-0.11002252,-0.10688681,-0.10678566,-0.10240241,-0.09410796,-0.097311103,-0.10536953,-0.10493121,-0.10270587,-0.092388379,-0.081430261,-0.069460624,-0.053579782,-0.039047631,-0.030550875,-0.028055796,-0.025257261,-0.029505639,-0.035170143,-0.033956321,-0.036383965,-0.049769728,-0.059581459,-0.075158845,-0.096265867,-0.10186294,-0.10580786,-0.11100032,-0.10621247,-0.099367857,-0.094647437,-0.097412255,-0.10209896,-0.08901665,-0.074518217,-0.076878427,-0.075496018,-0.072967222,-0.077755076,-0.079238637,-0.076743558,-0.061671931,-0.049601142,-0.053276326,-0.053006588,-0.024212025,-0.0065441667,-0.0043862603,0.014427986,0.031320346,0.055327055,0.093360154,0.13075263,0.17525944,0.22067663,0.26862261,0.31380377,0.35338787,0.39657971,0.43420821,0.44563837,0.44371648,0.44439083,0.41219082,0.40430097,0.38663311,0.34040671,0.31181446,0.27789486,0.23841192,0.22414951,0.21217987,0.17896835,0.11342194,0.088740886,0.078794286,0.040660035,0.028926419,0.024037412,0.011865472,0.019047254,0.043053962,0.047538361,0.062947161,0.095821516,0.11878299,0.13823786,0.16433504,0.17600122,0.20257045,0.23689464,0.25237088,0.24980836,0.1586031,0.13924938,0.16163766,0.16055871,0.12751577,0.12124435,0.12539158,0.10158717,0.00940411,-0.018749824,-0.030955482,-0.021447207,-0.01271443,-9.4709706E-4,0.028926419,0.054989882,0.086144655,0.11969335,0.16608834,0.22334029,0.25688899,0.29593361,0.3647506,0.43788339,0.52261493,0.59149935,0.62093454,0.73452808,0.84127701,0.9415185,1.0121899,1.0504928,1.1182308,1.1194783,1.1668174,1.245109,1.2941339,1.3440355,1.3918803,1.392993,1.3905653,1.4497392,1.454291,1.3706384,1.430082,1.4512564,1.4912451,1.5261425,1.4914137,1.4796127,1.444513,1.4123467,1.3689525,1.2031984,1.2482784,1.2298687,1.1938587,1.1990174,1.1335047,1.0997537,1.12811,1.1078459,1.0379162,1.0447271,1.0620578,1.0778375,1.0860982,1.1049799,1.1408214,1.1758199,1.2266319,1.2772415,1.3397197,1.4137291,1.5051367,1.5972186,1.7025851,1.8287889,1.9710084,2.117038,2.2579088,2.3851579,2.4761608,2.5416061,2.6341263,2.6830838,2.6710467,2.701898,2.7044606,2.6752951,2.6755311,2.6709119,2.5917437,2.4901872,2.4953797,2.4613926,2.4216062,2.3687713,2.2091536,2.1126547,2.1199714,1.968075,1.7334701,1.708081,1.6123239,1.5059122,1.3649065,1.2183374,1.1582532,1.0589221,0.90476666,0.79181375,0.72316535,0.55323023,0.47510727,0.38346369,0.29522555,0.19282615,5.0274627E-4,-0.042756533,-0.13365834,-0.21464726,-0.2677857,-0.35700165,-0.51415792,-0.56510474,-0.71005536,-0.73713034,-0.77020699,-0.84819508,-0.88272158,-0.91647258,-0.93589374,-0.95750652,-0.99210046,-1.043081,-1.0651321,-1.0697514,-1.0888016,-1.1058626,-1.1182031,-1.1393101,-1.1478406,-1.1603497,-1.1862446,-1.1773769,-1.188942,-1.207183,-1.2281215,-1.2608947,-1.2910379,-1.3252947,-1.3654183,-1.4008214,-1.4162976,-1.4458003,-1.4648843,-1.4768539,-1.5034905,-1.5079412,-1.5065588,-1.5204166,-1.5233163,-1.5454011,-1.5575394,-1.5444908,-1.5350836,-1.5405796,-1.5507285,-1.5529875,-1.5612145,-1.5618215,-1.5544374,-1.5557186,-1.5749038,-1.5724761,-1.5676883,-1.5722401,-1.5786127,-1.5799276,-1.5769942,-1.5774326,-1.5807706,-1.5816135,-1.5825239,-1.5817821,-1.5810066,-1.584412,-1.586806,-1.5868734,-1.5901103,-1.5880535,-1.5820181,-1.5957073,-1.5987419,-1.5912566,-1.5945609,-1.59419,-1.5895033,-1.5874129,-1.5955387,-1.6044738,-1.5983373,-1.5887278,-1.5824902,-1.5838388,-1.5920996,-1.5976629,-1.5914589,-1.5898068,-1.5870083,-1.5807031,-1.5820855,-1.5955725,-1.6012032,-1.5965165,-1.5946621,-1.5926053,-1.5897394,-1.5824902,-1.5799614,-1.5832994,-1.5816472,-1.5802985,-1.5883907,-1.585255,-1.5775337,3 +-0.1384899,-0.14555188,-0.1428732,-0.14530836,-0.15597439,-0.16595856,-0.16566634,-0.1473539,-0.13308384,-0.13639566,-0.13439883,-0.10683276,-0.072643043,-0.047901767,-0.0203357,0.0041133563,0.014974192,0.034893841,0.062557315,0.087688217,0.1081436,0.12689437,0.1568469,0.18626369,0.21451161,0.24076268,0.26204603,0.27967662,0.30052163,0.31279486,0.31941851,0.33578282,0.34854309,0.36291056,0.38312243,0.41205219,0.44380674,0.46932727,0.48934432,0.50453975,0.51613114,0.53570986,0.56215575,0.58704314,0.6174827,0.65610442,0.67748516,0.69233967,0.71099303,0.7179089,0.71518152,0.71479189,0.70446679,0.68147884,0.65181853,0.61811584,0.590842,0.55894134,0.5318136,0.50117922,0.46801228,0.45530072,0.46358028,0.48471751,0.50074089,0.52324182,0.52523865,0.5081925,0.48101606,0.42778335,0.39023311,0.35404656,0.32058739,0.31001878,0.32482458,0.38511926,0.46109641,0.53166749,0.60389448,0.66589378,0.71182099,0.74995567,0.77937247,0.81185757,0.84570636,0.8699119,0.88598399,0.90648808,0.9200763,0.91165063,0.89299726,0.86387269,0.83684236,0.78774943,0.72029536,0.66404305,0.60218987,0.53541764,0.48345122,0.42753984,0.36753737,0.33310414,0.29964497,0.26433508,0.23837622,0.21933323,0.20272541,0.1790069,0.16663626,0.16507776,0.16410369,0.17038642,0.18265965,0.18733517,0.1996571,0.21168682,0.22527504,0.25342554,0.2705691,0.28995302,0.31162598,0.32940269,0.35282898,0.37338177,0.38351205,0.39286309,0.39203513,0.3915481,0.39656454,0.39339882,0.38463223,0.36232612,0.32764937,0.28391381,0.23983732,0.20511187,0.17233455,0.14238202,0.11876092,0.099961448,0.072979821,0.049163908,0.033481445,0.0050387189,-0.012689282,-0.02491381,-0.045661415,-0.066506427,-0.073032669,-0.069526031,-0.071620273,-0.083114252,-0.098455791,-0.11399214,-0.1311357,-0.14004841,-0.13897694,-0.14477263,-0.15397755,-0.15310089,-0.14355505,-0.12392762,-0.10663795,-0.097920055,-0.091929549,-0.083211658,-0.088958648,-0.1030339,-0.11253104,-0.11326159,-0.11550195,-0.13517808,-0.15051962,-0.16727355,-0.18943355,-0.21217799,-0.22664287,-0.23662705,-0.23726019,-0.22391549,-0.20579786,-0.18899522,-0.19182001,-0.18017993,-0.15568217,-0.15782511,-0.15933491,-0.15665623,-0.15261386,-0.14647724,-0.14939944,-0.14063285,-0.12947979,-0.12782388,-0.12977201,-0.09519267,-0.056473547,-0.050970075,-0.038404624,-0.02018959,0.0078635103,0.069619293,0.090025975,0.075414986,0.07872681,0.10561103,0.12752752,0.12898861,0.1701429,0.22020989,0.22488541,0.20842369,0.20978739,0.17204233,0.17019161,0.16410369,0.095626855,0.050771116,0.030120918,0.023789489,0.032702193,0.039374545,0.036744566,-0.062902383,-0.091345109,-0.087497549,-0.13021034,-0.11808322,-0.10931663,-0.10795293,-0.065581064,-0.0065039629,0.0049413123,0.046874853,0.10473437,0.12548198,0.15733393,0.19629657,0.21860268,0.25800365,0.3221946,0.40406485,0.43158221,0.34274739,0.36101113,0.40576946,0.41239311,0.3619852,0.30475882,0.18153947,0.0087888729,-0.24573457,-0.32633853,-0.37479831,-0.39028596,-0.39442574,-0.39160095,-0.36944095,-0.33301088,-0.30539611,-0.32965035,-0.27895022,-0.19790793,-0.17194907,-0.15402625,-0.096653769,-0.010205414,0.10468567,0.17116567,0.16303222,0.29253429,0.39870748,0.51272191,0.59644288,0.61085905,0.68868692,0.66540675,0.72545791,0.82067286,0.84765449,0.9186152,1.0213792,1.0306328,1.0244475,1.1422607,1.1593069,0.9806632,1.058345,1.0732969,1.1094834,1.1458648,1.0824531,1.0786055,1.0413475,1.0242039,1.0165575,0.73514987,0.81999102,0.83791383,0.78336614,0.78750592,0.71026249,0.65785774,0.70768121,0.67821571,0.57530564,0.60827778,0.63409053,0.64485395,0.66058512,0.67578055,0.69594372,0.72292534,0.78112578,0.83367664,0.89538372,0.97311419,1.0622412,1.1579432,1.2832081,1.4176292,1.5462059,1.6830135,1.8404712,2.0084976,2.1099466,2.1380971,2.2690603,2.3525864,2.3036396,2.3388521,2.3521968,2.320978,2.3453783,2.3693404,2.2697908,2.1438441,2.19245,2.1775955,2.1394608,2.1168138,1.9484464,1.8316072,1.8881031,1.6967478,1.398781,1.4380359,1.3793971,1.3020076,1.1626187,0.99488456,0.95874672,0.86767155,0.66642952,0.568682,0.52645624,0.34352665,0.2793844,0.19990062,0.12114738,0.014194939,-0.23784463,-0.2476827,-0.31947136,-0.39018855,-0.40445862,-0.48447814,-0.65552412,-0.68309019,-0.85520765,-0.85360044,-0.85886039,-0.91521011,-0.92787297,-0.95704624,-0.96050418,-0.96405952,-0.9844662,-1.0078925,-0.97243649,-0.91399253,-0.86543534,-0.80494584,-0.72219894,-0.6211883,-0.4706464,-0.33763769,-0.10113447,0.10887415,0.30836286,0.45452146,0.5244594,0.47546388,0.34026352,0.067038018,-0.26146573,-0.56235471,-0.75044685,-1.0523099,-1.2769782,-1.4109123,-1.5737761,-1.6682118,-1.7098044,-1.7633781,-1.7826159,-1.8302964,-1.8544045,-1.8469042,-1.8550377,-1.8754931,-1.8867922,-1.8847467,-1.8930262,-1.8858182,-1.8826037,-1.9092444,-1.9226865,-1.9181084,-1.9203975,-1.9196669,-1.9294563,-1.9207871,-1.9151375,-1.9235145,-1.9301869,-1.9350572,-1.9278004,-1.92819,-1.9374924,-1.9358851,-1.9340831,-1.935739,-1.9384664,-1.9461615,-1.948548,-1.9617466,-1.9555126,-1.9503013,-1.9526878,-1.9455771,-1.945918,-1.9535157,-1.9642305,-1.9604803,-1.9523956,-1.9619414,-1.9597498,-1.9481584,-1.9450901,-1.9427036,-1.9439212,-1.9451388,-1.9509832,-1.9520546,-1.9365183,-1.956097,-1.9681267,-1.9513241,-1.9559996,-1.9611135,-1.9545385,-1.9518598,-1.9541976,-1.9504961,-1.9478662,-1.9490837,-1.9617953,-1.9558048,-1.9415347,3 +-0.097061986,-0.10165786,-0.10142273,-0.10749356,-0.11215357,-0.11437669,-0.11704871,-0.10969531,-0.096249692,-0.090606381,-0.076711866,-0.053646972,-0.041035028,-0.023848582,-0.0032846997,0.017578449,0.045837754,0.069095034,0.085661571,0.10162957,0.12191557,0.14647679,0.17161518,0.18933603,0.20635146,0.22856131,0.24433693,0.25949264,0.27413532,0.28082606,0.28202313,0.27900909,0.28907727,0.30579344,0.31772134,0.3301409,0.34890919,0.37180307,0.38657401,0.40311917,0.42842856,0.4509163,0.4708389,0.49670407,0.5267376,0.5572414,0.57609519,0.58738181,0.58986145,0.57863896,0.56596288,0.54858405,0.52372356,0.50153509,0.47919698,0.45628172,0.43227627,0.40104568,0.37199546,0.34867405,0.3300554,0.31673804,0.31301859,0.32520301,0.34104275,0.34873818,0.35128194,0.33854174,0.31772134,0.28897039,0.24841978,0.21532946,0.19102475,0.186493,0.20295265,0.23390536,0.27477661,0.32120566,0.37994739,0.43011728,0.46059971,0.48811085,0.50929464,0.52701549,0.55112782,0.57376519,0.59005383,0.6003144,0.60052816,0.59199907,0.57983602,0.55632223,0.52400145,0.48990645,0.4510018,0.41481194,0.37490262,0.32404869,0.27323752,0.2239013,0.17614693,0.14327037,0.12097501,0.10622545,0.090941487,0.073498527,0.062874567,0.055435657,0.049471704,0.044234541,0.039168387,0.040515086,0.051929964,0.063195209,0.07510174,0.087777813,0.10006911,0.11986345,0.14168853,0.15791305,0.170696,0.18360721,0.2025465,0.22514112,0.23820197,0.24805638,0.26210053,0.26994559,0.2702021,0.26695292,0.25677786,0.24095949,0.21774497,0.18860924,0.16242342,0.13343733,0.10231361,0.080103765,0.05603419,0.031857735,0.012255781,-0.0093341576,-0.024831886,-0.03526346,-0.048559442,-0.065810016,-0.081350497,-0.094560974,-0.10272667,-0.10400924,-0.10633925,-0.11497522,-0.12115294,-0.12919038,-0.14022049,-0.1463982,-0.15028867,-0.1553762,-0.15428601,-0.14842894,-0.14312765,-0.13228993,-0.12621909,-0.12087505,-0.10892576,-0.10522769,-0.10385961,-0.098558319,-0.10775007,-0.11711284,-0.12299129,-0.14034874,-0.15742831,-0.17373833,-0.19259212,-0.2082181,-0.21950473,-0.22316005,-0.21781601,-0.21052673,-0.19960351,-0.19227148,-0.1931479,-0.17976641,-0.17093805,-0.16959135,-0.16151116,-0.1591384,-0.1559106,-0.16170354,-0.16935622,-0.16067749,-0.14413233,-0.13626589,-0.14113966,-0.12040477,-0.09704061,-0.08859702,-0.066387173,-0.042787874,-0.022566011,0.021746803,0.050925284,0.056632723,0.069971457,0.10297627,0.12642594,0.13856761,0.17702335,0.22191332,0.23313581,0.23086994,0.23390536,0.1960909,0.19583439,0.17888308,0.12131703,0.098530029,0.081706978,0.058535203,0.051652074,0.050112989,0.037607926,-0.046314943,-0.072564888,-0.083188848,-0.12812157,-0.11796789,-0.11166191,-0.11399192,-0.079084622,-0.029662902,-0.023827205,0.0012898021,0.055072262,0.078863947,0.10686674,0.14222293,0.15459974,0.19771549,0.25526016,0.32227447,0.33390311,0.22868957,0.24679519,0.29454957,0.30472463,0.2483984,0.20152045,0.11905116,-0.011942051,-0.21407518,-0.27715627,-0.32587258,-0.32469689,-0.32580845,-0.32456863,-0.28624115,-0.25984157,-0.24274063,-0.24329641,-0.18906505,-0.11570201,-0.08513408,-0.060465972,-0.0056574553,0.078094405,0.18813896,0.25299428,0.2487618,0.38255529,0.48657176,0.59757825,0.6848358,0.71766961,0.80056642,0.80458514,0.86168091,0.94359442,0.97674887,1.0428226,1.1315979,1.1318758,1.1435044,1.2584014,1.2755878,1.1473521,1.2142809,1.2189837,1.2542544,1.2879646,1.2319163,1.2317453,1.1870263,1.1686642,1.1110554,0.84900484,0.9587715,0.96060985,0.90727629,0.91548475,0.83164738,0.78645814,0.82968077,0.79064787,0.70262078,0.73171376,0.74597167,0.74986213,0.76394903,0.77951089,0.81114763,0.84690997,0.89778527,0.94874608,1.0156963,1.102569,1.2055381,1.3019233,1.4189578,1.5555302,1.7068949,1.8661688,2.0349551,2.2085083,2.3137432,2.362887,2.4990319,2.5771618,2.5411216,2.5746394,2.5723522,2.54234,2.5723094,2.6011031,2.5093138,2.3839639,2.421415,2.4026467,2.3828951,2.3577995,2.1592362,2.0656513,2.1358293,1.9359834,1.6463576,1.6779302,1.5970855,1.5061726,1.3569028,1.1851025,1.1462619,1.0582562,0.8579187,0.75390223,0.70903363,0.51718245,0.45737191,0.37216647,0.28437451,0.16650627,-0.069892866,-0.074189477,-0.15236216,-0.23775998,-0.26578415,-0.35376849,-0.52948066,-0.56359704,-0.73753499,-0.73930921,-0.75790649,-0.83300099,-0.8507646,-0.87429977,-0.88535125,-0.90364926,-0.93567077,-0.98757213,-0.96249787,-0.9166246,-0.88842942,-0.84392422,-0.78261735,-0.73270397,-0.65070496,-0.56477273,-0.42230051,-0.27952903,-0.16225932,-0.091546933,-0.0827827,-0.15458528,-0.281346,-0.49621933,-0.71511138,-0.92260993,-1.0515724,-1.2483829,-1.3850408,-1.4700752,-1.5759728,-1.6255441,-1.6523498,-1.6899292,-1.7018998,-1.7334938,-1.7510223,-1.7551693,-1.7595086,-1.7675888,-1.7782983,-1.7790678,-1.7792602,-1.7772081,-1.7766737,-1.7922783,-1.8123719,-1.8068782,-1.8051681,-1.8114313,-1.8236158,-1.8233806,-1.8219698,-1.8213071,-1.8185924,-1.8295583,-1.8346245,-1.8297935,-1.8327434,-1.8335771,-1.8351803,-1.8315036,-1.8336839,-1.8442652,-1.8398617,-1.8489252,-1.8470227,-1.8391776,-1.8419138,-1.8430681,-1.8440941,-1.8396907,-1.8500795,-1.8616654,-1.8549532,-1.8536065,-1.851362,-1.8520888,-1.8533287,-1.853692,-1.85335,-1.8510842,-1.8521102,-1.8510842,-1.8498443,-1.866304,-1.8684416,-1.8537348,-1.8500581,-1.8522598,-1.8490748,-1.8525805,-1.8557655,-1.8540127,-1.8528584,-1.8500581,-1.8559152,-1.8559365,-1.8530294,3 +-0.14299486,-0.14755959,-0.15353369,-0.15143013,-0.15332334,-0.1588557,-0.16041233,-0.15647868,-0.15021007,-0.14221655,-0.1299528,-0.1168897,-0.10426835,-0.089375152,-0.078731145,-0.06869717,-0.04610495,-0.024206903,-0.0070418642,0.011343239,0.032294684,0.052551954,0.067928968,0.076637701,0.09180436,0.11757295,0.13059398,0.13759883,0.14693863,0.14489818,0.14268945,0.1391765,0.1332024,0.13869268,0.14220563,0.13837715,0.1450875,0.16059073,0.17485286,0.19096612,0.21073957,0.22771529,0.24567968,0.26751462,0.28144018,0.29425085,0.30464243,0.30380101,0.29361978,0.26829294,0.23511982,0.19996935,0.15493216,0.11931891,0.094896591,0.067403079,0.045063285,0.029244524,0.013152299,-0.0068946151,-0.021808846,-0.024732793,-0.030770007,-0.038637316,-0.043181003,-0.04915511,-0.048040224,-0.048334722,-0.054813683,-0.060661576,-0.074355743,-0.093035344,-0.10792854,-0.12452562,-0.14318418,-0.15784599,-0.17273918,-0.18098513,-0.17408546,-0.16661783,-0.16373595,-0.15214534,-0.13672626,-0.12896413,-0.11855151,-0.11011624,-0.10933792,-0.10851754,-0.11049488,-0.1122198,-0.11177805,-0.12246413,-0.13247707,-0.13638969,-0.14694955,-0.15336541,-0.16455634,-0.18306766,-0.19549969,-0.20502881,-0.21939612,-0.22324563,-0.22162589,-0.22019547,-0.21415826,-0.20818415,-0.2055547,-0.19945438,-0.1878217,-0.18157413,-0.17547381,-0.16886864,-0.1573201,-0.14169066,-0.12759681,-0.11785734,-0.10609844,-0.09000622,-0.075828234,-0.06383795,-0.052899444,-0.037038611,-0.025868715,-0.018779722,-0.010344451,-7.1015247E-4,0.012331912,0.019946794,0.023186275,0.02606815,0.024469445,0.017780129,0.0079144383,-0.004349309,-0.01192212,-0.024501402,-0.04343343,-0.055108181,-0.069370309,-0.084915608,-0.097600067,-0.1081389,-0.11556446,-0.12048679,-0.13028937,-0.1457926,-0.15155635,-0.15689939,-0.16220036,-0.16058061,-0.15780392,-0.15736217,-0.15900295,-0.16018094,-0.15793013,-0.15612107,-0.15572139,-0.15917123,-0.15740424,-0.14930554,-0.14640263,-0.13510652,-0.12128614,-0.11308226,-0.10037676,-0.090847643,-0.087250558,-0.085146999,-0.092740846,-0.099514305,-0.10174408,-0.11409197,-0.12709196,-0.13668419,-0.14619227,-0.15656282,-0.16634437,-0.17048838,-0.16775375,-0.16026508,-0.1554269,-0.15864534,-0.16310489,-0.15035732,-0.14349972,-0.14129098,-0.13378128,-0.13439131,-0.13685247,-0.14164859,-0.14246897,-0.13971331,-0.13216154,-0.12679746,-0.13260328,-0.11792044,-0.097368675,-0.089185832,-0.070274839,-0.053572583,-0.048061259,-0.013373576,0.022323815,0.054739655,0.09361342,0.14189009,0.1804904,0.20890947,0.25851139,0.31051136,0.3230065,0.32132365,0.32759226,0.28937059,0.29124276,0.28061979,0.22710526,0.2069742,0.18713764,0.15577358,0.13482214,0.12045483,0.10143866,0.026678182,0.0095762496,0.0061684845,-0.034493305,-0.037017576,-0.045915629,-0.065036978,-0.058431804,-0.031106576,-0.040867088,-0.028140558,0.014372364,0.031600509,0.053309235,0.075480744,0.071715374,0.096537367,0.12466195,0.15867649,0.16200011,0.049144189,0.053961339,0.098893353,0.11170403,0.070453239,0.067129616,0.070221847,0.035134488,-0.064153483,-0.089459295,-0.11400782,-0.099808804,-0.097326604,-0.095791006,-0.060093615,-0.036954469,-0.02837195,-0.030938291,0.029980769,0.099966168,0.1239257,0.1481587,0.19696126,0.26353889,0.35645308,0.38754368,0.37208252,0.51508244,0.62011313,0.72775223,0.80768746,0.82897548,0.91503206,0.89784599,0.94570195,1.0359025,1.0653103,1.1328766,1.228862,1.2386435,1.2440286,1.3698846,1.3988506,1.2203005,1.2819348,1.2970594,1.3569266,1.4146273,1.3690852,1.3853878,1.3592195,1.3427276,1.3156969,1.0390368,1.1657552,1.1907665,1.1447827,1.1635465,1.0824753,1.0583475,1.1235789,1.0943815,1.0063055,1.0393945,1.0622391,1.0714737,1.096485,1.1208653,1.1534284,1.1896306,1.2463005,1.3006775,1.3643943,1.4420366,1.5383165,1.6361951,1.7517646,1.883195,2.0155509,2.1555637,2.3227967,2.5017254,2.600214,2.6160959,2.7611152,2.8612446,2.8120213,2.8541556,2.875107,2.8540715,2.8994452,2.9492364,2.8363385,2.6850295,2.7478417,2.7365036,2.7131751,2.6906039,2.4643872,2.3536348,2.4472222,2.2523064,1.9157791,1.9563357,1.8919247,1.8118843,1.6587452,1.4849492,1.4500302,1.3563587,1.149642,1.0340514,0.98888801,0.78831369,0.71948524,0.63710989,0.54421673,0.41554205,0.17460043,0.16488199,0.073924111,-0.018043476,-0.05792695,-0.15814049,-0.34359022,-0.37701577,-0.54548979,-0.56326486,-0.60222277,-0.68693308,-0.71545733,-0.75208029,-0.77824856,-0.82341197,-0.87492812,-0.94352517,-0.94403002,-0.93532129,-0.95429539,-0.96862062,-0.97530994,-1.0020672,-1.0188957,-1.051606,-1.078216,-1.0447063,-1.0558131,-1.0742613,-1.1004717,-1.1411545,-1.1838357,-1.2382337,-1.2841124,-1.3124473,-1.321114,-1.359567,-1.3765007,-1.3843049,-1.4113777,-1.4143858,-1.4177304,-1.4335071,-1.4387029,-1.4594861,-1.4646818,-1.4631883,-1.4616948,-1.4680055,-1.4786915,-1.4809634,-1.4863275,-1.4829618,-1.4826673,-1.4981074,-1.5093194,-1.5023776,-1.5010313,-1.5057223,-1.51502,-1.5154197,-1.514999,-1.5154828,-1.5149779,-1.5239812,-1.5264423,-1.5219197,-1.524465,-1.5255799,-1.5295346,-1.5283145,-1.530376,-1.536876,-1.5323954,-1.5399472,-1.5383905,-1.5311964,-1.5332789,-1.5391268,-1.5382643,-1.5359504,-1.548719,-1.5521899,-1.5443857,-1.5447433,-1.5454585,-1.5437546,-1.5433129,-1.5437546,-1.5420087,-1.5426397,-1.5419666,-1.5423663,-1.5471413,-1.5603938,-1.558774,-1.5439019,-1.5395475,-1.5416931,-1.544007,-1.5482562,-1.5466996,-1.5408096,-1.5403679,-1.5408517,-1.5468048,-1.5453954,-1.542808,3 +-0.23059745,-0.24137425,-0.25057499,-0.26218241,-0.27287401,-0.27585573,-0.28254331,-0.2912329,-0.29253208,-0.29027449,-0.2783263,-0.26282135,-0.25711348,-0.2526196,-0.24312069,-0.23127899,-0.21786124,-0.2032295,-0.18791623,-0.17008979,-0.14900476,-0.12657795,-0.097868228,-0.072715273,-0.052546053,-0.028287615,-0.0034754281,0.017843884,0.034456335,0.048555621,0.055285793,0.059225926,0.063464231,0.074326218,0.087509689,0.10318503,0.12233194,0.14041396,0.16494927,0.18937809,0.20694895,0.22383828,0.24517889,0.27005497,0.28732766,0.2997657,0.31231023,0.31239542,0.30315208,0.29075664,0.26481566,0.23406133,0.20794996,0.17621592,0.13724055,0.10512315,0.07935255,0.051835515,0.027491885,0.0037871948,-0.014081839,-0.015913468,-0.019363747,-0.025348489,-0.017255243,-0.0085230575,-0.0086934416,-0.010993627,-0.014550396,-0.025795747,-0.042748967,-0.063152464,-0.080084386,-0.096654241,-0.10523734,-0.10193615,-0.095844916,-0.085557975,-0.070542875,-0.05676306,-0.045347324,-0.02705233,-0.013442899,-0.0011539445,0.012732361,0.019909792,0.027747461,0.039461369,0.048896389,0.048129661,0.039120601,0.027364097,0.017332732,0.0062577644,-0.0067127263,-0.022707535,-0.042919351,-0.063024676,-0.084450479,-0.10074346,-0.11486404,-0.12828179,-0.13454341,-0.13829186,-0.13622595,-0.13062457,-0.13119962,-0.1249806,-0.11884677,-0.11484275,-0.10498176,-0.097101499,-0.083428174,-0.069627061,-0.056805656,-0.041151615,-0.025454979,-0.0085443555,0.0097293408,0.028173421,0.043571886,0.058033237,0.068362774,0.079799808,0.09200357,0.097136392,0.10233311,0.1130886,0.11570826,0.11289692,0.11006429,0.10001162,0.084016815,0.06851186,0.049684416,0.0262566,0.0063216585,-0.010993627,-0.02683935,-0.041918344,-0.058509497,-0.080659432,-0.098528466,-0.10751623,-0.11575856,-0.12225445,-0.12996434,-0.13882431,-0.140017,-0.14229589,-0.14350987,-0.14201901,-0.14595914,-0.14908995,-0.15021875,-0.15520248,-0.16046309,-0.16131501,-0.15492561,-0.14738611,-0.14346728,-0.13318034,-0.12370272,-0.11543909,-0.10202134,-0.093906797,-0.087623883,-0.085834849,-0.092756704,-0.097271883,-0.10025361,-0.11482145,-0.12941059,-0.14470256,-0.16201785,-0.17196402,-0.18020635,-0.18344365,-0.17867289,-0.17181493,-0.16314664,-0.15686373,-0.1625716,-0.15667205,-0.14923904,-0.15115586,-0.14489424,-0.14338208,-0.14506463,-0.14112449,-0.14312651,-0.14436179,-0.13545922,-0.13085885,-0.13403226,-0.11365006,-0.092352042,-0.086942346,-0.070159511,-0.048627218,-0.024283588,0.013669473,0.0477037,0.075859675,0.10972352,0.15102037,0.18961237,0.22954615,0.2750813,0.31424835,0.32992369,0.33418329,0.33880496,0.31514287,0.30977577,0.29099092,0.24664845,0.22690519,0.20400983,0.17167944,0.14710153,0.13221422,0.121693,0.058459198,0.019611619,0.0016786914,-0.038063403,-0.044388914,-0.052716437,-0.059595696,-0.041322,-0.0070534945,0.0032973405,0.017865182,0.054519065,0.077371834,0.10084225,0.12544145,0.13858233,0.16901719,0.2074814,0.24236755,0.25425184,0.16978392,0.15310757,0.16980522,0.1656947,0.1303187,0.10980871,0.09415467,0.049727012,-0.072033736,-0.11254256,-0.13599167,-0.13173207,-0.13122092,-0.12894203,-0.097165393,-0.064110875,-0.028330211,-0.0073303687,0.029302216,0.089085742,0.12746476,0.16609936,0.22373179,0.28845645,0.37848316,0.44476258,0.48480285,0.59847035,0.69671809,0.80112096,0.88011529,0.92809972,1.0105656,1.0306923,1.0585714,1.1358618,1.1790116,1.2253774,1.2808374,1.2834145,1.2651408,1.312465,1.3425804,1.3046273,1.3688408,1.4008304,1.4463443,1.487918,1.452968,1.4536282,1.425025,1.3916084,1.3798945,1.1739853,1.2095317,1.203696,1.1566913,1.1583738,1.0975041,1.0515004,1.079699,1.0550146,0.97898067,0.99320775,1.0078395,1.0120991,1.0281365,1.0517134,1.0804231,1.116651,1.1728139,1.2203937,1.2821153,1.3601938,1.4558645,1.5533242,1.6645425,1.7952271,1.9365181,2.0795982,2.2307715,2.3793464,2.4939936,2.5651929,2.6790734,2.7606235,2.751231,2.7856699,2.8064355,2.7840939,2.7998331,2.8310347,2.7712299,2.6523444,2.6690633,2.6516841,2.6249125,2.597715,2.4463287,2.3247809,2.356302,2.2239348,1.9201399,1.9030376,1.8182928,1.7246242,1.5974963,1.4333951,1.369927,1.2819449,1.1199948,0.99327164,0.92897294,0.74989923,0.66992519,0.58168752,0.48718823,0.39041005,0.17193502,0.1260378,0.033199753,-0.058104835,-0.10660041,-0.18557345,-0.34607529,-0.38822406,-0.53907789,-0.58092849,-0.61651747,-0.69199764,-0.73090911,-0.77160961,-0.7932271,-0.81972183,-0.84355431,-0.89164522,-0.90817248,-0.90205995,-0.91848072,-0.92555166,-0.9208022,-0.92261253,-0.90338043,-0.88772639,-0.88046376,-0.8436182,-0.83703711,-0.84291536,-0.8585907,-0.90376379,-0.95881916,-1.0388997,-1.1227926,-1.2102635,-1.2559478,-1.3249533,-1.3783048,-1.4121474,-1.4595355,-1.4797686,-1.4841134,-1.5008962,-1.51146,-1.5253889,-1.531608,-1.5347388,-1.5396373,-1.5445997,-1.5540348,-1.555483,-1.5600408,-1.5608075,-1.559125,-1.5652588,-1.5784849,-1.5785914,-1.5754393,-1.5790812,-1.5874939,-1.5886653,-1.585854,-1.586429,-1.5919026,-1.5953316,-1.5939046,-1.5933083,-1.5958854,-1.5962474,-1.5956298,-1.596077,-1.6028924,-1.6066409,-1.598718,-1.6045963,-1.6107514,-1.6093031,-1.6117311,-1.613371,-1.6137757,-1.6105171,-1.6114329,-1.6188872,-1.6169491,-1.6129451,-1.6106236,-1.6109005,-1.6120506,-1.6153092,-1.6156073,-1.6132219,-1.6118376,-1.6097717,-1.6086429,-1.6106023,-1.6132006,-1.6159055,-1.6148832,-1.6120293,-1.6126895,-1.6098356,-1.6092818,-1.6097291,-1.6103893,-1.6073863,-1.6032332,-1.6061936,-1.6072372,3 +-0.06176196,-0.066381837,-0.077453611,-0.068532469,-0.063514327,-0.062797449,-0.048539553,-0.033644432,-0.028466984,-0.0038541909,0.032547254,0.061540965,0.077630881,0.10136749,0.13060016,0.15537226,0.20069485,0.24442437,0.2581247,0.28672014,0.32933452,0.35777066,0.37887872,0.41456329,0.45614218,0.48179047,0.50576603,0.51166036,0.49485357,0.51078418,0.54184887,0.54415881,0.54853972,0.55252238,0.56478895,0.58398533,0.59545537,0.6066068,0.62405082,0.64197275,0.6430879,0.63830871,0.64866361,0.65535447,0.67638287,0.71007611,0.72879458,0.75133639,0.75842551,0.74408797,0.73747676,0.71692627,0.68856979,0.67829454,0.65782371,0.63751218,0.61919198,0.57649794,0.53635281,0.52273213,0.5139703,0.49079126,0.47119661,0.47310828,0.47573683,0.47199314,0.47024077,0.46482437,0.44180463,0.38628646,0.33100724,0.28616257,0.25063731,0.23462705,0.25804504,0.28154269,0.31372253,0.3795956,0.43551204,0.50648291,0.55546954,0.5896407,0.62126296,0.64555714,0.67749801,0.70513762,0.7228206,0.72584742,0.74257456,0.75229223,0.75221258,0.73150278,0.6994026,0.6927914,0.6861802,0.66204532,0.61536863,0.54455707,0.47199314,0.40659799,0.34112318,0.29404822,0.25677059,0.23319329,0.22817515,0.2280955,0.23614045,0.24020276,0.22363493,0.21288176,0.22148429,0.22467041,0.21933366,0.2282548,0.24832737,0.28464916,0.32893626,0.35171703,0.36111609,0.37274544,0.3809497,0.40428805,0.43598996,0.46211616,0.47908226,0.4774892,0.48171081,0.4880034,0.48959647,0.48999473,0.47764851,0.45773524,0.44634486,0.40285429,0.35259322,0.32527222,0.29102141,0.25884157,0.21861678,0.1904196,0.1629393,0.14358361,0.11689984,0.087029941,0.07994082,0.048159252,0.019484153,0.020360337,0.027529112,0.028723907,0.012395032,-0.011261925,-0.01245672,-0.0099874758,-0.027431494,-0.047822675,-0.054911797,-0.053557695,-0.042884186,-0.049176777,-0.061363694,-0.043202798,-0.021855781,-0.013093945,-0.0019425176,0.011279889,0.013191562,-0.0034559256,-0.01819174,-0.027989066,-0.042645227,-0.055071103,-0.074904713,-0.1007123,-0.11616499,-0.12604197,-0.13018393,-0.1397423,-0.1528054,-0.14977858,-0.12835191,-0.11728014,-0.1110672,-0.090596364,-0.087888161,-0.082870018,-0.070762754,-0.065903918,-0.064151551,-0.069249346,-0.070284836,-0.056584511,-0.029183861,-0.015722496,-0.0091909453,0.017492827,0.038919498,0.057319353,0.084879309,0.096827267,0.13044085,0.20579264,0.24968147,0.26553243,0.28791494,0.30806716,0.31802379,0.34773438,0.39950886,0.42874153,0.40946549,0.39839372,0.40102227,0.37919734,0.36860348,0.32567048,0.26011602,0.23853005,0.20778397,0.18094089,0.16421375,0.13044085,0.091729471,0.012076419,0.0046686857,-0.012138108,-0.036750901,-0.025201209,-0.038503268,-0.033803738,0.019563806,0.064328821,0.093800451,0.14788487,0.1917737,0.22100637,0.26879821,0.30368624,0.30496069,0.34319416,0.4108196,0.47454204,0.45534565,0.35625726,0.38381721,0.42499784,0.42420131,0.39942921,0.35251356,0.23207815,0.06297472,-0.1489024,-0.21549235,-0.29132205,-0.30526134,-0.28972899,-0.26296557,-0.23174157,-0.20553572,-0.19072025,-0.1528054,-0.046149961,0.015820113,0.038760192,0.10869557,0.18428632,0.28194096,0.37832115,0.35816893,0.41050098,0.62795382,0.78001149,0.91127972,0.96472692,0.98304712,1.0335472,1.0429462,1.1265819,1.1934905,1.2362642,1.3079519,1.3659393,1.3243604,1.3354322,1.4076775,1.3903928,1.3489732,1.3527966,1.3048455,1.3636294,1.363948,1.2533896,1.2229621,1.1542215,1.0620629,0.90243823,0.82015663,0.86882464,0.83258251,0.79100361,0.74671652,0.65439863,0.63424641,0.63010445,0.54543325,0.4983583,0.51859018,0.5192274,0.5153244,0.50234095,0.5114214,0.53396321,0.54726527,0.59601294,0.65973538,0.72600672,0.81012035,0.90188066,0.99133104,1.1272988,1.2641427,1.3985971,1.5521682,1.7273252,1.8556463,1.9185722,2.0559737,2.1651781,2.1590448,2.128458,2.1485306,2.1182624,2.0875163,2.0638594,2.0391669,1.9416716,1.8627354,1.8634523,1.8167756,1.779259,1.7003229,1.5259623,1.4682935,1.433963,1.2240773,1.0854013,1.0761615,0.98981763,0.88156913,0.74273386,0.60533235,0.54328262,0.42181172,0.25151349,0.18317117,0.13506073,-0.018988271,-0.085657875,-0.17869264,-0.26264696,-0.39741992,-0.54836245,-0.55441608,-0.6110494,-0.66290354,-0.72144853,-0.82141311,-0.95969081,-1.0010307,-1.1366002,-1.144008,-1.1766657,-1.1946673,-1.188534,-1.2039071,-1.2111555,-1.217926,-1.2522565,-1.2652399,-1.1740372,-1.1001988,-1.034724,-0.95092898,-0.88378145,-0.87263003,-0.81679324,-0.70440278,-0.43350275,-0.24615877,-0.05865549,0.066001536,0.075161637,-0.034998534,-0.21182831,-0.48679064,-0.74104319,-0.9398572,-1.0919149,-1.3343788,-1.4943221,-1.596517,-1.6928972,-1.7426007,-1.8048893,-1.8618413,-1.8784091,-1.9176781,-1.914253,-1.9176781,-1.9165629,-1.922059,-1.9274754,-1.9106686,-1.8999154,-1.904137,-1.9252451,-1.9504155,-1.9499376,-1.9418129,-1.9443618,-1.9599738,-1.9524068,-1.9422112,-1.9485038,-1.9356,-1.933529,-1.9489817,-1.941335,-1.9311394,-1.9369541,-1.9429281,-1.9403792,-1.9438839,-1.9637972,-1.9557522,-1.957186,-1.9849849,-1.9739131,-1.9552743,-1.9448398,-1.9432467,-1.9441229,-1.9375117,-1.9632396,-1.9738335,-1.9599738,-1.9684171,-1.9450787,-1.9373524,-1.9414943,-1.9350424,-1.9441229,-1.9503358,-1.9406181,-1.9424502,-1.9510527,-1.9538406,-1.9428484,-1.933529,-1.9437246,-1.9474683,-1.9441229,-1.9375117,-1.9252451,-1.927555,-1.9332901,-1.931697,-1.9419722,-1.9352814,-1.9231741,4 +-0.14325868,-0.14664597,-0.15366781,-0.15861276,-0.16444781,-0.16261818,-0.15999735,-0.15683258,-0.14120652,-0.12066023,-0.10293256,-0.082015402,-0.060455396,-0.040354152,-0.017953503,0.0050158157,0.037701972,0.069201339,0.089203684,0.11810695,0.14990301,0.17455362,0.20182505,0.23384364,0.25819754,0.27367525,0.28883154,0.29449352,0.29461714,0.29802916,0.30247962,0.30057581,0.29775719,0.30648503,0.32005894,0.33264385,0.34065468,0.35034679,0.36728326,0.38716198,0.40216992,0.41267795,0.43072704,0.44880085,0.46887737,0.48937421,0.49718724,0.49790426,0.48371224,0.44998764,0.40943901,0.36214051,0.31424861,0.27164782,0.23503042,0.20592936,0.18310839,0.15645508,0.12995012,0.11640094,0.10302484,0.086929005,0.073997946,0.064380007,0.062748172,0.063860787,0.066976109,0.064355283,0.051473673,0.032089448,0.0096146244,-0.01550575,-0.045150759,-0.070023885,-0.087355954,-0.095861278,-0.097641462,-0.090100405,-0.072595262,-0.049007824,-0.025272037,-0.0040829025,0.01683426,0.038666238,0.060794915,0.086162537,0.092269557,0.088115794,0.09864855,0.097832632,0.0875224,0.078646204,0.068879917,0.065937668,0.066778311,0.054959867,0.027688437,-0.0044290494,-0.031304883,-0.044854061,-0.062210855,-0.078133612,-0.08562522,-0.08733123,-0.078306686,-0.069381041,-0.065647599,-0.056276909,-0.046906218,-0.041862363,-0.029030203,-0.016000245,-0.0025252415,0.014312332,0.033993255,0.058124639,0.081168132,0.10285176,0.11996131,0.13351049,0.15126288,0.17297123,0.18822642,0.20212175,0.21898404,0.22521469,0.22946735,0.2407913,0.24234896,0.23915946,0.23666226,0.22659928,0.2076601,0.18427046,0.15830944,0.13197755,0.11162906,0.083962032,0.059978997,0.049001196,0.032163622,0.014485406,-4.9780973E-4,-0.01436841,-0.024802266,-0.037980573,-0.052889614,-0.062062507,-0.063817966,-0.061988332,-0.062458103,-0.070271133,-0.07501829,-0.074597969,-0.077762741,-0.086292789,-0.085823018,-0.081644531,-0.082287375,-0.079715998,-0.072669436,-0.062433378,-0.047450163,-0.036422912,-0.029549424,-0.018991944,-0.013354694,-0.01271185,-0.015851897,-0.02270066,-0.03496415,-0.051356678,-0.066883838,-0.083993385,-0.097344765,-0.10641876,-0.11178403,-0.11549275,-0.11700096,-0.11168514,-0.10008922,-0.095984902,-0.1014738,-0.094303617,-0.089037239,-0.086268064,-0.075364437,-0.072125491,-0.073435904,-0.076254529,-0.079938521,-0.073460629,-0.058254891,-0.048785301,-0.05721645,-0.031552131,-0.0036131317,-0.0032175353,0.024004445,0.053426931,0.062352576,0.10601653,0.15714737,0.19376477,0.23109918,0.28208168,0.31600407,0.34411614,0.39398602,0.43532585,0.43171603,0.41257905,0.41824103,0.38342854,0.38533235,0.36950849,0.31120747,0.28944966,0.26343919,0.22610478,0.20503927,0.18733633,0.17190807,0.084011481,0.054292298,0.053550555,0.0089717802,0.0096393492,-6.461584E-4,-0.010733868,0.015424947,0.056097207,0.04964404,0.061536658,0.11533777,0.14077957,0.16866912,0.20184977,0.20071243,0.22585753,0.26529355,0.30749875,0.31405081,0.19524826,0.18459188,0.21933019,0.22726684,0.18642151,0.17583931,0.16471316,0.10863736,-0.036744334,-0.07388095,-0.10792697,-0.10295729,-0.096083801,-0.090891598,-0.044260667,9.1150261E-4,0.023435775,0.02852908,0.094692585,0.18429518,0.22721739,0.2544641,0.31991059,0.40815332,0.52940363,0.60587737,0.58033667,0.72821557,0.85643827,0.98839441,1.075574,1.0857111,1.1898519,1.1838932,1.222093,1.3209427,1.3443323,1.3960318,1.4841757,1.4518109,1.3877985,1.4975765,1.5307819,1.3785267,1.4623437,1.4643958,1.5160706,1.5694514,1.4859311,1.4809614,1.4318086,1.403746,1.3821859,1.051764,1.1455451,1.1580806,1.1038838,1.1100898,1.0039957,0.95261765,1.005677,0.95716701,0.84056496,0.86939405,0.886108,0.88363552,0.89463805,0.90719824,0.93518668,0.96438665,1.0153197,1.0670934,1.1272488,1.2072829,1.3024238,1.4015454,1.5243781,1.663999,1.8152899,1.9635149,2.1234348,2.3043954,2.4008221,2.4055445,2.5388358,2.6111805,2.5345584,2.5614342,2.555797,2.5024409,2.5267454,2.5551047,2.4401592,2.2855799,2.3227412,2.3000686,2.2793492,2.2725746,2.0565295,1.9303837,2.013187,1.8288391,1.4949557,1.5265045,1.4623931,1.3796887,1.2316615,1.0586375,1.0261739,0.93637347,0.72789415,0.63047852,0.59435562,0.40036501,0.34062995,0.26106562,0.18135293,0.068138174,-0.18316447,-0.18375786,-0.25941568,-0.34607603,-0.37861384,-0.4723702,-0.65335557,-0.68327255,-0.86569196,-0.8814911,-0.90411427,-0.97759631,-0.99253007,-1.0212108,-1.0451938,-1.0720697,-1.1102695,-1.1623398,-1.151189,-1.1288378,-1.1255741,-1.1176127,-1.108786,-1.1249313,-1.1120496,-1.0901929,-1.0530811,-0.98548351,-0.92404244,-0.88796899,-0.87909279,-0.90470766,-0.95423139,-1.0371583,-1.1348459,-1.2295665,-1.2870516,-1.3857282,-1.4534247,-1.4905365,-1.5440657,-1.5662191,-1.5794716,-1.6093886,-1.6183142,-1.6354485,-1.6496158,-1.6567365,-1.6580964,-1.6634369,-1.6727829,-1.669272,-1.6715961,-1.670978,-1.6715466,-1.6796317,-1.6888293,-1.6931314,-1.6948127,-1.6958511,-1.7013153,-1.7069773,-1.7076943,-1.7051723,-1.7073729,-1.709153,-1.7065075,-1.7042081,-1.707002,-1.7127134,-1.7145183,-1.7136777,-1.7206006,-1.7250511,-1.7251252,-1.7311828,-1.7291554,-1.725867,-1.7220594,-1.7220841,-1.7187462,-1.7112052,-1.7216885,-1.7305647,-1.7267818,-1.7290565,-1.7235429,-1.7232956,-1.7256197,-1.7228753,-1.7244082,-1.7232709,-1.7244824,-1.7269549,-1.7252241,-1.7304658,-1.7302185,-1.7257186,-1.7255208,-1.72515,-1.7244082,-1.7219605,-1.7157298,-1.713554,-1.7162738,-1.7161749,-1.7196858,-1.7176831,-1.7158534,4 +-0.023964704,-0.023964704,-0.030768505,-0.032458621,-0.026174856,-0.017160903,-0.012003882,0.021278406,0.044896696,0.061971204,0.09668359,0.1264123,0.15952124,0.19059338,0.22729924,0.25425442,0.28285639,0.3170054,0.3461274,0.37446935,0.40372136,0.44424082,0.4686825,0.47574632,0.49927793,0.51700248,0.52744654,0.54317762,0.55444506,0.55964542,0.57398974,0.58391375,0.58460713,0.59747802,0.61684935,0.6461447,0.67955699,0.6956781,0.69277457,0.69784492,0.71413937,0.7311272,0.76081258,0.79002125,0.81407291,0.84176481,0.86915336,0.8964119,0.90819938,0.90156892,0.88302098,0.86611982,0.84952201,0.83413762,0.81922993,0.79673838,0.77260006,0.74525484,0.71175587,0.67604675,0.64978495,0.63167037,0.63747743,0.65416191,0.66057569,0.66412927,0.66139908,0.65862555,0.61819277,0.56319899,0.50712181,0.45559493,0.42556287,0.41823903,0.46088196,0.52280955,0.61112896,0.70841898,0.79314147,0.86980341,0.92939083,0.97866422,1.0191837,1.0544161,1.087525,1.1089765,1.1324648,1.1582066,1.1593333,1.1459857,1.1183372,1.0830614,1.0424553,0.99894562,0.95569598,0.89693194,0.82287018,0.7388844,0.66330588,0.5948345,0.53646049,0.4876638,0.44528089,0.41134855,0.3863435,0.37117579,0.34968098,0.33689677,0.32727611,0.30933488,0.30322446,0.31397186,0.32276913,0.33403657,0.34703747,0.36432866,0.38959373,0.40601819,0.42686295,0.45724171,0.47947324,0.49490097,0.50959198,0.52826993,0.5511515,0.56090217,0.56692592,0.57273298,0.56800932,0.55760861,0.53594045,0.50118473,0.46894251,0.43028652,0.38435003,0.34045035,0.2921737,0.2524343,0.223919,0.19354025,0.16264146,0.13499289,0.11514486,0.093000003,0.063878001,0.042686544,0.02370524,0.012437798,0.0066740687,0.0018637381,3.9030343E-4,-0.014994088,-0.039912467,-0.056120248,-0.064137466,-0.070247886,-0.072371365,-0.074148154,-0.081211973,-0.082512062,-0.068427761,-0.058677091,-0.05997718,-0.05950048,-0.050833218,-0.04116922,-0.045242834,-0.054993504,-0.068297752,-0.076011616,-0.082685408,-0.11081067,-0.13499234,-0.15111345,-0.17429837,-0.19384305,-0.19969345,-0.20337704,-0.19817668,-0.18669256,-0.17343165,-0.15107011,-0.14933666,-0.13867592,-0.1227715,-0.11627105,-0.10985728,-0.10890388,-0.10717042,-0.10734377,-0.10886054,-0.098329816,-0.077441714,-0.071157949,-0.072761392,-0.035015464,-0.0016898396,0.0087108754,0.038829613,0.062967939,0.095210155,0.16363819,0.19367026,0.17715912,0.17889257,0.2039843,0.20069074,0.19553372,0.24428707,0.29048358,0.27752602,0.27076556,0.27449248,0.23145952,0.23301963,0.20402764,0.14188336,0.11393144,0.083856041,0.05837429,0.058547635,0.060497769,0.037226169,-0.067387689,-0.087279057,-0.089489209,-0.11995464,-0.09629301,-0.076965014,-0.073888136,-0.015644132,0.053303941,0.046933503,0.10062719,0.18448296,0.22690921,0.26608524,0.30136099,0.31717875,0.3833533,0.46326546,0.53160682,0.52090275,0.39570415,0.43999386,0.50096805,0.50140141,0.4216626,0.34231381,0.19709383,-0.03176524,-0.33407936,-0.40987457,-0.45195413,-0.44060001,-0.44558369,-0.43418624,-0.39436017,-0.37776236,-0.36649492,-0.3565709,-0.27579202,-0.19921675,-0.17572847,-0.11579435,-0.035448827,0.061364495,0.17967263,0.21282491,0.21000805,0.38859699,0.51977601,0.63652403,0.70282859,0.72805033,0.80648905,0.77364013,0.85194884,0.95530595,0.99578207,1.0515992,1.1230175,1.0990525,1.1258343,1.2468293,1.202713,1.0003324,1.0635601,1.0525526,1.0899952,1.1165604,1.0279809,1.0184036,0.94434186,0.87210023,0.74846173,0.45698169,0.59929814,0.60727202,0.55288495,0.55006809,0.42200929,0.37191251,0.41399207,0.3518478,0.25152423,0.28016954,0.29546726,0.30248774,0.3179588,0.33056967,0.3532779,0.38244323,0.42816304,0.47890987,0.5468612,0.62707672,0.72154988,0.82040001,0.94464522,1.0817613,1.2359952,1.392136,1.5542571,1.7120013,1.7872765,1.8142317,1.9433739,2.0035247,1.9280762,1.949701,1.9267761,1.8741658,1.8720856,1.8575246,1.7371364,1.6068241,1.6544073,1.6363794,1.605394,1.5841158,1.4013666,1.3187676,1.387499,1.2039697,0.92289039,0.96245644,0.9084594,0.82512367,0.67452998,0.52072941,0.49143406,0.40749162,0.2194987,0.12580559,0.088189673,-0.070507904,-0.11614104,-0.18313898,-0.26604135,-0.41113132,-0.58781347,-0.55531123,-0.60566803,-0.64683752,-0.65541811,-0.75015129,-0.91344252,-0.93654077,-1.075477,-1.0529854,-1.0617394,-1.1012188,-1.0933316,-1.0917281,-1.0762137,-1.0776438,-1.0853577,-1.1224969,-1.0525087,-0.95439533,-0.87812342,-0.7866838,-0.67517947,-0.56376181,-0.41173803,-0.25429721,0.052047188,0.30417785,0.55418504,0.71062913,0.7450815,0.6627425,0.48792382,0.16311816,-0.20944412,-0.56345846,-0.80029141,-1.1465485,-1.3643135,-1.5207576,-1.6949262,-1.7690747,-1.8189548,-1.8785422,-1.9008604,-1.9526906,-1.9758756,-1.9639581,-1.9681184,-1.981986,-1.9841528,-1.986623,-1.9907399,-1.9767856,-1.9763089,-2.0129714,-2.0179985,-1.9994938,-2.0012706,-2.0082478,-2.0300893,-2.0262324,-2.0077711,-2.0089412,-2.0119747,-2.0092012,-2.0095479,-2.0090278,-2.0137515,-2.0155716,-2.0077711,-2.0064277,-2.0244989,-2.0287459,-2.0254956,-2.0427868,-2.0335995,-2.0246289,-2.0228088,-2.0225921,-2.0167417,-2.0135348,-2.04049,-2.0415734,-2.0164817,-2.0127548,-2.0155716,-2.0149216,-2.0143149,-2.0116714,-2.0088545,-2.0163083,-2.0183018,-2.0073377,-2.0131881,-2.0393199,-2.0414001,-2.0261457,-2.0122781,-2.0096345,-2.0098512,-2.0040008,-2.001964,-2.0136215,-2.0151816,-2.0049109,-2.015615,-2.0179985,-2.0134048,4 +-0.045350806,-0.030326935,-0.023936413,-0.016378392,-0.0061474126,0.008446327,0.013761521,0.035759663,0.060768724,0.08992548,0.12455105,0.15822418,0.20117586,0.23905814,0.28161041,0.3244392,0.35679121,0.38696185,0.41814637,0.43811675,0.45538345,0.47575323,0.48383356,0.49600013,0.51845912,0.531148,0.53815299,0.54294588,0.54058016,0.53062569,0.51511025,0.50389611,0.49974841,0.49790499,0.50202196,0.51203788,0.52100919,0.52494182,0.52607859,0.53068714,0.54460496,0.56202528,0.59225736,0.63739042,0.67880592,0.72486069,0.76541592,0.78633874,0.78375795,0.7603158,0.73128193,0.68783868,0.63883443,0.59923163,0.56436028,0.53720056,0.5145265,0.48659869,0.45378581,0.42963702,0.40407493,0.38278343,0.38370514,0.39147823,0.38862093,0.38748415,0.38920468,0.38327501,0.36146121,0.32640551,0.28658764,0.25223859,0.22523249,0.20821158,0.21721361,0.24532576,0.28452916,0.33777327,0.39829888,0.44979174,0.49391092,0.5333601,0.56617297,0.59505321,0.62334971,0.64630028,0.66003376,0.66451942,0.65471857,0.62844984,0.59966176,0.5662037,0.52767622,0.49357296,0.46066792,0.42140307,0.37292114,0.31946196,0.2687372,0.21011645,0.15017458,0.11373632,0.092229755,0.07407207,0.059509054,0.046666563,0.036865715,0.035237361,0.034438545,0.029737825,0.024545526,0.026573288,0.036497031,0.049892548,0.062673591,0.076499239,0.094103898,0.11001876,0.13269282,0.15336984,0.17011424,0.18461581,0.19828784,0.22013236,0.23798281,0.24028708,0.24397392,0.25684714,0.26157858,0.25503444,0.24249919,0.23002538,0.21128395,0.17880904,0.1468257,0.11573336,0.081906604,0.05695899,0.032072823,0.0093680369,-0.0098649758,-0.032108907,-0.046856265,-0.064030793,-0.086182553,-0.10166728,-0.11592306,-0.1258468,-0.12873483,-0.13340482,-0.13451087,-0.14056344,-0.15549514,-0.15887474,-0.16846052,-0.18099578,-0.17727821,-0.17697098,-0.17955176,-0.17617216,-0.16231579,-0.1546656,-0.15061007,-0.13890436,-0.13291324,-0.13097765,-0.12222141,-0.11119161,-0.12040871,-0.13183792,-0.1407785,-0.16151697,-0.17623361,-0.1937461,-0.2097224,-0.21208812,-0.22271851,-0.23255008,-0.22754212,-0.21767983,-0.20932299,-0.20545181,-0.20760247,-0.18766281,-0.17159434,-0.17113348,-0.16465079,-0.1666171,-0.16412849,-0.16031875,-0.16188566,-0.15196191,-0.13426509,-0.12959509,-0.13736818,-0.10747405,-0.078747427,-0.078409467,-0.054260668,-0.030142593,-0.013582539,0.029399865,0.054900505,0.06316517,0.077267331,0.11259954,0.13321512,0.14375334,0.18904002,0.23067058,0.22409571,0.2204396,0.23063985,0.192266,0.19509258,0.17254141,0.11616349,0.10630119,0.091308045,0.06534655,0.06064583,0.060031356,0.044915314,-0.05662639,-0.080805912,-0.080191439,-0.12157621,-0.10784274,-0.098410571,-0.11300431,-0.078839598,-0.020618258,-0.042831466,-0.019051351,0.052872743,0.079417987,0.10906632,0.14614978,0.14783958,0.19386363,0.26197799,0.32763446,0.33761965,0.21564671,0.23512551,0.3002904,0.31841736,0.25398984,0.20003909,0.11505744,-0.029251607,-0.25073849,-0.3091749,-0.35802552,-0.35876289,-0.36552209,-0.36782637,-0.33654968,-0.31863778,-0.30588746,-0.31280029,-0.2488029,-0.16443572,-0.14185383,-0.11841168,-0.061173492,0.017878491,0.13008131,0.17527581,0.13134098,0.28886119,0.41381433,0.53578727,0.62691365,0.64276706,0.73533746,0.71960694,0.7716221,0.87691209,0.90785082,0.96899091,1.065709,1.0818696,1.1055269,1.2414176,1.2711889,1.0683512,1.1209501,1.10651,1.1401217,1.1994491,1.1381861,1.1440851,1.100396,1.0742502,1.0591956,0.73930081,0.8573104,0.88572979,0.84360764,0.86492987,0.76606112,0.71957622,0.78787492,0.75042278,0.64832805,0.68190901,0.70578129,0.71407668,0.7303295,0.74821067,0.77672223,0.80824471,0.86022915,0.90471701,0.95498092,1.0330805,1.1262346,1.2207406,1.3430822,1.4833357,1.6345269,1.7816318,1.9384454,2.1178101,2.2312726,2.2448832,2.3895609,2.4841591,2.4146928,2.4652333,2.4826229,2.4400091,2.4791818,2.5259432,2.4132796,2.2398445,2.3012611,2.2974821,2.2819974,2.2821817,2.0661329,1.93949,2.0409088,1.8750624,1.5057026,1.5485006,1.4951951,1.4193384,1.2699292,1.0861095,1.0587347,0.98429129,0.76470928,0.64620811,0.61972432,0.42373807,0.35851174,0.28130317,0.20077645,0.093243635,-0.17405223,-0.17632578,-0.25752842,-0.34069737,-0.35965387,-0.44626388,-0.6255979,-0.64947018,-0.82668427,-0.82404203,-0.83961893,-0.91615157,-0.9195619,-0.93532314,-0.94650655,-0.9655245,-0.99268422,-1.0388926,-1.0057418,-0.95034701,-0.90671941,-0.8523078,-0.79528468,-0.75300892,-0.66341872,-0.56491866,-0.40653818,-0.24066113,-0.076043745,0.034622887,0.068388193,0.013546455,-0.10421734,-0.32724041,-0.57333695,-0.81405684,-0.96659983,-1.1924802,-1.3442858,-1.4537542,-1.5847292,-1.6346859,-1.6686048,-1.7138915,-1.7251978,-1.772205,-1.8015768,-1.8010238,-1.8083053,-1.8175531,-1.8188435,-1.8200724,-1.8299347,-1.8268931,-1.8207176,-1.845911,-1.8594602,-1.8453887,-1.8511341,-1.8578933,-1.8680014,-1.8692918,-1.8609042,-1.8594295,-1.8614879,-1.8694761,-1.8747913,-1.8679092,-1.8696604,-1.8721798,-1.8691074,-1.8690767,-1.8806595,-1.8818577,-1.878386,-1.901951,-1.8998618,-1.8885862,-1.8891392,-1.8912592,-1.8846229,-1.8761124,-1.8995238,-1.9196478,-1.8946388,-1.8860976,-1.8901838,-1.8854831,-1.8831174,-1.8817656,-1.8849608,-1.8971581,-1.8994624,-1.8908905,-1.8943315,-1.9140869,-1.9149471,-1.8962364,-1.8861283,-1.8878488,-1.8880025,-1.88917,-1.8874187,-1.8919044,-1.8947002,-1.8880639,-1.8937785,-1.8914128,-1.8866813,4 +-0.058234028,-0.043721926,-0.026822826,-0.020063186,-0.016746738,-0.0070297558,0.011622625,0.030528493,0.048061309,0.069396422,0.10082875,0.13912633,0.17414972,0.20670161,0.24493582,0.28485994,0.31536282,0.34062697,0.36529966,0.38486037,0.40203408,0.415152,0.42260873,0.42993871,0.4390431,0.44457756,0.45211878,0.45775886,0.45011201,0.43885299,0.42865016,0.41933453,0.40987103,0.40178059,0.39837965,0.39457735,0.38735298,0.38821906,0.39286631,0.39050044,0.39681648,0.41183555,0.43061468,0.46692662,0.50606916,0.53380481,0.55847749,0.56477241,0.54523282,0.51122338,0.46582818,0.4071883,0.34464051,0.29242229,0.24882261,0.20881399,0.17841674,0.15682814,0.13236669,0.11181316,0.098251635,0.081669394,0.071276447,0.0637141,0.057757168,0.053532393,0.046962868,0.042104376,0.034415286,0.022459173,0.0063839046,-0.014423112,-0.036455313,-0.061930706,-0.08991984,-0.10263641,-0.099826937,-0.095221932,-0.084976853,-0.066134357,-0.045390712,-0.023274015,-7.5596504E-4,0.022015572,0.04223112,0.052602942,0.049793467,0.038238707,0.019713069,-1.0112493E-4,-0.022260069,-0.049108514,-0.072070166,-0.090807042,-0.10460093,-0.12183801,-0.14015241,-0.15386181,-0.17380275,-0.19518011,-0.20424225,-0.20534069,-0.20785443,-0.20599553,-0.20179188,-0.19648979,-0.18989914,-0.17893585,-0.16328306,-0.1520874,-0.13998342,-0.12471086,-0.10711467,-0.088251054,-0.075618977,-0.059839442,-0.040046372,-0.023780988,-0.0058890666,0.01491795,0.03574609,0.048019061,0.061200359,0.075691337,0.089654218,0.10632096,0.11838269,0.12541694,0.12943047,0.12645201,0.11918539,0.11474938,0.10019503,0.081775013,0.063122632,0.040287723,0.021043874,0.0031308279,-0.018985869,-0.03867332,-0.054600721,-0.072408148,-0.088018691,-0.10223506,-0.11427567,-0.1230632,-0.13242108,-0.14165221,-0.14625721,-0.1473979,-0.14744015,-0.14691205,-0.14883433,-0.14505315,-0.14186345,-0.14678531,-0.15052424,-0.15550947,-0.15145369,-0.14304638,-0.13299142,-0.12211262,-0.1156276,-0.10601623,-0.097503311,-0.089412867,-0.086371029,-0.08446988,-0.084343137,-0.091081653,-0.09853838,-0.11038887,-0.12160565,-0.13459683,-0.14473629,-0.15062986,-0.15272112,-0.15130582,-0.15519261,-0.15713601,-0.1488132,-0.14346886,-0.14940467,-0.13960319,-0.1324422,-0.13501931,-0.1309424,-0.13178736,-0.12986509,-0.12367579,-0.1226196,-0.12133104,-0.11569097,-0.11007202,-0.10561488,-0.084068526,-0.064233208,-0.061656095,-0.042644608,-0.020126558,-0.0066072783,0.031795926,0.07178342,0.10103999,0.13908408,0.19113331,0.23390916,0.26660892,0.30218152,0.34276048,0.35570942,0.35228735,0.35735708,0.32562902,0.3222492,0.30190691,0.24652011,0.22157281,0.20319504,0.17700144,0.15321596,0.13287367,0.11145406,0.041745271,0.01988206,0.010608679,-0.025217412,-0.028491612,-0.042264379,-0.061994077,-0.046721516,-0.007832463,-0.003459821,0.012214094,0.052560694,0.072332641,0.094343718,0.12121329,0.12767719,0.15194852,0.17793089,0.20139951,0.2006813,0.11274261,0.10150471,0.12169914,0.11726312,0.078078335,0.066650319,0.05564478,0.012805562,-0.092940554,-0.11769773,-0.14494753,-0.14218031,-0.14106074,-0.13599101,-0.1037771,-0.070274636,-0.039307036,-0.033582466,0.018762495,0.083401551,0.11436915,0.159363,0.22641018,0.3124266,0.41293399,0.46460299,0.49033187,0.62717233,0.73906549,0.85277531,0.92835653,0.96280957,1.0538746,1.0606342,1.1229919,1.2127473,1.245447,1.3027561,1.3896808,1.4006652,1.4081853,1.512495,1.522719,1.3759503,1.4368927,1.4347592,1.459284,1.4920471,1.4300697,1.4273869,1.3775135,1.3539181,1.3297102,1.0454673,1.1356662,1.1407993,1.0839127,1.0797513,0.98775687,0.94983952,0.98661618,0.94100974,0.85955608,0.88486248,0.89865637,0.89952245,0.91095046,0.92755383,0.95691601,0.98951015,1.0403553,1.0942846,1.1611205,1.2414546,1.3352446,1.4301542,1.5538345,1.698026,1.8477309,1.9959149,2.1608924,2.3323337,2.4288065,2.4528032,2.5832642,2.6754911,2.6283637,2.6615704,2.6716043,2.6330321,2.6604086,2.6894328,2.5871933,2.4403612,2.471012,2.453627,2.4349113,2.4222158,2.2271368,2.1034354,2.1740103,1.9752135,1.6702693,1.7058207,1.6370414,1.5511729,1.4035803,1.2404829,1.1979183,1.0994388,0.90072651,0.78982617,0.74236082,0.56337823,0.49113458,0.40150598,0.30978612,0.19081645,-0.035927216,-0.054009253,-0.14099737,-0.2328651,-0.27908414,-0.37762701,-0.54418876,-0.58134566,-0.74982968,-0.7762979,-0.81391952,-0.88514922,-0.90969516,-0.94283852,-0.96622265,-1.0033162,-1.0479932,-1.088889,-1.0856359,-1.0803127,-1.0946769,-1.1002114,-1.1012887,-1.121462,-1.1321929,-1.1490075,-1.1550067,-1.13101,-1.1345377,-1.1389737,-1.1565276,-1.1934733,-1.2295106,-1.2797643,-1.3290252,-1.3769553,-1.4067611,-1.4490933,-1.4747166,-1.4951856,-1.5220974,-1.5308638,-1.5370742,-1.5469602,-1.5543113,-1.5690769,-1.5770617,-1.5784559,-1.5776532,-1.5858281,-1.5926723,-1.5914471,-1.5935806,-1.595186,-1.6004036,-1.6116626,-1.6148101,-1.6114303,-1.6138595,-1.6170704,-1.6226048,-1.6190137,-1.6197742,-1.628097,-1.6297236,-1.6312233,-1.6323429,-1.6263649,-1.6286251,-1.6293856,-1.626893,-1.6323007,-1.6383843,-1.6367156,-1.6356805,-1.6484182,-1.6439188,-1.6397363,-1.6429893,-1.6459889,-1.6455876,-1.6408136,-1.6465382,-1.6484393,-1.6440455,-1.6415529,-1.6410882,-1.6427781,-1.6433273,-1.6405179,-1.6414684,-1.645144,-1.6445525,-1.6453975,-1.6512065,-1.655727,-1.6529598,-1.6466227,-1.6440667,-1.6466227,-1.6494955,-1.6469395,-1.6395462,-1.6380886,-1.6391659,-1.6405601,-1.6432428,-1.6424401,-1.6411304,4 +-0.14426921,-0.14910202,-0.14942227,-0.14790838,-0.14849064,-0.14758813,-0.13964019,-0.13279855,-0.12231774,-0.10764462,-0.080772998,-0.050291324,-0.031746122,-0.013637621,0.016174446,0.048111788,0.075769467,0.097779157,0.11632436,0.13987706,0.16345887,0.18814699,0.21018579,0.22855631,0.24448131,0.25647601,0.27158584,0.27941733,0.28075654,0.28879183,0.29269301,0.30171815,0.30460037,0.30754082,0.31647862,0.32567844,0.32923026,0.33464535,0.35476267,0.37086235,0.37953813,0.39325051,0.41435769,0.43697876,0.46114284,0.48149307,0.50341542,0.51412913,0.50245468,0.48449174,0.45465056,0.41083497,0.36978516,0.33211248,0.29077153,0.25391404,0.22966262,0.20969086,0.18363442,0.1548122,0.13941124,0.12022555,0.10671695,0.10657139,0.10115631,0.10540685,0.1066005,0.0893654,0.077341588,0.065725362,0.039581577,0.0076442357,-0.010231359,-0.016636295,-0.02702976,-0.023099458,-3.91048E-4,0.022579383,0.041706851,0.064648169,0.092043828,0.11737244,0.14322509,0.1700676,0.1886128,0.19883158,0.20206317,0.20308213,0.20413021,0.19396965,0.18101422,0.16998026,0.15289072,0.13603409,0.12633935,0.10587267,0.077865628,0.055302784,0.019289574,-0.020857731,-0.043100328,-0.049447037,-0.059927842,-0.06251893,-0.061441736,-0.061470849,-0.056725374,-0.055095026,-0.047350876,-0.036433371,-0.02554498,-0.013724961,0.0046164476,0.021560415,0.027907125,0.047937108,0.07571124,0.097953837,0.12590265,0.15230846,0.16869927,0.18113067,0.19725946,0.21498949,0.22902212,0.23772701,0.24771289,0.26072656,0.26599607,0.26014429,0.24780023,0.23795992,0.22188935,0.19670631,0.16770942,0.13446197,0.1074739,0.084445244,0.062988708,0.047471294,0.029158999,0.0065088152,-0.01232752,-0.029067695,-0.042634514,-0.056958281,-0.072213674,-0.079957825,-0.086450101,-0.092563904,-0.087410841,-0.083596993,-0.089623456,-0.091865183,-0.092389224,-0.099987807,-0.10252067,-0.10822688,-0.10668388,-0.10027894,-0.099725787,-0.090758876,-0.077861664,-0.070845347,-0.068196033,-0.064032824,-0.061179716,-0.057132961,-0.056812714,-0.062286023,-0.068516279,-0.082752706,-0.096290412,-0.11236098,-0.1298581,-0.14016423,-0.14525906,-0.14627803,-0.14511349,-0.14077561,-0.12883913,-0.11926084,-0.12787839,-0.12129878,-0.11337995,-0.11180783,-0.11163315,-0.11239009,-0.10828511,-0.10487885,-0.10397634,-0.10540289,-0.088080448,-0.076638903,-0.079026198,-0.053843153,-0.03337647,-0.031629669,-0.0085427851,0.021094602,0.0459574,0.090471707,0.12802792,0.14992116,0.17932564,0.22887656,0.27836925,0.30893826,0.34177812,0.37910143,0.38620508,0.38227478,0.38501144,0.35420952,0.34535906,0.32425188,0.26724795,0.23175878,0.20797317,0.17941298,0.15571472,0.13941124,0.12284575,0.041910645,0.01646558,0.0076442357,-0.030581589,-0.021556451,-0.022488078,-0.034395437,-0.0086301251,0.033118414,0.041677738,0.070383498,0.11545096,0.13769356,0.1691942,0.19789996,0.2045378,0.24186111,0.28433748,0.31580901,0.31112176,0.21787171,0.20864278,0.23755233,0.24113328,0.19382409,0.16476897,0.11844963,0.047325727,-0.081850192,-0.12758726,-0.16042711,-0.15143109,-0.14741345,-0.14747168,-0.11431157,-0.080161618,-0.041149733,-0.026447493,0.030439986,0.10395119,0.1482617,0.19891892,0.26573405,0.3574411,0.46102638,0.52251377,0.56490281,0.70782022,0.83568604,0.9634063,1.0467287,1.0712421,1.1476938,1.1624251,1.2341604,1.3225777,1.357339,1.415391,1.4997906,1.5269825,1.5585122,1.6668139,1.6702201,1.4866314,1.5334747,1.5252357,1.5336203,1.5491959,1.474724,1.4621179,1.4087532,1.357077,1.2755887,1.0354036,1.1123502,1.0975024,1.0369466,1.0236127,0.92116283,0.86771072,0.89356338,0.84814656,0.75320793,0.76555199,0.78086561,0.77681886,0.78415542,0.80567018,0.83292028,0.86235387,0.91100227,0.96829734,1.0408478,1.124898,1.2317149,1.3356495,1.4587699,1.6072188,1.7687397,1.9322694,2.103747,2.2664906,2.364981,2.4161623,2.5318587,2.5963739,2.5482787,2.5699972,2.5733744,2.5416699,2.557362,2.5711618,2.4763105,2.3394195,2.3627393,2.3489687,2.3139745,2.2747005,2.1068912,1.9995503,2.0364951,1.848452,1.5707689,1.5772321,1.5022943,1.4109367,1.2645256,1.1121173,1.0572095,0.94395858,0.76022425,0.65695921,0.61017406,0.44568365,0.3683586,0.28509443,0.20031636,0.073993553,-0.13754402,-0.15049946,-0.23469526,-0.32244289,-0.3650066,-0.46471981,-0.62449386,-0.65747928,-0.8276468,-0.85259693,-0.88738738,-0.95076714,-0.96669214,-0.99100178,-1.0074217,-1.0328085,-1.0604662,-1.1002059,-1.0904821,-1.0633193,-1.0546727,-1.032925,-1.0063445,-1.0096343,-0.98413103,-0.95906444,-0.92500183,-0.85702216,-0.81987353,-0.80729657,-0.83410996,-0.89647075,-0.96666303,-1.0767697,-1.1867599,-1.2863276,-1.3450783,-1.440046,-1.5018246,-1.5452326,-1.5948126,-1.5998783,-1.6007226,-1.6275942,-1.641656,-1.6598227,-1.6736515,-1.6749325,-1.6698086,-1.673506,-1.6790666,-1.675835,-1.6826767,-1.6913233,-1.6955448,-1.7033472,-1.707161,-1.7034345,-1.7068699,-1.7109166,-1.7207569,-1.7195924,-1.7151089,-1.7156039,-1.7131001,-1.7167102,-1.7191266,-1.7146722,-1.7168557,-1.7156912,-1.7156039,-1.7200291,-1.7227366,-1.7199126,-1.7170595,-1.7351972,-1.7347313,-1.7237847,-1.7238138,-1.7329554,-1.7322858,-1.7181658,-1.7235809,-1.7348478,-1.7301314,-1.7282391,-1.7265214,-1.7268125,-1.7295492,-1.7270745,-1.7272783,-1.7331883,-1.7313251,-1.7251822,-1.7333921,-1.7495209,-1.7426502,-1.733363,-1.729258,-1.7266669,-1.7316744,-1.7316162,-1.7250075,-1.7222417,-1.719243,-1.7191557,-1.7283846,-1.7272201,-1.7187481,4 +-0.25763122,-0.26359797,-0.26969859,-0.27568447,-0.28241619,-0.28717812,-0.28876542,-0.28404175,-0.28222495,-0.28258831,-0.26937348,-0.25822407,-0.25063176,-0.24013257,-0.22904054,-0.21720265,-0.20987808,-0.19727523,-0.17966184,-0.16214407,-0.14330673,-0.11829227,-0.09639506,-0.089376477,-0.081439933,-0.068091239,-0.053996701,-0.036670172,-0.023531844,-0.021715045,-0.020223357,-0.010852497,0.0061871682,0.019574111,0.028925846,0.04877677,0.069564779,0.084500782,0.09704626,0.11454491,0.13785731,0.16153307,0.18566782,0.20735467,0.23089656,0.25621701,0.27442325,0.28861341,0.3050411,0.32177478,0.32504502,0.31967111,0.31875315,0.3183133,0.31360874,0.30425701,0.29085094,0.26859037,0.2413575,0.21953678,0.20662795,0.19700847,0.19438846,0.20337683,0.21117951,0.21815984,0.22154483,0.20999381,0.18685352,0.15363478,0.11452578,0.079356371,0.058415368,0.056235209,0.073810352,0.11249862,0.17082744,0.23544812,0.29404468,0.34904589,0.38515239,0.40917239,0.43761008,0.46555054,0.49263041,0.52053262,0.55371312,0.57346842,0.58092686,0.59247788,0.59161729,0.5788232,0.56291186,0.54340517,0.5252563,0.50808277,0.47826813,0.42846871,0.36996777,0.30735513,0.24455124,0.1824932,0.12967215,0.096893266,0.077558696,0.065586945,0.063923139,0.064592486,0.049713856,0.028849349,0.014888681,0.0096868974,0.012804143,0.016896722,0.028065257,0.042848267,0.056713314,0.074862183,0.09955153,0.12401139,0.13747483,0.14399618,0.15690502,0.17725317,0.19056362,0.20221026,0.21882919,0.23477877,0.24504847,0.24426438,0.23992318,0.22751158,0.20282223,0.17880223,0.15250645,0.121181,0.091385495,0.067097757,0.044932805,0.027300289,0.010968219,-0.0088827043,-0.024354185,-0.037129153,-0.053480347,-0.078054949,-0.098651716,-0.10800345,-0.11613124,-0.11546189,-0.112861,-0.12228923,-0.13456697,-0.14653872,-0.1591607,-0.172911,-0.18256872,-0.18530348,-0.18287471,-0.18180375,-0.18165076,-0.17312137,-0.16260305,-0.15925632,-0.15961968,-0.15786025,-0.15822361,-0.15791762,-0.1565598,-0.16354014,-0.17342735,-0.18262609,-0.19794458,-0.22106574,-0.24388092,-0.25506858,-0.26092058,-0.26573988,-0.26390396,-0.25830057,-0.24617582,-0.23529415,-0.22905966,-0.22360926,-0.21815886,-0.21408541,-0.21460176,-0.21232598,-0.20848202,-0.20978246,-0.21393242,-0.21322482,-0.20582375,-0.19436836,-0.17593262,-0.15990654,-0.14583113,-0.12928869,-0.11408495,-0.099301939,-0.059466223,-0.018712545,9.8538476E-4,0.0046572319,0.011867057,0.029403951,0.048298665,0.072835018,0.10335725,0.12217546,0.12538833,0.13118296,0.12743462,0.11928771,0.11205876,0.086432327,0.055718856,0.03016892,0.01033712,0.0028021841,-0.0031836916,-0.014964201,-0.03406928,-0.068435474,-0.10297379,-0.12867672,-0.14998108,-0.15742039,-0.14864238,-0.12634356,-0.098766461,-0.071361478,-0.027375809,0.016667232,0.04659661,0.074460575,0.10154045,0.12538833,0.16193468,0.20829175,0.26650583,0.31532992,0.33127951,0.32410793,0.31739533,0.32347683,0.32584823,0.31611401,0.26491852,0.15914255,0.024909764,-0.15965793,-0.24699816,-0.30932394,-0.34196896,-0.3583584,-0.35776555,-0.34602329,-0.32076022,-0.29335523,-0.25344302,-0.21704966,-0.18583896,-0.14196804,-0.082530013,-0.027624424,0.02380056,0.074192836,0.14038171,0.25082398,0.33326842,0.42299919,0.5133228,0.58674062,0.66495861,0.70175358,0.75600894,0.82214044,0.87230323,0.93583383,0.99303432,1.0247231,1.0346295,1.0530652,1.0645015,1.0723998,1.098772,1.1667395,1.209941,1.2296198,1.2355866,1.2096351,1.1890765,1.1478448,1.115544,1.0707933,0.96534248,0.9563541,0.91997987,0.87936006,0.85612415,0.80251901,0.77211152,0.76230081,0.74378858,0.72321094,0.70957538,0.70261417,0.70542543,0.72410977,0.74914336,0.7803923,0.81791399,0.87501886,0.94227869,1.0113744,1.0914666,1.1915244,1.301393,1.4388578,1.5765329,1.739299,1.9124878,2.0847777,2.2323018,2.3577757,2.4912818,2.5924871,2.6455759,2.6790815,2.722895,2.7487127,2.7654655,2.7833658,2.7787377,2.729818,2.7161633,2.720275,2.6888731,2.6541053,2.6074996,2.5062752,2.4241941,2.3834213,2.2119346,2.0575831,2.0019891,1.8927899,1.7831125,1.6478471,1.4976838,1.4030573,1.2873749,1.1527979,1.0367905,0.95537877,0.80355171,0.69875108,0.58121372,0.47214839,0.37861191,0.22653624,0.14325034,0.045372661,-0.035312354,-0.109935,-0.19949364,-0.33164189,-0.3931262,-0.48796313,-0.5469613,-0.60245974,-0.65243128,-0.69270685,-0.72778064,-0.7570598,-0.77735058,-0.78392931,-0.77805817,-0.76228071,-0.72810575,-0.65839803,-0.57404117,-0.49658815,-0.43512295,-0.37633515,-0.24372792,0.03626954,0.16815005,0.34135796,0.44577611,0.44889336,0.355529,0.19480919,-0.052619758,-0.31590267,-0.59088959,-0.79287943,-1.0308036,-1.2091751,-1.3360642,-1.441974,-1.515411,-1.5652678,-1.6049696,-1.6390681,-1.6511163,-1.6608505,-1.6804528,-1.692941,-1.7018337,-1.705735,-1.7157561,-1.7178789,-1.7214743,-1.7374812,-1.7387817,-1.7247828,-1.7337903,-1.7457238,-1.7570644,-1.7567775,-1.7508873,-1.757007,-1.7675445,-1.7739511,-1.7693995,-1.76131,-1.7667604,-1.7737598,-1.7783496,-1.7827673,-1.7851961,-1.780721,-1.7758253,-1.7863053,-1.7791337,-1.7798987,-1.7878161,-1.7889445,-1.791794,-1.7936873,-1.8024461,-1.8003042,-1.7888488,-1.7899963,-1.7908186,-1.7929032,-1.797034,-1.7980093,-1.7967089,-1.7986978,-1.7951407,-1.7963264,-1.8032111,-1.8081643,-1.7986787,-1.7924251,-1.7985257,-1.7970531,-1.7957718,-1.7944713,-1.7922721,-1.7946243,-1.7973017,-1.7951789,-1.7983918,-1.7939741,-1.7915071,-1.7956762,5 +-0.1944665,-0.2022334,-0.21024088,-0.21359164,-0.22043065,-0.22639329,-0.22816319,-0.23202946,-0.22946913,-0.22536229,-0.21666748,-0.20427823,-0.1943634,-0.18525618,-0.17451654,-0.1620242,-0.14996144,-0.13920461,-0.1265748,-0.11080042,-0.0940294,-0.077395848,-0.058786203,-0.041001361,-0.026103335,-0.010827274,0.0031600312,0.015171243,0.022457013,0.021529109,0.017989324,0.018178341,0.018418909,0.024948609,0.032474948,0.036959821,0.046479436,0.057030057,0.068920984,0.082788005,0.098424919,0.11938869,0.13942456,0.1590824,0.17899798,0.19009847,0.20245335,0.21217917,0.20733344,0.19329459,0.17372267,0.15238086,0.13028298,0.1101612,0.090365894,0.074660247,0.059934055,0.040173121,0.021752493,0.009964666,0.0027648125,-0.0050192774,-0.010913191,-0.010827274,-0.00879963,-0.0069438205,-0.0032665684,-0.0021324626,-0.0081982103,-0.022632284,-0.042015183,-0.062222887,-0.083581879,-0.1047003,-0.11885944,-0.12490801,-0.12552661,-0.11930621,-0.10932264,-0.099235976,-0.084372317,-0.066243807,-0.05315004,-0.034832513,-0.016446253,-0.0041772897,0.010273968,0.020137251,0.022164895,0.021168257,0.016923952,0.012353162,0.010239601,0.0093460628,0.0068716502,7.1998535E-4,-0.014985662,-0.037788062,-0.063099241,-0.088410421,-0.10980378,-0.12521731,-0.13753782,-0.14949748,-0.15355277,-0.15190316,-0.14716054,-0.14257256,-0.1405621,-0.14033872,-0.13990913,-0.13563046,-0.1264717,-0.11930621,-0.11055985,-0.096228877,-0.082172839,-0.070642763,-0.057325612,-0.042204201,-0.025261348,-0.010689806,-0.0019090781,0.0087274597,0.022783498,0.036478685,0.051187694,0.064676679,0.073405857,0.079420055,0.078663984,0.074677431,0.068164914,0.053885491,0.036547419,0.019243713,0.0040879359,-0.0087480798,-0.024333443,-0.036636772,-0.043681975,-0.055074584,-0.064920684,-0.075711872,-0.091640904,-0.10256956,-0.11083479,-0.11910001,-0.12547506,-0.1259562,-0.12557816,-0.1304067,-0.1339293,-0.13468537,-0.13786431,-0.14576868,-0.15092371,-0.14987552,-0.14679969,-0.14398161,-0.14076831,-0.13293267,-0.12085272,-0.11135029,-0.10121207,-0.09347953,-0.088496338,-0.085317405,-0.093874749,-0.10098869,-0.10353183,-0.1162132,-0.12726214,-0.14171339,-0.15927485,-0.16987702,-0.17827971,-0.18443138,-0.18639029,-0.1782969,-0.1684508,-0.16685274,-0.17231707,-0.165753,-0.16034022,-0.16042614,-0.15863906,-0.16028867,-0.15697227,-0.15659424,-0.15723002,-0.15375897,-0.14454866,-0.13544144,-0.13343098,-0.11906564,-0.09870329,-0.088650989,-0.072842241,-0.055332335,-0.040588959,-0.0026479652,0.029175731,0.055878768,0.090108143,0.12889112,0.16521688,0.195769,0.23209475,0.27261326,0.29058712,0.28623971,0.2842808,0.25065285,0.24115042,0.22410446,0.17874023,0.15836069,0.13913244,0.11107192,0.094386815,0.081413332,0.070914261,0.012817114,-0.017786559,-0.028698032,-0.062119786,-0.064937867,-0.071072349,-0.079784343,-0.066639026,-0.034334194,-0.026842222,-0.013147036,0.020635571,0.037440957,0.058421914,0.083526892,0.096397275,0.12148507,0.15301665,0.18858633,0.20982504,0.14617765,0.1305751,0.15526768,0.16815524,0.14375478,0.12280819,0.10208499,0.06221945,-0.042771254,-0.08237904,-0.11855014,-0.12549224,-0.12420349,-0.12432377,-0.10250083,-0.074010714,-0.046036104,-0.0355714,0.0013042217,0.059435736,0.098424919,0.12517951,0.16825834,0.23475818,0.32107051,0.37681353,0.40286359,0.50446916,0.59695034,0.69228396,0.76307965,0.8110214,0.88547716,0.91266134,0.95348914,1.0169991,1.0511253,1.1004933,1.1698456,1.1788841,1.1713062,1.2427033,1.2903873,1.2394728,1.2942708,1.3093406,1.3381572,1.3732114,1.3453914,1.3472816,1.3224687,1.3195304,1.3259742,1.0910596,1.1390529,1.145342,1.1071948,1.1136902,1.0564007,1.0235116,1.0582221,1.0390798,0.97367966,0.98709992,0.99972973,1.0071873,1.0268452,1.048943,1.0816603,1.1237768,1.1795542,1.2359502,1.305165,1.3796036,1.474542,1.5776254,1.6979437,1.8293625,1.9739954,2.1193155,2.2752207,2.4384976,2.5535062,2.6101943,2.7263886,2.8088691,2.8074256,2.8552471,2.8839778,2.8722931,2.8954735,2.9276752,2.8623782,2.7622161,2.7853621,2.7615459,2.7397745,2.720615,2.5631633,2.4477766,2.477504,2.3185745,2.0415606,2.0327283,1.954664,1.8613237,1.7171891,1.5495992,1.4897837,1.3896903,1.21167,1.0905613,1.0373099,0.85841327,0.76928287,0.67350248,0.57907958,0.47414042,0.25264612,0.21379441,0.11124375,0.011219056,-0.043200839,-0.13190166,-0.28806459,-0.32141761,-0.4778383,-0.52782487,-0.5692541,-0.64587497,-0.68120409,-0.72137893,-0.75292769,-0.78653846,-0.82346563,-0.87791989,-0.8886939,-0.88719894,-0.89125423,-0.88711302,-0.88307492,-0.89115113,-0.89116831,-0.87059976,-0.83930875,-0.79526764,-0.74158663,-0.71521008,-0.72479843,-0.76772261,-0.82606033,-0.91297407,-1.0063316,-1.1019917,-1.1581643,-1.2393216,-1.3029518,-1.3444154,-1.3907247,-1.4155376,-1.4317416,-1.4565544,-1.4681704,-1.4870378,-1.4989287,-1.5010595,-1.5043072,-1.5134144,-1.5237244,-1.5287935,-1.5370072,-1.5382272,-1.5373509,-1.5408907,-1.547197,-1.555634,-1.5599471,-1.5596034,-1.5644491,-1.5692261,-1.5738141,-1.5749997,-1.5779037,-1.5796049,-1.5780068,-1.5807906,-1.585052,-1.5877842,-1.5909975,-1.5909116,-1.5940562,-1.5926815,-1.5873374,-1.5959979,-1.601067,-1.5987129,-1.5980083,-1.6023386,-1.6021152,-1.5991253,-1.6090401,-1.6116863,-1.6076311,-1.6091604,-1.6089026,-1.6089542,-1.6082497,-1.6097962,-1.6088167,-1.6059815,-1.6090573,-1.6103117,-1.6133875,-1.6196251,-1.6185597,-1.6143154,-1.6117207,-1.6100367,-1.6085246,-1.6097446,-1.6092291,-1.608095,-1.6071499,-1.6063423,-1.6096931,-1.6097962,-1.610999,5 +-0.17582072,-0.18426083,-0.18528626,-0.18625911,-0.18536514,-0.18057978,-0.18192073,-0.17918625,-0.17461124,-0.16703881,-0.15165731,-0.13740642,-0.1209469,-0.10858912,-0.095337367,-0.079719231,-0.067571793,-0.055739872,-0.032759652,-0.0098320186,0.0078632765,0.029975822,0.046566804,0.061659077,0.069888835,0.079222906,0.08966129,0.10570012,0.12147601,0.13062603,0.14193209,0.15620927,0.18478993,0.20616627,0.22157406,0.25094352,0.2817591,0.30755269,0.32927083,0.34352173,0.36405668,0.39479338,0.42342663,0.44514478,0.47622329,0.51611001,0.55163207,0.59025672,0.62893395,0.65906591,0.68635821,0.70894403,0.73379106,0.75487818,0.76536915,0.76578984,0.74428203,0.70707722,0.67626163,0.65073098,0.62454299,0.62059902,0.63164215,0.65272926,0.67618276,0.70155565,0.71007464,0.68856683,0.65099391,0.59044077,0.52328804,0.47590777,0.46155171,0.48261253,0.53788075,0.62880249,0.75138119,0.88450344,1.0014554,1.0954272,1.1598191,1.2047541,1.2451667,1.2829237,1.3184983,1.3585691,1.404398,1.4273257,1.4326632,1.4311645,1.4125226,1.3706376,1.3106892,1.2559469,1.1910028,1.1222725,1.0491512,0.95638894,0.85707968,0.76213509,0.676025,0.59612009,0.52836262,0.47075432,0.42539862,0.39040243,0.36250539,0.33810534,0.30592251,0.27387115,0.25457197,0.24820903,0.24965515,0.25131162,0.25954138,0.27665823,0.2944324,0.31207511,0.33113765,0.35495925,0.38112094,0.40176107,0.4185361,0.43675726,0.46057886,0.48208667,0.50206947,0.52163158,0.52836262,0.52223632,0.50766991,0.48358538,0.44869436,0.40538953,0.35364459,0.30568587,0.26340647,0.22572838,0.19583306,0.17177482,0.14658598,0.12108161,0.10007338,0.07359617,0.0461987,0.02029994,-0.0011552766,-0.0083333086,-0.016694533,-0.023031184,-0.023451874,-0.035020864,-0.056633839,-0.083715791,-0.1025154,-0.11852793,-0.13561848,-0.14263876,-0.13759047,-0.13714349,-0.13948358,-0.13259477,-0.12499605,-0.12265596,-0.12086802,-0.12234044,-0.1297814,-0.13038615,-0.13201632,-0.13985168,-0.15107886,-0.16632889,-0.1885729,-0.21568115,-0.24184284,-0.25919632,-0.26687393,-0.27342092,-0.26863557,-0.25895969,-0.24589199,-0.22456824,-0.20285009,-0.19017679,-0.18465522,-0.18344574,-0.18457634,-0.17632029,-0.16924743,-0.17221856,-0.1709039,-0.1647776,-0.1567056,-0.14660902,-0.12499605,-0.10895722,-0.0944434,-0.071068783,-0.057922204,-0.036388108,0.027030988,0.072439271,0.072412978,0.04569913,0.021088735,0.013279667,0.014988722,0.027136161,0.040624551,0.048381032,0.066312966,0.081720756,0.073569877,0.059161227,0.043464212,0.014042168,-0.027474727,-0.056528666,-0.065520926,-0.053084263,-0.039779925,-0.045459247,-0.064074803,-0.093207621,-0.13532926,-0.16998364,-0.18276212,-0.18431341,-0.16185906,-0.11445249,-0.063075663,-0.026133776,0.034945229,0.10683072,0.14642822,0.18181881,0.22396674,0.26222328,0.30852553,0.37081402,0.45881722,0.5315178,0.55323595,0.55263121,0.55468207,0.5610976,0.54942344,0.52144752,0.4127779,0.18402743,-0.063391181,-0.31990723,-0.43444022,-0.51715849,-0.55838616,-0.57602887,-0.57800086,-0.57526637,-0.55215469,-0.52118135,-0.46580796,-0.42147769,-0.39105651,-0.34128356,-0.27494593,-0.21157942,-0.15336637,-0.10148997,-0.027711366,0.1134303,0.19496539,0.28173281,0.37757137,0.44735341,0.52541779,0.5664877,0.62698826,0.69435133,0.74588592,0.8135645,0.86446806,0.89680864,0.92065653,0.97815967,1.0069244,0.99877351,0.98752003,1.005899,1.0144179,1.0078709,0.98673124,0.94376822,0.911191,0.8604452,0.80446707,0.7071298,0.62094083,0.61018693,0.56711874,0.51511087,0.46996552,0.4070197,0.36342565,0.32971782,0.29167162,0.26958537,0.25441421,0.24313445,0.24210902,0.25018102,0.26353794,0.28838497,0.32225056,0.36852652,0.42295335,0.49512807,0.57400755,0.66577067,0.7732308,0.9104285,1.0513335,1.2127209,1.3814967,1.5426212,1.6745077,1.7692945,1.8726266,1.9583686,1.9964937,2.0037506,2.0289131,2.0223924,1.9974928,1.9995963,1.9820587,1.9252918,1.9002081,1.9087534,1.8885865,1.8630296,1.8254567,1.7264366,1.6497921,1.6165049,1.4650301,1.3261233,1.2876301,1.1866907,1.0765224,0.96653809,0.84406457,0.75826999,0.65893444,0.55828424,0.46302413,0.38077913,0.26372199,0.18189769,0.09008198,-0.0085962402,-0.10359342,-0.19680266,-0.26342952,-0.33791804,-0.39513195,-0.46664934,-0.54276803,-0.63518848,-0.70462871,-0.75390208,-0.79360475,-0.83562122,-0.85733937,-0.88881228,-0.90403601,-0.91802397,-0.9237033,-0.90800628,-0.83346518,-0.7799849,-0.71845891,-0.59453926,-0.45531699,-0.31788265,-0.15160472,0.045804303,0.33986698,0.8435387,1.07739,1.4129959,1.6386175,1.685656,1.5667583,1.3077181,0.89068233,0.44877324,-0.026212656,-0.37864614,-0.79862675,-1.110227,-1.3355593,-1.5144317,-1.6329349,-1.7199127,-1.7838051,-1.8433065,-1.8504845,-1.8546388,-1.8853755,-1.9082506,-1.9192937,-1.9187941,-1.9341756,-1.9276549,-1.9343334,-1.9601533,-1.9523442,-1.9259722,-1.9441144,-1.9593645,-1.9704076,-1.9684882,-1.9585494,-1.9685145,-1.9829231,-1.9837382,-1.966411,-1.9564722,-1.9724059,-1.9796891,-1.9834227,-1.9889969,-2.0012495,-1.9960697,-1.9782956,-2.0021697,-1.9881555,-1.9816874,-1.995649,-1.9937296,-1.9917839,-1.9940977,-2.016815,-2.0116353,-1.9836068,-1.9908374,-1.9877348,-1.9856051,-1.9911792,-1.9979628,-1.9980943,-1.9907848,-1.9890757,-1.9965167,-2.0086379,-2.024887,-2.0052723,-1.9779274,-1.9906533,-1.9942555,-1.993493,-1.9938348,-1.9891283,-1.9911792,-1.9922309,-1.9900749,-1.999593,-1.9901012,-1.9863413,-1.998699,5 +-0.17749707,-0.17332443,-0.15675194,-0.15549227,-0.15210692,-0.13986454,-0.13431413,-0.13014148,-0.11530104,-0.095736839,-0.06515056,-0.037319801,-0.015039448,0.029206342,0.061091653,0.079474912,0.11124213,0.13474278,0.15426762,0.19001066,0.21937663,0.24563281,0.27759685,0.28944559,0.30503396,0.3352266,0.35026387,0.36018374,0.37711051,0.38329075,0.39364364,0.40210702,0.41167261,0.41765603,0.4289143,0.44678582,0.44316428,0.46001232,0.49024432,0.51480782,0.54354396,0.56909157,0.59845755,0.62687878,0.65848854,0.70474192,0.73028954,0.7478855,0.77925907,0.79472935,0.80311401,0.80602699,0.80476732,0.81921412,0.81771827,0.79685504,0.7812273,0.77347248,0.76012789,0.73292696,0.72174742,0.73115556,0.74280747,0.76941793,0.78646279,0.78225078,0.77548007,0.75075912,0.70269496,0.64415983,0.58298727,0.52768003,0.49721185,0.49449569,0.52453087,0.58786848,0.66876269,0.75654571,0.84192749,0.91876715,0.97415312,1.0029286,1.0339086,1.0669748,1.0986633,1.126376,1.1518842,1.1680237,1.1625914,1.1523172,1.1299581,1.0851612,1.0316648,0.99025323,0.9372685,0.86688463,0.79815407,0.71139454,0.61530559,0.53449011,0.46666493,0.41320783,0.37132392,0.32869208,0.29475981,0.27035377,0.24287729,0.21835315,0.20256796,0.18564119,0.16576207,0.16615572,0.17229659,0.18528691,0.20099337,0.21567636,0.2352012,0.2515375,0.27303056,0.29590138,0.32290548,0.34573694,0.36915887,0.40021752,0.42096266,0.44528997,0.4711525,0.48284378,0.49276365,0.49233064,0.47784448,0.46072088,0.43552755,0.3955725,0.35793996,0.31908712,0.27889588,0.24279856,0.21173991,0.1841847,0.16021167,0.14100175,0.11880013,0.098369911,0.066760152,0.034245008,0.016294759,0.0038555514,-0.0042535524,-0.0090953959,-0.01291376,-0.027242468,-0.039839134,-0.052317706,-0.073102205,-0.081290038,-0.078258965,-0.084872215,-0.088493756,-0.079636726,-0.068535914,-0.057868112,-0.042712748,-0.015315,0.013657332,0.021766436,0.0074377283,-0.027675478,-0.059206508,-0.06696133,-0.084360475,-0.11518294,-0.13699092,-0.15383896,-0.18088243,-0.19485686,-0.19839967,-0.20261168,-0.19686445,-0.18517317,-0.17009653,-0.15836589,-0.14317116,-0.12368569,-0.11632452,-0.10085423,-0.090422621,-0.10069678,-0.094240985,-0.088021381,-0.087824559,-0.087115996,-0.072314913,-0.051451685,-0.041807363,-0.015590552,0.015153186,0.036646248,0.057391382,0.080380297,0.12836572,0.19217571,0.21799887,0.21189736,0.21414114,0.23890147,0.26177229,0.27480196,0.31881157,0.36258498,0.37510292,0.37781907,0.36841094,0.3275505,0.31845729,0.29983784,0.22917841,0.16981663,0.11588715,0.080616485,0.069555038,0.054242215,0.033300258,-0.022282531,-0.040587061,-0.060072529,-0.099240287,-0.1002244,-0.08534459,-0.069441299,-0.020511124,0.032985342,0.054517768,0.10801423,0.17005281,0.20422127,0.2439795,0.2873199,0.31802427,0.37089091,0.44418776,0.51157992,0.53134094,0.46772778,0.45776854,0.47969461,0.46701922,0.41836459,0.33483295,0.17383181,-0.021022864,-0.25992651,-0.34625303,-0.41616453,-0.43974392,-0.44891586,-0.43816933,-0.40368596,-0.37105272,-0.33849821,-0.29897617,-0.24481051,-0.18718076,-0.13986454,-0.078219601,-0.0066154273,0.073491496,0.16930489,0.24968736,0.31117484,0.43907036,0.55015721,0.64837184,0.7184408,0.76012789,0.82169409,0.83448758,0.87519056,0.94864487,0.9826165,1.0244611,1.077249,1.0604796,1.0188319,1.0381993,1.0070225,0.95195149,1.027374,1.078115,1.124762,1.1453103,1.093231,1.0716592,1.0159189,0.97588516,0.93140318,0.73300569,0.76335578,0.73517074,0.67872193,0.67478548,0.61066057,0.56602114,0.57440579,0.53976496,0.49095288,0.49512553,0.49622773,0.49776295,0.50787965,0.51866555,0.54303222,0.57251629,0.61798238,0.66226754,0.71942491,0.79008433,0.86684527,0.95411654,1.0581571,1.1780616,1.320837,1.4701468,1.6053642,1.7216865,1.8147838,1.8792629,1.9500405,1.9845238,1.94945,1.9415377,1.9217373,1.887687,1.8740668,1.8553293,1.7807334,1.6885415,1.6807867,1.6501611,1.6323289,1.6062696,1.5041185,1.4099978,1.386379,1.2405726,1.0631564,1.0303657,0.94234653,0.84653314,0.73103746,0.60432287,0.5347263,0.44257381,0.31097801,0.2137475,0.1609596,0.026293363,-0.042948936,-0.11537977,-0.18879471,-0.27413712,-0.4218724,-0.44738064,-0.50831702,-0.57094607,-0.60200472,-0.65754814,-0.78768745,-0.82311557,-0.94526387,-0.98573066,-1.0208832,-1.094495,-1.1155157,-1.1346862,-1.147834,-1.1530301,-1.142008,-1.1158306,-1.0927236,-1.0429274,-0.96833151,-0.87440762,-0.76068335,-0.61893149,-0.43415414,-0.2078078,0.14619788,0.37903938,0.64904104,0.81555322,0.87668641,0.81338817,0.6239658,0.28684753,-0.075621538,-0.45958366,-0.72580633,-1.0752064,-1.3157239,-1.4847948,-1.6648091,-1.7567253,-1.8073876,-1.8548219,-1.8899745,-1.9151284,-1.9354799,-1.9553984,-1.9583114,-1.9637437,-1.9634681,-1.9618148,-1.9742934,-1.9848825,-1.9929522,-1.9980696,-1.9969674,-1.9971248,-1.9983058,-2.0083438,-2.0119259,-2.0030295,-1.9958652,-2.0036987,-2.0121228,-2.0053127,-2.0028327,-2.0090523,-2.0154294,-2.0087768,-2.0050371,-2.0162167,-2.0194839,-2.0135399,-2.0146421,-2.0208617,-2.0166497,-2.0183424,-2.0303879,-2.0234204,-2.0136973,-2.0218458,-2.0297974,-2.0294825,-2.0318444,-2.0230661,-2.0214522,-2.0221214,-2.0161773,-2.023814,-2.0252705,-2.0220033,-2.0224363,-2.0266876,-2.0299549,-2.0268451,-2.0231842,-2.0275143,-2.0231055,-2.0070447,-2.0040136,-2.0188935,-2.0230661,-2.0185392,-2.0097215,-2.0109812,-2.01787,-2.0058638,-2.0053914,5 +-0.26500727,-0.26481279,-0.2653233,-0.26583381,-0.26155526,-0.25892978,-0.25540484,-0.24801462,-0.23821771,-0.23068162,-0.21879406,-0.19905438,-0.18028709,-0.15570973,-0.13499766,-0.1189774,-0.095566916,-0.078088062,-0.065981706,-0.045853067,-0.021129847,-5.3931884E-4,0.016404717,0.027052475,0.041176557,0.064416869,0.078103372,0.092227453,0.10265642,0.09874252,0.10124644,0.10272935,0.10827202,0.11053285,0.11425227,0.12550778,0.12871669,0.14126062,0.15331836,0.16649435,0.18112894,0.1932353,0.21363135,0.23616667,0.25678151,0.27265591,0.28481088,0.29434038,0.29195801,0.27591344,0.25177366,0.21973314,0.18701195,0.16345561,0.14310818,0.11315832,0.086077036,0.070470047,0.053088432,0.031428266,0.01504336,0.0059028181,-0.0020708457,-0.0050366597,-0.0094367608,-0.01451754,-0.011551727,-0.015149599,-0.023196193,-0.034014121,-0.051954865,-0.073250381,-0.097001203,-0.11584142,-0.13047601,-0.14887864,-0.15325443,-0.13562971,-0.11853982,-0.10672518,-0.092819892,-0.077237213,-0.058129592,-0.041525896,-0.024119971,-0.006884216,0.0029126942,0.008892942,0.0062431574,0.0031557937,-0.0013901671,-0.011551727,-0.01967125,-0.019160741,-0.022734304,-0.031315716,-0.044661879,-0.072594013,-0.098289631,-0.11452868,-0.1285069,-0.14173151,-0.14620454,-0.14032154,-0.1358485,-0.13499766,-0.12918758,-0.11953653,-0.11003134,-0.099772538,-0.093913839,-0.085162257,-0.069579579,-0.052173654,-0.034014121,-0.017653524,-6.1224869E-4,0.017863314,0.035682508,0.054717199,0.076912184,0.092154523,0.10766427,0.12762274,0.14155234,0.15353715,0.16785571,0.17935432,0.18450803,0.18414338,0.17728797,0.17043256,0.15715933,0.13372454,0.11439813,0.092349003,0.066993724,0.047715933,0.033834951,0.019078811,0.0064133271,-0.0062521573,-0.023074643,-0.035375478,-0.052854333,-0.067926502,-0.075438277,-0.082950052,-0.084700368,-0.087714802,-0.087909282,-0.087641872,-0.091896114,-0.095250887,-0.097098443,-0.099091859,-0.098289631,-0.10159578,-0.10312731,-0.10101235,-0.096490694,-0.082439543,-0.072156434,-0.063672261,-0.054896369,-0.050982467,-0.045828757,-0.04424861,-0.047384594,-0.04920784,-0.058153902,-0.075000698,-0.08849272,-0.10339472,-0.12092219,-0.12882293,-0.13368492,-0.13759882,-0.13220201,-0.12286699,-0.11173303,-0.10733293,-0.11015289,-0.10623898,-0.10558262,-0.10738155,-0.10461022,-0.10631191,-0.10764896,-0.10200905,-0.096150355,-0.093062991,-0.08851703,-0.081442835,-0.074344329,-0.054872059,-0.031291406,-0.01468771,0.006948146,0.026857996,0.048202132,0.085566527,0.12886255,0.16403905,0.20432064,0.25172504,0.28660982,0.31580607,0.35421579,0.38766628,0.39512944,0.40402688,0.40760044,0.37478201,0.36357512,0.34541559,0.29674707,0.26453638,0.23529151,0.20604664,0.17792003,0.15540901,0.13904842,0.081749864,0.060746067,0.050511578,0.023527532,0.016988156,0.011275317,0.0033259633,0.01983242,0.052869643,0.068719731,0.094779998,0.12985926,0.15083874,0.17573213,0.20704335,0.22233431,0.23913249,0.26993319,0.30207095,0.30080683,0.23405171,0.22758526,0.24428619,0.24452929,0.22277189,0.20074707,0.17023808,0.12584811,0.023381673,-0.020813818,-0.058858891,-0.069676819,-0.067756333,-0.054531719,-0.023317743,0.012977014,0.049004361,0.074821528,0.12477848,0.18450803,0.23057538,0.28410589,0.34609627,0.41569566,0.50245787,0.57733252,0.63696483,0.74747786,0.84525249,0.94759738,1.0322446,1.0803297,1.1415179,1.1598719,1.2119195,1.2965424,1.3387445,1.387729,1.4596379,1.4732028,1.4823191,1.5564401,1.5733355,1.4792074,1.5227465,1.5307202,1.5476399,1.5663586,1.5059969,1.4864761,1.4479205,1.4137407,1.3856384,1.1595801,1.1869775,1.1700577,1.1252545,1.1156521,1.0326336,0.9916227,1.008591,0.98202027,0.91599444,0.91762321,0.91813372,0.91660219,0.93551533,0.95241075,0.98192303,1.0180233,1.0631669,1.1181803,1.1852028,1.2629947,1.3592135,1.4595893,1.5836915,1.7156946,1.8661975,2.0214165,2.1665955,2.3070098,2.4049789,2.4711992,2.5777497,2.642949,2.6240845,2.6536454,2.6703463,2.6541073,2.6692767,2.6870959,2.6267829,2.5309045,2.5422329,2.5137416,2.483962,2.4522861,2.3052838,2.2058804,2.2219493,2.0547698,1.8108923,1.794629,1.7018136,1.5886994,1.4497923,1.2988762,1.2216678,1.1089668,0.95138973,0.84364803,0.77927528,0.60835202,0.51371338,0.41316742,0.315879,0.20699473,0.016866606,-0.03960541,-0.13942207,-0.22820201,-0.29595384,-0.39183229,-0.54590875,-0.59234076,-0.72098902,-0.7707758,-0.81781555,-0.88228554,-0.9190665,-0.95626072,-0.98013309,-1.0081382,-1.0277077,-1.0433876,-1.0589946,-1.0620333,-1.0571713,-1.0514342,-1.0496839,-1.048833,-1.044992,-1.0328857,-0.98584593,-0.94775224,-0.89640962,-0.87603788,-0.88695305,-0.91495811,-0.96958257,-1.0513369,-1.1385367,-1.2259067,-1.2839832,-1.3557461,-1.4125828,-1.4532534,-1.4915415,-1.5162647,-1.5295623,-1.5426897,-1.5527054,-1.5601442,-1.5761645,-1.5873714,-1.5902885,-1.5970467,-1.5974114,-1.597071,-1.6026623,-1.6095906,-1.6151576,-1.6154007,-1.6087641,-1.6134802,-1.621697,-1.6193146,-1.6165919,-1.6163488,-1.620992,-1.6251004,-1.6256109,-1.626243,-1.6271911,-1.6309834,-1.6320774,-1.6311779,-1.6283579,-1.6298165,-1.6339735,-1.6343868,-1.6396864,-1.6426765,-1.6442323,-1.6440378,-1.6397593,-1.6351647,-1.6354321,-1.6424334,-1.6437218,-1.6386167,-1.6393703,-1.6367206,-1.6372554,-1.6385924,-1.6364045,-1.6405615,-1.6431627,-1.6436489,-1.6397107,-1.6379847,-1.6390786,-1.6385924,-1.6395405,-1.6410477,-1.6388841,-1.6352133,-1.635262,-1.6385438,-1.6366962,-1.6323691,-1.6295248,-1.631105,-1.6349216,-1.630327,-1.6300353,5 +-0.13889811,-0.15109226,-0.16311278,-0.17176307,-0.18266018,-0.19179047,-0.19843903,-0.20766124,-0.21109275,-0.21059232,-0.21046977,-0.21001019,-0.20864167,-0.20785528,-0.20595569,-0.2018297,-0.19485432,-0.18758277,-0.18040314,-0.16932219,-0.1589153,-0.14650669,-0.13140188,-0.11687921,-0.10199908,-0.087711306,-0.074506091,-0.061076192,-0.053620811,-0.054478691,-0.055397847,-0.056725518,-0.057481269,-0.051874414,-0.047370547,-0.038975584,-0.024983979,-0.010563434,0.0031932759,0.017981483,0.035945887,0.056586058,0.075816856,0.092341248,0.10651668,0.11684188,0.12604365,0.12823942,0.12251001,0.11261376,0.094986376,0.07586792,0.059905235,0.044116168,0.026294744,0.0060120226,-0.010124281,-0.025903135,-0.041753479,-0.052701655,-0.062168967,-0.066846453,-0.067163051,-0.066111128,-0.058063401,-0.05175186,-0.051935691,-0.053273575,-0.055459125,-0.062271096,-0.077151219,-0.096504571,-0.11270215,-0.12748015,-0.13894918,-0.14044025,-0.13533383,-0.12649971,-0.11724687,-0.10583912,-0.092337728,-0.083575102,-0.078162291,-0.064415794,-0.050669298,-0.043162853,-0.035196829,-0.027118464,-0.024166951,-0.024994192,-0.025515047,-0.03100956,-0.040660704,-0.049842057,-0.058962132,-0.070870316,-0.088232162,-0.10796339,-0.12698993,-0.1457203,-0.16210171,-0.17334606,-0.18231294,-0.1906262,-0.19375133,-0.195079,-0.19689689,-0.19778541,-0.19874542,-0.20124757,-0.19879648,-0.19393516,-0.19036067,-0.18570361,-0.17826865,-0.17030263,-0.16306172,-0.15388036,-0.14552625,-0.13718235,-0.12591758,-0.11375408,-0.10427655,-0.095432221,-0.084729154,-0.074843115,-0.06493665,-0.058614895,-0.057093181,-0.051670157,-0.048442896,-0.051414836,-0.057634462,-0.06669326,-0.077937609,-0.091336868,-0.104154,-0.11372344,-0.12436523,-0.13344445,-0.1384079,-0.14716031,-0.15758763,-0.16624813,-0.17468394,-0.18334444,-0.19137174,-0.19683561,-0.20049181,-0.20314716,-0.20315737,-0.20285098,-0.20458717,-0.20622122,-0.20863146,-0.21212425,-0.21347235,-0.21147063,-0.20740591,-0.20306545,-0.19815307,-0.18968662,-0.1777478,-0.16920985,-0.16001829,-0.15024459,-0.14796712,-0.14707861,-0.15030587,-0.15618847,-0.16182596,-0.17523544,-0.18638787,-0.19603901,-0.20848848,-0.21837452,-0.22682054,-0.23174314,-0.22867928,-0.22397116,-0.22087666,-0.21734302,-0.21827239,-0.21425874,-0.2081106,-0.20462802,-0.19941947,-0.200165,-0.20398461,-0.20471993,-0.20398461,-0.2019114,-0.19788754,-0.19333261,-0.19458879,-0.18430445,-0.16862772,-0.1643179,-0.15392122,-0.1388062,-0.12449799,-0.09829182,-0.074026087,-0.055632743,-0.031612119,0.0022639065,0.039101658,0.07199725,0.10504603,0.14081144,0.16038947,0.16836571,0.17078615,0.1458668,0.13746162,0.12008956,0.083558196,0.066666142,0.050570689,0.032126281,0.018910853,0.0087490665,2.0091067E-4,-0.044582439,-0.066560493,-0.076752918,-0.10667657,-0.11099661,-0.11614388,-0.12686738,-0.11910561,-0.096412655,-0.088344503,-0.078509528,-0.055796149,-0.04258072,-0.025218874,-0.0046501933,0.0063694724,0.028316888,0.058363094,0.090063782,0.10722137,0.063612499,0.053062625,0.067942748,0.070587876,0.049385999,0.032136494,0.0091882191,-0.025198449,-0.10485868,-0.1310955,-0.15294078,-0.16047787,-0.16227533,-0.16080468,-0.14323857,-0.1202903,-0.098598205,-0.092858583,-0.06310855,-0.020674156,0.0076154401,0.030676057,0.063765692,0.11045884,0.17444235,0.22753896,0.2491085,0.32130314,0.39132245,0.46595796,0.5217814,0.55737318,0.61830305,0.65153566,0.68898619,0.74562666,0.77945162,0.82304006,0.88485845,0.91333187,0.93078564,0.99625001,1.0433517,0.99933429,1.0404819,1.0599884,1.0916993,1.1244315,1.1128808,1.1185489,1.116251,1.1270664,1.1394852,0.99645426,1.0379491,1.0507458,1.0343848,1.0468138,1.0168289,1.0056254,1.042218,1.0438215,1.0155829,1.0369686,1.0626744,1.0814967,1.1104399,1.1422121,1.1825835,1.2277753,1.2807392,1.334183,1.4004031,1.4780821,1.5687416,1.6662539,1.7811893,1.9024464,2.0388084,2.1784794,2.3265044,2.475081,2.591436,2.6740682,2.7971739,2.8886095,2.9224447,2.9942104,3.0435589,3.0618399,3.1113211,3.151427,3.1023849,3.0349188,3.0598688,3.0391878,3.0141459,2.9818733,2.8352371,2.7423308,2.7562203,2.591007,2.3581847,2.3381573,2.2522366,2.1558783,2.0210074,1.8624836,1.7951298,1.6938796,1.5250612,1.402027,1.3299957,1.1527824,1.0690064,0.96471273,0.86621999,0.75945486,0.53616109,0.48557684,0.38345855,0.2809726,0.21777548,0.12476705,-0.028344006,-0.06400728,-0.21579066,-0.27229837,-0.32251495,-0.41113186,-0.46081737,-0.51112588,-0.5478615,-0.58832481,-0.6251115,-0.68418263,-0.71504586,-0.72647404,-0.74550058,-0.75736791,-0.76357733,-0.7707876,-0.76291349,-0.74637889,-0.72878215,-0.70073766,-0.67643107,-0.66004966,-0.66572801,-0.69700997,-0.73822903,-0.81453945,-0.90401423,-0.98909749,-1.0418571,-1.1181981,-1.1760131,-1.2147504,-1.2623729,-1.2891715,-1.3052873,-1.3286237,-1.3425438,-1.3589048,-1.3712317,-1.3790956,-1.3860199,-1.395426,-1.4041273,-1.4105716,-1.4200798,-1.4216219,-1.4219385,-1.4282194,-1.4371352,-1.4398519,-1.444223,-1.448206,-1.4532103,-1.4587048,-1.4634333,-1.4661806,-1.46903,-1.4720326,-1.4738504,-1.4767203,-1.4809279,-1.4847476,-1.4878829,-1.4873416,-1.4891901,-1.4911102,-1.4890267,-1.4953281,-1.4994438,-1.4962676,-1.4976362,-1.50358,-1.5050201,-1.5051733,-1.511015,-1.5127001,-1.511352,-1.5119035,-1.5119342,-1.5115971,-1.5099835,-1.5113929,-1.5131393,-1.5136193,-1.5140482,-1.5139155,-1.5171938,-1.5231683,-1.5232909,-1.5183478,-1.5159172,-1.5142627,-1.5128635,-1.5160295,-1.517061,-1.5179393,-1.518358,-1.5167751,-1.5196449,-1.5176329,-1.5145384,5 diff --git a/src/main/java/experiments/data/tsc/Beef/Beef_TRAIN.arff b/src/main/java/experiments/data/tsc/Beef/Beef_TRAIN.arff new file mode 100644 index 000000000..4491c625d --- /dev/null +++ b/src/main/java/experiments/data/tsc/Beef/Beef_TRAIN.arff @@ -0,0 +1,516 @@ +%"Food spectrographs are used in chemometrics to classify food +%types, a task that has obvious applications in food safety and +%quality assurance. The beef dataset consists of four classes of +%beef spectrograms, from pure beef and beef adulterated with varying +%degrees of offal. Further information can be found in the original +%paper. Related data can be found at the IFR +%data download page. The data was first used in the time series +%classification literature in this +%paper." +@Relation Beef +@attribute att1 numeric +@attribute att2 numeric +@attribute att3 numeric +@attribute att4 numeric +@attribute att5 numeric +@attribute att6 numeric +@attribute att7 numeric +@attribute att8 numeric +@attribute att9 numeric +@attribute att10 numeric +@attribute att11 numeric +@attribute att12 numeric +@attribute att13 numeric +@attribute att14 numeric +@attribute att15 numeric +@attribute att16 numeric +@attribute att17 numeric +@attribute att18 numeric +@attribute att19 numeric +@attribute att20 numeric +@attribute att21 numeric +@attribute att22 numeric +@attribute att23 numeric +@attribute att24 numeric +@attribute att25 numeric +@attribute att26 numeric +@attribute att27 numeric +@attribute att28 numeric +@attribute att29 numeric +@attribute att30 numeric +@attribute att31 numeric +@attribute att32 numeric +@attribute att33 numeric +@attribute att34 numeric +@attribute att35 numeric +@attribute att36 numeric +@attribute att37 numeric +@attribute att38 numeric +@attribute att39 numeric +@attribute att40 numeric +@attribute att41 numeric +@attribute att42 numeric +@attribute att43 numeric +@attribute att44 numeric +@attribute att45 numeric +@attribute att46 numeric +@attribute att47 numeric +@attribute att48 numeric +@attribute att49 numeric +@attribute att50 numeric +@attribute att51 numeric +@attribute att52 numeric +@attribute att53 numeric +@attribute att54 numeric +@attribute att55 numeric +@attribute att56 numeric +@attribute att57 numeric +@attribute att58 numeric +@attribute att59 numeric +@attribute att60 numeric +@attribute att61 numeric +@attribute att62 numeric +@attribute att63 numeric +@attribute att64 numeric +@attribute att65 numeric +@attribute att66 numeric +@attribute att67 numeric +@attribute att68 numeric +@attribute att69 numeric +@attribute att70 numeric +@attribute att71 numeric +@attribute att72 numeric +@attribute att73 numeric +@attribute att74 numeric +@attribute att75 numeric +@attribute att76 numeric +@attribute att77 numeric +@attribute att78 numeric +@attribute att79 numeric +@attribute att80 numeric +@attribute att81 numeric +@attribute att82 numeric +@attribute att83 numeric +@attribute att84 numeric +@attribute att85 numeric +@attribute att86 numeric +@attribute att87 numeric +@attribute att88 numeric +@attribute att89 numeric +@attribute att90 numeric +@attribute att91 numeric +@attribute att92 numeric +@attribute att93 numeric +@attribute att94 numeric +@attribute att95 numeric +@attribute att96 numeric +@attribute att97 numeric +@attribute att98 numeric +@attribute att99 numeric +@attribute att100 numeric +@attribute att101 numeric +@attribute att102 numeric +@attribute att103 numeric +@attribute att104 numeric +@attribute att105 numeric +@attribute att106 numeric +@attribute att107 numeric +@attribute att108 numeric +@attribute att109 numeric +@attribute att110 numeric +@attribute att111 numeric +@attribute att112 numeric +@attribute att113 numeric +@attribute att114 numeric +@attribute att115 numeric +@attribute att116 numeric +@attribute att117 numeric +@attribute att118 numeric +@attribute att119 numeric +@attribute att120 numeric +@attribute att121 numeric +@attribute att122 numeric +@attribute att123 numeric +@attribute att124 numeric +@attribute att125 numeric +@attribute att126 numeric +@attribute att127 numeric +@attribute att128 numeric +@attribute att129 numeric +@attribute att130 numeric +@attribute att131 numeric +@attribute att132 numeric +@attribute att133 numeric +@attribute att134 numeric +@attribute att135 numeric +@attribute att136 numeric +@attribute att137 numeric +@attribute att138 numeric +@attribute att139 numeric +@attribute att140 numeric +@attribute att141 numeric +@attribute att142 numeric +@attribute att143 numeric +@attribute att144 numeric +@attribute att145 numeric +@attribute att146 numeric +@attribute att147 numeric +@attribute att148 numeric +@attribute att149 numeric +@attribute att150 numeric +@attribute att151 numeric +@attribute att152 numeric +@attribute att153 numeric +@attribute att154 numeric +@attribute att155 numeric +@attribute att156 numeric +@attribute att157 numeric +@attribute att158 numeric +@attribute att159 numeric +@attribute att160 numeric +@attribute att161 numeric +@attribute att162 numeric +@attribute att163 numeric +@attribute att164 numeric +@attribute att165 numeric +@attribute att166 numeric +@attribute att167 numeric +@attribute att168 numeric +@attribute att169 numeric +@attribute att170 numeric +@attribute att171 numeric +@attribute att172 numeric +@attribute att173 numeric +@attribute att174 numeric +@attribute att175 numeric +@attribute att176 numeric +@attribute att177 numeric +@attribute att178 numeric +@attribute att179 numeric +@attribute att180 numeric +@attribute att181 numeric +@attribute att182 numeric +@attribute att183 numeric +@attribute att184 numeric +@attribute att185 numeric +@attribute att186 numeric +@attribute att187 numeric +@attribute att188 numeric +@attribute att189 numeric +@attribute att190 numeric +@attribute att191 numeric +@attribute att192 numeric +@attribute att193 numeric +@attribute att194 numeric +@attribute att195 numeric +@attribute att196 numeric +@attribute att197 numeric +@attribute att198 numeric +@attribute att199 numeric +@attribute att200 numeric +@attribute att201 numeric +@attribute att202 numeric +@attribute att203 numeric +@attribute att204 numeric +@attribute att205 numeric +@attribute att206 numeric +@attribute att207 numeric +@attribute att208 numeric +@attribute att209 numeric +@attribute att210 numeric +@attribute att211 numeric +@attribute att212 numeric +@attribute att213 numeric +@attribute att214 numeric +@attribute att215 numeric +@attribute att216 numeric +@attribute att217 numeric +@attribute att218 numeric +@attribute att219 numeric +@attribute att220 numeric +@attribute att221 numeric +@attribute att222 numeric +@attribute att223 numeric +@attribute att224 numeric +@attribute att225 numeric +@attribute att226 numeric +@attribute att227 numeric +@attribute att228 numeric +@attribute att229 numeric +@attribute att230 numeric +@attribute att231 numeric +@attribute att232 numeric +@attribute att233 numeric +@attribute att234 numeric +@attribute att235 numeric +@attribute att236 numeric +@attribute att237 numeric +@attribute att238 numeric +@attribute att239 numeric +@attribute att240 numeric +@attribute att241 numeric +@attribute att242 numeric +@attribute att243 numeric +@attribute att244 numeric +@attribute att245 numeric +@attribute att246 numeric +@attribute att247 numeric +@attribute att248 numeric +@attribute att249 numeric +@attribute att250 numeric +@attribute att251 numeric +@attribute att252 numeric +@attribute att253 numeric +@attribute att254 numeric +@attribute att255 numeric +@attribute att256 numeric +@attribute att257 numeric +@attribute att258 numeric +@attribute att259 numeric +@attribute att260 numeric +@attribute att261 numeric +@attribute att262 numeric +@attribute att263 numeric +@attribute att264 numeric +@attribute att265 numeric +@attribute att266 numeric +@attribute att267 numeric +@attribute att268 numeric +@attribute att269 numeric +@attribute att270 numeric +@attribute att271 numeric +@attribute att272 numeric +@attribute att273 numeric +@attribute att274 numeric +@attribute att275 numeric +@attribute att276 numeric +@attribute att277 numeric +@attribute att278 numeric +@attribute att279 numeric +@attribute att280 numeric +@attribute att281 numeric +@attribute att282 numeric +@attribute att283 numeric +@attribute att284 numeric +@attribute att285 numeric +@attribute att286 numeric +@attribute att287 numeric +@attribute att288 numeric +@attribute att289 numeric +@attribute att290 numeric +@attribute att291 numeric +@attribute att292 numeric +@attribute att293 numeric +@attribute att294 numeric +@attribute att295 numeric +@attribute att296 numeric +@attribute att297 numeric +@attribute att298 numeric +@attribute att299 numeric +@attribute att300 numeric +@attribute att301 numeric +@attribute att302 numeric +@attribute att303 numeric +@attribute att304 numeric +@attribute att305 numeric +@attribute att306 numeric +@attribute att307 numeric +@attribute att308 numeric +@attribute att309 numeric +@attribute att310 numeric +@attribute att311 numeric +@attribute att312 numeric +@attribute att313 numeric +@attribute att314 numeric +@attribute att315 numeric +@attribute att316 numeric +@attribute att317 numeric +@attribute att318 numeric +@attribute att319 numeric +@attribute att320 numeric +@attribute att321 numeric +@attribute att322 numeric +@attribute att323 numeric +@attribute att324 numeric +@attribute att325 numeric +@attribute att326 numeric +@attribute att327 numeric +@attribute att328 numeric +@attribute att329 numeric +@attribute att330 numeric +@attribute att331 numeric +@attribute att332 numeric +@attribute att333 numeric +@attribute att334 numeric +@attribute att335 numeric +@attribute att336 numeric +@attribute att337 numeric +@attribute att338 numeric +@attribute att339 numeric +@attribute att340 numeric +@attribute att341 numeric +@attribute att342 numeric +@attribute att343 numeric +@attribute att344 numeric +@attribute att345 numeric +@attribute att346 numeric +@attribute att347 numeric +@attribute att348 numeric +@attribute att349 numeric +@attribute att350 numeric +@attribute att351 numeric +@attribute att352 numeric +@attribute att353 numeric +@attribute att354 numeric +@attribute att355 numeric +@attribute att356 numeric +@attribute att357 numeric +@attribute att358 numeric +@attribute att359 numeric +@attribute att360 numeric +@attribute att361 numeric +@attribute att362 numeric +@attribute att363 numeric +@attribute att364 numeric +@attribute att365 numeric +@attribute att366 numeric +@attribute att367 numeric +@attribute att368 numeric +@attribute att369 numeric +@attribute att370 numeric +@attribute att371 numeric +@attribute att372 numeric +@attribute att373 numeric +@attribute att374 numeric +@attribute att375 numeric +@attribute att376 numeric +@attribute att377 numeric +@attribute att378 numeric +@attribute att379 numeric +@attribute att380 numeric +@attribute att381 numeric +@attribute att382 numeric +@attribute att383 numeric +@attribute att384 numeric +@attribute att385 numeric +@attribute att386 numeric +@attribute att387 numeric +@attribute att388 numeric +@attribute att389 numeric +@attribute att390 numeric +@attribute att391 numeric +@attribute att392 numeric +@attribute att393 numeric +@attribute att394 numeric +@attribute att395 numeric +@attribute att396 numeric +@attribute att397 numeric +@attribute att398 numeric +@attribute att399 numeric +@attribute att400 numeric +@attribute att401 numeric +@attribute att402 numeric +@attribute att403 numeric +@attribute att404 numeric +@attribute att405 numeric +@attribute att406 numeric +@attribute att407 numeric +@attribute att408 numeric +@attribute att409 numeric +@attribute att410 numeric +@attribute att411 numeric +@attribute att412 numeric +@attribute att413 numeric +@attribute att414 numeric +@attribute att415 numeric +@attribute att416 numeric +@attribute att417 numeric +@attribute att418 numeric +@attribute att419 numeric +@attribute att420 numeric +@attribute att421 numeric +@attribute att422 numeric +@attribute att423 numeric +@attribute att424 numeric +@attribute att425 numeric +@attribute att426 numeric +@attribute att427 numeric +@attribute att428 numeric +@attribute att429 numeric +@attribute att430 numeric +@attribute att431 numeric +@attribute att432 numeric +@attribute att433 numeric +@attribute att434 numeric +@attribute att435 numeric +@attribute att436 numeric +@attribute att437 numeric +@attribute att438 numeric +@attribute att439 numeric +@attribute att440 numeric +@attribute att441 numeric +@attribute att442 numeric +@attribute att443 numeric +@attribute att444 numeric +@attribute att445 numeric +@attribute att446 numeric +@attribute att447 numeric +@attribute att448 numeric +@attribute att449 numeric +@attribute att450 numeric +@attribute att451 numeric +@attribute att452 numeric +@attribute att453 numeric +@attribute att454 numeric +@attribute att455 numeric +@attribute att456 numeric +@attribute att457 numeric +@attribute att458 numeric +@attribute att459 numeric +@attribute att460 numeric +@attribute att461 numeric +@attribute att462 numeric +@attribute att463 numeric +@attribute att464 numeric +@attribute att465 numeric +@attribute att466 numeric +@attribute att467 numeric +@attribute att468 numeric +@attribute att469 numeric +@attribute att470 numeric +@attribute target {1,2,3,4,5} + +@data +-0.36292248,-0.36532777,-0.387812,-0.40559023,-0.39900183,-0.3665827,-0.32454241,-0.31732654,-0.32652939,-0.30488178,-0.27716865,-0.2717306,-0.27580914,-0.2486189,-0.19570251,-0.17907464,-0.15146609,-0.10053668,-0.084117962,-0.065607685,-0.052430877,-0.026913885,0.0054006665,0.033009215,0.07630444,0.09324605,0.10506335,0.13601838,0.18767984,0.22595532,0.2425832,0.26308046,0.27772135,0.29006154,0.30804893,0.37267803,0.42465321,0.40928027,0.4129405,0.45654946,0.49336085,0.51103451,0.51427642,0.54094377,0.60233096,0.64290716,0.66612344,0.71046444,0.76087096,0.81629721,0.87716152,0.88793303,0.89985491,0.93091452,0.9300779,0.92788177,0.90654789,0.85906955,0.80803557,0.76913261,0.73796841,0.69770595,0.65587481,0.63161275,0.65409699,0.66005793,0.633286,0.62136413,0.57942841,0.50622393,0.40865281,0.35416775,0.30271546,0.24195573,0.27155126,0.34255961,0.43688882,0.58298406,0.73326241,0.82319935,0.88301787,0.95737272,1.0084067,1.0608002,1.1153898,1.1656918,1.2260332,1.2691192,1.3208853,1.3456702,1.3500625,1.3593699,1.3366765,1.3083359,1.3273691,1.3673178,1.305094,1.1813784,1.064565,0.93708462,0.82142153,0.72217716,0.63746911,0.54449942,0.48614498,0.48196187,0.48164814,0.46303328,0.41660072,0.3624294,0.33753988,0.32624547,0.31380071,0.30292461,0.31265035,0.35123957,0.37246887,0.37968475,0.39139746,0.41283592,0.41733277,0.39965911,0.41419543,0.44431385,0.45550368,0.44650998,0.45895475,0.49430205,0.51385811,0.50946584,0.49210592,0.43730713,0.39432564,0.36378891,0.2803358,0.22145848,0.17492134,0.13246274,0.11939051,0.10663201,0.086134757,0.054238516,0.025793345,0.0039365768,-0.030783265,-0.086941564,-0.11674625,-0.11350433,-0.11862865,-0.13839386,-0.14414564,-0.15815907,-0.18649966,-0.22017373,-0.25729886,-0.26692002,-0.26566509,-0.27497251,-0.29599266,-0.31554872,-0.30111697,-0.29076377,-0.29076377,-0.25991331,-0.23502378,-0.24307627,-0.26210944,-0.27340385,-0.28584861,-0.29777048,-0.31638534,-0.33719633,-0.34639918,-0.36741932,-0.3953416,-0.42598291,-0.43204843,-0.40360325,-0.42033571,-0.41928993,-0.38226938,-0.39335463,-0.38843947,-0.36721017,-0.36198127,-0.34503967,-0.31795401,-0.3066596,-0.31690823,-0.32747059,-0.31544414,-0.29912999,-0.29881626,-0.28940426,-0.25646224,-0.24778228,-0.22895827,-0.19800323,-0.18566304,-0.14184493,-0.068326709,-0.023985706,-0.016978991,-0.07648378,-0.13400159,-0.13745266,-0.15198898,-0.15251187,-0.12772692,-0.093425389,-0.055045323,-0.051489677,-0.063934439,-0.089556009,-0.11737371,-0.15815907,-0.20208176,-0.2320956,-0.24433121,-0.20511452,-0.15679956,-0.17238166,-0.21191208,-0.26859327,-0.3113656,-0.32360121,-0.33949704,-0.33719633,-0.31554872,-0.27675034,-0.23429174,-0.22027831,-0.17740139,-0.12187056,-0.080457738,-0.032038199,0.029035258,0.078814308,0.13413598,0.22271341,0.32070284,0.44305891,0.53958426,0.57263085,0.6563977,0.77049212,0.86304351,0.88124005,0.74873993,0.48081151,0.16885583,-0.2033367,-0.41081912,-0.56841792,-0.63001427,-0.67205456,-0.69223808,-0.70102262,-0.69934938,-0.71074836,-0.76084114,-0.74233087,-0.73647451,-0.76722039,-0.76554715,-0.75174287,-0.72737624,-0.67278661,-0.59393492,-0.64183157,-0.59947754,-0.52784172,-0.48381445,-0.46363093,-0.44930377,-0.4146885,-0.39565534,-0.33897415,-0.24893263,-0.18461726,-0.16265592,-0.11015784,-0.0056845842,0.011257025,-0.0062074734,0.053192738,0.19876509,0.22856977,0.22877893,0.28138158,0.30072848,0.32530427,0.33032401,0.30857182,0.29790488,0.24362898,0.3355529,0.36086073,0.35845544,0.35803713,0.35740967,0.33241556,0.32436307,0.33942228,0.30689857,0.29978728,0.33095147,0.33001027,0.33450712,0.36608963,0.39192035,0.44117651,0.47610551,0.48771365,0.49377917,0.52274723,0.59595171,0.66298611,0.71883067,0.79004818,0.87266467,0.9815302,1.076696,1.2143205,1.3546639,1.4473199,1.5494924,1.6293899,1.6837704,1.7757989,1.8382318,1.8637488,1.908299,1.9632024,1.9752288,1.9048479,1.9057891,1.923149,1.9071486,1.8777623,1.8577879,1.7831193,1.7086599,1.6882672,1.5237663,1.3501671,1.2928584,1.2023986,1.123024,1.0235705,0.9097898,0.83940892,0.74445224,0.62105039,0.54575435,0.4912693,0.34465117,0.24990365,0.16247658,0.082892844,-0.015305745,-0.11120362,-0.16255134,-0.24924637,-0.30561382,-0.34943193,-0.38247853,-0.42138149,-0.427447,-0.45014039,-0.48036339,-0.4883113,-0.4930173,-0.50922687,-0.50567122,-0.48580143,-0.45923866,-0.4236822,-0.34190233,-0.23847485,-0.12218429,0.10454046,0.38135799,0.5898862,0.71151022,0.87517454,1.1659009,1.8488988,2.3128061,3.0016603,3.5317653,3.7205283,3.5665897,3.1838349,2.5993493,1.9606925,1.2488311,0.75292305,0.094919295,-0.39942014,-0.71451316,-1.0295016,-1.220147,-1.3327773,-1.4206227,-1.4830557,-1.5349263,-1.5766529,-1.6346936,-1.6788254,-1.67893,-1.6753743,-1.6990089,-1.7108262,-1.7157414,-1.72599,-1.7345654,-1.7502521,-1.7653113,-1.7538077,-1.7687623,-1.7829849,-1.78173,-1.791142,-1.8002403,-1.8007632,-1.8128942,-1.8127896,-1.7941748,-1.7944885,-1.8034822,-1.812685,-1.8149857,-1.8243977,-1.8314045,-1.8303587,-1.8420714,-1.8386203,-1.846882,-1.8424897,-1.8345418,-1.848869,-1.8329731,-1.8386203,-1.8700983,-1.8553528,-1.8489735,-1.8577581,-1.8640327,-1.8538887,-1.8455225,-1.844895,-1.8538887,-1.868425,-1.8714578,-1.8777324,-1.8615229,-1.8437446,-1.8561894,-1.8537841,-1.8526338,-1.8492873,-1.8493918,-1.8762684,-1.8804515,-1.8581764,-1.8446858,-1.836215,-1.8400844,-1.8611046,1 +-0.11628048,-0.11642809,-0.10543147,-0.089785276,-0.06517204,-0.050817394,-0.039525565,-0.026388665,-0.02258782,-0.013288667,0.0024313314,0.028040906,0.061731887,0.091954137,0.1119547,0.13856061,0.17269441,0.19752905,0.21634877,0.24265947,0.26542764,0.28653524,0.30424791,0.30860228,0.3250234,0.34819748,0.36295804,0.37450818,0.37299523,0.38705466,0.40974902,0.41000733,0.4143617,0.42152057,0.42904846,0.44609691,0.45594958,0.46019324,0.47144817,0.49107972,0.5090507,0.52370056,0.55462394,0.5772814,0.59477266,0.62355576,0.65654561,0.67104786,0.67765322,0.67923998,0.66086308,0.64606561,0.62791012,0.60237435,0.58569492,0.5746614,0.56052816,0.53705887,0.50953042,0.48838592,0.4695662,0.46273944,0.4669462,0.46487972,0.46465831,0.47831183,0.49104282,0.48975127,0.47499071,0.44391972,0.41122508,0.39303269,0.3774234,0.35506114,0.35472903,0.37971128,0.41104057,0.44391972,0.48388394,0.52561943,0.55857239,0.58399745,0.61097238,0.64713575,0.67580814,0.69108533,0.69625152,0.70281997,0.71016335,0.70064279,0.68385265,0.6668411,0.65034618,0.63599153,0.61798365,0.59680224,0.56145069,0.52853464,0.49358901,0.44838479,0.40399241,0.37196199,0.3513341,0.33059551,0.3250603,0.3222189,0.32668397,0.33221918,0.32166537,0.32063213,0.32111185,0.32561382,0.34269917,0.35989523,0.37048593,0.38140875,0.40366029,0.42930677,0.45476874,0.47454789,0.48993577,0.50181803,0.51484422,0.53049042,0.54447605,0.55554647,0.57030703,0.58340703,0.57953238,0.57779802,0.57805633,0.56982731,0.54934703,0.51750112,0.49499127,0.46222282,0.43104113,0.416871,0.4012617,0.38620593,0.36808734,0.34926762,0.33384284,0.32417467,0.31413749,0.3011851,0.28620313,0.27712538,0.2828451,0.28712566,0.28144284,0.27620284,0.2723282,0.26468961,0.26162679,0.26011383,0.26059355,0.26823214,0.27059383,0.26819524,0.28314031,0.30314087,0.31011523,0.32716368,0.34192424,0.34210875,0.35078058,0.35557776,0.34963664,0.33878763,0.31956199,0.3066834,0.30638819,0.30151721,0.27708848,0.26494792,0.26823214,0.26369327,0.27026172,0.28258679,0.28671974,0.28063101,0.28760538,0.31166509,0.32446988,0.32974678,0.33177636,0.32937777,0.33465467,0.34878791,0.35166622,0.3566479,0.37686987,0.38454537,0.39520987,0.41827325,0.43893803,0.45288677,0.47078395,0.49196535,0.52694788,0.5667276,0.60016027,0.62768871,0.65444223,0.68495969,0.70174983,0.73042222,0.77071855,0.79256419,0.78226869,0.77964869,0.78385545,0.77669658,0.78304362,0.76108729,0.7167318,0.69008899,0.66584477,0.6430397,0.62226421,0.59488337,0.57193069,0.51827605,0.49602451,0.49012028,0.46868057,0.46668789,0.46746282,0.47451099,0.49495437,0.52351605,0.53746478,0.55993774,0.59676534,0.62595435,0.64949744,0.66628758,0.68971997,0.71352138,0.73580983,0.77540503,0.78130926,0.70307828,0.71289406,0.74448166,0.74455546,0.72828194,0.70669462,0.6403828,0.52510281,0.35723833,0.31779073,0.28856482,0.27620284,0.26605496,0.26099947,0.26937609,0.28343552,0.30173862,0.33657354,0.38299551,0.41502593,0.43192677,0.4644369,0.50307267,0.56178281,0.62362956,0.66053096,0.72687969,0.82208531,0.90891431,0.98504191,1.0242312,1.0553022,1.1007647,1.1105805,1.1580357,1.2015424,1.2296244,1.2568945,1.2571529,1.2179636,1.1677039,1.1557109,1.1185881,1.0951926,1.1323154,1.171763,1.2029078,1.1774458,1.1095841,1.0705425,0.98079825,0.90817628,0.79935404,0.59591661,0.58277971,0.51787014,0.4065017,0.3327727,0.1961637,0.094537235,0.029701469,-0.082921615,-0.23838723,-0.32377708,-0.42868777,-0.53817423,-0.64101844,-0.74932406,-0.86231616,-0.98390629,-1.1009575,-1.2100381,-1.3114431,-1.4172764,-1.5402687,-1.6547,-1.7534851,-1.8383952,-1.9189141,-1.9883625,-2.0558183,-2.1074433,-2.1991064,-2.3491475,-2.4473052,-2.5454261,-2.6898951,-2.7982745,-2.9015984,-3.0110111,-3.0901277,-3.1282099,-3.1462547,-3.2207956,-3.237475,-3.2557412,-3.2593944,-3.2272164,-3.1938944,-3.173488,-3.1331547,-3.0361778,-3.0779871,-3.0838914,-3.0375801,-2.9873204,-2.9525224,-2.901377,-2.8431097,-2.7628123,-2.7013345,-2.6312587,-2.5531016,-2.4453126,-2.367303,-2.2904374,-2.2054535,-2.1081444,-1.9985473,-1.9415346,-1.8619752,-1.7784304,-1.6948118,-1.6394966,-1.5920783,-1.5318921,-1.4388637,-1.3797107,-1.3040998,-1.2161268,-1.1503316,-1.0714364,-0.99862995,-0.91914432,-0.8318356,-0.73057815,-0.6371438,-0.55245507,-0.44603143,-0.32580665,-0.22499202,-0.14270189,-0.036868663,0.081732448,0.31668368,0.47661437,0.65816927,0.787767,0.84776869,0.83736249,0.77322785,0.6508628,0.5038476,0.3460941,0.25491074,0.11143808,0.011213865,-0.059046407,-0.12148358,-0.13332893,-0.14174245,-0.15174273,-0.1587909,-0.16473203,-0.15203794,-0.13620724,-0.11912189,-0.11535795,-0.11561626,-0.10484105,-0.093918233,-0.085541615,-0.081002742,-0.078419644,-0.075209222,-0.076943588,-0.076943588,-0.071334574,-0.058455985,-0.043215705,-0.039636269,-0.033658241,-0.019967821,-0.017458525,-0.0068309209,-0.001443316,-0.0015171188,-8.8979491E-4,0.0016195005,0.0059369648,0.0038335848,0.0016195005,-0.0013326118,-0.0074582448,0.0027634441,0.014239781,0.015162316,0.015826541,0.017044287,0.014350485,0.012579217,0.016232456,0.012210203,0.0084093588,0.015199217,0.018298935,0.014276682,0.0070809083,0.011693584,0.0070440069,-0.0038050058,-0.0011850061,-0.006388104,-0.018085849,-0.013620779,-0.011480498,-0.013657681,-0.013952892,-0.015908666,-0.023473454,-0.03125965,-0.032698805,-0.03705317,-0.047939085,-0.058935703,-0.052773168,-0.057090633,1 +-0.17931673,-0.18108243,-0.17809633,-0.17004682,-0.15745324,-0.14743031,-0.13236994,-0.12252877,-0.11647866,-0.1043265,-0.081632093,-0.059950362,-0.034062114,-0.0076026113,0.012443253,0.040330894,0.072139423,0.10005303,0.12648657,0.15060912,0.17517309,0.20355409,0.22681975,0.24569714,0.2626011,0.28659382,0.3024851,0.31562397,0.33380028,0.35698804,0.37010095,0.37306109,0.40216914,0.4275121,0.44789552,0.48375477,0.51426499,0.54090626,0.55895273,0.5821405,0.6151954,0.64321287,0.68532996,0.72661613,0.76470847,0.81274584,0.86418477,0.91505245,0.95924683,0.99840378,1.0340034,1.0655263,1.0972309,1.129429,1.1545901,1.1630032,1.1458136,1.1109411,1.0691615,1.0430396,1.0257981,1.0118802,1.0243699,1.0473759,1.0740432,1.1012557,1.1058257,1.0865588,1.0296151,0.94260253,0.85847222,0.7994252,0.77800313,0.78441677,0.85003322,0.97573534,1.1205226,1.2745278,1.4241187,1.5517943,1.6516081,1.7120833,1.7533695,1.8149871,1.8747612,1.9138143,1.9566844,1.9952961,2.0166922,2.0158093,1.9858963,1.9445582,1.8905486,1.8242311,1.7574981,1.6813394,1.5776566,1.4635354,1.3381448,1.2074572,1.0884284,0.98381081,0.89529222,0.8227428,0.76787634,0.72373389,0.68642054,0.65219716,0.61187173,0.56772928,0.5355832,0.5170953,0.51431692,0.51330424,0.52262609,0.54199683,0.55778425,0.58055656,0.6069901,0.63074912,0.64926298,0.66904919,0.69607994,0.72404548,0.75029726,0.77478333,0.78857136,0.80306047,0.81233038,0.81072048,0.7961275,0.76424108,0.72105938,0.66424545,0.61379323,0.55960188,0.50665691,0.46848667,0.43467875,0.4104783,0.38321385,0.35465109,0.3294899,0.30536735,0.27846642,0.25081247,0.22393751,0.20064588,0.19371292,0.19602391,0.18994783,0.16901911,0.14723352,0.12100771,0.096313905,0.074580241,0.064713105,0.066452837,0.069309113,0.070711285,0.075566954,0.094262579,0.11365929,0.12620094,0.13601614,0.14211819,0.13586035,0.11630784,0.09722272,0.084499308,0.066400905,0.040590556,0.022596016,0.0049650033,-0.027648476,-0.051615229,-0.059664734,-0.063170164,-0.054523437,-0.034295809,-0.013081468,0.0019269643,0.019480079,0.04386229,0.060454657,0.06811467,0.078189535,0.086135176,0.091276472,0.097793975,0.10293527,0.1098163,0.12773294,0.14235188,0.15603604,0.1780034,0.20093151,0.21895201,0.2429707,0.28145253,0.34309616,0.40357131,0.40819328,0.37155505,0.34013602,0.33013905,0.32206358,0.31881781,0.33995425,0.36495965,0.37147715,0.36503755,0.36856895,0.35633889,0.35574167,0.33286549,0.27428587,0.23941334,0.22391155,0.22965006,0.24593084,0.24969593,0.24881308,0.18550762,0.14274137,0.12256568,0.080630353,0.089614639,0.12633077,0.16585124,0.22245744,0.27979069,0.32938603,0.38773196,0.4423907,0.48528677,0.52989661,0.57757045,0.63711083,0.71012763,0.80825369,0.92512732,0.98383677,0.93354035,0.94735434,0.9823567,0.98375888,0.94818526,0.82907854,0.57388326,0.26956003,-0.094770963,-0.2410123,-0.35134245,-0.39696497,-0.42093172,-0.4370567,-0.43043533,-0.40870167,-0.39062923,-0.38096982,-0.35007011,-0.30821268,-0.28045487,-0.24475142,-0.19746707,-0.14410664,-0.074387539,0.006678769,0.076787363,0.1548416,0.23772554,0.33154122,0.39707977,0.43569143,0.48796128,0.51790025,0.57102699,0.6282304,0.65198943,0.68218806,0.7163595,0.72017653,0.69828707,0.716749,0.71724235,0.68722549,0.71955334,0.73110827,0.74419521,0.73103038,0.67393082,0.63607218,0.54809888,0.49315451,0.40310392,0.21020142,0.21708245,0.16605897,0.078033738,0.022647949,-0.09809463,-0.18801539,-0.22065484,-0.30584976,-0.43806938,-0.50054393,-0.5781048,-0.65704189,-0.72992886,-0.80058274,-0.87744253,-0.95308192,-1.025865,-1.0990117,-1.1596166,-1.2150544,-1.2728031,-1.3257221,-1.3707993,-1.387911,-1.3824841,-1.3800692,-1.3800692,-1.3678392,-1.3853403,-1.4681983,-1.513691,-1.5609494,-1.667852,-1.7304045,-1.7947486,-1.8840202,-1.9350956,-1.953921,-1.9772127,-2.0525405,-2.064381,-2.0734951,-2.0678086,-2.0301317,-2.0126565,-2.0324167,-1.9863268,-1.9337973,-2.0184469,-2.0272494,-2.0179795,-2.0028672,-2.0181353,-2.0275351,-1.9962978,-1.9587767,-1.9473776,-1.9206584,-1.8823324,-1.8467068,-1.7978645,-1.7507879,-1.7051913,-1.6564529,-1.6136866,-1.5720889,-1.5328021,-1.4838299,-1.419356,-1.3765898,-1.3582836,-1.3183996,-1.2941992,-1.2594305,-1.2009547,-1.1477761,-1.1005177,-1.0357062,-0.96476668,-0.87362551,-0.76976093,-0.64779794,-0.52705536,-0.38372224,-0.17256554,0.064661173,0.29511072,0.54654091,0.84907248,1.2244391,1.8998445,2.3244689,2.8636559,3.2245334,3.3625175,3.2648069,2.9722463,2.4641927,1.9066217,1.3108544,0.90193955,0.35446933,-0.032971536,-0.29320425,-0.55167127,-0.691473,-0.77391551,-0.84477712,-0.87375534,-0.91078307,-0.94308495,-0.94838205,-0.95051127,-0.95308192,-0.95853481,-0.96022261,-0.95874254,-0.96019664,-0.95946959,-0.95788565,-0.95936573,-0.9621441,-0.96100159,-0.96242973,-0.96133915,-0.96058613,-0.96204024,-0.96209217,-0.95902817,-0.95191344,-0.9440457,-0.9391381,-0.94087783,-0.94274739,-0.93952759,-0.94178664,-0.94394183,-0.94311092,-0.94378604,-0.95139412,-0.95051127,-0.94498048,-0.94503241,-0.9441236,-0.94417553,-0.94238387,-0.94046237,-0.93947566,-0.94176068,-0.94801852,-0.94858977,-0.953783,-0.95705474,-0.95736633,-0.95471778,-0.95484762,-0.96224797,-0.96217007,-0.96063807,-0.96772682,-0.96884337,-0.96775279,-0.97206317,-0.97484155,-0.97876244,-0.98185241,-0.98115132,-0.9870716,-0.99242063,-0.99795142,-1.0012232,-1.0011453,-1.009013,1 +-0.10375691,-0.095309833,-0.0802619,-0.068881111,-0.051379986,-0.038431177,-0.023408535,-0.010586179,-0.0076777549,-4.1934038E-4,0.012150109,0.034178259,0.059645937,0.080106067,0.09952928,0.12084929,0.13781931,0.14899778,0.16101083,0.17340325,0.18025701,0.19621541,0.21417176,0.21396944,0.21745955,0.232988,0.24277548,0.25334697,0.26176875,0.27163211,0.27810651,0.27886523,0.293812,0.30800005,0.31166719,0.32911774,0.34239532,0.35026071,0.36229906,0.36869759,0.37198538,0.38159582,0.41270331,0.43726053,0.4570631,0.48432641,0.5165214,0.54831174,0.57312186,0.60056221,0.62385489,0.64143189,0.66179085,0.67888733,0.69014166,0.69163381,0.68495708,0.67195769,0.64851327,0.62909005,0.61530665,0.60660667,0.60764359,0.6173299,0.63245371,0.64345514,0.64479554,0.63725893,0.61232236,0.57051692,0.53207515,0.50339556,0.49426563,0.50286445,0.54155914,0.60620202,0.68359139,0.77081881,0.84972562,0.91153595,0.95738789,0.98718026,1.0117628,1.0385456,1.056856,1.0755458,1.0959806,1.110978,1.1123437,1.0974222,1.0808315,1.0587022,1.0229159,0.99185903,0.96214253,0.92332139,0.87003401,0.81120797,0.75116799,0.69090038,0.6340976,0.57914103,0.53455363,0.49618772,0.46376512,0.44092767,0.42866171,0.41738208,0.39583445,0.36917811,0.35198048,0.34677061,0.34659357,0.3505642,0.35430722,0.35483832,0.35964354,0.37097375,0.38063478,0.38700802,0.39563213,0.40425624,0.41126174,0.42059399,0.42552567,0.42711898,0.4327335,0.44350731,0.44631458,0.44315325,0.43586954,0.42155504,0.40147427,0.37061968,0.33984097,0.31060499,0.29242101,0.27858703,0.26214811,0.25397924,0.24907285,0.23561823,0.22186012,0.21505694,0.20337266,0.19262414,0.18260904,0.17598289,0.17524947,0.17833492,0.17590702,0.16174426,0.14834022,0.1359731,0.12507283,0.11743506,0.11601878,0.11753622,0.11988825,0.11958476,0.12315074,0.13372223,0.14022192,0.14505244,0.15175446,0.15504224,0.15134981,0.14530534,0.13966553,0.1335199,0.12823416,0.12436469,0.12077342,0.11667634,0.1070406,0.097885389,0.095836846,0.097379576,0.10339875,0.11695453,0.13061148,0.13878036,0.15048993,0.16293292,0.1732768,0.18007998,0.18536572,0.18946281,0.19376222,0.20410609,0.20810201,0.21088398,0.21981158,0.22729761,0.23501125,0.240297,0.24869349,0.255699,0.26255276,0.27727192,0.30443407,0.33078692,0.32421135,0.29060009,0.2619205,0.24656908,0.2321787,0.21652379,0.21925518,0.22954848,0.23420195,0.2451528,0.25261354,0.24694844,0.24859233,0.24072694,0.22046913,0.21442467,0.22084849,0.23523887,0.24945221,0.25365046,0.25913853,0.23761619,0.21955867,0.21725722,0.20142528,0.20951829,0.23574468,0.2578487,0.281369,0.30410529,0.31460091,0.33025582,0.3589607,0.38344204,0.40210653,0.4192283,0.45046224,0.48989035,0.54102803,0.60357179,0.64638885,0.6378912,0.64009148,0.66775944,0.68214982,0.66318184,0.58574189,0.43602128,0.27803064,0.093788304,0.010506217,-0.040682044,-0.059624735,-0.073155229,-0.088000837,-0.092957803,-0.093994719,-0.10024151,-0.10666533,-0.10239121,-0.10077261,-0.11099003,-0.11587113,-0.118906,-0.11465717,-0.098041222,-0.082032245,-0.083701427,-0.079907831,-0.078820333,-0.066959022,-0.057019799,-0.059827061,-0.056058755,-0.063418332,-0.059624735,-0.052593937,-0.05074772,-0.050393651,-0.047864586,-0.036104438,-0.014480938,0.0065608771,0.0063332613,-0.026418121,-0.051708764,-0.072320638,-0.083878462,-0.1089162,-0.1353955,-0.15249198,-0.18251197,-0.19662415,-0.25575367,-0.31318872,-0.31240471,-0.33911163,-0.38071474,-0.41164519,-0.46247939,-0.50997521,-0.5486699,-0.59697503,-0.67370684,-0.73784391,-0.81113619,-0.87818168,-0.95223269,-1.0353883,-1.1238297,-1.2192513,-1.3227406,-1.4265587,-1.5322736,-1.6453986,-1.7694239,-1.8956495,-2.0311568,-2.153083,-2.2702798,-2.3880584,-2.5019421,-2.5906364,-2.6849705,-2.8168359,-2.9135726,-2.9857015,-3.0655441,-3.1270762,-3.1758872,-3.2354213,-3.2762404,-3.2837012,-3.2593969,-3.2750265,-3.2899733,-3.2815262,-3.2567161,-3.1967772,-3.1176681,-3.0858525,-3.0373956,-2.884716,-2.8491321,-2.8425059,-2.7843627,-2.7097553,-2.6253605,-2.5352246,-2.4630198,-2.3604663,-2.2508819,-2.1649696,-2.0845706,-1.958345,-1.8721039,-1.7702585,-1.6702846,-1.5590817,-1.4185921,-1.3555931,-1.2629029,-1.1692517,-1.0755246,-0.98129163,-0.87216251,-0.79823796,-0.68647861,-0.6140715,-0.53278737,-0.44955587,-0.3802848,-0.30016404,-0.21384708,-0.11958885,-0.017465234,0.088831338,0.18832473,0.30574918,0.46116018,0.63002581,0.7854621,0.94246641,1.1365215,1.36611,1.7575585,2.0185074,2.3500171,2.5839556,2.6806923,2.6235102,2.4581093,2.1586934,1.8248316,1.4679301,1.2360908,0.92913824,0.71037418,0.56763379,0.42595561,0.36207144,0.33139389,0.29874367,0.29302799,0.28468208,0.27208734,0.27846058,0.29097945,0.29532944,0.29145997,0.30064047,0.30673552,0.30751953,0.31960845,0.33088808,0.32861192,0.32699332,0.33063518,0.3329872,0.33501046,0.33865231,0.34487381,0.35238513,0.36194499,0.36563742,0.36642143,0.3732752,0.37992664,0.38235454,0.38427663,0.38351791,0.38549058,0.38389727,0.38207634,0.37744816,0.37924379,0.38829784,0.39388707,0.39464579,0.39560684,0.40233415,0.40536902,0.403017,0.39798416,0.39140859,0.39376062,0.39234434,0.38938534,0.38819668,0.39259725,0.39090278,0.38508593,0.38794377,0.39082691,0.39214202,0.39024522,0.38829784,0.38452954,0.37714467,0.37142898,0.37125195,0.37259235,0.36806533,0.36432231,0.36090807,0.35549588,0.35600169,0.35046304,1 +-0.20809963,-0.19696822,-0.17793435,-0.15431197,-0.12104519,-0.10524029,-0.07949359,-0.041510835,-0.025281068,-0.0092212452,0.027401948,0.073839476,0.12295364,0.17495688,0.22479331,0.28907509,0.34906574,0.38288484,0.42473385,0.46535076,0.49334923,0.51624935,0.54913374,0.57012198,0.5809135,0.60780733,0.63261933,0.6448129,0.64115908,0.6479144,0.64545019,0.62654379,0.62335731,0.61821647,0.61260828,0.6231024,0.62730854,0.63559337,0.65212054,0.66546124,0.6870018,0.7118138,0.75850624,0.81768966,0.87113743,0.92543493,0.95674733,0.96354514,0.96167574,0.94022016,0.89446241,0.84254415,0.78858655,0.728256,0.68972092,0.66134007,0.62284748,0.58562948,0.54594727,0.52274975,0.51289293,0.49228707,0.47503763,0.4717237,0.4745278,0.47597233,0.47949869,0.48179295,0.46730513,0.43828698,0.39877472,0.36049456,0.32578325,0.28236225,0.258315,0.245909,0.25661555,0.29761483,0.34915072,0.40451037,0.4518826,0.49844759,0.54441776,0.59140762,0.62854064,0.6562842,0.66580113,0.66656588,0.66813788,0.65114336,0.62471688,0.59531636,0.56485368,0.5477317,0.53094961,0.50843187,0.46951441,0.42515871,0.37311299,0.30411524,0.25500107,0.22980669,0.19879169,0.16255088,0.15464842,0.16688448,0.17733611,0.1866831,0.18753282,0.18634321,0.18719293,0.19496793,0.21731572,0.23979097,0.26439054,0.29544803,0.32535839,0.35089266,0.37290056,0.39843483,0.42626336,0.44844121,0.47210608,0.49929731,0.5244492,0.54365301,0.56170969,0.57946896,0.5864792,0.59026049,0.58537456,0.57050435,0.54598976,0.51021629,0.47864897,0.44007141,0.40939629,0.38730342,0.35429156,0.33109404,0.30997835,0.27802865,0.25538345,0.24335982,0.2241985,0.2074589,0.18825509,0.16747929,0.16760675,0.17771849,0.18217955,0.17601903,0.16709691,0.15864214,0.15745252,0.15613544,0.15868462,0.17262013,0.18583337,0.19084675,0.20801122,0.24195778,0.26736458,0.28775801,0.31095553,0.33015934,0.33763693,0.33483283,0.32489104,0.31184774,0.28899011,0.26281855,0.25143222,0.23800655,0.20414497,0.1804801,0.18247695,0.18455878,0.19042189,0.20928581,0.22458088,0.22959426,0.23346052,0.26073672,0.27870843,0.27760378,0.28265965,0.28690828,0.29421593,0.30309557,0.31388709,0.32289418,0.34558187,0.36189661,0.36678253,0.40136638,0.43781963,0.45800062,0.48778352,0.51777885,0.56306925,0.63202452,0.69125043,0.74117183,0.79589419,0.87275191,0.93287003,0.98495824,1.0580347,1.1124596,1.1139467,1.104982,1.1066815,1.072395,1.0658522,1.028974,0.95203135,0.90950256,0.86965041,0.82508228,0.79487452,0.75765652,0.72494206,0.63376646,0.59055789,0.57624001,0.51344525,0.50184649,0.49853256,0.47635471,0.49487874,0.54883634,0.55100314,0.57560271,0.63873736,0.67727243,0.71393811,0.74920174,0.78450786,0.83064799,0.87406899,0.93134052,0.95198887,0.83472667,0.82584703,0.86718621,0.8758959,0.84063227,0.80689814,0.73488386,0.60415351,0.39516338,0.32336153,0.25508604,0.23983346,0.23367295,0.23571229,0.26519778,0.30296811,0.3364898,0.35769046,0.4326363,0.51140591,0.54938866,0.58809368,0.66401671,0.76938274,0.89301788,1.0075609,1.0502172,1.1910168,1.3324112,1.480561,1.5773023,1.6336391,1.7262592,1.7336943,1.8214286,1.9168953,1.9660944,2.0303337,2.0876902,2.0518743,2.001443,2.058842,2.0508546,1.9671141,2.0399356,2.0814022,2.1408831,2.1413504,2.0523416,2.0144863,1.8865601,1.8282689,1.7049736,1.3510202,1.4255837,1.3602822,1.2169759,1.1568153,0.97225483,0.8451783,0.81331357,0.67850454,0.45885035,0.38076053,0.27768876,0.16493011,0.057397277,-0.056763418,-0.16833245,-0.28482989,-0.38679702,-0.4910584,-0.58278633,-0.66843872,-0.77320994,-0.85932967,-0.91485927,-0.9433251,-0.96303874,-0.98462178,-0.99872723,-0.9774416,-1.0346706,-1.1963735,-1.2089919,-1.2599755,-1.4526084,-1.522116,-1.6160532,-1.7619512,-1.8249584,-1.8456492,-1.9383968,-2.0791964,-2.0723136,-2.1056229,-2.1050706,-2.0463545,-2.1207905,-2.1933571,-2.0751602,-2.0538746,-2.2854674,-2.2637569,-2.2714044,-2.2746334,-2.3134659,-2.3399348,-2.2956641,-2.2667309,-2.3086224,-2.2949418,-2.2419614,-2.2481644,-2.2024067,-2.1668456,-2.1261013,-2.1094891,-2.1126331,-2.0435504,-2.0209477,-1.995201,-1.9308767,-1.9200002,-1.9515675,-1.9335109,-1.9514401,-1.8853739,-1.8365996,-1.7882927,-1.7285994,-1.6796552,-1.61822,-1.5370712,-1.4682859,-1.3838656,-1.2916278,-1.2046583,-1.089478,-0.96210404,-0.86447052,-0.79492044,-0.69813664,-0.59493741,-0.33793777,-0.13748739,0.098311587,0.26851172,0.35123255,0.34222545,0.25406637,0.1054068,-0.068447151,-0.26333182,-0.39958539,-0.59234575,-0.71479127,-0.80426743,-0.895528,-0.9231441,-0.94408985,-0.97535977,-0.99235429,-1.002551,-0.98989008,-0.98508913,-0.97739911,-0.97608203,-0.97446755,-0.9650356,-0.95857768,-0.95454148,-0.95653834,-0.95488137,-0.94617168,-0.94676649,-0.94311266,-0.93767442,-0.93045175,-0.92675544,-0.92726527,-0.91906542,-0.90946351,-0.91201269,-0.89714248,-0.8924265,-0.90100874,-0.89824713,-0.89323374,-0.8849914,-0.88924003,-0.89629276,-0.90385532,-0.9067019,-0.89004727,-0.88316449,-0.88044537,-0.8809552,-0.88503389,-0.8952306,-0.89884194,-0.88507637,-0.88749809,-0.89200164,-0.88911257,-0.89263894,-0.89650519,-0.90292062,-0.90593715,-0.90105122,-0.90716925,-0.915709,-0.9222094,-0.92263427,-0.91226761,-0.91957525,-0.92373891,-0.92658549,-0.93117401,-0.93423303,-0.94659654,-0.95046279,-0.952927,-0.97051633,-0.9796084,-0.9681371,-0.98033066,1 +-0.42801922,-0.44440692,-0.47502919,-0.48268475,-0.48459864,-0.4619908,-0.44895241,-0.4659382,-0.46952675,-0.46079462,-0.44321074,-0.4508663,-0.4619908,-0.43866524,-0.38256429,-0.36593736,-0.34117639,-0.2940468,-0.29380757,-0.28148689,-0.23447693,-0.19320864,-0.18603154,-0.16402179,-0.10457153,-0.068566442,-0.069164533,-0.036747993,0.024735777,0.068516049,0.10057374,0.11959303,0.14291859,0.15535888,0.16361254,0.21803884,0.2526085,0.24447447,0.26660384,0.33717859,0.38311199,0.40703564,0.42964348,0.44100722,0.4947158,0.5406492,0.56852025,0.60966892,0.6312002,0.66672682,0.68969352,0.68072215,0.66732491,0.65727698,0.66206171,0.65129606,0.60344877,0.56397476,0.51828059,0.46851941,0.44136607,0.40631793,0.39196374,0.37485834,0.36588697,0.34399683,0.3201928,0.33693936,0.32294402,0.25141232,0.1784452,0.13263142,0.080238636,0.038611492,0.030597071,0.069951468,0.13035867,0.22868486,0.33717859,0.3864613,0.42258601,0.46050499,0.48191665,0.56457285,0.64926255,0.67605704,0.71959807,0.76876117,0.80392893,0.82964685,0.8706759,0.8838339,0.86529308,0.84746996,0.86696773,0.89998236,0.85464706,0.78813932,0.70823434,0.58466871,0.48777794,0.43215547,0.37414063,0.29208252,0.24973767,0.25751285,0.26038369,0.25524011,0.22844562,0.17533513,0.14650714,0.13885157,0.11684181,0.11325327,0.137775,0.16444987,0.17700978,0.18095719,0.18849313,0.19411519,0.21612494,0.21660342,0.1961487,0.215168,0.24614912,0.24543141,0.24315866,0.27055124,0.27796757,0.27318284,0.27581444,0.24746492,0.2138522,0.17270353,0.10368381,0.053563771,-0.0014606149,-0.037346084,-0.040456158,-0.04368585,-0.052059126,-0.077777046,-0.096796344,-0.12048075,-0.16617492,-0.20098382,-0.22072083,-0.22550556,-0.24129517,-0.25505126,-0.23854395,-0.25816134,-0.30361626,-0.32753991,-0.33244426,-0.33005189,-0.3294538,-0.3445257,-0.37610491,-0.3819662,-0.36569812,-0.36521965,-0.35433439,-0.32395136,-0.28148689,-0.2697643,-0.28172613,-0.29416642,-0.30756366,-0.30923832,-0.32849686,-0.35529134,-0.37072209,-0.37885613,-0.3970381,-0.42060289,-0.43854563,-0.44380883,-0.45911996,-0.45565103,-0.41677511,-0.39584192,-0.38304277,-0.39285146,-0.40062665,-0.39955008,-0.39596154,-0.39021986,-0.38543513,-0.3806504,-0.3727556,-0.36892782,-0.35277936,-0.33435815,-0.32442984,-0.31797045,-0.32765953,-0.32670258,-0.30206123,-0.25122348,-0.18017025,-0.14093547,-0.11330366,-0.11378213,-0.14380631,-0.14189242,-0.1214377,-0.10361458,-0.068925297,-0.028374717,0.013013191,0.042678512,0.033587526,0.00631457,-0.012226256,-0.037226466,-0.045838978,-0.064020949,-0.10732275,-0.1103132,-0.096557108,-0.12227503,-0.16772995,-0.21282603,-0.25433355,-0.29213291,-0.33399929,-0.33591319,-0.31653503,-0.31414267,-0.30289855,-0.30445359,-0.25481203,-0.19631871,-0.1929694,-0.13938043,-0.076222009,-0.047154779,0.009424644,0.0813152,0.17198582,0.2650488,0.33693936,0.37318368,0.41564815,0.51696479,0.60512343,0.64352088,0.57773085,0.42904539,0.22665135,-0.079092846,-0.23818509,-0.37108094,-0.4403399,-0.47790002,-0.49859398,-0.53435983,-0.57012568,-0.5794559,-0.56581942,-0.53998189,-0.55684806,-0.5879488,-0.56940797,-0.55684806,-0.53890532,-0.48663215,-0.38077002,-0.44273226,-0.45768454,-0.40744489,-0.35265974,-0.28698933,-0.22538594,-0.23878318,-0.23423769,-0.10445191,-0.01461862,0.055118808,0.078444363,0.066004067,0.055597281,-0.058757747,-0.14500249,-0.048590197,0.31720235,0.46289735,0.61002778,0.77139277,0.82402479,0.87749414,0.90369053,0.87450368,0.85775713,0.83227845,0.89711153,0.92151365,0.93180081,0.9218725,0.89878618,0.90010198,0.90261397,0.88814016,0.83574737,0.80871365,0.82115395,0.81421609,0.8188812,0.84268523,0.85524515,0.88227887,0.91014991,0.90715946,0.93515012,0.9743849,1.0046483,1.0741465,1.1569223,1.2363488,1.3332396,1.4426903,1.5613516,1.714104,1.8345596,1.9840824,2.1534618,2.2211657,2.2653048,2.3812149,2.4800196,2.5230821,2.5982024,2.6711695,2.6775093,2.6659063,2.7117201,2.6935381,2.6667436,2.6356429,2.5900683,2.4906656,2.4266698,2.4320527,2.2790609,2.0303746,1.9777426,1.8809715,1.7733151,1.6477159,1.4953223,1.4330012,1.3405363,1.1615874,1.0499836,0.97139445,0.78586657,0.68311451,0.58610413,0.49914168,0.39591114,0.23968974,0.15619621,0.033109053,-0.040456158,-0.10540886,-0.17729941,-0.24727608,-0.30265932,-0.3674924,-0.37777957,-0.4363925,-0.47191911,-0.49608199,-0.5145032,-0.51701519,-0.52670426,-0.52263724,-0.48447903,-0.40254054,-0.30062581,-0.14715562,0.025692723,0.16014361,0.22904371,0.29626916,0.47222757,1.0490267,1.3680485,1.8383874,2.2495152,2.4230813,2.3345638,2.0647051,1.6455628,1.1472332,0.59364008,0.23478539,-0.22610365,-0.59153734,-0.8392667,-1.1041015,-1.2383131,-1.3134334,-1.368697,-1.4109222,-1.4797027,-1.5039852,-1.5547033,-1.5898711,-1.5763542,-1.5844883,-1.6197756,-1.639393,-1.630302,-1.6236034,-1.6288666,-1.6622401,-1.6905896,-1.6792259,-1.6887954,-1.7000395,-1.6853264,-1.6974079,-1.7131975,-1.7225277,-1.7411881,-1.7542265,-1.7568581,-1.7385565,-1.7303029,-1.7287479,-1.7240827,-1.7444178,-1.7616429,-1.7664276,-1.7634371,-1.7588916,-1.7617625,-1.7660687,-1.7797052,-1.7759971,-1.7730066,-1.783533,-1.7877196,-1.7621213,-1.7401116,-1.7588916,-1.7971695,-1.809849,-1.8091313,-1.7940594,-1.7858057,-1.801715,-1.7902316,-1.8060212,-1.8283898,-1.7927436,-1.7751597,-1.7775521,-1.7942986,-1.7892747,-1.7921455,-1.8231266,-1.8198969,-1.8110452,-1.807337,-1.7805425,-1.7826957,-1.7977676,1 +-0.24443664,-0.25150433,-0.25981222,-0.26466846,-0.26726841,-0.26794081,-0.26832931,-0.26653624,-0.26314435,-0.25706285,-0.24602052,-0.23327477,-0.22507147,-0.21344639,-0.19712944,-0.1807826,-0.16216455,-0.14542921,-0.1299042,-0.11073328,-0.087034857,-0.061752551,-0.039727658,-0.025487683,-0.0092902715,0.013959887,0.031397506,0.04536852,0.060385493,0.072907108,0.084771263,0.092899853,0.10141694,0.11275812,0.13009114,0.15000918,0.17318462,0.19873589,0.22088032,0.23918459,0.26049226,0.28843428,0.30930862,0.335607,0.36487889,0.38889111,0.40816662,0.42663526,0.4406511,0.44323611,0.44384874,0.44614985,0.44372921,0.43377766,0.42573872,0.40876431,0.38147974,0.35745259,0.33234959,0.30448227,0.27809424,0.2659163,0.26633468,0.27483683,0.28673087,0.29466521,0.29744447,0.28000685,0.24674538,0.20870238,0.16504109,0.12647511,0.09856297,0.091764241,0.11553738,0.15567229,0.21345402,0.28934576,0.36114333,0.42062847,0.46827934,0.5075476,0.53723788,0.56540404,0.60335738,0.63915904,0.66896885,0.69399714,0.70847619,0.71165889,0.7106727,0.69933153,0.67787444,0.65532657,0.63723149,0.61720886,0.57374182,0.51349462,0.44801763,0.38545439,0.32756807,0.27592761,0.23398468,0.19976691,0.17892245,0.17030077,0.16475719,0.15647917,0.14430123,0.12577283,0.11523853,0.11398338,0.11652357,0.12680384,0.13717377,0.15029308,0.17118236,0.19549342,0.21711487,0.23754094,0.25233378,0.26649904,0.27918502,0.28951013,0.30727648,0.32265206,0.33586102,0.3492194,0.35146074,0.34690335,0.33720582,0.32091876,0.29887892,0.26094052,0.2225688,0.19023374,0.15646423,0.12841761,0.10527205,0.082126483,0.05963838,0.034625034,0.013631157,1.2335314E-4,-0.014520063,-0.032884102,-0.054923937,-0.070688023,-0.077023542,-0.080534973,-0.084883171,-0.096732384,-0.10940342,-0.11844349,-0.13056166,-0.1469085,-0.15697958,-0.16256799,-0.16425646,-0.15905656,-0.15264633,-0.14487635,-0.13747993,-0.13493975,-0.12993409,-0.1277824,-0.12920192,-0.12791688,-0.13734545,-0.15021074,-0.15772669,-0.17477581,-0.19621796,-0.21308777,-0.23245294,-0.25053308,-0.26181449,-0.26426502,-0.25982717,-0.24959172,-0.23178054,-0.21800378,-0.22311403,-0.22072327,-0.21452223,-0.21054759,-0.20636376,-0.21120505,-0.20881429,-0.20566147,-0.20699133,-0.20243394,-0.18819397,-0.17172759,-0.17680796,-0.15832439,-0.12769275,-0.12214917,-0.099646125,-0.067834051,-0.046347079,-2.502034E-4,0.028752726,0.024150509,0.022178131,0.050941984,0.078689763,0.07886907,0.1065272,0.14555638,0.14636326,0.12565329,0.12605673,0.092092971,0.093109045,0.084128746,0.030381432,0.010224322,-0.0019685634,-0.017717707,-0.018703896,-0.019152164,-0.018957914,-0.09591056,-0.14048333,-0.14920961,-0.1876411,-0.17668842,-0.15759221,-0.15623247,-0.11965381,-0.049978049,-0.030149668,-0.011441957,0.039974364,0.069007178,0.10808119,0.15389416,0.17514206,0.22348027,0.29482957,0.37807291,0.4307145,0.33109444,0.31305913,0.35464344,0.37175233,0.32918183,0.28323438,0.20478751,0.073205953,-0.17934815,-0.27789236,-0.35332089,-0.36929417,-0.37347801,-0.38108362,-0.35260367,-0.31393309,-0.27793719,-0.2880531,-0.24625959,-0.16539207,-0.12437557,-0.10067714,-0.047378095,0.034580208,0.15689756,0.26924842,0.25505327,0.36174102,0.46310932,0.57093268,0.66798266,0.70668312,0.80406184,0.82530973,0.8578988,0.94886729,0.9844747,1.0399105,1.1190895,1.1003519,1.0082478,1.065402,1.1062242,1.0062306,1.0981255,1.145627,1.2001513,1.263118,1.2164085,1.2074132,1.1578049,1.1276813,1.1319249,0.81053183,0.8593482,0.86170908,0.80350897,0.80685604,0.71907025,0.65211398,0.69460977,0.67367566,0.56298339,0.5677948,0.57971873,0.58354394,0.5997563,0.61986858,0.6518749,0.68654095,0.74348591,0.801432,0.8723928,0.95914757,1.064117,1.1778574,1.3137573,1.4721752,1.6446686,1.8093473,1.9892222,2.1826498,2.3196106,2.3617477,2.4933144,2.6033641,2.5736589,2.6059491,2.6264798,2.6047986,2.6445749,2.6958268,2.6260763,2.4797468,2.5160714,2.5080923,2.4961384,2.5074198,2.3444147,2.2070206,2.2846606,2.1549319,1.79182,1.793628,1.7249086,1.6447882,1.5042562,1.3169251,1.2733236,1.19661,0.99131825,0.8675515,0.82755107,0.62590525,0.5495503,0.46781613,0.39246231,0.30575236,0.029948107,0.0084312504,-0.075768392,-0.17516431,-0.19723403,-0.26196391,-0.4360562,-0.44766633,-0.62976767,-0.66398545,-0.67493813,-0.75771825,-0.78174541,-0.8084024,-0.81647122,-0.81996771,-0.82745379,-0.86352441,-0.85125681,-0.79386358,-0.73639565,-0.65723155,-0.5584632,-0.48224272,-0.37014588,-0.22315886,-0.014206275,0.18581083,0.3947933,0.50893723,0.53965852,0.46236221,0.32208426,0.058906209,-0.2443171,-0.55330812,-0.73349685,-1.0043104,-1.2097067,-1.330231,-1.4814467,-1.55952,-1.5955159,-1.6477391,-1.6613067,-1.6941946,-1.7353008,-1.7478523,-1.7521855,-1.7566682,-1.7706093,-1.7749575,-1.7857159,-1.7897802,-1.7820999,-1.7857757,-1.8042593,-1.8069937,-1.8103856,-1.8114316,-1.8217567,-1.8319772,-1.8307669,-1.8314094,-1.8331576,-1.8369231,-1.8410173,-1.8376851,-1.8394931,-1.8439609,-1.8450068,-1.840569,-1.8442896,-1.8524182,-1.840554,-1.8579319,-1.8693627,-1.8607709,-1.8602629,-1.865149,-1.8690489,-1.8553319,-1.8535837,-1.869034,-1.8678834,-1.8691236,-1.8669122,-1.8654927,-1.866434,-1.8643122,-1.8644467,-1.8691834,-1.8707374,-1.8668225,-1.8619364,-1.8710213,-1.880674,-1.8750408,-1.8693627,-1.8697363,-1.8704834,-1.870334,-1.8684064,-1.86488,-1.8643421,-1.8604272,-1.868257,-1.8716041,-1.8679731,2 +-0.25417367,-0.25821344,-0.25569686,-0.25441649,-0.25600591,-0.25616044,-0.25260632,-0.24706542,-0.24558637,-0.23838983,-0.21719754,-0.19640261,-0.18468063,-0.16101591,-0.13891853,-0.12708617,-0.10417202,-0.075452053,-0.048012458,-0.020705314,0.0090080367,0.035410093,0.063423646,0.082121423,0.10337994,0.13181292,0.15618405,0.17017979,0.17951764,0.19095264,0.19722203,0.20258632,0.2064495,0.20810515,0.21194625,0.21748715,0.22519143,0.24274129,0.26492697,0.2800927,0.29651672,0.31269791,0.32788572,0.34656142,0.35510456,0.36801861,0.3808002,0.3768708,0.36649541,0.3510427,0.32759874,0.30342628,0.27784101,0.24852502,0.22159316,0.20031257,0.17872293,0.16011345,0.14210001,0.12441769,0.12073112,0.12304903,0.11746398,0.11576418,0.12342431,0.12609542,0.12037791,0.10741971,0.094373214,0.078677677,0.060686309,0.039670625,0.015409873,-0.010153322,-0.026268289,-0.033641439,-0.041213266,-0.042118353,-0.034016719,-0.024347738,-0.0061356177,0.010840286,0.021944161,0.0396044,0.057595767,0.067927007,0.076139018,0.088280431,0.086713085,0.08077483,0.076999954,0.068368513,0.059428017,0.054218247,0.049052627,0.041458725,0.027109781,0.003400911,-0.016157803,-0.040308179,-0.064061199,-0.073332825,-0.080551447,-0.08448085,-0.081169555,-0.076423366,-0.069977379,-0.063928748,-0.060242173,-0.054590897,-0.046732091,-0.036908583,-0.023089446,-0.0036190337,0.015343647,0.033246714,0.053754666,0.073467907,0.096183388,0.11975981,0.1376408,0.15139371,0.16673604,0.18490401,0.20426405,0.21764168,0.22448502,0.23117383,0.23885604,0.24152715,0.23563305,0.22947404,0.21578735,0.19346923,0.17146015,0.14560998,0.12190111,0.1026956,0.081944821,0.058589156,0.038809689,0.026028091,0.011237642,-0.0042592174,-0.017349869,-0.032537674,-0.0418976,-0.047394349,-0.053994864,-0.052317141,-0.050661494,-0.052935249,-0.05523108,-0.055076553,-0.058233321,-0.062427627,-0.067593247,-0.066754386,-0.059535763,-0.055628436,-0.050264138,-0.039977049,-0.021985682,-0.010374075,-7.49245E-4,0.016866843,0.020994923,0.0091846391,-0.0051643046,-0.016157803,-0.024656793,-0.043133817,-0.062118573,-0.077394679,-0.093266819,-0.10423824,-0.11227365,-0.11710814,-0.1141942,-0.10501088,-0.090728159,-0.074966397,-0.082295395,-0.086092347,-0.077968637,-0.076909023,-0.074701493,-0.075407903,-0.072758867,-0.073067921,-0.076158463,-0.070463036,-0.049469427,-0.025451503,-0.029844488,-0.010661054,0.023975089,0.037418945,0.062783462,0.097750734,0.11589663,0.15183521,0.20077615,0.24254261,0.29267561,0.35607587,0.40598812,0.43404582,0.47691605,0.52930073,0.54499627,0.53896971,0.53832953,0.47852755,0.46219183,0.43720259,0.3544423,0.30762059,0.27230011,0.23064403,0.19989314,0.18066555,0.17655955,0.10918574,0.08039955,0.078765978,0.033158413,0.029074482,0.026226769,0.011524621,0.034946512,0.086823462,0.09556528,0.10212164,0.1450581,0.17190166,0.19967238,0.22991554,0.23338136,0.25519176,0.28338191,0.32305122,0.34435389,0.24090904,0.21121777,0.23059988,0.23947415,0.20333688,0.17435202,0.15064315,0.11243081,-0.0033541302,-0.036334625,-0.063266489,-0.060418775,-0.051875635,-0.041985902,0.0022309202,0.052430148,0.10558747,0.11916377,0.17406504,0.27369086,0.33333831,0.37746683,0.44241236,0.5338924,0.66983208,0.79140075,0.80669893,0.91418355,1.0249353,1.1540979,1.2544963,1.2777637,1.3754028,1.3843653,1.4109881,1.4921811,1.5105919,1.5541244,1.6424476,1.6699535,1.6713442,1.7907495,1.8595803,1.694435,1.6986955,1.6566641,1.6242576,1.6279662,1.5408571,1.5212322,1.4595979,1.4255137,1.4302819,1.0968125,1.1426187,1.1448483,1.0827285,1.0807638,0.9899239,0.9303206,0.97071839,0.93676658,0.83861981,0.84870822,0.85572816,0.85711891,0.8711588,0.88535321,0.91672221,0.95484625,1.0081581,1.058269,1.1219342,1.2047607,1.2993092,1.3978754,1.5216516,1.6642139,1.8122729,1.9578816,2.1074638,2.2657878,2.3618595,2.3631399,2.4661874,2.5428107,2.473715,2.4725009,2.4594765,2.4005354,2.4026105,2.4324342,2.3496739,2.1796942,2.1957208,2.1690759,2.1487446,2.1511949,1.9922087,1.858918,1.9116559,1.7843256,1.4727327,1.4611653,1.3891998,1.2970575,1.1594401,0.98963692,0.93747299,0.86160019,0.67833107,0.56274481,0.52821904,0.3530074,0.27305067,0.19779598,0.12384374,0.034725759,-0.18808022,-0.21704301,-0.2922094,-0.38132738,-0.4214382,-0.49867966,-0.67258886,-0.70996234,-0.88155363,-0.92380575,-0.95713945,-1.0333213,-1.0663018,-1.0992381,-1.1199889,-1.1359494,-1.1530136,-1.1972304,-1.2042062,-1.1931906,-1.1909169,-1.185398,-1.1802324,-1.1832788,-1.1672301,-1.1427486,-1.1304747,-1.0882005,-1.0507387,-1.0399439,-1.0428578,-1.076611,-1.1257506,-1.1939632,-1.2688868,-1.3463049,-1.3859742,-1.4525754,-1.5042095,-1.5308544,-1.5728416,-1.5897071,-1.5939014,-1.6083166,-1.6055793,-1.6217163,-1.6375443,-1.6396635,-1.6425112,-1.6436591,-1.6489351,-1.6446967,-1.6510764,-1.6557343,-1.6468821,-1.6513413,-1.6671914,-1.6615622,-1.6576549,-1.6622465,-1.6639684,-1.6731517,-1.6784277,-1.6769928,-1.6734829,-1.6725116,-1.6766838,-1.6732842,-1.6745646,-1.6725778,-1.6736595,-1.6777655,-1.6773019,-1.6765293,-1.6718714,-1.678494,-1.6828428,-1.685536,-1.685845,-1.6809222,-1.6813196,-1.6788472,-1.6785602,-1.6818053,-1.6784277,-1.6788692,-1.6774785,-1.6742997,-1.6768162,-1.6762423,-1.6738581,-1.6770811,-1.6775889,-1.6771474,-1.6756904,-1.6748736,-1.6801275,-1.6807677,-1.6768604,-1.6729972,-1.6710104,-1.6766617,-1.6767721,-1.6686263,-1.6657786,-1.6640346,-1.6689133,-1.6716727,-1.6669707,2 +-0.27578283,-0.27990749,-0.28080741,-0.28403215,-0.28208231,-0.27570783,-0.2712082,-0.26059657,-0.25264723,-0.24173562,-0.22084984,-0.20225137,-0.18440283,-0.15725506,-0.13670675,-0.115371,-0.088298226,-0.066175044,-0.044014364,-0.026578296,-0.0041176405,0.032516851,0.055464966,0.070426237,0.092961886,0.11542254,0.13105876,0.14605752,0.16593089,0.17886733,0.20661505,0.22693838,0.23841244,0.25442362,0.26638514,0.29747009,0.32690517,0.34839091,0.3788759,0.40272394,0.42619702,0.45750694,0.47663037,0.50479056,0.53988768,0.5676354,0.59230837,0.61473153,0.64476656,0.66160268,0.66917706,0.68462579,0.68301342,0.67063944,0.66970202,0.65196597,0.62549315,0.60483234,0.57153508,0.54153754,0.52147669,0.51273991,0.52518889,0.55282412,0.57183505,0.58240919,0.58679633,0.55214917,0.4957913,0.43268398,0.36665191,0.3058319,0.27804668,0.28873331,0.33009241,0.40617366,0.50970266,0.61964363,0.71878548,0.8062658,0.87207289,0.9328554,0.98456366,1.0352595,1.0848679,1.1358262,1.1764729,1.2036582,1.2164071,1.2132574,1.2145323,1.1881719,1.1424257,1.0987418,1.0465836,0.9912756,0.90548265,0.80911557,0.72662234,0.65294089,0.59215838,0.53130088,0.48832941,0.44723279,0.40718608,0.38390049,0.35922752,0.33567945,0.32000574,0.30890665,0.30605688,0.31138145,0.31228137,0.31708098,0.33766679,0.35900253,0.37943836,0.40276144,0.42705945,0.45146994,0.47246822,0.49901604,0.5274387,0.5445373,0.56223584,0.58353409,0.5944457,0.60651971,0.6139066,0.60014523,0.57757208,0.54892444,0.50760283,0.46189408,0.41498544,0.36687689,0.32514282,0.28723343,0.25757337,0.23012562,0.20140298,0.176805,0.1487573,0.12040963,0.10113621,0.082087779,0.055277481,0.040091228,0.038403867,0.035366616,0.021042793,0.0013194129,-0.0076798479,-0.020278813,-0.035390072,-0.057175783,-0.073711924,-0.077199138,-0.078399039,-0.072811998,-0.062350358,-0.052113698,-0.045589234,-0.030327988,-0.0084297864,0.0030442712,-0.0083172956,-0.031827865,-0.065050136,-0.088523208,-0.097035009,-0.12174548,-0.14596849,-0.16426699,-0.18901495,-0.2153003,-0.2273743,-0.22463703,-0.2189375,-0.19726428,-0.16745423,-0.14848078,-0.15957987,-0.14964319,-0.13295706,-0.13261959,-0.13010729,-0.13396948,-0.12650759,-0.11717086,-0.11402111,-0.1117713,-0.096547549,-0.0764492,-0.095422641,-0.064375191,-0.0059924865,0.0030442712,0.035516604,0.082575239,0.10023629,0.15888147,0.18906649,0.1780424,0.18126713,0.20867738,0.21538933,0.20005309,0.24579933,0.3094691,0.31205639,0.27358455,0.25828581,0.19405358,0.21857657,0.22300121,0.13477095,0.093336855,0.05553996,0.0070189448,-0.0035551867,0.0093812508,0.023930056,-0.083311136,-0.12294538,-0.12384531,-0.18012818,-0.15504274,-0.11927068,-0.10382195,-0.04003969,0.06393927,0.079875461,0.1024861,0.18475435,0.21898903,0.26252296,0.32330547,0.34685353,0.41086078,0.50464057,0.61289418,0.67705141,0.51423978,0.47441806,0.52477642,0.54393735,0.47558046,0.41644782,0.30748177,0.10597332,-0.24799761,-0.3589135,-0.4428691,-0.44703126,-0.44275661,-0.4489811,-0.40083506,-0.33420303,-0.27338302,-0.31095494,-0.25677189,-0.13055726,-0.076749175,-0.055150949,0.0070564417,0.11744737,0.30275715,0.43812104,0.33185476,0.47828024,0.60003274,0.7283097,0.83956306,0.83926309,0.96630265,0.95396617,0.96918992,1.0825806,1.0965295,1.1236397,1.1934215,1.1039164,0.88673419,0.9474792,0.974327,0.8026661,0.97177721,1.0690817,1.156787,1.2486545,1.1691235,1.150225,1.0649196,1.0165485,1.0225855,0.55646132,0.64139184,0.6504661,0.56936026,0.58038435,0.44985757,0.3472285,0.40606117,0.36132734,0.20766496,0.22472606,0.23380032,0.22701338,0.23841244,0.25622348,0.29450783,0.33162978,0.38206314,0.43024668,0.50531552,0.61030689,0.72928462,0.84485013,0.97012734,1.11989,1.2836016,1.4357641,1.6072,1.8150829,1.9366855,1.8822774,1.9909435,2.0963473,2.0087545,2.0350399,2.03294,1.9480845,1.9734699,2.0293403,1.9450473,1.7502883,1.7865478,1.7791609,1.7696367,1.8110708,1.6274109,1.4690614,1.6033378,1.4929469,1.0585826,1.0946921,1.0405466,0.97083978,0.84301278,0.65627812,0.63801712,0.59223338,0.39031246,0.28052148,0.27129724,0.070163758,0.015980709,-0.035502563,-0.074536857,-0.13411946,-0.43274494,-0.40803447,-0.46866699,-0.54534819,-0.51805043,-0.56600899,-0.75960559,-0.73497011,-0.93861589,-0.95500204,-0.93591611,-1.0309333,-1.040945,-1.0539564,-1.0314583,-0.99493626,-0.98679943,-1.034083,-1.0038605,-0.91548029,-0.84386117,-0.74464432,-0.5914694,-0.41924604,-0.18406536,0.050890341,0.35517785,0.67030197,0.98805087,1.1902343,1.3051248,1.2820642,1.1303517,0.74342096,0.28794587,-0.16977903,-0.44035681,-0.87085895,-1.1846332,-1.3642059,-1.6028738,-1.7080527,-1.7461496,-1.819831,-1.8289428,-1.8716143,-1.9280471,-1.9356215,-1.929022,-1.9322093,-1.9554949,-1.9646441,-1.9837675,-1.984405,-1.9566198,-1.9527201,-1.9826801,-1.984705,-1.9889046,-1.9870298,-2.0011661,-2.0133151,-2.0055908,-1.9988413,-1.9944542,-2.0033784,-2.0131651,-2.002591,-2.0047283,-2.0092654,-2.0050283,-1.996029,-2.0010536,-2.0085905,-1.9866923,-2.0177023,-2.0358508,-2.020777,-2.0170273,-2.0256516,-2.0342759,-2.0094154,-2.0048033,-2.0283514,-2.0214145,-2.0254266,-2.0198771,-2.0096029,-2.0029285,-2.0017661,-2.009078,-2.0138776,-2.0117402,-2.009078,-2.0021035,-2.0241892,-2.0478498,-2.0283139,-2.0099029,-2.0115903,-2.0124152,-2.0075031,-2.0123027,-2.0102404,-2.0003037,-1.9952041,-2.0114028,-2.0094904,-2.0044283,2 +-0.19610697,-0.19057197,-0.1903473,-0.18693644,-0.18328048,-0.17547838,-0.17033145,-0.16589936,-0.15168402,-0.13456842,-0.10869078,-0.081240469,-0.055403677,-0.02648281,-0.0024025109,0.019635354,0.042755708,0.069899658,0.093755289,0.10921652,0.1236361,0.13938327,0.15604953,0.1747378,0.18778896,0.19985974,0.2121552,0.21789444,0.22947504,0.24344529,0.25410679,0.26764813,0.28364039,0.30055175,0.32230367,0.34740519,0.36474545,0.3850881,0.41204823,0.43302403,0.45796215,0.47961195,0.50696014,0.55428334,0.59884925,0.63328469,0.67200925,0.72607248,0.76283629,0.78093226,0.79504548,0.8027863,0.81704249,0.82825546,0.8255186,0.81792074,0.79653646,0.75815912,0.72566399,0.6898397,0.65526129,0.64200589,0.64941992,0.67396998,0.70421843,0.73085177,0.73424221,0.7043614,0.65857003,0.60513995,0.54151813,0.48835357,0.46280272,0.46927723,0.51506861,0.59846119,0.70656723,0.82782655,0.94647155,1.0371148,1.1005936,1.1453842,1.1809021,1.2175843,1.2566969,1.2935015,1.3282433,1.3526913,1.3601666,1.3560817,1.3346566,1.296606,1.2430943,1.1864576,1.1258585,1.0551495,0.97661787,0.8888749,0.79118528,0.70099139,0.62182664,0.54868707,0.48443209,0.43290148,0.39225704,0.35972106,0.33116783,0.29965308,0.27628763,0.25079805,0.23233445,0.22765727,0.22808618,0.23868642,0.25124739,0.26889402,0.28937963,0.30880318,0.33392512,0.36104865,0.38282099,0.40046762,0.4222604,0.44985368,0.47511859,0.49462384,0.5075933,0.52015427,0.52871207,0.52479059,0.51298532,0.48868036,0.45363219,0.41215035,0.36574624,0.31609467,0.26983354,0.23629677,0.21129737,0.19040327,0.16695613,0.13654428,0.10876718,0.08129644,0.05170157,0.024659742,0.0012330218,-0.015943849,-0.026727902,-0.033467934,-0.040310089,-0.053054878,-0.07376516,-0.094720534,-0.11594143,-0.13354721,-0.13902093,-0.14522993,-0.15194954,-0.15360391,-0.15066281,-0.14141058,-0.13665171,-0.1360594,-0.13701935,-0.14002172,-0.13971536,-0.1424318,-0.15199039,-0.16124261,-0.17159776,-0.19187913,-0.21696022,-0.23944742,-0.26303753,-0.28677062,-0.30131275,-0.3034573,-0.29837164,-0.28791438,-0.2702269,-0.25262112,-0.24361398,-0.2285204,-0.21783847,-0.215265,-0.20599235,-0.19843534,-0.19091918,-0.19138894,-0.19927274,-0.19377859,-0.17880755,-0.16579724,-0.15826066,-0.13826523,-0.11067195,-0.098539886,-0.078503607,-0.044476654,-0.002647603,0.044757294,0.060810826,0.037057317,0.014917331,0.020901663,0.032400567,0.031072985,0.046227846,0.069348201,0.073555615,0.064058296,0.061076342,0.038752537,0.030970863,0.0066046237,-0.055505799,-0.084855578,-0.090758212,-0.09394441,-0.08275187,-0.069496473,-0.072090364,-0.1400013,-0.17942028,-0.19825152,-0.22782597,-0.22165782,-0.19349265,-0.15587101,-0.10307409,-0.041760217,0.0021521172,0.04935277,0.10165951,0.14036364,0.17927201,0.22126445,0.26676989,0.32888031,0.41402939,0.51225005,0.55867457,0.49113128,0.48996709,0.52332004,0.52556672,0.47781461,0.37677539,0.18021153,-0.048153036,-0.32565856,-0.43925875,-0.52401977,-0.54981571,-0.56235626,-0.56652282,-0.54842686,-0.52422401,-0.48699044,-0.45790617,-0.41981478,-0.36379081,-0.30942121,-0.26017812,-0.20294912,-0.12631699,-0.031180408,0.056317471,0.12138942,0.23143577,0.33666198,0.44805634,0.5268126,0.57619866,0.64429341,0.67043657,0.71596243,0.7781954,0.81232447,0.85466413,0.91710134,0.93881242,0.96080943,1.0315594,1.0461628,0.94955562,0.97455502,0.96248423,0.95076066,0.95470256,0.90646026,0.88746562,0.83305518,0.78991897,0.75029575,0.55879712,0.58959703,0.5774037,0.52491314,0.49999544,0.42401689,0.38151384,0.38670162,0.34822216,0.2858258,0.28102608,0.27628763,0.27549108,0.28237408,0.29170801,0.31158089,0.33733599,0.38463876,0.43020547,0.48522864,0.56181992,0.66306338,0.77323228,0.89802501,1.036502,1.1932589,1.3570417,1.5265637,1.6832592,1.8014753,1.8814571,1.9796164,2.0320253,2.0119073,2.0307794,2.0209349,1.9944241,2.0002859,2.0087007,1.9706706,1.8938342,1.9033519,1.8854398,1.8661592,1.84839,1.7367506,1.6500493,1.6586275,1.506221,1.3039384,1.2932156,1.2148474,1.127084,1.0001059,0.85499092,0.80056005,0.71890353,0.57209337,0.47136051,0.42036093,0.2734078,0.19871598,0.11877511,0.047249063,-0.039431842,-0.22261776,-0.2570532,-0.32976386,-0.40649811,-0.44681576,-0.50547447,-0.62763245,-0.65538913,-0.7881065,-0.81868174,-0.83826869,-0.89084094,-0.90824248,-0.9238671,-0.93222066,-0.92529681,-0.90170669,-0.89494623,-0.85613999,-0.78083544,-0.67899967,-0.55479925,-0.41097104,-0.25051741,-0.043925197,0.22220397,0.63659344,0.90582711,1.2281436,1.4396377,1.5165149,1.4270563,1.2109055,0.83111487,0.39677082,-0.056363621,-0.3648733,-0.7821426,-1.0809099,-1.2822326,-1.4926646,-1.6149247,-1.6933746,-1.7590797,-1.7890218,-1.8304628,-1.8600985,-1.8822181,-1.894391,-1.9012944,-1.9113023,-1.9145702,-1.9243535,-1.9272946,-1.9268861,-1.9380378,-1.9483316,-1.9523144,-1.9561746,-1.9596672,-1.9663663,-1.974965,-1.9785801,-1.9809289,-1.984544,-1.9834002,-1.9838292,-1.9864843,-1.98724,-1.9865047,-1.9884246,-1.9905283,-1.9945111,-2.0033752,-1.9995355,-2.0022928,-2.0064593,-2.0053564,-2.0055198,-2.0066023,-2.0090124,-2.0079503,-2.0152009,-2.0166102,-2.0072354,-2.0073376,-2.0111365,-2.009237,-2.0091962,-2.0141389,-2.015732,-2.0173251,-2.0130564,-2.0099519,-2.0161405,-2.0232073,-2.0214712,-2.0148946,-2.0117901,-2.0130564,-2.0139142,-2.015732,-2.014772,-2.0110752,-2.0104829,-2.0087877,-2.0149763,-2.0186527,-2.0148537,2 +-0.19958755,-0.19152601,-0.19157448,-0.19159064,-0.18582316,-0.17905405,-0.18241438,-0.18554852,-0.17297963,-0.15981299,-0.14642017,-0.12675906,-0.10785726,-0.08696834,-0.059132606,-0.040053092,-0.025723263,-0.0031380295,0.018138617,0.0359257,0.052258798,0.068898848,0.087687565,0.10413375,0.12051531,0.13917479,0.15429623,0.16439335,0.17416736,0.17890089,0.17011236,0.16613813,0.16565347,0.16127536,0.16739825,0.17188945,0.17138863,0.1766876,0.18376366,0.19507243,0.21318262,0.23306991,0.25473428,0.27859579,0.30124565,0.32121371,0.33580202,0.33971163,0.32635112,0.30295812,0.2709866,0.23084046,0.19400618,0.1614046,0.13676763,0.11006278,0.082130111,0.057590076,0.038138988,0.025376231,0.0091562211,-0.0017486661,-0.0069183904,-0.010892616,-0.013913674,-0.014495268,-0.012217358,-0.016837799,-0.024285433,-0.03081221,-0.044528135,-0.063543027,-0.082299433,-0.11047443,-0.13755086,-0.15141219,-0.15921524,-0.15869827,-0.14958663,-0.13700158,-0.12307563,-0.10861656,-0.094351353,-0.07779208,-0.062848345,-0.051281087,-0.044479669,-0.043025684,-0.046159829,-0.051701127,-0.05908414,-0.068874305,-0.081055468,-0.087081428,-0.088373859,-0.095401453,-0.10969897,-0.12800303,-0.14863346,-0.16713138,-0.17740621,-0.18676018,-0.18974892,-0.1884888,-0.18742255,-0.17936101,-0.17265652,-0.16519273,-0.15362547,-0.14621015,-0.13779319,-0.12608054,-0.11047443,-0.093058922,-0.080506185,-0.065352431,-0.046741423,-0.030860676,-0.012217358,0.0063613389,0.018817143,0.030465179,0.045263514,0.058333224,0.070692096,0.083810271,0.091952587,0.1005311,0.10982045,0.10930347,0.10282516,0.098204722,0.087881429,0.069448131,0.051273319,0.031660677,0.015214492,0.0018539855,-0.018873378,-0.036062711,-0.048211563,-0.062961433,-0.076596581,-0.087307604,-0.098567909,-0.1093274,-0.11543413,-0.11973147,-0.12272022,-0.12485273,-0.12630671,-0.12792225,-0.1294247,-0.12661366,-0.12370569,-0.12750221,-0.12885926,-0.12855231,-0.12769607,-0.11931143,-0.10942433,-0.10065195,-0.089924777,-0.07614423,-0.066499463,-0.062767568,-0.057032406,-0.054447543,-0.062767568,-0.068987393,-0.073672456,-0.092089599,-0.11121758,-0.12318872,-0.13456211,-0.14793878,-0.15499868,-0.15633958,-0.15727659,-0.15241382,-0.14221977,-0.13514371,-0.1418482,-0.1385525,-0.13160568,-0.12877849,-0.12457808,-0.12409342,-0.12305948,-0.12499812,-0.12856847,-0.12231633,-0.1049816,-0.094383664,-0.10362455,-0.087921508,-0.061297428,-0.055804596,-0.035497273,-0.010747218,-0.0018294431,0.035812612,0.079367539,0.11339079,0.15384388,0.2047172,0.25119625,0.2837332,0.3290006,0.37696595,0.38942176,0.3880647,0.39410682,0.35486538,0.34224802,0.31932352,0.25840155,0.23319915,0.2119225,0.17728535,0.15746269,0.14586312,0.1348613,0.062097429,0.034294006,0.033195439,-0.0075807614,-0.01126419,-0.020246586,-0.039342255,-0.024770095,0.012645785,0.01346971,0.019301805,0.060401113,0.084117224,0.10616933,0.13373042,0.13907786,0.15933671,0.1871886,0.22116338,0.23602634,0.1384478,0.12271245,0.15083898,0.15638028,0.11746195,0.10137118,0.091984898,0.06359988,-0.040150025,-0.07530415,-0.1042223,-0.09923028,-0.093834381,-0.089197784,-0.051636506,-0.013913674,0.020723479,0.022952923,0.068446497,0.1455077,0.18668779,0.21764151,0.27467003,0.35408992,0.46774308,0.55451367,0.54286564,0.66076766,0.77139976,0.88621611,0.9795781,1.0087386,1.1041038,1.122214,1.1523277,1.2362711,1.2695189,1.3305378,1.4249175,1.4472604,1.4620426,1.5883939,1.6534517,1.5058237,1.5390715,1.5179403,1.5159208,1.5478116,1.4843209,1.4801205,1.4336091,1.4046587,1.4157574,1.1173189,1.191763,1.2075791,1.1589675,1.1718272,1.0940552,1.0398215,1.0842973,1.0572532,0.95726751,0.97888342,1.0006447,1.0054752,1.0214852,1.0415502,1.0719708,1.1043946,1.1547187,1.2027486,1.2591148,1.3383731,1.4353216,1.5271004,1.6390895,1.7744071,1.9163483,2.056157,2.2108287,2.3789578,2.4808014,2.4866012,2.6115147,2.7026149,2.645441,2.6728244,2.6923078,2.6588661,2.6844562,2.7282373,2.6512246,2.503419,2.5381046,2.521513,2.5001879,2.4974415,2.3205723,2.1895359,2.2653208,2.1072565,1.7772827,1.8046499,1.7408362,1.6599784,1.5165832,1.345013,1.3089542,1.2277087,1.0322447,0.91061074,0.86729815,0.67369197,0.59561298,0.5118796,0.42716074,0.32363701,0.075910286,0.053922803,-0.034851057,-0.13839094,-0.17978105,-0.25871628,-0.44144987,-0.48090133,-0.65218076,-0.69382935,-0.72678635,-0.80880725,-0.84126343,-0.87580365,-0.90321934,-0.93360763,-0.95971474,-1.0126236,-1.0282459,-1.0239324,-1.0357097,-1.0388115,-1.0368567,-1.0536906,-1.0598135,-1.0642886,-1.0797493,-1.0511219,-1.0434643,-1.051445,-1.0720108,-1.1115592,-1.1497506,-1.2041619,-1.2619174,-1.310109,-1.3340351,-1.3830828,-1.4140366,-1.4305474,-1.462535,-1.4784966,-1.4886098,-1.5019865,-1.5049268,-1.5199998,-1.5312439,-1.5367691,-1.5400809,-1.5391924,-1.5429566,-1.5452668,-1.554023,-1.5563655,-1.5560747,-1.5640232,-1.5695645,-1.571697,-1.5742496,-1.5758166,-1.5826827,-1.5865923,-1.5828927,-1.5815195,-1.5867054,-1.5891287,-1.5905503,-1.5913743,-1.5896133,-1.5915197,-1.5944923,-1.59467,-1.5971741,-1.6007121,-1.595397,-1.5992258,-1.6043794,-1.6014068,-1.6008413,-1.6059141,-1.6091452,-1.6051225,-1.6085959,-1.6142988,-1.6093068,-1.6071419,-1.6080628,-1.6082243,-1.6084828,-1.6083697,-1.6122147,-1.6142826,-1.6076589,-1.6052356,-1.6080466,-1.6176106,-1.6200986,-1.6125217,-1.6098883,-1.6097591,-1.608919,-1.6089513,-1.6100014,-1.6086605,-1.6090644,-1.6066734,-1.607255,-1.6102276,-1.6073196,2 +-0.20677131,-0.2164257,-0.23001781,-0.24165105,-0.24924664,-0.25576285,-0.26113973,-0.26709627,-0.2720334,-0.27163363,-0.26931498,-0.26465768,-0.26038017,-0.25246477,-0.2470679,-0.24059166,-0.22610008,-0.21166847,-0.19467834,-0.18210564,-0.16335654,-0.14007007,-0.12084124,-0.093836928,-0.068051909,-0.047243998,-0.031293266,-0.01686165,-0.0010308479,0.010482463,0.020716517,0.029071663,0.0324497,0.039445635,0.050459237,0.058654475,0.06776918,0.085618809,0.11220336,0.13065264,0.14574388,0.16831077,0.19075772,0.2081876,0.22014065,0.23071451,0.23421248,0.22649696,0.21574321,0.19693414,0.17146893,0.15741709,0.14348519,0.11760023,0.089216719,0.061292942,0.040964753,0.027512569,0.0090432991,-0.013383671,-0.023917551,-0.0272756,-0.038449108,-0.040927668,-0.031513138,-0.022258515,-0.014203195,-0.014922777,-0.020519525,-0.02529675,-0.03904876,-0.059296996,-0.07336882,-0.09257766,-0.11070713,-0.11826274,-0.12120103,-0.11668365,-0.10467063,-0.094416591,-0.083123153,-0.069630992,-0.057338134,-0.043446205,-0.031972871,-0.021778793,-0.0097457846,0.0034865275,0.0052055288,0.0039862372,0.0042260979,0.0028668875,4.2830435E-4,-0.0071472943,-0.014203195,-0.023217957,-0.039128713,-0.057398099,-0.073548715,-0.096995093,-0.11758313,-0.128137,-0.13945043,-0.1441477,-0.14418767,-0.13935048,-0.13383369,-0.1334739,-0.13047564,-0.12435919,-0.11872247,-0.11042729,-0.099173827,-0.08897975,-0.077686311,-0.063754406,-0.049982407,-0.032672464,-0.014902788,0.0046258656,0.020256784,0.030970559,0.045022395,0.059114208,0.073785684,0.085758728,0.097471923,0.10540731,0.11122393,0.11200348,0.11002463,0.10640673,0.091615325,0.077983245,0.064071328,0.042443894,0.024174508,0.0079439378,-0.012024461,-0.027335565,-0.036610177,-0.048543243,-0.061975439,-0.072989041,-0.083582886,-0.098014501,-0.11102694,-0.11516454,-0.11794292,-0.11890237,-0.11706343,-0.1200417,-0.12084124,-0.11892235,-0.12078127,-0.12481893,-0.12717756,-0.12497883,-0.12068133,-0.11590411,-0.11218627,-0.10379114,-0.089859239,-0.077386486,-0.069011352,-0.060376368,-0.055839005,-0.055539179,-0.060816113,-0.069710945,-0.079765104,-0.097994513,-0.1140252,-0.12715757,-0.14292841,-0.15668042,-0.16645474,-0.17177165,-0.17007264,-0.16391621,-0.15452167,-0.14608657,-0.15198315,-0.15334236,-0.14834526,-0.14924474,-0.14884497,-0.1469061,-0.14234874,-0.14160917,-0.14616652,-0.14590668,-0.13395362,-0.11744321,-0.11912224,-0.10814861,-0.085781608,-0.07882565,-0.059257019,-0.033991698,-0.01724143,0.019417272,0.057515137,0.09329435,0.13558978,0.18486115,0.2319338,0.26611394,0.30872918,0.3539629,0.37405123,0.38276617,0.38812306,0.34180996,0.3205823,0.29279844,0.22965512,0.20229102,0.1794443,0.14864219,0.12771435,0.11106403,0.1049076,0.040365101,0.0076041352,0.0037063998,-0.031633068,-0.036890014,-0.045085253,-0.06209537,-0.046404486,-0.006307782,0.0016475959,0.010482463,0.043043545,0.062971967,0.09043601,0.11915932,0.1272946,0.14762279,0.17860478,0.21348452,0.22088022,0.14186613,0.12945334,0.14722302,0.1491419,0.11464195,0.089756405,0.069987891,0.040924776,-0.053380433,-0.081943838,-0.1038711,-0.10517034,-0.1042109,-0.10141253,-0.069111294,-0.032552534,0.0049856566,0.020936389,0.063131874,0.13311122,0.18376179,0.21914123,0.27370953,0.34528794,0.44487009,0.54521179,0.56971755,0.66752073,0.77020107,0.87887793,0.96852585,1.007763,1.0817201,1.0970312,1.1571363,1.2426066,1.2721894,1.3198217,1.4052321,1.4434099,1.474212,1.5938625,1.6603039,1.5330379,1.5523666,1.5258221,1.513829,1.5342771,1.4735524,1.4632784,1.4236014,1.4024937,1.4240212,1.1441238,1.1880383,1.191936,1.1391267,1.1471621,1.0685877,1.0163181,1.0549956,1.0264322,0.94629876,0.96624717,0.98163823,0.9828975,0.99804869,1.0155385,1.0482795,1.0867771,1.1374477,1.1866191,1.2498824,1.3305155,1.4290983,1.5246827,1.6402756,1.7811537,1.9284481,2.0708454,2.2246161,2.3948172,2.5029743,2.5262608,2.656805,2.7517498,2.7125726,2.753189,2.771978,2.7351794,2.7658016,2.8128943,2.7351994,2.5950009,2.6253432,2.6066741,2.5915429,2.5991185,2.4249996,2.2882391,2.3507428,2.1958928,1.8738798,1.8795565,1.8086178,1.7261856,1.5877461,1.4103691,1.3599784,1.2725892,1.0872369,0.96650702,0.92263251,0.73646067,0.64821195,0.56250174,0.48160874,0.39088145,0.14952168,0.10988471,0.019996935,-0.078345928,-0.12457907,-0.20719107,-0.37491362,-0.40255756,-0.57373811,-0.62708711,-0.66852304,-0.75457304,-0.79215121,-0.83078876,-0.85471486,-0.88187908,-0.90862354,-0.96201252,-0.98346006,-0.97936244,-0.98775757,-0.99031608,-0.98887691,-0.99879115,-0.99589284,-0.98783752,-0.98250062,-0.94915999,-0.91897753,-0.90672464,-0.91711861,-0.94684134,-0.99213502,-1.0577569,-1.1250378,-1.2000142,-1.2431492,-1.3099304,-1.355304,-1.3835276,-1.4267825,-1.446531,-1.455226,-1.4687781,-1.4722561,-1.4902056,-1.5057166,-1.5105938,-1.515351,-1.5207079,-1.5258849,-1.5276239,-1.5351395,-1.5400167,-1.5383777,-1.5353394,-1.5417357,-1.5452936,-1.5526694,-1.560245,-1.5600251,-1.5638429,-1.5684802,-1.5697394,-1.5697594,-1.5699593,-1.5717383,-1.5730775,-1.5804932,-1.5839512,-1.5830517,-1.5834515,-1.5857501,-1.5879688,-1.5853903,-1.5849906,-1.5882287,-1.5925462,-1.5938654,-1.5957443,-1.5990024,-1.5967637,-1.5947049,-1.5938254,-1.5918066,-1.5951847,-1.5968237,-1.5943052,-1.5956244,-1.5959842,-1.594645,-1.5953645,-1.5956644,-1.5986626,-1.6015809,-1.6022206,-1.6011212,-1.599762,-1.6008014,-1.6018608,-1.5995621,-1.6003816,-1.6008813,-1.5974433,-1.5984028,-1.599742,-1.5998619,-1.5976832,-1.5924063,2 +-0.30869861,-0.30764003,-0.31443463,-0.32214009,-0.32839309,-0.33713251,-0.33375983,-0.31940748,-0.31108656,-0.3031103,-0.28774861,-0.2635244,-0.23784772,-0.22280606,-0.20485946,-0.17699178,-0.14804089,-0.12167491,-0.097598404,-0.07056773,-0.036447044,-7.0156346E-4,0.041986221,0.076377707,0.10286678,0.12965127,0.15771591,0.18848853,0.20690287,0.21436216,0.22804982,0.24577485,0.26197356,0.28427756,0.30542451,0.32526669,0.35118955,0.37809714,0.39582217,0.41337487,0.43587582,0.46204486,0.48954327,0.51391519,0.54178288,0.57504193,0.60630692,0.62509053,0.6303588,0.6357994,0.64222473,0.63722725,0.62634605,0.62250563,0.61083665,0.59252078,0.57206314,0.53988729,0.50490497,0.47647106,0.45365008,0.44148874,0.43922388,0.44422135,0.45160678,0.46204486,0.46625455,0.44759403,0.40896823,0.35904273,0.30914184,0.25993026,0.22159988,0.21057097,0.22600652,0.27295323,0.34754607,0.43109991,0.51221654,0.58774487,0.64640981,0.68875294,0.72622168,0.7646013,0.80561506,0.84542252,0.87720449,0.90413669,0.92363423,0.92789316,0.92289568,0.90997118,0.89103986,0.86755419,0.84517634,0.82567881,0.78237557,0.70876745,0.61952684,0.52265462,0.43927311,0.37236112,0.31175136,0.26413995,0.23393354,0.22132908,0.21775945,0.20948777,0.19351063,0.17517014,0.15788823,0.14796714,0.15161062,0.16094088,0.16955721,0.18637138,0.21103871,0.233195,0.25557285,0.27612897,0.29503567,0.30764014,0.32196787,0.33671411,0.34665982,0.36007669,0.37383821,0.38964303,0.39835783,0.3930157,0.37597998,0.35212504,0.31886599,0.27689213,0.23462285,0.19178736,0.15148753,0.11982865,0.10023265,0.081941397,0.05690479,0.031006549,0.01052429,-0.0069545608,-0.025048864,-0.049420783,-0.077362326,-0.098410801,-0.10296515,-0.10264511,-0.10808571,-0.11842532,-0.13322079,-0.15220135,-0.17327444,-0.18388484,-0.18999013,-0.19488913,-0.19853261,-0.19732633,-0.18550964,-0.17236357,-0.15557403,-0.14235411,-0.12625387,-0.11020287,-0.11529882,-0.13164524,-0.14759776,-0.15680493,-0.16593825,-0.18014289,-0.19486452,-0.21844866,-0.2450362,-0.25995477,-0.26943274,-0.27408556,-0.27206688,-0.26522304,-0.25114149,-0.2346966,-0.22216599,-0.20961076,-0.20439172,-0.20581957,-0.20064977,-0.1991973,-0.19789254,-0.192255,-0.18733138,-0.17935511,-0.17233895,-0.16483043,-0.14420047,-0.12019782,-0.092625548,-0.077362326,-0.065028658,-0.033812908,0.025910602,0.085707966,0.1077904,0.099789519,0.10301449,0.11426496,0.13019287,0.15993154,0.2013638,0.23430282,0.24033425,0.24272221,0.23518907,0.21625775,0.20343172,0.17731192,0.14001549,0.1039746,0.072488047,0.062025355,0.060966776,0.049174707,0.023128757,-0.036397808,-0.069903042,-0.094939649,-0.12773096,-0.13765205,-0.13415628,-0.11734212,-0.082852162,-0.051513321,-0.0064129626,0.05535385,0.094521246,0.12534311,0.15385087,0.18922708,0.23774935,0.28740406,0.35579314,0.42642247,0.45123751,0.43587582,0.45113904,0.479376,0.49505773,0.4917589,0.42937664,0.26972826,0.071700268,-0.17292979,-0.29050583,-0.3792787,-0.42029245,-0.43907606,-0.4378944,-0.43402935,-0.41792912,-0.39269556,-0.35111559,-0.30559673,-0.27433174,-0.23408115,-0.18272779,-0.13245763,-0.072315615,-0.016210966,0.016777287,0.13949851,0.25165858,0.34515812,0.43516189,0.5011384,0.57194005,0.60214646,0.64279094,0.71910705,0.76878638,0.82491565,0.88129109,0.9163965,0.92491437,0.95032025,0.96905462,0.93372765,0.91671654,0.99867019,1.0627757,1.1017708,1.1013523,1.0870738,1.0687825,1.0339233,0.99362348,0.91610109,0.87597358,0.88377752,0.85224174,0.81258198,0.78584672,0.7539909,0.73830917,0.73084989,0.70802891,0.69052544,0.69215023,0.69318419,0.69741851,0.71292791,0.7387523,0.77245448,0.81103104,0.85723921,0.904826,0.95689328,1.0147212,1.0886001,1.1736556,1.2764854,1.3895318,1.5208693,1.6653776,1.8146863,1.9274126,2.030784,2.158035,2.227655,2.2578614,2.296758,2.3272106,2.3234194,2.3244533,2.3213761,2.2868861,2.2211066,2.2116286,2.2087236,2.1710333,2.1332446,2.0771153,2.000036,1.9408295,1.8823369,1.7179372,1.6051617,1.5579934,1.4603088,1.3478779,1.2240489,1.096404,1.005194,0.89372323,0.77137128,0.65948202,0.57014293,0.43284779,0.34892469,0.25601598,0.15815903,0.041518478,-0.095308921,-0.14235411,-0.22669572,-0.299713,-0.35909186,-0.43663887,-0.5604433,-0.61061498,-0.70913662,-0.74429126,-0.77986442,-0.82796819,-0.85541737,-0.88190644,-0.89968071,-0.91208823,-0.90672149,-0.87474257,-0.83178399,-0.77311906,-0.66265765,-0.54254594,-0.44562448,-0.36081513,-0.24587322,-0.066284181,0.31273608,0.54823282,0.87370872,1.0976596,1.1435969,1.0409149,0.83156253,0.49200508,0.1189424,-0.27415941,-0.54417073,-0.8930092,-1.1593032,-1.3351257,-1.5101111,-1.6169044,-1.676751,-1.7363761,-1.7712599,-1.8050359,-1.8282754,-1.8397228,-1.852992,-1.8692646,-1.8820167,-1.8865711,-1.8873589,-1.8843555,-1.8902146,-1.909786,-1.9131833,-1.9111892,-1.9191655,-1.9245076,-1.927831,-1.9264278,-1.9293573,-1.9355611,-1.9344779,-1.9363243,-1.9385153,-1.9378998,-1.943242,-1.941888,-1.9403616,-1.9423803,-1.9409032,-1.9505289,-1.9559449,-1.963478,-1.9633057,-1.9597115,-1.9608439,-1.9572989,-1.9573727,-1.9620994,-1.9666784,-1.9638719,-1.957742,-1.9600807,-1.958579,-1.9548125,-1.9570035,-1.9600069,-1.9600807,-1.9605485,-1.963158,-1.962838,-1.9599084,-1.9662106,-1.9694849,-1.9597853,-1.9577913,-1.9619517,-1.9572743,-1.9564619,-1.9583082,-1.9565111,-1.9616809,-1.965669,-1.9649059,-1.9593422,-1.9520552,3 +-0.19389869,-0.2033169,-0.20711998,-0.2125114,-0.21546438,-0.21946879,-0.22114662,-0.22635908,-0.22687361,-0.21201924,-0.19322756,-0.17542021,-0.1666955,-0.16143831,-0.14911186,-0.12548804,-0.10752409,-0.086472938,-0.059113151,-0.036205202,-0.011149633,0.011400379,0.029767006,0.053950105,0.07806609,0.10195836,0.12388199,0.13913904,0.15198002,0.16092844,0.16287472,0.15690165,0.16048102,0.17251664,0.17761724,0.18654328,0.20461909,0.21940635,0.23423835,0.25294054,0.26891347,0.28618391,0.31217906,0.33056806,0.33871112,0.35486302,0.36573534,0.36318504,0.3498519,0.3249753,0.28889081,0.24562521,0.20752732,0.17220344,0.13743884,0.10960926,0.085448534,0.059945544,0.037910066,0.019700036,0.00777627,0.0050917448,0.0049127764,0.0033691744,0.0027427852,0.002161138,5.5042288E-4,-0.0013958579,-0.0016195684,-0.0081519132,-0.024393291,-0.041820334,-0.058755214,-0.082960684,-0.10119308,-0.1085979,-0.11987291,-0.12732246,-0.12197578,-0.11389984,-0.10823996,-0.099694225,-0.088396848,-0.073766185,-0.060544898,-0.056674707,-0.051932046,-0.047659177,-0.0488001,-0.055265332,-0.063945297,-0.070209189,-0.073430619,-0.077994312,-0.089112721,-0.097770315,-0.11040995,-0.12622628,-0.13987262,-0.15374267,-0.16016316,-0.16506241,-0.16951425,-0.17197507,-0.16864178,-0.15721018,-0.14980536,-0.13721047,-0.1269869,-0.12157311,-0.10792677,-0.095555582,-0.088374477,-0.077658747,-0.060433043,-0.042290126,-0.027323898,-0.0092928364,0.012295221,0.026746915,0.036679659,0.054352783,0.066858197,0.071690342,0.085806471,0.09392716,0.095448391,0.10204785,0.10560484,0.108267,0.10430732,0.092786237,0.084665548,0.072943121,0.05236176,0.033525342,0.018492,-0.0013734869,-0.020366503,-0.032044188,-0.041775592,-0.056361513,-0.074370203,-0.089246947,-0.09915732,-0.10439214,-0.108061,-0.11336293,-0.11521973,-0.11615931,-0.11821745,-0.1187991,-0.12193104,-0.12481691,-0.12331805,-0.12387732,-0.12542093,-0.12562226,-0.12394444,-0.11649488,-0.10730038,-0.096070116,-0.083676557,-0.071775162,-0.059963251,-0.052133385,-0.048688245,-0.048822471,-0.056674707,-0.058553875,-0.059359233,-0.075309787,-0.090499726,-0.10298277,-0.11844116,-0.12908978,-0.13539841,-0.13980551,-0.13738943,-0.13087946,-0.12260217,-0.11958208,-0.12470505,-0.11510787,-0.10506328,-0.10577915,-0.10291566,-0.10432503,-0.10716615,-0.1079044,-0.10779254,-0.099738967,-0.090253644,-0.086562422,-0.077703489,-0.057390581,-0.043028371,-0.035422216,-0.01815177,0.002138767,0.025494137,0.057305761,0.093837676,0.13278566,0.17229293,0.21806408,0.2641708,0.30522167,0.34685418,0.38484021,0.40195406,0.40602559,0.40262519,0.37088068,0.3609032,0.34224575,0.29866695,0.26889109,0.23837699,0.20379136,0.17853445,0.15882556,0.13851265,0.088871304,0.063949961,0.046366321,0.010550279,-0.0020669893,-0.017435896,-0.024102467,-0.012984059,0.011333266,0.024509811,0.04227242,0.073658994,0.091086037,0.10949741,0.1314434,0.14500025,0.16596192,0.19168862,0.21562564,0.2179746,0.15517908,0.14039182,0.1508391,0.14215913,0.11918407,0.1150678,0.098759305,0.065269853,-0.01450529,-0.044706199,-0.065153333,-0.064526944,-0.056697078,-0.047614435,-0.02244701,0.008268433,0.050236511,0.081466489,0.11766284,0.17133097,0.21571512,0.25560269,0.30889052,0.37575757,0.45488395,0.52606861,0.58821537,0.68830342,0.78391727,0.88208141,0.94975381,0.98894788,1.0485891,1.0785215,1.122503,1.1869316,1.2343806,1.2830824,1.3293681,1.3404417,1.3603743,1.4118054,1.4249148,1.3603072,1.4026109,1.4209104,1.4484268,1.4704846,1.4393217,1.42921,1.3922978,1.3532827,1.3150953,1.1910479,1.2176023,1.2023005,1.1614063,1.1486771,1.0912954,1.0639804,1.0791927,1.0536002,1.0086791,1.0216096,1.0306923,1.0389248,1.0598194,1.0786558,1.110803,1.1534869,1.2049179,1.2570872,1.3264598,1.3988078,1.4838849,1.5735033,1.6843294,1.8137906,1.9527148,2.0937195,2.2390194,2.370248,2.4678752,2.5528852,2.6465528,2.7020777,2.7075138,2.7402874,2.741831,2.7183862,2.7210483,2.7209141,2.6552551,2.5589477,2.5705359,2.5393507,2.4937809,2.4432671,2.2920388,2.203785,2.2053734,2.0429596,1.8257815,1.7970571,1.7062083,1.6056952,1.4667934,1.3166613,1.2491008,1.1480507,1.0006256,0.88615294,0.81604209,0.65148069,0.56573248,0.47016338,0.36833038,0.26381287,0.078535882,0.02813392,-0.060656753,-0.15121474,-0.21566572,-0.29875177,-0.44792189,-0.50279806,-0.62861282,-0.67695664,-0.72360027,-0.79744708,-0.83954939,-0.87518646,-0.9011145,-0.9316286,-0.96057674,-0.99849565,-1.0201732,-1.0323207,-1.0563024,-1.0733939,-1.0856085,-1.101738,-1.1088744,-1.1170622,-1.1290754,-1.1293663,-1.1435271,-1.1558312,-1.1773745,-1.2055844,-1.2409307,-1.2844423,-1.32084,-1.360571,-1.3873044,-1.4191831,-1.4434557,-1.4610841,-1.4846856,-1.4968778,-1.4964303,-1.5064526,-1.5174591,-1.5289355,-1.5360942,-1.5376602,-1.5381523,-1.5413738,-1.5481298,-1.5507249,-1.5545503,-1.5592259,-1.5614406,-1.5600312,-1.5701877,-1.57238,-1.5707917,-1.5749527,-1.5808363,-1.5807468,-1.5819772,-1.5867646,-1.5884648,-1.5907914,-1.591127,-1.586608,-1.5840354,-1.5838788,-1.5849749,-1.58757,-1.5926035,-1.5920442,-1.5914402,-1.5992924,-1.5971224,-1.5950867,-1.5989121,-1.6004333,-1.5997398,-1.5981739,-1.6003215,-1.6034534,-1.6026033,-1.6019098,-1.5985989,-1.596496,-1.5979949,-1.6004781,-1.5967645,-1.5956459,-1.598666,-1.595288,-1.5958025,-1.6069657,-1.6059814,-1.6012611,-1.5983528,-1.596496,-1.5961828,-1.5913731,-1.5922008,-1.593901,-1.5950195,-1.5971,-1.5928495,-1.5914849,-1.5933865,3 +-0.17764928,-0.17595094,-0.18062138,-0.18906592,-0.20692211,-0.21395137,-0.20553042,-0.19590647,-0.1867307,-0.18267355,-0.17229479,-0.15519342,-0.13705417,-0.12047174,-0.095987293,-0.070983911,-0.046688171,-0.019750564,-9.0367505E-4,0.020891726,0.04563564,0.069270913,0.10255372,0.13385512,0.15923591,0.1842393,0.20171808,0.22528259,0.24627599,0.26139596,0.27094914,0.27564317,0.28479535,0.29998609,0.32260707,0.34735099,0.37742581,0.40224049,0.42436612,0.44903927,0.46890045,0.49942345,0.53416871,0.55940798,0.58967151,0.6209965,0.64430154,0.66435142,0.67947139,0.68352854,0.67784381,0.6693521,0.6535009,0.63602212,0.61512306,0.58995456,0.56289902,0.53232884,0.50510818,0.47741575,0.45137449,0.44057115,0.44201002,0.45578547,0.48182673,0.5010982,0.50343342,0.48843139,0.45621005,0.41514318,0.37188261,0.32522535,0.28989038,0.27727075,0.29703758,0.35084203,0.41915315,0.50182943,0.58535488,0.65411419,0.70419172,0.73978615,0.77193673,0.80156338,0.83364319,0.86574659,0.89032539,0.9079457,0.92122579,0.92016433,0.90570483,0.87513465,0.83708705,0.79668064,0.74511706,0.69640764,0.63463042,0.56096479,0.49968292,0.43948609,0.38233213,0.33680711,0.29880668,0.26660893,0.23710022,0.2173334,0.20181243,0.18013497,0.16574623,0.1614532,0.15423524,0.15147543,0.15831598,0.16683128,0.17621934,0.18846157,0.20438353,0.21983374,0.23462347,0.25519229,0.27590264,0.28930068,0.30611899,0.32616888,0.34102938,0.35522941,0.36461747,0.36827363,0.3671414,0.36275401,0.34966262,0.32680575,0.30192031,0.26443883,0.22280584,0.18610276,0.15319736,0.12092885,0.092151367,0.071063608,0.047711393,0.023462829,0.0041441777,-0.015882117,-0.034162892,-0.051736024,-0.071762318,-0.086151057,-0.094548419,-0.10445542,-0.10594147,-0.10950327,-0.12559035,-0.14266814,-0.1591798,-0.17076156,-0.17503101,-0.17772005,-0.18012603,-0.17833334,-0.16703464,-0.15465089,-0.14106415,-0.12754817,-0.12028303,-0.11070627,-0.11365478,-0.12676976,-0.13870534,-0.14531,-0.14998045,-0.16811969,-0.18774499,-0.20236961,-0.22489624,-0.24506407,-0.2572827,-0.26435913,-0.26176444,-0.24961657,-0.2275617,-0.21338525,-0.21463542,-0.20326596,-0.19333537,-0.19064633,-0.18616459,-0.18500877,-0.17989015,-0.17689447,-0.17654064,-0.17319113,-0.1637559,-0.15163161,-0.15420272,-0.13578041,-0.10282784,-0.092449079,-0.075182592,-0.047891164,-0.023218015,0.029100384,0.05728816,0.053514064,0.048253919,0.060472553,0.080380907,0.081560312,0.11798033,0.16454324,0.16815222,0.16260901,0.16694922,0.13182655,0.12802886,0.10668163,0.05058914,0.024288412,0.002516599,-0.0087820994,-3.1397263E-4,0.0075644517,0.0080598018,-0.07520618,-0.11058833,-0.11879698,-0.16163297,-0.15325919,-0.14601765,-0.1377854,-0.094642772,-0.037936987,-0.02649676,-0.0011867322,0.056957927,0.087339395,0.11989097,0.16029738,0.18379112,0.23455271,0.30876086,0.39879663,0.44068909,0.34378918,0.35518223,0.40542488,0.41849269,0.37145802,0.31248778,0.18761239,0.0053707587,-0.25105544,-0.33741146,-0.39751394,-0.40612359,-0.41400201,-0.42039439,-0.39131027,-0.36201385,-0.34078456,-0.35118691,-0.30896422,-0.24254014,-0.2168527,-0.19831246,-0.15491036,-0.08240055,0.021575781,0.084886233,0.080380907,0.19584464,0.28918274,0.39648499,0.47630711,0.49692311,0.58087315,0.58861004,0.62918157,0.70895651,0.73584694,0.79403878,0.88676359,0.90466695,0.91636665,1.0259098,1.0581783,0.92518859,0.98493724,0.99260338,1.0180785,1.0517859,1.0090915,1.014729,0.98642329,0.97974786,0.95901393,0.71240037,0.8088521,0.82482124,0.78141914,0.79394442,0.72129309,0.68277372,0.73763964,0.71426383,0.62547824,0.65133079,0.67388101,0.68364648,0.70067709,0.71891069,0.74738152,0.78266931,0.83420931,0.88131473,0.93960092,1.0116861,1.0987498,1.1915454,1.3061599,1.4380882,1.5681529,1.6986895,1.8461387,2.0112553,2.1226855,2.1479719,2.2729653,2.3604299,2.3339405,2.3810931,2.4025583,2.3851738,2.4174895,2.454287,2.3798429,2.2602041,2.2969544,2.2828251,2.2669975,2.2602749,2.0909595,1.9783735,2.0453637,1.8732178,1.5686955,1.6052806,1.5447064,1.4642945,1.3235208,1.1520117,1.1103316,1.0200363,0.8255053,0.72060903,0.67739564,0.48807757,0.42129967,0.3427749,0.26106573,0.14824386,-0.096742113,-0.10818234,-0.1902925,-0.27603524,-0.30162832,-0.38428101,-0.54677941,-0.56119174,-0.73583801,-0.75244403,-0.76645536,-0.83719606,-0.85033463,-0.87866393,-0.88656595,-0.8898211,-0.90814906,-0.94430961,-0.92010822,-0.86741241,-0.82316114,-0.75572277,-0.66014381,-0.55515319,-0.4039299,-0.25077238,0.0057717564,0.23384506,0.46255525,0.62276561,0.70445118,0.67444713,0.54813287,0.26101855,-0.077258345,-0.41430866,-0.62646,-0.94850829,-1.1851441,-1.3285361,-1.5051638,-1.5953411,-1.6420927,-1.7059928,-1.7289205,-1.7723226,-1.8045675,-1.8102758,-1.8192393,-1.8324015,-1.8445493,-1.8497859,-1.8585135,-1.8582776,-1.8587258,-1.8757328,-1.8914896,-1.8895082,-1.8940136,-1.897599,-1.9034252,-1.9048877,-1.9050056,-1.907789,-1.9116339,-1.9226023,-1.9220834,-1.9145824,-1.9203379,-1.9222249,-1.9236874,-1.922791,-1.9230033,-1.9298911,-1.9263764,-1.9417559,-1.9448223,-1.9358588,-1.9354107,-1.9367552,-1.9402462,-1.9420153,-1.950625,-1.956522,-1.9472755,-1.9493748,-1.9486436,-1.9429589,-1.9441147,-1.9455064,-1.9471811,-1.9499174,-1.9509552,-1.9450818,-1.9434542,-1.9604141,-1.9636692,-1.9515921,-1.949823,-1.9491154,-1.9430532,-1.9443977,-1.9473463,-1.9501296,-1.9513562,-1.9477001,-1.9557672,-1.9518516,-1.9425815,3 +-0.22442349,-0.22722064,-0.23141637,-0.22573731,-0.22183825,-0.23633257,-0.23993496,-0.22370302,-0.20586059,-0.19013722,-0.1693705,-0.14194995,-0.12309038,-0.10384938,-0.081472178,-0.057908309,-0.020528213,0.021089988,0.048086723,0.065717244,0.088942065,0.12034643,0.15776891,0.1799342,0.19959901,0.2220186,0.23371577,0.24651485,0.27469825,0.30343261,0.31720646,0.32547076,0.33220935,0.34712749,0.3755228,0.39679809,0.41349623,0.44498535,0.4732959,0.48740879,0.50919266,0.53517225,0.56585614,0.59874384,0.63303012,0.67392784,0.70673078,0.73499895,0.75559614,0.76013092,0.753689,0.74330564,0.72533607,0.71262175,0.70609507,0.68316691,0.65519541,0.61548436,0.57335759,0.53949512,0.511566,0.49507977,0.47808496,0.48512022,0.51415124,0.52097459,0.51292219,0.49707168,0.45829301,0.40518954,0.34839892,0.30042356,0.26681538,0.26490823,0.2965245,0.34894987,0.41722576,0.4981312,0.59310716,0.6780388,0.73919467,0.78505098,0.8178963,0.84925829,0.88824886,0.92117895,0.95190522,0.98038529,0.98513197,0.98492006,0.98932769,0.97411289,0.94033519,0.90113271,0.86222689,0.82997491,0.78288955,0.70961269,0.62086675,0.53508749,0.44998632,0.37789613,0.32987839,0.29961832,0.27724112,0.2575763,0.24096293,0.22502765,0.2079057,0.18624898,0.16988989,0.1638294,0.16929656,0.17705229,0.19557281,0.20896523,0.22324765,0.24583675,0.26194155,0.28414923,0.30046594,0.31123073,0.32754744,0.34403367,0.34971273,0.36043514,0.38217662,0.39705237,0.39747618,0.38484663,0.37569232,0.34810225,0.3030088,0.26100917,0.22172193,0.17764562,0.13734124,0.1134807,0.0855092,0.050375301,0.024607616,0.0070618569,-0.016162964,-0.028453472,-0.054729729,-0.087702194,-0.098806032,-0.10728224,-0.11580084,-0.12478562,-0.1293204,-0.14779854,-0.16263191,-0.16826859,-0.179881,-0.1886115,-0.1975539,-0.20276677,-0.20221582,-0.20263963,-0.20302106,-0.18797578,-0.17462575,-0.17187098,-0.16148762,-0.14932426,-0.15017188,-0.15585094,-0.16458144,-0.17657528,-0.18272053,-0.19573152,-0.21700681,-0.23523067,-0.25226785,-0.27019504,-0.28570651,-0.29134319,-0.28985985,-0.2837146,-0.2676098,-0.25269166,-0.24705498,-0.2253135,-0.20946298,-0.20365678,-0.19496866,-0.1886115,-0.18403434,-0.19547723,-0.19416342,-0.18492435,-0.17886385,-0.16648859,-0.15207902,-0.12965944,-0.11435988,-0.10673129,-0.081387416,-0.054560205,-0.01200962,0.049612441,0.072964406,0.063640572,0.053214832,0.056986746,0.070379161,0.079279184,0.1101326,0.15183556,0.16340559,0.1772642,0.18226516,0.13386599,0.12149072,0.10191067,0.054867693,0.027489528,0.021005226,0.018250457,0.011003296,0.0087994804,-0.0053981748,-0.089016007,-0.12876944,-0.14801044,-0.18433101,-0.1751767,-0.15313855,-0.1311004,-0.098975556,-0.056806401,-0.039430166,-0.00200769,0.060250088,0.096613037,0.13814648,0.18023087,0.20582903,0.26711204,0.34674606,0.44329011,0.48622213,0.41425908,0.44566345,0.51690601,0.55818517,0.52614508,0.44307821,0.27440159,0.052028162,-0.24235068,-0.36415385,-0.44069405,-0.458706,-0.479727,-0.48112558,-0.45679885,-0.44234691,-0.4282764,-0.43090402,-0.39288821,-0.34003903,-0.30863466,-0.28273983,-0.24722451,-0.18140672,-0.096559836,-0.063460228,-0.054433062,0.083008717,0.19955663,0.28940448,0.35128083,0.38590616,0.44210344,0.43782295,0.49741073,0.58187618,0.62451153,0.68142929,0.75199375,0.77288762,0.82026964,0.91571179,0.92223847,0.85095353,0.9089732,0.9174918,0.95237141,0.98339434,0.95690618,0.96012714,0.9322404,0.90397224,0.85853974,0.6954998,0.76551331,0.76008854,0.72292035,0.72601416,0.66138305,0.62497772,0.65138112,0.62235009,0.55602373,0.57810426,0.59484478,0.59984575,0.6098053,0.62442676,0.66706211,0.70232315,0.73300704,0.78038907,0.85404735,0.92728182,1.0056868,1.0973146,1.2030978,1.3190947,1.4487384,1.5891468,1.7484996,1.8959857,2.0024893,2.0883957,2.1976541,2.2666929,2.2818653,2.3185249,2.3270859,2.3153887,2.3450131,2.3663731,2.2987329,2.2223199,2.2411371,2.2320675,2.2036722,2.1547645,2.0129574,1.9198886,1.9183205,1.7412948,1.526211,1.520659,1.434795,1.3301562,1.1926296,1.0465845,0.98275863,0.88142551,0.71135032,0.60281242,0.53983417,0.3627661,0.30550928,0.22549384,0.12568644,0.0043918501,-0.18174577,-0.19958819,-0.28201936,-0.35038001,-0.37665626,-0.45200979,-0.58504394,-0.61301544,-0.73778528,-0.73562384,-0.74939769,-0.80139925,-0.8066545,-0.80996022,-0.81101975,-0.81826691,-0.8305998,-0.82623455,-0.75410199,-0.6618808,-0.53800096,-0.40458538,-0.28803747,-0.20145296,-0.072487393,0.1183969,0.49228262,0.76631855,1.1097323,1.3508381,1.4000849,1.2675594,1.0272164,0.61573865,0.17213609,-0.24667355,-0.52511712,-0.91375144,-1.1865583,-1.361465,-1.5516288,-1.6495714,-1.7102187,-1.7759094,-1.7966337,-1.8388876,-1.8580015,-1.8684696,-1.8816925,-1.8890244,-1.901993,-1.905214,-1.9041121,-1.9004673,-1.8938558,-1.9088587,-1.9296255,-1.9251331,-1.9329736,-1.942255,-1.9452217,-1.9403055,-1.9416617,-1.9414498,-1.9346264,-1.9383983,-1.9378474,-1.9417888,-1.9486122,-1.9478493,-1.9539098,-1.951155,-1.950816,-1.9591227,-1.9572579,-1.9659884,-1.9623013,-1.9483579,-1.9436536,-1.9509431,-1.9564103,-1.9527231,-1.9640389,-1.969167,-1.9608603,-1.9650136,-1.9660308,-1.9660732,-1.9655222,-1.9705232,-1.9679803,-1.9555627,-1.9462812,-1.9422126,-1.9414922,-1.9645475,-1.9800589,-1.9693365,-1.9584022,-1.9495446,-1.9513246,-1.9604789,-1.9600551,-1.9554779,-1.9489088,-1.9359826,-1.9439503,-1.9514517,-1.9539946,3 +-0.18271786,-0.17747144,-0.18127713,-0.18532747,-0.18228292,-0.18095093,-0.17972767,-0.17037656,-0.15795371,-0.1472706,-0.1280247,-0.10790892,-0.088581471,-0.065094945,-0.043538447,-0.02347704,0.004141374,0.028715238,0.042442895,0.062912054,0.085746176,0.10368727,0.12605927,0.13937918,0.15606983,0.18189414,0.19991679,0.22147328,0.23881634,0.23925128,0.23305345,0.22913902,0.23305345,0.24009397,0.24411712,0.2494179,0.25917677,0.27119187,0.28073327,0.28992128,0.30484501,0.32699955,0.35760814,0.38275286,0.40512486,0.43309666,0.45291342,0.45758898,0.4437254,0.41605262,0.38702067,0.34958902,0.300251,0.25876902,0.22359359,0.19263161,0.16555687,0.1367152,0.11260345,0.083517131,0.062748953,0.057121973,0.042905014,0.031188935,0.031596687,0.021865002,0.016754508,0.01153528,-0.001485606,-0.0092057139,-0.023748875,-0.043348163,-0.074717897,-0.1003791,-0.10989332,-0.11889105,-0.12924795,-0.13291772,-0.12133756,-0.10769146,-0.093039561,-0.074310145,-0.063953239,-0.050714885,-0.029212754,-0.016137501,-0.014125923,-0.016953005,-0.023504223,-0.028614717,-0.034785367,-0.046990749,-0.058543727,-0.067323991,-0.069172467,-0.075315933,-0.092196873,-0.10440226,-0.1258772,-0.15189179,-0.17255124,-0.18119558,-0.18679538,-0.19057388,-0.18660509,-0.18065191,-0.17241532,-0.16254772,-0.1525442,-0.14873851,-0.14732497,-0.14169799,-0.12886739,-0.11494944,-0.098856825,-0.086977645,-0.073848025,-0.052019692,-0.033426193,-0.021275178,-0.011489126,-0.0030622478,0.0051199792,0.013601224,0.020342727,0.028225936,0.040621602,0.04779804,0.048695095,0.048042692,0.043095298,0.033309246,0.013818692,-0.0039593025,-0.013990006,-0.032828157,-0.05465649,-0.06778611,-0.086678627,-0.10907781,-0.12234335,-0.13060713,-0.14042036,-0.14797737,-0.1569751,-0.17119206,-0.18453915,-0.19391745,-0.19535817,-0.19554846,-0.19620086,-0.19989781,-0.20000655,-0.19981626,-0.20451901,-0.20508986,-0.20734609,-0.21074402,-0.20884118,-0.20174629,-0.19019331,-0.17747144,-0.16888147,-0.1604274,-0.14506874,-0.13169447,-0.12772568,-0.12894894,-0.13661468,-0.14452507,-0.14814047,-0.1604274,-0.17301335,-0.18459352,-0.19639115,-0.20275208,-0.21164108,-0.21512056,-0.21087994,-0.20604128,-0.20248024,-0.19872892,-0.20109389,-0.18962246,-0.18304406,-0.18298969,-0.17545987,-0.17774328,-0.17497056,-0.17526958,-0.1777161,-0.17526958,-0.16580973,-0.15838864,-0.16561945,-0.15450141,-0.13389633,-0.12296857,-0.1033421,-0.083905912,-0.072461668,-0.039080357,-0.010809539,0.018140865,0.059187918,0.10730267,0.14041215,0.1720809,0.22557799,0.27597616,0.29209596,0.2936726,0.29818506,0.2645591,0.26072623,0.24699857,0.20353219,0.18039905,0.16321909,0.13981411,0.1192634,0.10534546,0.087866487,0.0072402905,-0.018176262,-0.025950737,-0.069852054,-0.076838208,-0.089424158,-0.10703905,-0.094398735,-0.065720165,-0.071917998,-0.058842745,-0.021302362,-0.0022739269,0.020995131,0.046384499,0.051359076,0.078923123,0.11195105,0.15506405,0.16199583,0.069354539,0.084903488,0.13581814,0.15231851,0.12029638,0.1151587,0.097598173,0.040159483,-0.091490103,-0.13598946,-0.16320012,-0.1561596,-0.16088952,-0.16170503,-0.13085178,-0.11418831,-0.10682158,-0.10622355,-0.054547756,0.0060985845,0.025317304,0.041926409,0.08139682,0.1464197,0.23634265,0.26605419,0.24680829,0.37919182,0.47471457,0.57328186,0.64279001,0.65458764,0.74190098,0.74519018,0.78794979,0.8772747,0.90888908,0.97176447,1.0590778,1.0746539,1.0994996,1.2111422,1.2489816,1.1391603,1.1831976,1.1944787,1.255125,1.3080513,1.2767631,1.2896209,1.266678,1.2619209,1.2525426,1.0261314,1.1190174,1.1409816,1.1181203,1.1413622,1.0715007,1.0381737,1.0969988,1.0734035,0.99481606,1.0312419,1.059404,1.0697609,1.0881641,1.1107808,1.1470164,1.1852635,1.2320735,1.2775242,1.340454,1.4205093,1.506681,1.585513,1.6895986,1.8061885,1.9243823,2.0555698,2.2074982,2.3670924,2.4700362,2.5115182,2.6501812,2.7523639,2.7451874,2.803197,2.8323648,2.8333978,2.8973062,2.9491994,2.8658277,2.7519289,2.7983311,2.791943,2.7759047,2.7659012,2.5719199,2.4488603,2.5295409,2.3556482,2.0263475,2.0632083,2.0007407,1.9108721,1.7507342,1.5824413,1.5449825,1.4366019,1.2138333,1.1047189,1.0608991,0.86482467,0.79132054,0.69375904,0.59497428,0.46305286,0.21111638,0.20092257,0.11230443,0.012513885,-0.038971623,-0.13351576,-0.30295038,-0.34176839,-0.51408446,-0.5316178,-0.56614082,-0.646468,-0.66854098,-0.69800787,-0.72309822,-0.76776068,-0.82019761,-0.87353159,-0.86393582,-0.84270553,-0.83898139,-0.83109818,-0.82606924,-0.85719432,-0.87869645,-0.90011703,-0.88367103,-0.83237581,-0.81087367,-0.80228369,-0.83455048,-0.90786432,-0.98571781,-1.07227,-1.1534127,-1.2276236,-1.266496,-1.3333401,-1.3692767,-1.3883867,-1.4243232,-1.4396819,-1.4537901,-1.4779019,-1.4902703,-1.5132132,-1.5121802,-1.5114191,-1.5229177,-1.5321601,-1.534661,-1.5370531,-1.5374337,-1.5311271,-1.5310184,-1.5473828,-1.5620075,-1.5604309,-1.5614095,-1.5638288,-1.5706247,-1.5687219,-1.572147,-1.5755721,-1.5702441,-1.5793506,-1.5844611,-1.5812535,-1.5824767,-1.5817428,-1.5866358,-1.5866358,-1.5915016,-1.5991402,-1.5936763,-1.597482,-1.5956335,-1.588892,-1.588294,-1.5911754,-1.5960684,-1.5970471,-1.6076486,-1.6100136,-1.5992489,-1.6000644,-1.6004994,-1.5991402,-1.596884,-1.597482,-1.6000101,-1.5987868,-1.5990858,-1.6003363,-1.605039,-1.6178152,-1.616293,-1.6074311,-1.6014508,-1.6022391,-1.6085185,-1.610231,-1.6039245,-1.6015323,-1.6022119,-1.59808,-1.5989771,-1.5978354,-1.5990858,3 +-0.24826671,-0.2556271,-0.26386635,-0.27788405,-0.28702411,-0.29416479,-0.29699909,-0.30077816,-0.30297529,-0.2975264,-0.28730974,-0.27208362,-0.25980165,-0.2527928,-0.24110406,-0.22104425,-0.20906988,-0.18962527,-0.16112847,-0.14319988,-0.12012999,-0.094357641,-0.063334142,-0.02490631,0.001503212,0.025210262,0.055706449,0.084379017,0.1108984,0.12678366,0.13135369,0.1375496,0.14969974,0.16138848,0.17426367,0.19203847,0.21214222,0.23883737,0.25861155,0.27957219,0.30376261,0.3205487,0.34375041,0.36422767,0.37152215,0.3816729,0.39263658,0.39052734,0.38307906,0.37253283,0.34886972,0.31347393,0.27867137,0.24255052,0.20425452,0.17386819,0.14409705,0.1132713,0.089080879,0.066867878,0.046961865,0.038678679,0.037074773,0.039403733,0.048324087,0.045973156,0.043072942,0.041578893,0.031735743,0.019607577,-9.7954672E-4,-0.024291113,-0.046723827,-0.067904176,-0.080713453,-0.083306069,-0.078538293,-0.06913457,-0.053469021,-0.037056448,-0.024378999,-0.0075709416,0.0047769381,0.013104067,0.029033271,0.04219409,0.054476055,0.066758021,0.073525187,0.077282282,0.073788842,0.064868488,0.054827597,0.049268854,0.04120538,0.024485209,0.0021403802,-0.022269752,-0.043516015,-0.060917297,-0.075242596,-0.08717302,-0.095741834,-0.10292645,-0.10224534,-0.092973448,-0.088886783,-0.080867253,-0.069508082,-0.063356114,-0.056083608,-0.044526696,-0.03492523,-0.024510826,-0.0040775023,0.012225214,0.029802267,0.04821423,0.062122074,0.079303643,0.096023815,0.11274399,0.12287276,0.1320348,0.14587673,0.15552214,0.15890572,0.16358561,0.16505769,0.16613428,0.16292647,0.14794203,0.12898079,0.10933843,0.087191345,0.05871652,0.035646637,0.015345141,-0.0046267852,-0.021632584,-0.038176985,-0.054216046,-0.069376254,-0.081196822,-0.093566673,-0.10587061,-0.11432957,-0.11991028,-0.1221953,-0.12494171,-0.12691913,-0.12716082,-0.13564174,-0.14084895,-0.13808056,-0.14069515,-0.14201343,-0.14284834,-0.14221117,-0.13452121,-0.12612816,-0.11577967,-0.10253097,-0.087458647,-0.071002132,-0.055797981,-0.051403718,-0.060477871,-0.072562095,-0.082866642,-0.085063774,-0.099454986,-0.11534025,-0.1294678,-0.15163686,-0.16279829,-0.16668721,-0.16712664,-0.16229295,-0.15495453,-0.14642966,-0.14084895,-0.14324382,-0.13568569,-0.12790784,-0.12751236,-0.12630393,-0.12597436,-0.12707293,-0.12691913,-0.12825938,-0.129314,-0.12149222,-0.11270369,-0.1042667,-0.082910585,-0.067201094,-0.057050346,-0.036858706,-0.016842837,0.015169371,0.057947523,0.098638401,0.13442968,0.17545012,0.22561064,0.27010255,0.31193594,0.35671348,0.40146905,0.43011965,0.43761187,0.4341404,0.40425941,0.39571257,0.37738849,0.32810683,0.28748186,0.25037231,0.21058226,0.17892159,0.15780716,0.13401222,0.076117802,0.049730251,0.030373522,-0.014469935,-0.031256021,-0.042505334,-0.046196516,-0.029014946,0.001151671,0.014620088,0.034657928,0.070756801,0.09694661,0.12148857,0.14592067,0.16461826,0.19188467,0.23022461,0.26419227,0.27043212,0.2110876,0.19537811,0.20493563,0.1975313,0.17698811,0.16272873,0.1331114,0.080577979,-0.038023186,-0.086140369,-0.11485688,-0.11314312,-0.11283552,-0.10760634,-0.076560875,-0.03925358,0.0052383358,0.038063482,0.07490938,0.12379556,0.159455,0.20561674,0.26977298,0.34104793,0.42181449,0.49225453,0.57233998,0.67187004,0.76788469,0.86989752,0.94286426,0.9931566,1.0512707,1.080185,1.1375301,1.1995991,1.2373238,1.2851993,1.3333605,1.3414459,1.3385017,1.3694593,1.3849271,1.3519482,1.4116662,1.4471279,1.4818206,1.506033,1.478459,1.4736473,1.4328026,1.4020867,1.3470486,1.1783309,1.2232402,1.2076845,1.1645768,1.153701,1.0923571,1.0554892,1.0675515,1.0455142,0.99759481,1.0062515,1.018885,1.0248612,1.0328148,1.0535118,1.0872158,1.1249406,1.1788801,1.2317431,1.2914612,1.356716,1.4403827,1.5271914,1.6374215,1.7682607,1.9021319,2.0379586,2.187012,2.3209492,2.4197981,2.5008283,2.5921631,2.6480581,2.6536388,2.6882656,2.6934728,2.6638115,2.6587581,2.663438,2.5976999,2.5097706,2.5235467,2.492655,2.4620709,2.4291799,2.2822357,2.1861112,2.1882644,2.0195686,1.805546,1.7745005,1.6716308,1.5717492,1.4384712,1.2850236,1.2218121,1.1254239,0.96907604,0.85109007,0.78161677,0.61527193,0.53112179,0.44178642,0.35431861,0.24951543,0.056453474,0.0071718116,-0.083393954,-0.16758804,-0.22710833,-0.3170589,-0.46398109,-0.50465,-0.64159721,-0.68890146,-0.73269029,-0.80526155,-0.84028383,-0.87704184,-0.89929878,-0.91652429,-0.93691368,-0.9774947,-0.99713705,-0.99988347,-1.0113525,-1.0131761,-1.0045634,-1.0024102,-0.98417398,-0.96160944,-0.93109128,-0.89182854,-0.85814651,-0.83797684,-0.84175591,-0.87198844,-0.92474157,-1.0070022,-1.0977217,-1.1977132,-1.2596064,-1.3470962,-1.4121313,-1.4516796,-1.5000605,-1.5255912,-1.5316772,-1.5484194,-1.5652713,-1.5789375,-1.5884291,-1.5933946,-1.5948447,-1.5972396,-1.6020513,-1.6035893,-1.6111475,-1.6162009,-1.6160251,-1.613762,-1.6205072,-1.6267031,-1.6305042,-1.6339317,-1.6403034,-1.6422808,-1.6418634,-1.6452909,-1.6452469,-1.6466092,-1.6510474,-1.6492018,-1.6470486,-1.6472244,-1.6491578,-1.6524096,-1.6554416,-1.6542552,-1.6539696,-1.6606488,-1.6621649,-1.6606708,-1.6638347,-1.6644499,-1.6620111,-1.6613519,-1.6629558,-1.6701185,-1.6695692,-1.6635271,-1.6590669,-1.6610223,-1.6633513,-1.6615716,-1.6621429,-1.664384,-1.6647135,-1.6629339,-1.6641203,-1.6673721,-1.665153,-1.6625164,-1.659792,-1.6592207,-1.6601874,-1.6575509,-1.656672,-1.6586714,-1.662055,-1.6622308,-1.658232,-1.6582979,-1.6562106,3 +-0.14800254,-0.14748106,-0.15179195,-0.15227866,-0.163925,-0.16371641,-0.14772442,-0.1321496,-0.1145584,-0.095368005,-0.073709278,-0.043428778,-0.0086983302,0.018696657,0.048942392,0.081413101,0.12062826,0.15911335,0.19200124,0.23517964,0.26705934,0.29118639,0.32254462,0.35289465,0.3835228,0.41008342,0.43062966,0.44530058,0.45190597,0.46150117,0.47954432,0.48882663,0.49661403,0.51483101,0.52640782,0.54330372,0.57010769,0.58891567,0.61161736,0.6392557,0.64777318,0.6511454,0.67551582,0.70277175,0.73068821,0.76159449,0.78224502,0.80289556,0.81975669,0.81850514,0.80397328,0.77713454,0.7509911,0.73430379,0.71427903,0.69300272,0.67534199,0.6432537,0.60980957,0.59034105,0.57288891,0.5444162,0.52126257,0.51545678,0.5205325,0.53575966,0.53555107,0.50958146,0.46953193,0.41578492,0.3579356,0.30359757,0.26601638,0.24887713,0.26288751,0.31479197,0.38463529,0.46560347,0.54236505,0.61088729,0.66790224,0.7126103,0.74873136,0.79124921,0.82761362,0.85330512,0.8769107,0.89338941,0.90833845,0.90607871,0.89780459,0.88209071,0.85094108,0.82952571,0.81419425,0.79020626,0.74355134,0.66188786,0.5714983,0.49372852,0.41846184,0.35866567,0.31708648,0.27995723,0.26031488,0.25631689,0.25075445,0.24049871,0.22920002,0.21727555,0.21077446,0.20416907,0.20750653,0.22182979,0.23677884,0.26247033,0.29125592,0.31948528,0.34469006,0.36478435,0.37983769,0.39405666,0.41488102,0.43987721,0.44902046,0.44603065,0.45889378,0.47617209,0.48190835,0.47523343,0.46115352,0.44390997,0.41036154,0.35748365,0.31281036,0.27446433,0.23142499,0.19273131,0.15960006,0.13575113,0.11377951,0.092190317,0.066151173,0.048629505,0.030551595,-0.0011195138,-0.024516502,-0.038839769,-0.042663943,-0.046383821,-0.057334863,-0.071831956,-0.087024354,-0.10068708,-0.11177719,-0.12411884,-0.13263631,-0.13347068,-0.13506988,-0.13785109,-0.13468746,-0.11803492,-0.098948822,-0.083374007,-0.071032356,-0.060463732,-0.059977019,-0.07572566,-0.096028544,-0.11104712,-0.12436219,-0.13639096,-0.15648525,-0.18148144,-0.19483128,-0.20564326,-0.21506463,-0.21888881,-0.21433456,-0.20887642,-0.20046324,-0.19194577,-0.18196815,-0.15950982,-0.14946268,-0.13986748,-0.13086329,-0.13315779,-0.13267108,-0.13750344,-0.13531323,-0.12728247,-0.11448887,-0.097419153,-0.078298286,-0.050659942,-0.030183232,-0.015268955,0.010804954,0.034167177,0.079709605,0.14545062,0.18362283,0.18473531,0.18609116,0.19766797,0.2098358,0.24164597,0.28381617,0.31340136,0.31437479,0.31381855,0.30623973,0.27957481,0.26900619,0.23889951,0.19050634,0.15838328,0.12921527,0.11256273,0.10741748,0.083464248,0.047829906,-0.016555268,-0.045201803,-0.064009783,-0.096445727,-0.10458079,-0.1009652,-0.078889294,-0.039152656,0.0016617032,0.046091645,0.093268038,0.13223984,0.16293752,0.20124879,0.24060301,0.2775932,0.33054061,0.39892379,0.46779367,0.47624162,0.42197312,0.43403665,0.46230077,0.47140926,0.44804703,0.38467005,0.23472769,0.041919819,-0.19257154,-0.2898446,-0.36935265,-0.39420977,-0.39792965,-0.39525273,-0.37216863,-0.33204957,-0.30799205,-0.27840685,-0.21582947,-0.16326447,-0.12053802,-0.069676513,-0.0013976355,0.077032684,0.14729318,0.18581303,0.27550728,0.41196074,0.53833229,0.6448529,0.69376756,0.74170878,0.80157448,0.83178545,0.89165115,0.95203832,0.99431282,1.0435056,1.0925593,1.0787228,1.0679803,1.1069521,1.0900214,1.0549433,1.1082037,1.1097681,1.1430036,1.1510344,1.1035104,1.0881094,1.0381865,0.99007146,0.92426091,0.80685879,0.82212072,0.78860706,0.74445524,0.72057153,0.65118017,0.62611445,0.63195501,0.59194025,0.53930572,0.54389472,0.54963098,0.55828752,0.5700034,0.58436143,0.61300797,0.64026389,0.68476337,0.73972717,0.80296509,0.86397804,0.93799317,1.0320331,1.1557625,1.2763282,1.4090618,1.5594213,1.7184027,1.853535,1.9501476,2.0422059,2.1177507,2.1417734,2.124808,2.1386446,2.1212619,2.0975521,2.0808648,2.0492632,1.9883198,1.9248385,1.9107238,1.8707786,1.8295471,1.7771559,1.6522097,1.5857386,1.5658877,1.4005791,1.2538699,1.2215035,1.1304186,1.0289737,0.90771267,0.77563963,0.70079013,0.59200978,0.45399188,0.36919953,0.30321516,0.15567159,0.081517397,-0.0025101223,-0.084868911,-0.18600091,-0.33736865,-0.3807904,-0.45856018,-0.51957313,-0.56431596,-0.64288534,-0.76991743,-0.80026746,-0.92083321,-0.95744098,-0.98737383,-1.0290573,-1.0429634,-1.0644831,-1.0769638,-1.0820395,-1.0845078,-1.0625362,-1.0090673,-0.94429973,-0.84754814,-0.73970646,-0.65018603,-0.58208098,-0.4805318,-0.30708815,0.051028305,0.26073207,0.53099683,0.72616873,0.76781746,0.67419474,0.48169976,0.16808278,-0.16649763,-0.50806584,-0.74652044,-1.0680639,-1.3053712,-1.4641092,-1.6195445,-1.7049626,-1.7598916,-1.8168718,-1.8479171,-1.8788582,-1.900795,-1.9170304,-1.9171694,-1.9215499,-1.9409488,-1.9460246,-1.9434172,-1.9457464,-1.9560369,-1.9630248,-1.9648673,-1.9764441,-1.9809636,-1.9837101,-1.9861089,-1.9842315,-1.9860393,-1.9856569,-1.9883686,-1.9928533,-1.9883338,-1.9926795,-2.0007102,-1.9966775,-1.9922275,-1.9961212,-2.0051254,-2.0096449,-2.0163546,-2.0180929,-2.0127738,-2.0089844,-2.0018923,-2.0042911,-2.0043954,-2.0003974,-2.0122175,-2.0114179,-2.0055078,-2.0112441,-2.009193,-2.0112093,-2.0102011,-2.0026223,-2.0090539,-2.0124957,-2.0066551,-2.0066899,-2.0052297,-2.0061684,-2.0081848,-2.009193,-2.0128085,-2.0091234,-2.0011274,-2.0025876,-2.0040825,-2.0031786,-2.0011622,-2.0010927,-2.0087062,-2.0062379,-2.0012317,4 +-0.1647967,-0.16571309,-0.17402935,-0.17666398,-0.18156668,-0.18328492,-0.17627451,-0.16413231,-0.1458961,-0.12213862,-0.1003972,-0.077441566,-0.052149128,-0.024955176,0.003682095,0.033419037,0.069456179,0.1031107,0.12911334,0.1577277,0.19229862,0.2223792,0.24794656,0.27452195,0.30512946,0.32641268,0.34235791,0.35266733,0.35209459,0.35605799,0.36302257,0.36348077,0.36437425,0.37161375,0.38261046,0.39537123,0.40428315,0.41035425,0.42015965,0.43878533,0.45555532,0.46794953,0.48643775,0.5049947,0.52313928,0.54582,0.55638142,0.55102053,0.53750373,0.50529253,0.4606413,0.40895675,0.35747839,0.31296462,0.26939015,0.23644583,0.21145122,0.1813019,0.15287082,0.13497825,0.11797917,0.096947959,0.081873299,0.077680803,0.076237484,0.076283304,0.075046174,0.06432438,0.047004558,0.026477363,1.0816358E-4,-0.026696322,-0.054165192,-0.081611152,-0.097556385,-0.10323802,-0.10321511,-0.095746509,-0.08438324,-0.064245511,-0.038426148,-0.017692764,0.0045984876,0.02684392,0.047187837,0.067165197,0.075779288,0.079834326,0.082377315,0.076466583,0.066202985,0.054083692,0.044736486,0.037130427,0.03181535,0.02058954,-0.0027555635,-0.031782301,-0.058930434,-0.077876852,-0.092699504,-0.10232163,-0.10720142,-0.10967568,-0.10477298,-0.090866718,-0.079892916,-0.07318034,-0.059319901,-0.044130692,-0.030865909,-0.017784403,-0.0056192906,0.018321468,0.040658539,0.061621021,0.089387719,0.11165606,0.13323711,0.15461197,0.17351257,0.18881632,0.20457828,0.22247084,0.23307809,0.23644583,0.2424482,0.2515434,0.25793524,0.25786651,0.24739672,0.23344465,0.21404003,0.1852653,0.15864409,0.13564264,0.11426778,0.089410629,0.061460653,0.041483292,0.023269988,0.0074163951,-0.0070396992,-0.019731738,-0.031324105,-0.050568351,-0.065253543,-0.075929518,-0.079824187,-0.075860788,-0.078930704,-0.085597461,-0.087224058,-0.086720042,-0.088392458,-0.097900032,-0.10229872,-0.10092413,-0.098014581,-0.093340979,-0.085253813,-0.069652228,-0.055837609,-0.047933722,-0.038998893,-0.024267881,-0.016616003,-0.018448788,-0.027910542,-0.039136352,-0.049125032,-0.063031291,-0.076181526,-0.092951512,-0.10857601,-0.12009964,-0.12646857,-0.12617075,-0.12436087,-0.11670899,-0.10367331,-0.096021427,-0.10074085,-0.09313479,-0.084566519,-0.081152956,-0.07446329,-0.08069476,-0.083925044,-0.081794431,-0.080763489,-0.073386528,-0.056845641,-0.043466308,-0.047108969,-0.018334239,0.013647865,0.017771632,0.045355052,0.074083962,0.09433624,0.14391308,0.18867886,0.22354761,0.26771773,0.32096015,0.35846352,0.38590948,0.4305378,0.48009173,0.48987422,0.47415809,0.47310424,0.43981627,0.43347026,0.41007933,0.34856648,0.31734039,0.2856103,0.24586177,0.22160027,0.20185201,0.18670862,0.099353489,0.072319906,0.067371385,0.02308671,0.022147407,0.011059056,8.6418753E-4,0.029982565,0.074152691,0.075618919,0.094679887,0.14054534,0.1600645,0.18542567,0.21479606,0.21736196,0.2484964,0.28554157,0.32331986,0.33692829,0.22849613,0.21264253,0.24153181,0.2436166,0.20893114,0.19566636,0.17562027,0.1185061,-0.024840627,-0.067040509,-0.10271109,-0.098724786,-0.08440615,-0.074623658,-0.038884344,0.0079662307,0.041620751,0.049524638,0.11660458,0.20576959,0.25681266,0.2968132,0.35779913,0.4468725,0.57365542,0.65228191,0.65026585,0.79691159,0.92025804,1.0458726,1.1261257,1.1381762,1.2309152,1.2335498,1.2826226,1.3645023,1.3862437,1.4366911,1.5109877,1.4845956,1.442808,1.539098,1.5703928,1.4457863,1.4952028,1.4871385,1.5262456,1.5570593,1.4794638,1.4757295,1.4200128,1.3862208,1.3606764,1.0738684,1.1396195,1.1387031,1.0868582,1.092242,0.99876998,0.94438208,0.98699434,0.94154126,0.8401195,0.86133399,0.87294927,0.87024591,0.87892873,0.89301827,0.92658115,0.95957129,1.007155,1.0550594,1.1123339,1.1916706,1.2864944,1.3793249,1.4980894,1.6373811,1.780682,1.9185304,2.0777765,2.2401384,2.3156033,2.3577803,2.4863502,2.5473132,2.4805082,2.4985382,2.490726,2.4377127,2.4493967,2.4726501,2.3726259,2.2303788,2.2550756,2.2279046,2.2076981,2.1910427,2.0035029,1.8918863,1.9532388,1.7808882,1.4780663,1.4878946,1.4100012,1.3235166,1.1803532,1.0124701,0.96827702,0.87984512,0.69578766,0.58820316,0.54176496,0.36419097,0.29571353,0.21261962,0.13163342,0.022055768,-0.19446491,-0.21444227,-0.2971238,-0.38028643,-0.42282996,-0.51034546,-0.67925954,-0.71586943,-0.88583736,-0.91156508,-0.93772809,-1.0061368,-1.0250374,-1.0530561,-1.0718422,-1.089414,-1.1146835,-1.1691631,-1.1647644,-1.1423128,-1.1400447,-1.1271465,-1.1134235,-1.1222208,-1.1130798,-1.0976844,-1.0570653,-0.98991665,-0.92952638,-0.90125566,-0.89342051,-0.90849517,-0.9529173,-1.0536976,-1.1624505,-1.2574346,-1.3100584,-1.4037825,-1.4735658,-1.5108859,-1.568779,-1.5915513,-1.6033957,-1.6281841,-1.6295358,-1.6480011,-1.6712775,-1.6801894,-1.6779901,-1.6800062,-1.688689,-1.685138,-1.6883911,-1.6888493,-1.6851838,-1.6885744,-1.7021141,-1.707727,-1.7093307,-1.7105678,-1.7180823,-1.7233515,-1.7213584,-1.7143021,-1.7124465,-1.7190445,-1.7218853,-1.72019,-1.7194339,-1.7213126,-1.7260778,-1.7298121,-1.7342108,-1.7310034,-1.7264214,-1.7399841,-1.7388615,-1.7336609,-1.7293997,-1.729583,-1.7330882,-1.7223435,-1.7284833,-1.7392738,-1.7336839,-1.7367079,-1.732378,-1.7318511,-1.7319885,-1.7294226,-1.7298579,-1.7282771,-1.7269942,-1.726284,-1.7236035,-1.7313012,-1.7409692,-1.7356541,-1.73389,-1.7345773,-1.7299266,-1.7267193,-1.7244741,-1.7256196,-1.7230537,-1.7166619,-1.7238326,-1.7231453,-1.7195485,4 +-0.10203257,-0.096905238,-0.10458011,-0.10951396,-0.1041609,-0.10174234,-0.092551841,-0.059337037,-0.028315055,-0.0063545869,0.022571315,0.049820354,0.075360281,0.10664024,0.14362799,0.18071248,0.21547516,0.24759355,0.28219499,0.31757037,0.3399823,0.36968214,0.39889827,0.41666658,0.44884947,0.46777868,0.48577272,0.51473087,0.52314744,0.53414379,0.55194435,0.5611671,0.57303414,0.59183436,0.61360135,0.63817385,0.66381052,0.68983416,0.71015001,0.71479363,0.72678966,0.75123318,0.77896592,0.81185825,0.84197731,0.8729348,0.90985805,0.93926766,0.9554881,0.96632322,0.97238573,0.96816132,0.94765198,0.92598174,0.90956782,0.89528223,0.87199962,0.83343175,0.79654075,0.76687316,0.73230396,0.70911809,0.71498712,0.72856327,0.73694758,0.74426774,0.74378403,0.73510948,0.69196249,0.62730648,0.55645898,0.50102573,0.48177405,0.47871054,0.51795561,0.59983171,0.69744454,0.81111657,0.93204425,1.0327528,1.1031811,1.1515844,1.1964728,1.2412967,1.2762851,1.3106285,1.3495834,1.3842815,1.3950844,1.381863,1.3619341,1.326204,1.2781877,1.2343957,1.1960858,1.1373311,1.0536491,0.9603252,0.86619509,0.77390309,0.69328463,0.63307877,0.58041879,0.5359174,0.50973253,0.48409586,0.45484748,0.43707917,0.42488966,0.40541224,0.39099766,0.39389993,0.40031716,0.4145705,0.42692125,0.44320618,0.47142264,0.4891587,0.51137714,0.54046428,0.56384363,0.5777745,0.58783569,0.6018633,0.61801924,0.62898335,0.63778688,0.64826728,0.64817054,0.63285303,0.60963492,0.57948361,0.53362784,0.47941999,0.43091992,0.38013029,0.32443907,0.28164679,0.25010885,0.22537511,0.19973844,0.16268619,0.12998735,0.10941352,0.07832704,0.046821347,0.024925374,0.011510463,0.0081244879,0.0029649067,-0.010192025,-0.0240584,-0.037215332,-0.057144215,-0.078556477,-0.093906231,-0.10548304,-0.10870778,-0.10961071,-0.1121905,-0.10077492,-0.089681824,-0.08787597,-0.080910536,-0.074138585,-0.07284869,-0.076008934,-0.087102033,-0.10574102,-0.11638266,-0.11938166,-0.14721115,-0.17142894,-0.18958422,-0.21402773,-0.22966771,-0.24405004,-0.24621062,-0.23560123,-0.2211544,-0.21038378,-0.20509521,-0.19403435,-0.17165467,-0.15972314,-0.15624042,-0.14630823,-0.14140663,-0.13766593,-0.13724671,-0.1330868,-0.12160673,-0.10106515,-0.086811807,-0.086747312,-0.051275191,-0.01789915,-0.0093535935,0.01573487,0.039178717,0.080165141,0.14624003,0.16794252,0.14875532,0.13556614,0.14488564,0.14524036,0.14691722,0.17764898,0.20622016,0.19886776,0.19541729,0.19606223,0.15623672,0.15533379,0.1292779,0.061977617,0.030858893,0.014831944,0.0064798714,0.014348233,0.018830619,0.0036421017,-0.096195795,-0.12160673,-0.12644384,-0.16901039,-0.1534349,-0.12831419,-0.10499933,-0.038634217,0.031116872,0.045757184,0.095869616,0.17329558,0.21179896,0.25188245,0.29422327,0.31621598,0.37996906,0.46952004,0.56571398,0.57832271,0.47935549,0.52530801,0.58635231,0.58883536,0.52953242,0.4417228,0.25181796,-0.0020334376,-0.33498766,-0.44456427,-0.50544733,-0.51515379,-0.52440879,-0.51621796,-0.48596991,-0.47300646,-0.46562181,-0.44727305,-0.3746197,-0.29380776,-0.25301482,-0.21976777,-0.16223843,-0.07297768,0.044531783,0.098868623,0.095224669,0.24849648,0.37123002,0.48422485,0.54978378,0.57603314,0.64655817,0.61495574,0.67838634,0.76687316,0.80153909,0.85729482,0.92449836,0.91756518,0.93788103,1.0313984,1.0103086,0.86303485,0.89618516,0.86719476,0.88973568,0.89931316,0.82617609,0.81850122,0.73878569,0.67658048,0.59157638,0.35165586,0.45294489,0.45952335,0.40644416,0.38867585,0.29057931,0.25771923,0.28645165,0.22663275,0.1503032,0.17410177,0.18925804,0.19351469,0.20364037,0.22140868,0.24810951,0.2826787,0.33192046,0.38090423,0.43682119,0.50547587,0.59963823,0.69383283,0.80505406,0.93091559,1.0719979,1.224657,1.3756392,1.5164636,1.5935671,1.6397453,1.7532883,1.7948552,1.7305217,1.7459682,1.7275227,1.6864395,1.686117,1.6778617,1.5658021,1.4621912,1.4916976,1.4602564,1.4399405,1.4209791,1.2762528,1.2099844,1.2474559,1.06184,0.82295135,0.8575528,0.80044268,0.72088839,0.59176987,0.45365433,0.41382881,0.32389086,0.15981618,0.082583695,0.043693351,-0.10467686,-0.14898476,-0.21702674,-0.28345635,-0.4029329,-0.5735538,-0.54965849,-0.60383409,-0.64972212,-0.65630059,-0.73169497,-0.87445413,-0.88774005,-1.0138273,-1.0047336,-1.0138918,-1.0506216,-1.0362392,-1.033724,-1.0211152,-1.009087,-1.0026697,-1.002057,-0.92250273,-0.82724396,-0.72524549,-0.59019345,-0.45201342,-0.31899296,-0.12341259,0.10380247,0.50757195,0.81047162,1.1649671,1.4007922,1.4778635,1.4112081,1.1976659,0.79163915,0.33956309,-0.11980088,-0.4337614,-0.87567953,-1.1673894,-1.3706446,-1.597118,-1.7003096,-1.7675454,-1.8395216,-1.8681895,-1.9378761,-1.9678016,-1.9655443,-1.9696075,-1.9782175,-1.9886657,-1.9938253,-2.0021451,-1.9963406,-1.9884077,-2.0116258,-2.0270078,-2.018946,-2.0211711,-2.0234606,-2.0384234,-2.0408742,-2.0328769,-2.0332961,-2.0350697,-2.0369723,-2.0321029,-2.0255245,-2.0348762,-2.0385524,-2.0350374,-2.031587,-2.0448406,-2.0500002,-2.0385846,-2.0577396,-2.0561917,-2.0474204,-2.0486136,-2.0519351,-2.0498067,-2.0424543,-2.0606096,-2.0725411,-2.0535797,-2.0445504,-2.0435507,-2.0428413,-2.0398423,-2.0383267,-2.0382944,-2.0483234,-2.0532895,-2.0442924,-2.0511289,-2.071606,-2.0688004,-2.0491295,-2.0389716,-2.0399713,-2.0372303,-2.0337798,-2.0341023,-2.0457113,-2.0476139,-2.0397778,-2.0479364,-2.0433573,-2.0378752,4 +-0.067976055,-0.053381899,-0.043660385,-0.043185005,-0.03885905,-0.031205438,-0.020461858,-2.1068422E-4,0.021680549,0.046994516,0.08359875,0.12074967,0.15336071,0.18511608,0.22098347,0.25727871,0.29566562,0.3277062,0.34869422,0.37096575,0.39126446,0.40856828,0.42244937,0.43514201,0.44973616,0.45979044,0.46668345,0.4736953,0.47329122,0.4713184,0.46996357,0.46806205,0.46789567,0.4710094,0.47709426,0.49042866,0.50685303,0.52132834,0.52950487,0.52762712,0.54036729,0.5636609,0.59470319,0.63608499,0.67775202,0.72593174,0.77121166,0.7999959,0.81152385,0.80453577,0.78416575,0.75143586,0.71214573,0.68238697,0.65548048,0.63382694,0.61203078,0.58298508,0.55182394,0.51481564,0.48819438,0.47217408,0.46746782,0.47590581,0.48524702,0.49325717,0.48969182,0.47581074,0.44911817,0.40825929,0.36117293,0.32295241,0.29336002,0.27712581,0.29637868,0.33975708,0.40445625,0.48790915,0.57326357,0.64597289,0.70168738,0.74520839,0.78086186,0.8209126,0.85587677,0.87591403,0.89566605,0.91292233,0.91277972,0.89671189,0.86581221,0.82454925,0.78212162,0.74028821,0.70018994,0.65236674,0.59187468,0.52413308,0.45420473,0.38910149,0.33253131,0.27969286,0.23576778,0.20750646,0.18827735,0.17007031,0.15407378,0.14473257,0.1319924,0.11506888,0.10929302,0.11140846,0.11616226,0.12662061,0.13814857,0.15473932,0.17311274,0.18818227,0.20600901,0.23013453,0.25357075,0.26711907,0.28016824,0.29953996,0.31582171,0.31948214,0.32903727,0.34325112,0.34460595,0.33752279,0.32311879,0.30339053,0.27900356,0.24520406,0.20634178,0.16631481,0.12949666,0.097598681,0.068600521,0.046210139,0.023391916,-9.9506066E-4,-0.019796326,-0.033154495,-0.054142507,-0.077863951,-0.097021752,-0.11021354,-0.11660739,-0.12364301,-0.12675675,-0.13526605,-0.15214202,-0.16450189,-0.17341526,-0.18242371,-0.18824711,-0.19114692,-0.19188376,-0.18867495,-0.17719453,-0.16818609,-0.16609442,-0.15910634,-0.1512388,-0.15095357,-0.15071588,-0.14629485,-0.15634913,-0.1666411,-0.16894669,-0.18430146,-0.2076426,-0.22575456,-0.24061018,-0.25463388,-0.26449801,-0.27077302,-0.26573399,-0.25529941,-0.24648112,-0.23887504,-0.23528593,-0.21581913,-0.20286503,-0.20291257,-0.19533027,-0.18979209,-0.1864882,-0.19060024,-0.18934048,-0.17602985,-0.16193484,-0.15459023,-0.15463777,-0.13186708,-0.109857,-0.10258369,-0.082308751,-0.060631439,-0.033059419,0.015952224,0.042312026,0.035347714,0.031687291,0.050036946,0.064084415,0.078559725,0.10831849,0.13534383,0.13368,0.13125556,0.13962224,0.11623356,0.11369028,0.087710784,0.033755192,0.012149187,-0.0025400445,-0.013354932,-0.014424536,-0.016848972,-0.028614619,-0.10398606,-0.12751736,-0.13697741,-0.17408079,-0.17072937,-0.16100785,-0.15573114,-0.11877037,-0.068118668,-0.051860684,-0.012023869,0.041931723,0.072165869,0.10465807,0.13741173,0.15925542,0.21178487,0.28123784,0.35492169,0.37372296,0.29756713,0.31855515,0.36338345,0.3717739,0.3283242,0.26248412,0.13258662,-0.044064458,-0.28622286,-0.36470804,-0.4204463,-0.43651414,-0.44663972,-0.44640203,-0.42805238,-0.41514582,-0.40478254,-0.39223252,-0.33723109,-0.27697672,-0.24709911,-0.21230132,-0.16058001,-0.093622787,-0.012190252,0.022702615,0.055361198,0.1860906,0.29440586,0.398514,0.47286338,0.50697187,0.56330436,0.57901566,0.64409514,0.72567029,0.7712592,0.82402634,0.8913401,0.90056246,0.94151642,1.0391832,1.0402052,0.92069479,0.9696589,0.96079307,0.98594065,1.0043854,0.95734656,0.96509525,0.93044007,0.89725857,0.83120457,0.64438036,0.7357721,0.73921861,0.70370775,0.70385036,0.62405788,0.5955351,0.63028536,0.58918879,0.52346755,0.55396315,0.57487986,0.58334162,0.60361656,0.62750439,0.657382,0.69586398,0.74708614,0.79659693,0.85834875,0.93298336,1.0243751,1.1244901,1.2465675,1.3808623,1.5290381,1.678236,1.840697,1.9982379,2.1060302,2.1906002,2.3140326,2.3770679,2.3571495,2.3984362,2.4095363,2.395275,2.4071832,2.4082766,2.3251802,2.2553945,2.2868409,2.2575812,2.236308,2.2116358,2.0499116,1.9688356,2.0026114,1.8075393,1.5685184,1.5842773,1.5100943,1.4137586,1.2672228,1.1122966,1.0624768,0.96502394,0.7822167,0.68157882,0.62522256,0.44598066,0.37835791,0.28893899,0.19654896,0.082980756,-0.1283255,-0.15299771,-0.2326238,-0.30699695,-0.34314957,-0.43836812,-0.59510079,-0.62155567,-0.77978579,-0.78884177,-0.80357854,-0.8668278,-0.88669867,-0.90804322,-0.91721805,-0.93345226,-0.95379851,-0.98617187,-0.9495914,-0.89083448,-0.83067518,-0.74971802,-0.66445868,-0.58198031,-0.46506068,-0.32192387,-0.055212111,0.14437604,0.38489438,0.54573908,0.5978407,0.55244194,0.41023211,0.13501106,-0.18016565,-0.49417769,-0.70693385,-1.0086811,-1.2207242,-1.3726318,-1.5342608,-1.6073267,-1.6557203,-1.7166402,-1.7414788,-1.7909421,-1.8211525,-1.8228638,-1.8282594,-1.8414987,-1.8501982,-1.8514342,-1.8620827,-1.862558,-1.8633662,-1.88849,-1.9026325,-1.8946937,-1.8944798,-1.8961911,-1.909169,-1.9152776,-1.9141605,-1.9173693,-1.914826,-1.9148736,-1.9153965,-1.9139228,-1.9240959,-1.9284694,-1.9245,-1.9211486,-1.9323913,-1.9380008,-1.9340789,-1.9542825,-1.9547817,-1.9433488,-1.939522,-1.9427784,-1.9431349,-1.9383573,-1.9519294,-1.9643368,-1.9521433,-1.9493386,-1.9513352,-1.949909,-1.9491484,-1.9477936,-1.9476272,-1.9508836,-1.9518106,-1.9476748,-1.9494099,-1.9634574,-1.9664998,-1.9535457,-1.9488157,-1.9534269,-1.9509549,-1.9495525,-1.9519294,-1.9573012,-1.9562078,-1.9464863,-1.9505983,-1.9522622,-1.9490058,4 +0.014462796,0.034501863,0.053229649,0.074882602,0.09596397,0.11522972,0.14051391,0.16969832,0.20590986,0.24306283,0.28162795,0.32977551,0.37896536,0.42428862,0.47354573,0.52935924,0.57686797,0.60558167,0.63802747,0.66115982,0.67101124,0.68889846,0.69928784,0.70063275,0.70863492,0.71041692,0.71630088,0.71677159,0.70217939,0.69464792,0.68382145,0.6684223,0.65887348,0.65332575,0.639406,0.62632681,0.61758493,0.60981811,0.60817061,0.61042332,0.61909795,0.6278062,0.63822921,0.67070863,0.72013385,0.75927055,0.78354607,0.80119793,0.79413719,0.75883346,0.70544078,0.63550578,0.56150244,0.49587113,0.43756955,0.38427774,0.34736012,0.32486661,0.30496203,0.28831884,0.26249669,0.23237084,0.22073743,0.20920487,0.18869509,0.1727916,0.16687403,0.15339136,0.1364792,0.12044122,0.096602799,0.065569142,0.036989935,0.012613553,-0.012468904,-0.020403837,-0.012737885,3.8701755E-5,0.018396639,0.046471508,0.081237272,0.11290976,0.14286749,0.1745736,0.19111592,0.19847927,0.19562135,0.18486211,0.16038486,0.12585446,0.09700627,0.062374996,0.036182993,0.015437851,-0.0029537093,-0.024304058,-0.052345304,-0.07625097,-0.10059373,-0.12984539,-0.14665669,-0.15223804,-0.15788663,-0.15778577,-0.15839097,-0.1471274,-0.13374561,-0.12379332,-0.10624233,-0.093364871,-0.080083946,-0.065827965,-0.048949421,-0.02679213,-0.016537238,0.003098358,0.03601488,0.054709044,0.070578909,0.086146171,0.10289022,0.12181975,0.13587399,0.1442124,0.1512059,0.1637135,0.17578401,0.18388706,0.18499661,0.17460722,0.15500525,0.14226229,0.12400522,0.10094011,0.086684133,0.062879335,0.031005113,0.0044432619,-0.015898409,-0.032978688,-0.051639229,-0.072048145,-0.08778352,-0.09736596,-0.10876402,-0.12453302,-0.1432608,-0.15227166,-0.15462524,-0.16061006,-0.16323263,-0.16323263,-0.15953414,-0.15489422,-0.15328034,-0.15987037,-0.16397232,-0.16555259,-0.15647449,-0.14527816,-0.13677164,-0.12806339,-0.1157239,-0.10422497,-0.093095891,-0.078806287,-0.080083946,-0.088018879,-0.097803054,-0.10035837,-0.10530089,-0.11642997,-0.12806339,-0.14282371,-0.1556003,-0.16208946,-0.15950052,-0.15728143,-0.1551632,-0.15321309,-0.14726189,-0.14477382,-0.14685842,-0.13354387,-0.12752543,-0.12597879,-0.11864906,-0.11848095,-0.12244842,-0.11918703,-0.11367292,-0.10792346,-0.097634941,-0.092120835,-0.082000434,-0.06226397,-0.042796486,-0.036811664,-0.021378892,0.0077382764,0.03070251,0.068359818,0.11042169,0.1378241,0.17235451,0.21646736,0.25869734,0.29312688,0.32950653,0.368307,0.38296645,0.38767362,0.38340355,0.35334495,0.35001631,0.33233082,0.27611384,0.2364728,0.2084988,0.18385344,0.16045211,0.13953885,0.11650738,0.046673243,0.021489918,0.0090831802,-0.027363714,-0.036139212,-0.0510004,-0.066197813,-0.050058967,-0.024102323,-0.02588432,0.0071666922,0.050270861,0.06903227,0.09700627,0.12494665,0.13600848,0.16700852,0.19686538,0.22241856,0.21091963,0.13227637,0.14088376,0.16993368,0.17783499,0.14656598,0.12128178,0.079186294,0.0082089927,-0.099349694,-0.13034973,-0.17002439,-0.17382374,-0.17284869,-0.17257971,-0.14739638,-0.1139419,-0.080588285,-0.070064412,-0.021580628,0.029223116,0.052254594,0.10208328,0.16697489,0.24871143,0.3354241,0.35882543,0.39221267,0.54200134,0.65974767,0.76263281,0.83145827,0.86181947,0.91941498,0.92879569,0.9887784,1.0699097,1.1115345,1.1645237,1.2465628,1.268821,1.2949458,1.3821292,1.3696552,1.2376865,1.2953156,1.2874143,1.3093362,1.3331074,1.2794457,1.277462,1.2321724,1.1968686,1.1326831,0.96171221,1.0398511,1.0302351,0.98259184,0.97119378,0.90300715,0.87624357,0.90492364,0.87947134,0.82335522,0.83512313,0.84537802,0.84537802,0.85721318,0.88461559,0.91591823,0.94520351,0.98581961,1.0336309,1.0913273,1.1547732,1.2385943,1.3306866,1.4368667,1.5556554,1.6885319,1.8241991,1.9736851,2.1177916,2.2169446,2.282475,2.3886552,2.4601705,2.4494449,2.4787974,2.4854547,2.4626922,2.4772844,2.4792681,2.38573,2.3019762,2.3221497,2.3030521,2.2794154,2.2380932,2.0798317,1.9933207,2.0146038,1.8105483,1.5728701,1.5860166,1.5085501,1.4131964,1.2752093,1.128951,1.0665138,0.94106793,0.76861764,0.67114573,0.61509686,0.45841556,0.37869638,0.2809555,0.17420375,0.059853301,-0.13546036,-0.16844413,-0.25058413,-0.34156688,-0.40383593,-0.51112563,-0.65593816,-0.69463777,-0.8410978,-0.86490259,-0.90171934,-0.96200465,-0.98769232,-1.0186251,-1.0370839,-1.0636458,-1.0959907,-1.1178118,-1.1088345,-1.0928638,-1.0870471,-1.0720178,-1.062738,-1.0840883,-1.0826425,-1.0796165,-1.0568204,-1.011329,-0.97259577,-0.94294064,-0.96486257,-1.0271989,-1.0886274,-1.1767522,-1.2715343,-1.3543804,-1.3976526,-1.4753881,-1.5314706,-1.5690943,-1.6087353,-1.6159978,-1.6206041,-1.6433329,-1.6670705,-1.6855629,-1.6918504,-1.6913124,-1.6878829,-1.6971963,-1.7059382,-1.7044252,-1.70382,-1.7023742,-1.709704,-1.7138395,-1.7183113,-1.7241953,-1.72591,-1.7342821,-1.7420825,-1.7319957,-1.7268851,-1.7359968,-1.7373081,-1.7339458,-1.7327018,-1.7324665,-1.7380142,-1.7366693,-1.7331053,-1.7413764,-1.7494459,-1.7450077,-1.740704,-1.7547582,-1.7540185,-1.748807,-1.7494459,-1.7502192,-1.7480337,-1.7421834,-1.7550272,-1.7586248,-1.7527745,-1.7497485,-1.7480673,-1.7483363,-1.7458819,-1.7420489,-1.747294,-1.7542203,-1.7465207,-1.7401324,-1.7486725,-1.762794,-1.7614828,-1.7553971,-1.7493786,-1.7495467,-1.7553634,-1.7543548,-1.7489415,-1.7462181,-1.7433266,-1.7427886,-1.7495467,-1.7491433,-1.7447387,4 +-0.074313057,-0.070288221,-0.068215731,-0.062148441,-0.054789599,-0.045478411,-0.034455166,-0.021419503,8.0720394E-4,0.025857303,0.053850939,0.093138144,0.1303829,0.16774779,0.2085368,0.24620206,0.28404753,0.31792824,0.34805444,0.38154468,0.41371333,0.4456417,0.46384357,0.47561771,0.49709352,0.5164668,0.53376758,0.53986491,0.5361104,0.53559978,0.53190535,0.52604831,0.52319488,0.52154289,0.52535748,0.53229582,0.53430823,0.54142679,0.55671516,0.5659062,0.57110244,0.57849132,0.59960669,0.63754227,0.67259439,0.69659323,0.72281473,0.73717198,0.72131293,0.69115669,0.64949664,0.59023543,0.52818087,0.48141468,0.43831289,0.39515103,0.36637645,0.34811451,0.31741763,0.28897345,0.26938992,0.24118603,0.23121405,0.23334661,0.22505665,0.21616597,0.2081163,0.18967414,0.17198288,0.15507256,0.12740932,0.094790129,0.0650544,0.041295853,0.024926184,0.024625823,0.038562569,0.051568196,0.073164145,0.10872688,0.13894318,0.16549508,0.19535096,0.22325449,0.24214719,0.25232942,0.25944797,0.25749563,0.24503065,0.22736943,0.20841666,0.1896441,0.16426361,0.14209697,0.12500644,0.097763702,0.068959092,0.042647477,0.0091272008,-0.020218059,-0.042234513,-0.056922161,-0.067524901,-0.073381938,-0.075424392,-0.072300639,-0.06599306,-0.057552919,-0.047010251,-0.040131987,-0.03058051,-0.017544847,-0.0015956833,0.014984238,0.025136437,0.040454843,0.073224217,0.096952728,0.11656629,0.13708094,0.15026679,0.16390317,0.17780988,0.19393926,0.20565334,0.21592568,0.23040308,0.24100582,0.23902343,0.22739947,0.21874907,0.21406344,0.19526085,0.16741739,0.14098564,0.10719503,0.076948692,0.055142491,0.033396362,0.014413553,-0.0049597253,-0.026225277,-0.04655971,-0.063470028,-0.070888943,-0.085636663,-0.10410886,-0.1136303,-0.11906683,-0.12080892,-0.11987781,-0.12065874,-0.12756704,-0.12522423,-0.12429311,-0.13807968,-0.14168401,-0.13850018,-0.13060069,-0.12074885,-0.11212849,-0.10260705,-0.092695144,-0.07728663,-0.063169668,-0.053287794,-0.053077541,-0.06130743,-0.071639845,-0.074643454,-0.079989878,-0.098462073,-0.11248893,-0.12357224,-0.13901079,-0.15012415,-0.15321787,-0.15679216,-0.15886465,-0.15207649,-0.13783939,-0.13243289,-0.14180415,-0.12954943,-0.11855622,-0.11372041,-0.10431911,-0.10726265,-0.10771319,-0.10167593,-0.1005646,-0.098311893,-0.081551755,-0.07206035,-0.072931397,-0.051065123,-0.026405494,-0.020908889,-0.0015356111,0.023934993,0.050516933,0.10590348,0.14657235,0.16970014,0.20742547,0.26179079,0.31038918,0.34030513,0.38325674,0.43756199,0.44960646,0.44687318,0.45732573,0.41833889,0.40788633,0.3839776,0.31324261,0.27617808,0.24725332,0.20646431,0.17862086,0.16210101,0.14053509,0.054782058,0.02880084,0.018107992,-0.024543256,-0.026795963,-0.041904116,-0.059114795,-0.034485202,0.012461207,0.014804022,0.038262208,0.084097281,0.10326031,0.13407733,0.16651631,0.17588757,0.20862691,0.24626213,0.28191497,0.28242558,0.1830662,0.1910558,0.2389934,0.24638228,0.20186879,0.17940179,0.13227517,0.042617441,-0.10750294,-0.14606928,-0.18475576,-0.17694638,-0.17135966,-0.16685425,-0.13060069,-0.10149572,-0.073111613,-0.070258185,-0.016313367,0.056043573,0.092176989,0.13792195,0.19958605,0.28566948,0.40217947,0.4591279,0.45366133,0.59510128,0.71566614,0.83668155,0.90999965,0.93946505,1.0271404,1.0272005,1.0785922,1.1677994,1.2155568,1.2675493,1.3583784,1.3799743,1.4055951,1.5431604,1.5489574,1.3853808,1.4504991,1.4057153,1.414666,1.4407974,1.3749884,1.3733364,1.3159674,1.2844295,1.2361916,0.96953118,1.0705726,1.0735762,1.0272005,1.0327872,0.9356805,0.8913172,0.93856397,0.89513178,0.80105875,0.83253657,0.85893829,0.86785901,0.87732038,0.8931494,0.92378621,0.95655559,0.99692409,1.0391248,1.094211,1.1594494,1.2434303,1.3332983,1.4400165,1.5625938,1.7007898,1.831597,1.9751395,2.1347212,2.2213453,2.2441727,2.3660892,2.4449039,2.3951041,2.4179615,2.4237585,2.3903884,2.410813,2.4403985,2.3467159,2.20029,2.2384959,2.2205644,2.1938923,2.1743689,1.9925904,1.8812466,1.9395767,1.7474959,1.4535928,1.4798443,1.4070669,1.3164781,1.1682499,1.0149157,0.97427688,0.8717637,0.68962485,0.58239601,0.5307039,0.35916779,0.28966428,0.20946792,0.12545698,0.003180055,-0.21563286,-0.22944946,-0.30958575,-0.39512853,-0.43525675,-0.52512473,-0.69056351,-0.72792841,-0.89736199,-0.9080248,-0.9329848,-1.0045308,-1.0207803,-1.0455901,-1.0640022,-1.0917255,-1.1296611,-1.1592467,-1.1402038,-1.1141625,-1.1000455,-1.0774284,-1.0551416,-1.0534896,-1.0239641,-0.9976525,-0.93785064,-0.85822497,-0.79614037,-0.75111627,-0.74156479,-0.78616839,-0.85483089,-0.97272254,-1.1032294,-1.2331354,-1.3107187,-1.4246456,-1.504121,-1.5601984,-1.6267284,-1.6431881,-1.6499162,-1.6742154,-1.6945198,-1.7138631,-1.7201706,-1.7281002,-1.7274694,-1.7367205,-1.7420369,-1.7380721,-1.7449504,-1.7423373,-1.747083,-1.7563041,-1.7599384,-1.7622212,-1.7659757,-1.7686189,-1.7763682,-1.7744158,-1.7705712,-1.7756773,-1.7789813,-1.7805131,-1.7779601,-1.7728239,-1.7782304,-1.773725,-1.7692496,-1.7796721,-1.7891635,-1.7848984,-1.7731243,-1.7894038,-1.7965825,-1.7946301,-1.7942396,-1.7941195,-1.787872,-1.7788311,-1.792888,-1.7924375,-1.7851387,-1.7910858,-1.7924074,-1.7882024,-1.7866405,-1.7830362,-1.7821952,-1.7874214,-1.7858295,-1.7860398,-1.7947202,-1.7988952,-1.7939393,-1.7858295,-1.7809637,-1.7843578,-1.7905152,-1.7874815,-1.7767286,-1.7735147,-1.7755872,-1.7818948,-1.7915965,-1.7856193,-1.777089,4 +-0.24962107,-0.25710038,-0.26612303,-0.27087179,-0.27404329,-0.27385673,-0.27441641,-0.27339881,-0.26597039,-0.25916948,-0.24672093,-0.23372967,-0.22297711,-0.20683131,-0.18956616,-0.17191094,-0.15629089,-0.14416458,-0.12505081,-0.10049291,-0.079055632,-0.057160437,-0.034519006,-0.014913393,0.0056758921,0.024501351,0.036458061,0.049652842,0.063627777,0.066544875,0.072311232,0.084471461,0.10280508,0.12534475,0.14517085,0.16818539,0.19050459,0.21451977,0.23577049,0.25025422,0.26940191,0.29879337,0.32964338,0.35747453,0.38934213,0.42102318,0.44938008,0.4763802,0.49800404,0.51667686,0.53138107,0.54069204,0.5564308,0.57479834,0.5853813,0.58809488,0.57213564,0.54245586,0.51435336,0.48645436,0.46757803,0.45869105,0.4555026,0.4685617,0.48733628,0.49842804,0.49754612,0.47807619,0.44112063,0.38968133,0.33098321,0.28442836,0.25980263,0.25596969,0.28561555,0.3508093,0.43967904,0.54374482,0.64491046,0.72714888,0.78506684,0.82767005,0.86725439,0.90677089,0.94666051,0.98485415,1.0230647,1.053372,1.0698231,1.0765053,1.0687886,1.0537282,1.0308832,1.0025094,0.97941003,0.95120576,0.9024122,0.82400671,0.72808167,0.63300463,0.53945397,0.45628275,0.38540744,0.32862579,0.29355277,0.27104702,0.25971783,0.24777808,0.21840358,0.18516223,0.16204592,0.1482745,0.14357662,0.14308478,0.15105592,0.16504782,0.18178721,0.205124,0.22942749,0.25283212,0.27091134,0.28210486,0.29838634,0.31923002,0.33671565,0.35498143,0.37470576,0.39621088,0.41164437,0.41490066,0.40843895,0.39166564,0.36693814,0.33120369,0.28885489,0.2493723,0.21133131,0.1778186,0.1539391,0.13440133,0.11299797,0.082639795,0.060490201,0.045378954,0.023805996,-0.0035333189,-0.028396492,-0.039963126,-0.051987675,-0.058144109,-0.060026655,-0.073933751,-0.09007955,-0.10435976,-0.11970845,-0.1413662,-0.16054782,-0.16829848,-0.16670425,-0.16551706,-0.16288828,-0.15211876,-0.1413662,-0.13436178,-0.13241139,-0.13539633,-0.13695664,-0.13795727,-0.14652201,-0.15562946,-0.16400763,-0.1795768,-0.20091232,-0.22485966,-0.24979067,-0.26853133,-0.27757094,-0.27631591,-0.2731953,-0.26731022,-0.25014683,-0.23556134,-0.23064297,-0.22195952,-0.21729556,-0.21409014,-0.21017241,-0.2083577,-0.20271006,-0.20075968,-0.20114976,-0.19865665,-0.19017672,-0.17877968,-0.16984183,-0.14723432,-0.12170971,-0.10993956,-0.089248516,-0.060857689,-0.022562296,0.031183541,0.057284785,0.043411609,0.033116966,0.048482611,0.065188086,0.076093284,0.10473851,0.13582596,0.14038816,0.13111111,0.12953384,0.10370396,0.096377292,0.076144163,0.023398959,-0.0027701246,-0.011097422,-0.0094353546,4.183315E-4,-0.0036181182,-0.026378267,-0.10123915,-0.13853391,-0.15654529,-0.18693738,-0.18061135,-0.16512699,-0.14446986,-0.10157834,-0.04737459,-0.0070440125,0.027995085,0.078671184,0.11750929,0.15337942,0.19469367,0.23456633,0.29263694,0.37402737,0.46311758,0.51301353,0.45414581,0.44985496,0.49015162,0.50466927,0.46985065,0.39609216,0.24964366,0.058505896,-0.21648148,-0.33555675,-0.42822549,-0.46048317,-0.47515346,-0.48244621,-0.46536761,-0.43573872,-0.40234473,-0.38948914,-0.35443309,-0.30334995,-0.26122163,-0.20907002,-0.14988006,-0.082294968,0.0060998889,0.097004807,0.14135487,0.23700856,0.33325583,0.44028959,0.52637791,0.56938814,0.64524965,0.6866487,0.73340707,0.8094721,0.86399809,0.92361205,0.99384288,1.0073938,1.0036796,1.0751824,1.1216864,1.0595793,1.1061512,1.1202787,1.1418008,1.1570817,1.1015042,1.0945845,1.0463846,1.0221659,1.0031369,0.75408116,0.79464917,0.78401533,0.73043909,0.72446922,0.63980553,0.58634802,0.61009184,0.5808191,0.50480495,0.50655181,0.51014731,0.51019819,0.51976356,0.53577367,0.56513121,0.5969649,0.6465386,0.69818142,0.75565843,0.83338552,0.9321259,1.0286615,1.1487544,1.2853153,1.4331205,1.5903046,1.7561213,1.9211748,2.0340767,2.083379,2.2148689,2.3054516,2.2853202,2.3296194,2.3451038,2.3206476,2.3540925,2.3979847,2.339931,2.2193633,2.2474997,2.2349833,2.223298,2.2198212,2.0539367,1.9532629,2.0160653,1.8600175,1.5897958,1.5997004,1.5146467,1.4222323,1.2822116,1.1173786,1.0699757,0.97688301,0.80787787,0.70138683,0.64675908,0.47505733,0.39185219,0.30530596,0.22491617,0.12390317,-0.083007283,-0.11828382,-0.20009824,-0.27762182,-0.32349828,-0.40992579,-0.54967514,-0.58279777,-0.71191328,-0.74600263,-0.77515665,-0.83675491,-0.86852075,-0.88961883,-0.898845,-0.90498448,-0.8990146,-0.88537886,-0.85010233,-0.77681872,-0.65957512,-0.52221711,-0.39016754,-0.28427009,-0.15164389,0.067443749,0.45434933,0.70128507,0.99842204,1.1703273,1.1866936,1.0569506,0.83604822,0.48516541,0.12112175,-0.26612303,-0.5338007,-0.88127457,-1.1369447,-1.3116992,-1.4796528,-1.5780201,-1.6387025,-1.6959081,-1.7375616,-1.7647822,-1.7872201,-1.8075041,-1.8253798,-1.8378284,-1.8442731,-1.8550257,-1.85913,-1.8632512,-1.873054,-1.8770057,-1.8704422,-1.879414,-1.8902004,-1.8990026,-1.9030051,-1.9007834,-1.9053626,-1.9130284,-1.9191679,-1.9183199,-1.912808,-1.9177433,-1.9219832,-1.9256466,-1.9322609,-1.9384852,-1.9364331,-1.93182,-1.9401981,-1.9363822,-1.9346184,-1.937722,-1.9408596,-1.9448621,-1.9456423,-1.9562083,-1.9566153,-1.9447434,-1.9457271,-1.9451504,-1.9465242,-1.9476775,-1.9506963,-1.9517648,-1.9511712,-1.9496278,-1.9502045,-1.9549702,-1.9631788,-1.960991,-1.9493226,-1.9504758,-1.9532912,-1.9532742,-1.9510016,-1.950832,-1.9520022,-1.9540544,-1.9545462,-1.9562931,-1.9518157,-1.9510185,-1.9541392,5 +-0.21573001,-0.22500459,-0.23004426,-0.2342264,-0.23980698,-0.24639022,-0.2516014,-0.25241936,-0.24757758,-0.24212893,-0.23678582,-0.2297936,-0.21918654,-0.21043967,-0.20032074,-0.1907955,-0.18068976,-0.16764202,-0.15601911,-0.138842,-0.12141423,-0.10712636,-0.08769327,-0.069592662,-0.055779734,-0.042929886,-0.032784574,-0.021095697,-0.011675993,-0.011741957,-0.014143058,-0.011557257,-0.011425328,-0.0076257837,3.5589854E-4,0.0093402384,0.020435436,0.030435627,0.044393676,0.060317462,0.075106661,0.090568697,0.10876166,0.12791769,0.14872284,0.16568886,0.17706111,0.18381585,0.18037252,0.17072853,0.15547758,0.13746933,0.11812859,0.098458029,0.079697778,0.06017234,0.045554648,0.028522661,0.0088784881,-0.0039053963,-0.011082314,-0.017573203,-0.024974399,-0.02530422,-0.019974304,-0.017705131,-0.016253916,-0.018773753,-0.023787041,-0.037824247,-0.058207221,-0.076017586,-0.096004774,-0.11836668,-0.13444878,-0.13765464,-0.1312693,-0.11579407,-0.099830704,-0.084526983,-0.069341998,-0.05308839,-0.03700629,-0.017718324,0.0026910353,0.017585778,0.028641397,0.037902787,0.04717737,0.051161615,0.046517727,0.040501781,0.037375073,0.0352906,0.03192642,0.023562145,0.0081924593,-0.0131404,-0.039776791,-0.066835354,-0.090490157,-0.11250905,-0.12617685,-0.1340398,-0.13702139,-0.13694223,-0.13739079,-0.13500288,-0.13487095,-0.13593957,-0.13471263,-0.13142761,-0.12204749,-0.1124167,-0.1035379,-0.089632621,-0.076373794,-0.065819503,-0.048827095,-0.030541787,-0.016121988,-0.0050267896,0.0065169656,0.020580558,0.033588721,0.046042784,0.060198726,0.074842804,0.083470937,0.086782345,0.084275701,0.080937907,0.072547246,0.055106281,0.03519825,0.017519814,0.0033110999,-0.011055928,-0.027230378,-0.040172577,-0.050700482,-0.061874837,-0.071690327,-0.083761797,-0.09603116,-0.10890739,-0.12184959,-0.13001598,-0.13227195,-0.13450155,-0.13637494,-0.13719289,-0.14150696,-0.1447524,-0.15009551,-0.15720647,-0.16115113,-0.16330157,-0.15960757,-0.15656002,-0.15415891,-0.1469688,-0.13855176,-0.13046453,-0.12016091,-0.11022668,-0.10583346,-0.10339278,-0.10736383,-0.11501569,-0.12014771,-0.13245665,-0.14648067,-0.15856533,-0.17335453,-0.18528088,-0.19396178,-0.19791964,-0.19650801,-0.19303828,-0.18699595,-0.18509618,-0.18733897,-0.17869764,-0.17330176,-0.17191651,-0.17054445,-0.17468701,-0.17232549,-0.17123048,-0.17291917,-0.16958137,-0.16203505,-0.15466024,-0.15339373,-0.13571529,-0.1151872,-0.10535851,-0.086980856,-0.068840669,-0.052125311,-0.017164224,0.014802084,0.037480615,0.066597265,0.10414415,0.13864349,0.16720604,0.20549173,0.24245813,0.25493858,0.25772227,0.25666684,0.22673224,0.21857905,0.20045205,0.15849875,0.13583341,0.11130788,0.086465716,0.072468089,0.061267348,0.049591664,-0.0082986197,-0.033127588,-0.045885087,-0.079619238,-0.08031846,-0.084065233,-0.093827952,-0.077706273,-0.043325671,-0.035541882,-0.016728859,0.017730899,0.033153356,0.054934773,0.080212299,0.092033105,0.11851118,0.1534195,0.18826185,0.2020352,0.14717927,0.13815535,0.16187612,0.1687628,0.14459347,0.12820794,0.10286445,0.055290981,-0.056439377,-0.10144023,-0.13770741,-0.14542524,-0.14927756,-0.14564952,-0.12427708,-0.10009456,-0.071228577,-0.064157202,-0.028299,0.029274655,0.06851023,0.1029568,0.15022682,0.2116396,0.29447759,0.36255276,0.39046886,0.48312234,0.57412671,0.67059293,0.73833828,0.78126786,0.85758857,0.89050476,0.93415995,0.99881817,1.036022,1.0852974,1.1487155,1.1533594,1.1553911,1.2271471,1.2684407,1.2208936,1.2680185,1.2823856,1.3148796,1.3421492,1.307386,1.3104732,1.2871614,1.2774382,1.2667784,1.0578167,1.1109575,1.1102451,1.0720122,1.0786218,1.0178423,0.98445114,1.0142934,0.99249879,0.93396205,0.95028163,0.96355365,0.97303931,0.9946888,1.0171299,1.0549274,1.0998755,1.1557077,1.2149041,1.2891799,1.3711735,1.4633521,1.5687894,1.6967866,1.8322509,1.9796416,2.1293014,2.291732,2.4481202,2.5577528,2.6359733,2.763456,2.8431013,2.8304097,2.8817036,2.9155829,2.9075352,2.9396071,2.9706499,2.9028913,2.8145915,2.8467029,2.8270588,2.8017153,2.7758968,2.6131761,2.5087018,2.5389266,2.3674458,2.1113327,2.1003827,2.0108955,1.9138884,1.7701653,1.6082625,1.5498313,1.4445127,1.2604986,1.1430425,1.0810757,0.89749698,0.81452706,0.7175991,0.6238638,0.51086693,0.28683892,0.24514947,0.14921097,0.052375358,-0.0036679247,-0.094487595,-0.257525,-0.29161536,-0.45152605,-0.5026484,-0.54547243,-0.62305966,-0.66067251,-0.70138569,-0.73184801,-0.76626819,-0.79626876,-0.84429078,-0.86269482,-0.86094017,-0.86136235,-0.8492381,-0.83777351,-0.84748345,-0.83663892,-0.80896029,-0.76515999,-0.70415619,-0.63895706,-0.6061596,-0.61007788,-0.64935303,-0.71232257,-0.80993656,-0.91693068,-1.0252969,-1.0882136,-1.1856957,-1.2592459,-1.3058563,-1.3644854,-1.3941429,-1.4104757,-1.4355949,-1.4464922,-1.4656351,-1.4842502,-1.4921263,-1.4965327,-1.5030104,-1.5124038,-1.5181558,-1.5291323,-1.5307023,-1.5261507,-1.5284595,-1.5388027,-1.5437764,-1.5494757,-1.5532093,-1.5573123,-1.5634469,-1.5674312,-1.5679457,-1.5679985,-1.5704128,-1.5739485,-1.5767322,-1.5786451,-1.5806109,-1.584107,-1.5857165,-1.5881044,-1.5871149,-1.5822864,-1.5893973,-1.5956639,-1.5943314,-1.595598,-1.6006376,-1.6009147,-1.597313,-1.604358,-1.6094373,-1.6074847,-1.6071417,-1.6040414,-1.6038303,-1.6040414,-1.6049385,-1.6064557,-1.6061259,-1.6071813,-1.6071153,-1.6059675,-1.6118648,-1.6148331,-1.6100837,-1.6065612,-1.6072209,-1.6075639,-1.6064293,-1.6071945,-1.6088304,-1.6079597,-1.6068383,-1.6110072,-1.6088568,-1.606271,5 +-0.20418327,-0.2165677,-0.22200775,-0.22408931,-0.22737783,-0.2283399,-0.22706297,-0.2243342,-0.22207772,-0.21471353,-0.20402584,-0.19396787,-0.18224815,-0.16841188,-0.15408583,-0.14040698,-0.1279351,-0.11656522,-0.098968138,-0.07552869,-0.056812116,-0.037185951,-0.018714267,-4.3499566E-4,0.012159335,0.024421315,0.038380031,0.050711979,0.063218849,0.070897892,0.080011289,0.092902986,0.11870387,0.14499454,0.16549531,0.19192591,0.21578517,0.2388048,0.26406343,0.2807859,0.30137414,0.32859188,0.35169898,0.38115572,0.42203482,0.46441824,0.50339069,0.54000171,0.57257205,0.60353311,0.6257656,0.6431003,0.66928601,0.69150101,0.70472506,0.70416531,0.68544873,0.65590453,0.6264303,0.5997723,0.57516088,0.56550523,0.57635035,0.59692109,0.62083282,0.64308281,0.64768324,0.62868679,0.59025659,0.53534881,0.47396894,0.41864135,0.39348767,0.40685165,0.45616195,0.54745336,0.66325123,0.78791761,0.90198375,0.99978223,1.0659374,1.1041927,1.1445471,1.1872278,1.2270399,1.2663622,1.3096727,1.3371529,1.3556595,1.3637759,1.3443596,1.3089905,1.260275,1.2072213,1.1544476,1.0949219,1.020248,0.92795956,0.82514085,0.72790212,0.64233065,0.56232166,0.48846991,0.42481607,0.38106826,0.34844545,0.32002074,0.2961265,0.26387102,0.22934156,0.20406544,0.19264308,0.18827005,0.18664329,0.19673624,0.2066018,0.22094534,0.24263558,0.26530537,0.29033661,0.30716403,0.31946099,0.33971688,0.36180943,0.37903917,0.39689863,0.41853639,0.43831999,0.44327026,0.44166098,0.43543379,0.41099729,0.37552326,0.33644585,0.29201585,0.24602905,0.20452024,0.173944,0.15132668,0.12519345,0.097905733,0.07063551,0.044817133,0.025383381,0.0061770277,-0.021215641,-0.04622938,-0.057109482,-0.066502753,-0.071068198,-0.073254714,-0.088437879,-0.11007564,-0.12858231,-0.14812101,-0.16977626,-0.18474952,-0.18954236,-0.18805553,-0.18520432,-0.18142602,-0.17539123,-0.1679221,-0.16552568,-0.16438869,-0.16370649,-0.16571809,-0.17212021,-0.17867975,-0.18466206,-0.19333815,-0.20941342,-0.23217067,-0.25400085,-0.27957433,-0.30220914,-0.31716491,-0.3256311,-0.31977124,-0.30796405,-0.29295581,-0.27628581,-0.26075281,-0.244765,-0.23565161,-0.22937193,-0.22363452,-0.21947139,-0.21787961,-0.21740732,-0.21621785,-0.21081279,-0.19870824,-0.18774067,-0.17789261,-0.15933346,-0.140372,-0.12466407,-0.10983075,-0.089574867,-0.040491963,0.010952378,0.021465145,-0.0056651412,-0.030381514,-0.037465825,-0.037063506,-0.027950109,-0.0051753617,0.015185472,0.025190968,0.035336401,0.036770755,0.018246594,0.010794949,-0.013414153,-0.056444781,-0.078589812,-0.086601205,-0.078204985,-0.062724454,-0.056969545,-0.065348273,-0.12137555,-0.15882619,-0.17827743,-0.19982773,-0.19720391,-0.17077331,-0.12985923,-0.084117324,-0.038672782,0.0066143309,0.063691136,0.11046508,0.14343774,0.18024117,0.2179367,0.26721202,0.33205532,0.41703207,0.50249859,0.54199581,0.51899367,0.52264952,0.54752333,0.55035705,0.52079536,0.42380152,0.21961594,-0.018976649,-0.2945301,-0.41109762,-0.50627228,-0.54793852,-0.56634024,-0.57534868,-0.57115057,-0.55337857,-0.53014903,-0.50590494,-0.47032596,-0.43478196,-0.39666662,-0.3465167,-0.29435518,-0.23717342,-0.17227764,-0.094630091,-0.024644097,0.056047077,0.1457467,0.23885728,0.31239418,0.36975085,0.42063545,0.47185239,0.52627039,0.58532381,0.63566615,0.68604347,0.74154598,0.77423876,0.81310627,0.86421826,0.8861184,0.85291834,0.87910405,0.88471903,0.89407731,0.89507437,0.85431771,0.83824245,0.79830793,0.76542273,0.72517335,0.58402939,0.59742836,0.57418132,0.52976882,0.5144807,0.45726396,0.41757433,0.41495051,0.38500399,0.3465388,0.34629391,0.34706357,0.35456769,0.37260207,0.39268303,0.42392397,0.45719399,0.50627689,0.55929553,0.62191733,0.70253854,0.79360255,0.89229312,1.0169945,1.1456316,1.2938423,1.4487526,1.6073537,1.7509816,1.8606047,1.9569688,2.060872,2.1189809,2.1228466,2.1611719,2.1832295,2.1828097,2.1989724,2.2079283,2.1635333,2.1134534,2.1319775,2.1177914,2.0959438,2.0652101,1.9519136,1.8816477,1.8883472,1.7457689,1.5419681,1.5174442,1.4318552,1.334669,1.2129238,1.0806833,1.012499,0.9194409,0.78492645,0.67717496,0.61348613,0.46679717,0.38514393,0.2974559,0.21065997,0.119526,-0.038515353,-0.089207532,-0.16585803,-0.23838038,-0.29108415,-0.36330914,-0.4869085,-0.521333,-0.62098564,-0.66803945,-0.7005923,-0.74696392,-0.77335954,-0.79272332,-0.80384832,-0.80510775,-0.79667654,-0.76046785,-0.70928589,-0.63258292,-0.51036544,-0.36953633,-0.22445665,-0.0708408,0.10693167,0.37613548,0.86243406,1.1361159,1.5001095,1.7287316,1.7792663,1.6617192,1.4009641,0.9740863,0.52310432,0.046146534,-0.29251851,-0.7203584,-1.0322255,-1.2494952,-1.4488879,-1.5674496,-1.6447997,-1.7159227,-1.7632564,-1.7852965,-1.8088409,-1.83312,-1.8493527,-1.861807,-1.8677894,-1.8769902,-1.8818355,-1.8883251,-1.9006571,-1.9044004,-1.8962315,-1.9045053,-1.9168023,-1.9271052,-1.928592,-1.9238341,-1.92749,-1.9390173,-1.9423583,-1.9358687,-1.9334373,-1.9381952,-1.9427781,-1.9461541,-1.9506321,-1.957419,-1.9579962,-1.9531334,-1.9632089,-1.9611448,-1.9598504,-1.965273,-1.9642234,-1.9655878,-1.9655353,-1.969681,-1.9697684,-1.9637512,-1.965168,-1.9658502,-1.9685615,-1.9711153,-1.9716751,-1.9705556,-1.9709754,-1.9701883,-1.9694361,-1.9759607,-1.9837796,-1.9777449,-1.9669872,-1.9655703,-1.968474,-1.9714477,-1.9675819,-1.9659901,-1.9703457,-1.97185,-1.9703457,-1.9735467,-1.9698909,-1.9667423,-1.9720774,5 +-0.20465405,-0.20224771,-0.19665723,-0.19979276,-0.19471271,-0.18268102,-0.17991008,-0.17359041,-0.16318725,-0.14918673,-0.12556086,-0.097341074,-0.074152721,-0.048703868,-0.022258451,0.0016834027,0.029198304,0.051851915,0.064442656,0.085686494,0.10992002,0.1294138,0.15024442,0.16368589,0.18062749,0.1946037,0.19917331,0.21579892,0.23001819,0.23140366,0.24426177,0.26008527,0.27459622,0.28998221,0.30157638,0.32170212,0.34002919,0.35400539,0.37298873,0.39746533,0.42347323,0.44661297,0.47077358,0.50198306,0.54026572,0.5763608,0.61077873,0.6475787,0.68381961,0.70462593,0.71546661,0.73189777,0.74538785,0.75258256,0.75178045,0.74169327,0.72351205,0.70384813,0.67732979,0.65440881,0.64252296,0.63771028,0.65013087,0.682264,0.71335195,0.72618576,0.71952579,0.69502489,0.65302334,0.59242736,0.52344566,0.47031176,0.45144995,0.46024889,0.50210459,0.58231588,0.68131605,0.79699044,0.90457079,0.98300771,1.0476872,1.0940396,1.1365759,1.1787475,1.2149885,1.2486286,1.2807131,1.3061133,1.3084225,1.2939601,1.2641847,1.2243951,1.1747856,1.1217732,1.0585278,0.9867509,0.91120645,0.81803983,0.72285577,0.63749152,0.55973519,0.49430222,0.44051205,0.390222,0.35191504,0.32104585,0.28811061,0.26288051,0.24037274,0.21827818,0.20143381,0.19180845,0.19248903,0.2025519,0.21886153,0.23854976,0.25852966,0.27289477,0.29428445,0.32449736,0.34897396,0.37004765,0.39841328,0.42619555,0.45064784,0.47597516,0.49862877,0.51182717,0.52086917,0.52242479,0.50638253,0.48399629,0.45329724,0.41421247,0.36941568,0.3246189,0.2824229,0.24683826,0.22384436,0.1983955,0.17075907,0.14528591,0.12285106,0.10107248,0.073411736,0.043223126,0.016777708,3.2224147E-4,-0.0021084035,0.0012215801,-0.009643403,-0.030644176,-0.046151691,-0.064673206,-0.082708592,-0.093452042,-0.10334477,-0.11523062,-0.11805017,-0.11209509,-0.10638307,-0.098459171,-0.086330253,-0.074177028,-0.061416141,-0.052884577,-0.057818787,-0.074954834,-0.093136059,-0.10567819,-0.12055373,-0.14033918,-0.16126704,-0.18822289,-0.21551903,-0.22672431,-0.2406519,-0.25093353,-0.24398189,-0.2278181,-0.20193173,-0.18360467,-0.18289978,-0.17290983,-0.16163163,-0.15324591,-0.14274552,-0.14126283,-0.1351133,-0.13501607,-0.1389051,-0.13068952,-0.11535215,-0.098167494,-0.09189643,-0.066496189,-0.037109691,-0.027289886,-3.3403268E-4,0.036222868,0.081116881,0.13758076,0.1535258,0.13456676,0.12773665,0.14586926,0.16507136,0.17078337,0.19754478,0.23128213,0.23529269,0.23113629,0.23225439,0.19659682,0.19487107,0.17858575,0.10931236,0.066921914,0.036174255,0.012281015,0.012669918,0.014784579,0.0098260634,-0.063895399,-0.095858381,-0.10638307,-0.14962425,-0.14503033,-0.11843907,-0.091726284,-0.039418804,0.030632385,0.062352302,0.10578793,0.17139104,0.20610065,0.25080021,0.30184375,0.32632035,0.38142307,0.47099234,0.57055156,0.61627199,0.5209664,0.51233761,0.5432068,0.53970667,0.48168718,0.38701355,0.22258042,0.011187225,-0.2877578,-0.40265439,-0.4852234,-0.50639432,-0.51621413,-0.5161169,-0.48065379,-0.43857933,-0.40632467,-0.39434159,-0.3476489,-0.27701435,-0.22113382,-0.16243375,-0.10050091,-0.021213273,0.093756235,0.20376723,0.24088318,0.3521338,0.46547477,0.5801283,0.67370813,0.70836913,0.79465703,0.81261949,0.84455817,0.92467223,0.94873561,0.99870967,1.0813516,1.0850462,1.0461802,1.1224052,1.1380342,1.0190542,1.0855323,1.0834177,1.1068977,1.1422393,1.0682261,1.0566076,1.0074843,0.98257019,0.98791761,0.66284315,0.69521934,0.67713534,0.60516394,0.59984083,0.5096639,0.44328299,0.47194029,0.44330729,0.34746696,0.34715098,0.35145322,0.34520646,0.35546378,0.37160326,0.39102412,0.41866055,0.46506156,0.51236192,0.57407599,0.6505927,0.74305443,0.83891907,0.95345106,1.0862858,1.2404373,1.3977,1.552994,1.7164062,1.8302333,1.8513799,1.9514739,2.0253898,1.9660821,1.974006,1.9714052,1.9221846,1.924591,1.9538316,1.8892494,1.7478831,1.7683248,1.753352,1.74256,1.7491227,1.6088988,1.4890923,1.5503202,1.423392,1.1238879,1.1245199,1.0533992,0.96976069,0.84443664,0.69235118,0.6423285,0.56714865,0.4056566,0.30339937,0.26370693,0.10160722,0.040938319,-0.025539821,-0.09257701,-0.15766968,-0.35717702,-0.38299047,-0.44591987,-0.51470713,-0.53996153,-0.60568617,-0.74941021,-0.77201521,-0.90137413,-0.92721189,-0.95110513,-1.0209862,-1.0451954,-1.0628176,-1.0624044,-1.0583209,-1.0388028,-1.029858,-1.0010306,-0.92888903,-0.83659744,-0.7229891,-0.57374749,-0.40241133,-0.19930663,0.053699206,0.45341877,0.72924837,1.0376243,1.2331211,1.3142074,1.2582539,1.0712158,0.69023652,0.25770324,-0.18112541,-0.47144165,-0.873762,-1.1708597,-1.3672316,-1.5648673,-1.6738331,-1.7407245,-1.8030462,-1.8314118,-1.8627428,-1.8967476,-1.9199116,-1.9312141,-1.9421763,-1.9459195,-1.9465758,-1.9539406,-1.9571491,-1.9623507,-1.9677224,-1.9685731,-1.9726809,-1.9806048,-1.9839834,-1.9878724,-1.9902545,-1.9874835,-1.9916643,-1.9907163,-1.9914698,-1.9955047,-1.994265,-1.9964769,-2.0016299,-2.0061266,-2.0101858,-2.0079982,-2.0007549,-2.0050571,-2.0148526,-2.0167242,-2.0170888,-2.0190819,-2.014804,-2.0085572,-2.0168457,-2.0228737,-2.0169673,-2.0170402,-2.0165541,-2.0188146,-2.0201757,-2.01687,-2.0198354,-2.0229953,-2.0245509,-2.0228494,-2.0172346,-2.015363,-2.0189118,-2.0216827,-2.0198111,-2.0174048,-2.0137831,-2.0129081,-2.0155818,-2.0172832,-2.0161895,-2.0141963,-2.0157033,-2.019009,-2.0144637,-2.0118386,5 +-0.23472861,-0.23960984,-0.2374579,-0.23488607,-0.22777417,-0.22257803,-0.21984874,-0.21242192,-0.20546748,-0.19591497,-0.17951299,-0.15694386,-0.13217031,-0.10576968,-0.084276529,-0.067769576,-0.048323389,-0.02480951,-0.0053108356,0.0076532896,0.031797005,0.056964203,0.076357904,0.090949106,0.10302096,0.12270334,0.12892297,0.14228074,0.15668824,0.15209569,0.15579598,0.16235677,0.16508606,0.16807778,0.16980983,0.17424492,0.18106815,0.18755021,0.20494943,0.22266357,0.23620504,0.25399791,0.26664712,0.2759372,0.29388753,0.31524947,0.32708513,0.3299194,0.32884343,0.31503952,0.2880353,0.25869544,0.22917187,0.20177401,0.17532089,0.14860535,0.12160113,0.10396572,0.088928382,0.069875842,0.060192113,0.055914476,0.053867509,0.053815023,0.048697605,0.04211057,0.037203097,0.028805283,0.019698904,0.0052651613,-0.020269442,-0.045961503,-0.065775095,-0.087661898,-0.10542852,-0.11340645,-0.10946997,-0.093041747,-0.075511311,-0.059004358,-0.043888293,-0.028221122,-0.0050746471,0.019672661,0.037832933,0.053605077,0.066884121,0.072447672,0.068589927,0.065860637,0.070531921,0.064023615,0.050875788,0.050980761,0.046703124,0.038672715,0.028044231,-0.0062031033,-0.042077514,-0.062625915,-0.076980928,-0.089105272,-0.094695067,-0.091965778,-0.091545887,-0.092884288,-0.088291734,-0.076351092,-0.061549945,-0.051603785,-0.047299905,-0.035595452,-0.016175507,0.001328686,0.014896404,0.0314296,0.05048214,0.070033301,0.093389721,0.11183867,0.13451277,0.15411641,0.17112199,0.19497703,0.20655026,0.21728372,0.23260973,0.24830314,0.25864295,0.25475896,0.24043019,0.22513043,0.21085414,0.19240519,0.17030845,0.14666335,0.12015775,0.097037521,0.07814244,0.058460064,0.051033247,0.044656157,0.026417155,0.011327333,-0.0047072427,-0.024415862,-0.032603731,-0.034965616,-0.038613416,-0.039007064,-0.039715629,-0.042838566,-0.045226695,-0.049766763,-0.056852418,-0.063124535,-0.066798579,-0.067375929,-0.062888347,-0.059975355,-0.052994672,-0.042523648,-0.032236326,-0.015598158,2.2647296E-4,0.0098052294,0.013636732,0.0038742734,-0.0091948245,-0.017382693,-0.031239086,-0.045147965,-0.057377282,-0.075747499,-0.094170204,-0.10083597,-0.10513985,-0.107423,-0.10372272,-0.099576296,-0.088396707,-0.081914644,-0.082465751,-0.078870436,-0.079710218,-0.0793953,-0.077374576,-0.077400819,-0.075563797,-0.07467153,-0.073543073,-0.071469863,-0.062625915,-0.052863457,-0.040502924,-0.014233513,0.011169874,0.026390912,0.045417209,0.070846839,0.10470053,0.14335671,0.18573943,0.22520916,0.26662088,0.31732268,0.36676481,0.39967374,0.43557439,0.47402063,0.47997783,0.47758971,0.47268223,0.44806614,0.43953711,0.41106327,0.35899683,0.31664035,0.27005873,0.22875198,0.19920218,0.175872,0.15343409,0.10501544,0.086645226,0.072421429,0.04153322,0.031534573,0.023504163,0.021430953,0.047280474,0.072368943,0.08402091,0.12102378,0.15734432,0.18256401,0.2098569,0.23518156,0.25087497,0.27123967,0.29790273,0.32417214,0.32616662,0.28459745,0.26129351,0.25562499,0.25087497,0.23258349,0.20796739,0.17427117,0.12162737,0.018649177,-0.022788786,-0.059424249,-0.069081735,-0.067690847,-0.049635547,-0.017198991,0.020932333,0.060716976,0.10105273,0.15015369,0.20610413,0.26323551,0.32461828,0.3927193,0.46683001,0.54957472,0.63323794,0.72480035,0.82932689,0.93792112,1.0427363,1.1192877,1.1892257,1.2558833,1.287139,1.3274222,1.3958907,1.4480621,1.4934628,1.5439284,1.5547406,1.5498331,1.5824796,1.5653428,1.5076866,1.5743704,1.598278,1.6231565,1.6275653,1.5666025,1.5327225,1.476982,1.4377747,1.3882276,1.2048404,1.2062313,1.1673914,1.1071108,1.0830196,1.0041326,0.95652753,0.96104135,0.92634788,0.86795684,0.86824551,0.86643473,0.86761567,0.88349279,0.89582708,0.9241697,0.96371816,1.01442,1.0668276,1.1308871,1.2086194,1.3018876,1.4052595,1.5274214,1.6619439,1.8178546,1.9756285,2.1265792,2.2509981,2.3368395,2.4298715,2.5193869,2.5512461,2.5346605,2.5504064,2.5428221,2.521224,2.5167101,2.4991272,2.4324433,2.3705882,2.3661793,2.3289927,2.2918849,2.2439386,2.1385986,2.0523635,2.0187985,1.8480604,1.6584798,1.6091164,1.4996824,1.385131,1.2559358,1.1176343,1.0315567,0.9105495,0.76521483,0.6625778,0.58773228,0.42799012,0.34330341,0.24798823,0.14642716,0.035287346,-0.11555839,-0.16872704,-0.26700771,-0.3584914,-0.42528026,-0.51432333,-0.66062899,-0.70734183,-0.83126207,-0.88128155,-0.92867671,-0.99543933,-1.033387,-1.067608,-1.095452,-1.1258416,-1.1386221,-1.1452878,-1.1590917,-1.1637105,-1.1601677,-1.1513238,-1.1406428,-1.1317464,-1.1214328,-1.0974465,-1.0442516,-1.0075374,-0.95324032,-0.9239267,-0.91668359,-0.93172092,-0.98470588,-1.0650887,-1.1505102,-1.2401306,-1.3045314,-1.3857277,-1.4458246,-1.490228,-1.5342378,-1.5579616,-1.5733664,-1.5905032,-1.6031786,-1.6071151,-1.618216,-1.6315475,-1.6404439,-1.6473984,-1.6459287,-1.6481594,-1.6493666,-1.6511511,-1.6577907,-1.6598639,-1.6575545,-1.6599426,-1.6711484,-1.6748487,-1.6698625,-1.6696788,-1.668944,-1.6717258,-1.6743501,-1.6770531,-1.6765545,-1.6778142,-1.6791526,-1.6760297,-1.6779192,-1.6814882,-1.6817244,-1.6787327,-1.6816719,-1.6881015,-1.687288,-1.6870256,-1.6879703,-1.6830628,-1.6803598,-1.6872355,-1.6927466,-1.6933502,-1.6893874,-1.6816457,-1.6831416,-1.6845587,-1.6846637,-1.6847686,-1.6827217,-1.6826167,-1.6808322,-1.6829579,-1.6861333,-1.68902,-1.6885739,-1.6893087,-1.6877604,-1.6788639,-1.6744551,-1.6831416,-1.6862383,-1.6802811,-1.6730642,-1.6714896,-1.6760821,-1.6753211,-1.6766857,5 +-0.20939498,-0.21483286,-0.2243837,-0.23581246,-0.24603153,-0.25581279,-0.26486824,-0.27119323,-0.27315179,-0.27136604,-0.26613554,-0.25811698,-0.25357773,-0.25152701,-0.24693016,-0.24005216,-0.23347372,-0.22484454,-0.2096254,-0.19563899,-0.18410654,-0.16781595,-0.14270033,-0.12252719,-0.10619052,-0.08872479,-0.07181207,-0.055452354,-0.044415306,-0.038470507,-0.036350657,-0.032882858,-0.02918464,-0.021638433,-0.010705074,-5.3209523E-4,0.015090282,0.032141253,0.049606978,0.068121108,0.089596116,0.11117481,0.12983871,0.15111786,0.16883705,0.18080729,0.19115309,0.19521997,0.1891254,0.1769593,0.16187841,0.14503482,0.12635939,0.10970013,0.095483309,0.077280245,0.061577221,0.045067733,0.024007479,0.0058504982,-0.0029169271,-0.0073179211,-0.015451696,-0.018562346,-0.014944775,-0.007340963,-0.0013155183,-0.0017072298,-0.0086313068,-0.021511703,-0.039196326,-0.060544603,-0.080130179,-0.098137387,-0.10773432,-0.10726196,-0.10335637,-0.090395325,-0.070671498,-0.049749495,-0.033009588,-0.021661475,-0.0094723345,0.0099173854,0.02911125,0.043189822,0.058167027,0.070229437,0.076588989,0.080506104,0.081404737,0.076900054,0.068420652,0.061784598,0.054584019,0.043109176,0.024330065,-0.0021335041,-0.032133998,-0.059680534,-0.080660141,-0.099404689,-0.11685889,-0.12799963,-0.13290754,-0.13488914,-0.13545367,-0.13653664,-0.13675553,-0.1363523,-0.13416333,-0.13449743,-0.12942822,-0.12056863,-0.11501555,-0.10608683,-0.093010575,-0.08076383,-0.067491722,-0.053102084,-0.039841498,-0.024414977,-0.013884849,-0.0046450661,0.010205409,0.02377706,0.036035327,0.049123099,0.056623223,0.059883645,0.061634826,0.058547218,0.04851249,0.033155095,0.015977393,-0.0012809555,-0.017732839,-0.031857495,-0.047756374,-0.060844147,-0.071524046,-0.085683266,-0.096605104,-0.10683569,-0.11975065,-0.13165176,-0.14117957,-0.14900228,-0.15379499,-0.15336871,-0.15212445,-0.15550008,-0.15970522,-0.16158313,-0.16592652,-0.17121463,-0.17363402,-0.1740603,-0.16857633,-0.16407165,-0.16088036,-0.15130646,-0.13916341,-0.12873697,-0.11905939,-0.11077584,-0.10592553,-0.10614443,-0.11424364,-0.12273457,-0.12718164,-0.14195147,-0.15737799,-0.16862242,-0.1830927,-0.19627264,-0.20585805,-0.20895718,-0.2084733,-0.20422208,-0.19704454,-0.19365739,-0.19887637,-0.19215967,-0.18202126,-0.18145673,-0.18108806,-0.18327704,-0.18349593,-0.18149129,-0.18315031,-0.18088068,-0.17319623,-0.1666293,-0.16512006,-0.15164057,-0.13333382,-0.12636366,-0.1110293,-0.091409166,-0.07380519,-0.036938224,-0.0034353688,0.01967561,0.048040132,0.088639879,0.12730411,0.16003506,0.20227078,0.24721392,0.2669147,0.27394247,0.27891951,0.24925312,0.24012855,0.21669498,0.16864119,0.14251173,0.11764957,0.093156082,0.07696918,0.064515058,0.054284475,-0.0059469309,-0.03700735,-0.047894626,-0.079807593,-0.085337638,-0.095072821,-0.10600618,-0.090303157,-0.057791102,-0.052468433,-0.036005029,-6.8186728E-4,0.016472793,0.039583772,0.065448253,0.077268724,0.10488439,0.14092184,0.1805884,0.19857256,0.1381453,0.12983871,0.15289209,0.16366415,0.1405647,0.11668181,0.087614516,0.034007643,-0.082353718,-0.12160552,-0.15756233,-0.16493572,-0.16523527,-0.16164074,-0.13952056,-0.11332197,-0.088655665,-0.082676304,-0.04434618,0.012947389,0.05211854,0.077038305,0.11656661,0.17902155,0.26296302,0.32895489,0.34663951,0.43990142,0.52777153,0.62049195,0.69287793,0.73346615,0.81152043,0.83934347,0.87636021,0.9490803,0.99313632,1.0428376,1.1156499,1.1427586,1.1623442,1.2537051,1.3102383,1.2421727,1.2870813,1.2928878,1.3203767,1.3564948,1.3274736,1.3308147,1.3112867,1.3050078,1.3083143,1.0916172,1.142989,1.1435996,1.1026197,1.1149816,1.0596351,1.0271461,1.0628495,1.0475036,0.98418456,1.0000604,1.0191045,1.0257866,1.0449229,1.0694279,1.1032418,1.1398323,1.188923,1.2410551,1.3042244,1.3790298,1.4671994,1.5632263,1.6781361,1.8021588,1.9431059,2.0829354,2.2323503,2.3894957,2.5089216,2.5697752,2.6889822,2.78494,2.7892949,2.838351,2.8833057,2.8885362,2.9250345,2.9702195,2.9173961,2.8159658,2.8428903,2.8312772,2.8176709,2.8008619,2.6476336,2.5455006,2.5802822,2.414692,2.1362542,2.1266573,2.0442826,1.9518157,1.8101313,1.6417184,1.5823165,1.4811628,1.3012405,1.1765264,1.1163872,0.93389572,0.85203953,0.75669234,0.66010089,0.55118205,0.32056766,0.2792997,0.17891786,0.077660435,0.021899149,-0.069484842,-0.2286234,-0.25761006,-0.42307361,-0.47842014,-0.51951529,-0.6027655,-0.64545054,-0.69015173,-0.7218458,-0.7548187,-0.78631691,-0.83719332,-0.85273505,-0.8493479,-0.84940551,-0.83958968,-0.83024621,-0.830131,-0.80938181,-0.77817162,-0.72691501,-0.66318124,-0.59208561,-0.54446961,-0.53608238,-0.5718779,-0.63366463,-0.74034841,-0.85338023,-0.97165406,-1.0483489,-1.1559313,-1.2352529,-1.2875809,-1.3527087,-1.3845871,-1.4032625,-1.432157,-1.442595,-1.462722,-1.4825841,-1.4891971,-1.4949,-1.5034024,-1.5112251,-1.5146929,-1.525177,-1.5285872,-1.5273775,-1.5322969,-1.5407878,-1.5431727,-1.5480115,-1.5521014,-1.5572743,-1.5628619,-1.5657537,-1.568392,-1.5689565,-1.5707307,-1.5726086,-1.5728506,-1.5781502,-1.5818945,-1.5826434,-1.5820097,-1.5859268,-1.5905698,-1.5874822,-1.5932887,-1.5963418,-1.5939454,-1.5962726,-1.6004086,-1.5996367,-1.5974593,-1.6044525,-1.6066645,-1.6049825,-1.6091069,-1.6090033,-1.6068488,-1.604994,-1.607229,-1.6083235,-1.6071829,-1.6089802,-1.6084733,-1.6118374,-1.6192338,-1.618485,-1.613796,-1.6120909,-1.6103282,-1.6078742,-1.609395,-1.6110655,-1.6116531,-1.6108927,-1.6084272,-1.6120448,-1.6118835,-1.6087152,5 diff --git a/src/main/java/experiments/data/tsc/ItalyPowerDemand/ItalyPowerDemand_TEST.arff b/src/main/java/experiments/data/tsc/ItalyPowerDemand/ItalyPowerDemand_TEST.arff new file mode 100644 index 000000000..a91984d58 --- /dev/null +++ b/src/main/java/experiments/data/tsc/ItalyPowerDemand/ItalyPowerDemand_TEST.arff @@ -0,0 +1,1062 @@ +%The data was derived from twelve monthly electrical power demand +%time series from Italy and first used in the paper "Intelligent +%Icons: Integrating Lite-Weight Data Mining and Visualization into +%GUI Operating Systems". The classification task is to distinguish +%days from Oct to March (inclusive) from April to September. +@Relation ItalyPowerDemand +@attribute att1 numeric +@attribute att2 numeric +@attribute att3 numeric +@attribute att4 numeric +@attribute att5 numeric +@attribute att6 numeric +@attribute att7 numeric +@attribute att8 numeric +@attribute att9 numeric +@attribute att10 numeric +@attribute att11 numeric +@attribute att12 numeric +@attribute att13 numeric +@attribute att14 numeric +@attribute att15 numeric +@attribute att16 numeric +@attribute att17 numeric +@attribute att18 numeric +@attribute att19 numeric +@attribute att20 numeric +@attribute att21 numeric +@attribute att22 numeric +@attribute att23 numeric +@attribute att24 numeric +@attribute target {1,2} + +@data +0.47297301,-0.39603003,-0.72190616,-1.1564077,-1.2107204,-1.0477823,-0.77621885,-1.3193458,-0.83053154,0.25572225,0.96178719,1.1247253,0.58159839,0.20140956,-0.23309196,-0.34171734,-0.66759347,-0.72190616,-0.45034272,-0.015841201,0.79884913,2.2652918,1.9394156,1.2876634,2 +-1.0987371,-1.1345655,-1.6003345,-1.7078197,-1.6361629,-1.457021,-1.0270804,-0.7046249,0.4777118,1.2301079,1.2659363,1.1226227,0.76433888,0.65685372,0.51354018,0.62102534,0.72851049,0.37022664,0.40605503,0.37022664,0.083599559,1.0151376,0.62102534,0.11942795,2 +-1.0294417,-1.2401589,-1.3455176,-1.5562348,-1.4772159,-1.3455176,-1.4508762,-0.76604505,0.26120162,0.97237239,1.1304104,1.1830897,0.76165513,0.89335341,0.89335341,1.077731,1.1040707,0.78799479,0.62995684,0.36656025,0.050484349,-0.054874285,0.26120162,-0.10755361,2 +0.29127426,-0.32389698,-0.88314355,-1.1068422,-1.2746162,-0.65944492,-0.88314355,-0.49167095,-1.1627668,-0.32389698,0.57089755,0.62682221,0.62682221,-0.10019835,-0.32389698,-0.32389698,-0.65944492,-0.54759561,-0.54759561,0.40312358,2.3604866,2.0249387,1.80124,0.9064455,2 +-0.8146062,-1.2711438,-1.5665504,-1.6202607,-1.6471159,-1.4054195,-1.0294474,-0.46548926,0.79670278,1.4143712,1.3069506,1.3338058,1.0921094,0.55500643,0.68928218,0.55500643,0.52815128,0.25959978,0.12532403,0.20588948,0.23274463,0.79670278,0.25959978,-0.33121351,2 +-1.146064,-1.4167468,-1.5833208,-1.5833208,-1.6249643,-1.4583903,-0.87538126,-8.6758111E-4,0.39474574,1.0193983,0.97775486,0.83200259,0.62378504,0.37392399,0.43638925,0.54049803,0.56131978,0.6446068,1.2900811,1.3525464,0.72789382,0.47803276,-0.021689336,-0.54223318,1 +-0.97403341,-1.092547,-1.2999457,-1.4480877,-1.4480877,-1.2999457,-1.3295741,-0.70737788,0.27035908,1.2184677,1.3073528,1.4258664,1.0406973,0.80367015,0.95181212,1.0703257,0.89255533,0.80367015,0.53701462,-0.055553242,-0.23332359,-0.26295199,0.092588721,-0.26295199,2 +0.15976135,-0.26043289,-0.83819998,-1.1008214,-1.2058699,-1.1533456,-1.1533456,-1.6260641,-0.99577282,-0.10286005,0.47490703,0.73752844,0.73752844,0.52743132,-0.20790861,-0.10286005,-0.26043289,-0.31295716,0.10723707,0.31733419,0.73752844,2.2082082,2.1031597,1.2102469,2 +-0.94792101,-1.2675946,-1.4807103,-1.5606287,-1.6139077,-1.5339893,-1.1077578,-0.25529488,0.5438891,1.2365152,1.3430731,1.3430731,0.97012056,0.57052857,0.59716804,0.73036537,0.83692323,0.51724964,0.35741284,0.19757604,0.65044697,0.4639707,-0.095458087,-0.49505008,2 +-0.78212756,-1.059806,-1.2819487,-1.4763237,-1.4763237,-1.420788,-1.4763237,-0.83766324,0.32858615,1.0505501,1.2726928,1.2171571,1.1060857,0.80063947,0.82840731,1.0227822,1.1060857,0.85617516,0.5507289,0.18974694,-0.11569933,-0.087931488,0.050907726,-0.36560991,2 +0.59099724,-0.081516851,-0.44834272,-0.63175565,-0.75403094,-0.81516858,-1.8545085,-1.9156462,-0.99858152,-0.44834272,0.71327253,0.89668546,0.83554782,0.46872196,-0.020379208,-0.20379215,-0.57061801,-0.32606743,-0.20379215,-0.081516851,0.77441017,1.3246489,2.3028512,1.4469242,2 +-0.94846695,-1.2803728,-1.556961,-1.5846198,-1.6399374,-1.5293021,-1.252714,-0.42294941,0.18554458,0.95999148,1.0429679,1.0429679,0.84935621,0.71106212,0.76637976,0.93233266,1.0429679,0.60042685,0.43447394,0.40681512,0.76637976,0.65574448,0.13022694,-0.31231414,2 +-0.42086305,-0.99570041,-1.4062985,-1.4884181,-1.4884181,-1.3241789,-0.99570041,-1.5705377,-0.010264954,0.81093125,1.1394097,1.0572901,1.3857686,0.72881163,0.56457239,0.64669201,0.48245277,0.48245277,0.15397429,-0.092384574,-0.50298267,1.3857686,1.0572901,0.40033315,2 +-0.90972049,-1.2692149,-1.5328441,-1.6287092,-1.6287092,-1.4369789,-1.2692149,-0.33452949,0.64808848,1.0794817,1.0315491,1.0555154,0.83981881,0.36049298,0.6001559,0.50429073,0.43239186,0.28859411,0.36049298,1.4150098,0.93568398,0.69602106,0.12083006,-0.35849578,1 +-0.89763649,-1.2205166,-1.4537077,-1.4895833,-1.5613344,-1.3998944,-1.1667032,-0.82588537,0.73470164,1.0575817,1.0934573,1.0217062,0.94995501,0.64501273,0.53738604,0.62707495,0.84232832,1.0934573,0.9678928,0.75263942,0.44769714,0.10687928,-0.28775192,-0.57475642,1 +0.17739201,-0.43881178,-0.99899705,-1.2230712,-1.2230712,-1.2230712,-1.5031638,-0.94297852,0.51350316,1.7459107,2.1380404,2.0260034,1.1857255,0.28942905,-0.046682098,-0.046682098,-0.046682098,-0.2707562,-0.2707562,0.0093364283,-0.15871915,-0.38279325,0.56952169,0.12137348,2 +-1.0710089,-1.3514185,-1.5383582,-1.5757461,-1.5757461,-1.5009703,-0.94015106,-0.042840357,0.55536678,0.96663419,1.078798,1.0414101,0.87316433,0.53667281,0.63014268,0.70491857,0.83577638,1.0601041,1.0227161,0.70491857,0.38712103,0.20018129,-0.32324995,-0.67843544,1 +-1.0254206,-1.420235,-1.5957081,-1.6615105,-1.5957081,-1.4860374,-1.0473548,-0.10418712,0.70737574,0.97058532,1.0144536,0.97058532,0.8170464,0.57577095,0.55383682,0.64157335,0.64157335,0.57577095,0.90478293,0.97058532,0.751244,0.46610029,-0.038384728,-0.58673802,1 +-0.55696205,-0.86174909,-1.2971591,-1.4713232,-1.6890282,-1.2971591,-1.1665361,-0.64404406,-0.55696205,-0.078010977,0.61864513,0.83635016,0.87989117,0.18323507,-0.12155199,-0.25217501,-0.12155199,1.0975962,1.3588422,1.4894653,1.4459243,1.2717602,0.66218614,0.27031708,1 +-0.94057316,-1.3966086,-1.5391197,-1.6246264,-1.710133,-1.4821153,-1.1115865,-4.0798612E-9,0.57004434,1.3681064,1.2825998,1.2825998,0.94057316,0.42753326,0.22801774,0.68405321,0.68405321,0.51303991,0.25651995,0.39903104,0.54154212,0.54154212,0.3420266,-0.25651995,2 +-0.83104875,-1.2197852,-1.5188132,-1.6085216,-1.7281328,-1.4889104,-0.89085436,-0.47221511,0.72389703,1.4415643,1.3817587,1.1425363,0.90331385,0.36506338,0.48467459,0.51457741,0.42486899,0.18564656,0.15574376,0.75379983,1.0229251,0.66409142,-0.023673061,-0.3825067,1 +-0.19043577,-0.70301056,-1.1728708,-1.3010144,-1.4291581,-1.3010144,-1.0020125,-0.57486687,-0.70301056,-0.1477212,0.53571185,0.57842642,0.19399531,-0.062292074,-0.2758649,-0.31857946,-0.40400859,0.15128075,1.6462905,1.9025779,1.6462905,1.6035759,1.0482866,0.27942444,1 +-1.0085494,-1.3532015,-1.6183186,-1.3797132,-1.6978537,-1.5918069,-1.0350611,-0.26622169,0.71471135,1.2449454,1.2979688,1.1388986,0.90029328,0.50261772,0.58215283,0.68819964,0.79424646,0.29052409,0.3700592,0.23750068,0.92680499,0.52912942,0.051918752,-0.3192451,2 +-0.99558473,-1.381318,-1.5741846,-1.6384735,-1.5956142,-1.4884661,-1.038444,0.1616151,0.6544965,1.1902372,1.3188149,1.083089,0.71878538,0.41877061,0.50448912,0.56877799,0.52591874,0.54734837,0.84736314,0.99737052,0.6544965,0.18304472,-0.13839967,-0.52413294,1 +-0.35403304,-1.1383523,-1.4520801,-1.6089439,-1.5827999,-1.478224,-1.6873758,-0.79848065,0.50871823,1.1623176,1.1884616,1.0577417,0.95316585,0.58715016,0.56100618,0.69172607,0.79630198,0.66558209,0.56100618,0.45643027,0.84858993,0.32571038,0.038126629,-0.30174508,2 +-0.86862771,-1.4191243,-1.634536,-1.5148628,-1.6824053,-1.4669936,-1.0361702,-0.0069809333,0.56745025,1.1658161,1.2854893,1.1418815,0.92646974,0.39990783,0.4477771,0.3759732,0.42384246,0.28023466,0.3041693,1.3812278,0.78286194,0.47171173,0.0169537,-0.3420658,1 +-0.020367296,-0.65582713,-1.1446424,-1.4379315,-1.3401685,-1.38905,-0.80247171,-0.46030103,-0.50918256,0.32180338,0.5173295,0.61509255,0.46844796,0.028514229,-0.46030103,-0.75359018,-0.80247171,-0.11813035,1.3971969,1.9348937,1.7882491,1.3483154,1.0061447,0.46844796,1 +-0.17490922,-0.74548688,-0.94926461,-1.275309,-1.1937979,-1.1122868,-0.90850907,-0.58246469,-1.0715313,-0.29717586,0.23264625,0.47717953,0.43642398,-0.01188703,-0.33793141,-0.46019805,-0.4194425,-0.093398122,1.6590904,2.1074014,1.7406015,1.5368237,1.0477572,0.39566843,1 +-0.63956426,-0.96442231,-1.2892803,-1.4246378,-1.5058523,-1.4246378,-1.6412099,-0.69370728,0.41622436,1.1471549,1.2283694,1.41787,1.0930119,0.57865338,0.79522541,1.0117974,1.0388689,0.82229692,0.55158188,0.17258083,-0.23349171,-0.043991193,-0.016919689,-0.39592073,2 +-1.0897357,-1.3974257,-1.5422211,-1.5603205,-1.5965193,-1.3793263,-1.0716363,-0.2209637,0.77450417,0.97359775,1.0459954,0.82880242,0.84690184,0.44871469,0.41251585,0.52111235,0.5754106,1.1364925,1.1183931,1.0097966,0.53921177,0.37631702,-0.14856604,-0.60105144,1 +-0.79128645,-1.207145,-1.4843841,-1.6923133,-1.7847264,-1.5074873,-1.1840418,-0.14439534,0.57180553,1.1493869,1.1955934,1.0800771,0.89525109,0.43318601,0.36387625,0.57180553,0.47939252,0.31766974,0.61801204,1.3342129,0.73352831,0.41008276,-0.098188825,-0.25991161,1 +-0.96183803,-1.3469298,-1.4966877,-1.6250517,-1.6892336,-1.4752937,-1.068808,0.12925534,0.49295314,1.1347728,1.0064088,0.94222688,0.79246896,0.17204332,0.40737718,0.62131706,0.66410504,0.92083289,1.2417427,0.74968099,0.74968099,0.3859832,-0.084684537,-0.66232221,1 +-0.018251308,-0.60229311,-0.89431402,-1.1863349,-1.3323454,-1.2350051,-1.0889946,-0.65096326,-0.55362296,-0.018251308,0.61446065,0.6631308,0.61446065,0.079088992,-0.35894236,-0.50495281,-0.50495281,-0.60229311,-0.21293191,1.1498323,2.025895,2.025895,1.4905234,1.1011622,1 +-0.97254477,-1.1832466,-1.3939483,-1.4641823,-1.4641823,-1.4641823,-1.5578275,-0.66819777,0.43213373,1.0642391,1.1110617,1.0408278,1.0642391,0.87694859,0.80671466,1.0174165,1.0642391,0.73648074,0.57260159,0.26825458,0.080964106,-0.01268113,0.24484327,-0.1999716,2 +-0.12519455,-0.66174264,-1.3056003,-1.5202196,-1.5202196,-1.3056003,-0.87636187,-1.7348388,-0.23250417,0.84059201,1.1625208,1.1625208,0.84059201,0.62597277,0.51866316,0.30404391,0.30404391,0.41135353,-0.017884932,-0.017884932,-0.66174264,1.4844497,1.4844497,0.84059201,2 +-0.95305042,-1.2704584,-1.5283524,-1.5878664,-1.6077043,-1.4093244,-1.1712684,-0.31823454,0.85220727,1.0704253,1.1101013,0.91172126,0.91172126,0.55463733,0.57447532,0.55463733,0.6935033,1.0505873,1.0505873,0.79269328,0.35625735,0.17771538,-0.23888255,-0.5761285,1 +-0.51602112,-0.95570773,-1.5419565,-1.6152376,-1.6885187,-1.5419565,-0.95570773,-1.1022699,0.21678992,0.94960094,1.3892876,1.3160065,1.1694443,0.72975763,0.14350882,0.58319543,0.65647653,0.36335212,0.36335212,0.14350882,-0.2961778,0.87631984,0.94960094,0.36335212,2 +-0.46628815,-0.98507233,-1.3556324,-1.3556324,-1.5409125,-1.3926884,-0.98507233,-0.6515682,0.42305613,1.2012324,1.3865124,1.2382884,0.60833619,0.16366405,-0.058672019,-0.058672019,-0.16984005,-0.16984005,-0.16984005,1.3865124,1.9794086,0.90478429,0.34894411,-0.28100809,1 +-0.82049493,-1.1716533,-1.4957994,-1.6038481,-1.6578725,-1.5498238,-1.1716533,-0.73945839,0.58413837,1.1513941,1.4215159,0.96230888,0.85426016,0.50310183,0.69218709,0.8002358,0.88127234,0.47608965,0.36804095,0.61115055,0.36804095,0.74621144,0.15194352,-0.36128788,2 +-0.83732496,-1.1801104,-1.4371996,-1.54432,-1.6300164,-1.4800477,-1.1372623,-0.4302672,0.59808925,1.2836602,1.3907807,1.1979639,1.005147,0.55524107,0.51239288,0.61951335,0.55524107,0.31957605,0.49096879,1.0694193,0.68378563,0.25530377,-0.21602627,-0.64450812,1 +-0.60117264,-1.0125013,-1.3605486,-1.4871113,-1.4871113,-1.4238299,-1.6769553,-0.9175793,0.34804732,1.139064,1.328908,1.1707046,0.94921996,0.69609463,0.85429796,1.1074233,0.85429796,0.7277353,0.60117263,0.22148466,0.031640662,-0.15820333,0.22148466,-0.12656266,2 +-0.71844777,-1.0185589,-1.4278013,-1.5096497,-1.5369326,-1.4005184,-1.5914982,-0.71844777,0.4819966,1.3277642,1.3823299,1.1367844,1.0822188,0.75482487,0.70025922,0.94580466,0.83667335,0.59112791,0.40014812,0.29101682,-0.11822558,-0.11822558,0.31829964,-0.09094275,2 +-0.63787557,-1.0646077,-1.4113275,-1.4113275,-1.4379982,-1.3846567,-1.6246935,-0.87791237,0.32227163,1.042382,1.2557481,1.2024066,1.1223943,0.77567448,0.80234523,0.93569901,1.0957235,0.77567448,0.72233297,0.24225936,-0.077789707,-0.26448499,0.055564072,-0.15780197,2 +0.52578889,0.071052553,-0.61105195,-0.95210421,-1.1794724,-0.95210421,-0.38368379,-1.6342087,-1.5205246,0.41210481,1.0942093,1.0942093,1.2078934,0.29842072,-0.61105195,-0.83842012,-0.49736787,-0.2699997,-0.042631532,-0.042631532,0.071052553,2.2310502,1.6626297,0.86684114,2 +-0.95003815,-1.2765887,-1.4686773,-1.5839305,-1.6415571,-1.4878862,-1.1805444,-0.29693694,0.74034143,1.0861009,1.0861009,1.0284743,0.87480345,0.58667056,0.49062627,0.62508828,0.77875915,0.77875915,1.0284743,0.93243002,0.45220855,0.18328453,-0.29693694,-0.48902553,1 +-0.94013807,-1.239753,-1.539368,-1.539368,-1.6085099,-1.4241315,-1.239753,-0.68661769,0.37355843,1.1341195,1.318498,1.1802142,1.0649776,0.65012611,0.58098419,0.76536264,0.78840995,0.60403149,0.55793688,0.51184227,0.32746381,0.60403149,0.12003806,-0.3639554,2 +1.1842634,0.44920332,0.20418333,-0.12251,-0.20418334,0.040836659,0.20418333,-1.7559767,-1.5109567,-0.69422335,-0.36753001,-0.20418334,-0.28585667,-0.44920334,-0.44920334,-0.36753001,-0.69422335,-0.61255001,-0.61255001,-0.20418334,0.20418333,2.4093634,2.1643434,1.6743034,2 +-1.0970935,-1.4084309,-1.5418612,-1.6085763,-1.586338,-1.4306693,-1.0748552,-0.34098853,0.50407,1.1934599,1.2156983,1.0377912,0.92659926,0.50407,0.54854676,0.57078514,0.48183161,0.28168617,0.3706397,1.2156983,0.88212249,0.54854676,-0.0074128002,-0.18531986,1 +0.88616328,0.18392067,-0.31768118,-0.51832193,-0.71896268,-0.6186423,-0.21736081,-1.3208849,-1.2205645,-0.21736081,0.18392067,0.18392067,0.18392067,-0.41800156,-1.0199238,-0.41800156,-0.31768118,-0.31768118,-0.31768118,0.18392067,-0.21736081,3.2938523,1.7890467,1.2874448,2 +-0.90000882,-1.2265236,-1.527922,-1.6535046,-1.6786211,-1.5028054,-1.0255914,-0.44791137,0.55674964,1.3102454,1.1344297,1.1846628,0.83303142,0.53163312,0.50651659,0.45628354,0.53163312,0.38093397,0.25535134,0.95861405,1.0339636,0.60698269,0.18000176,-0.49814442,1 +-0.52648646,-0.81839974,-1.2771206,-1.4856301,-1.6107358,-1.4856301,-1.2354187,-0.69329404,0.30755151,1.2249932,1.308397,1.3918008,1.0581856,0.68286859,0.5994648,0.97478188,1.1415894,0.89137809,0.72457049,0.22414772,-0.44308266,-0.44308266,-0.067765573,-0.44308266,2 +-0.73976337,-0.99916092,-1.3738463,-1.546778,-1.4603121,-1.3450243,-1.4603121,-0.62447557,0.35547071,1.1624853,1.3930609,1.4795267,1.2201292,0.73015605,0.758978,0.758978,0.9895536,0.73015605,0.49958046,0.12489511,-0.13450243,-0.13450243,-0.048036575,-0.33625608,2 +-0.73277393,-1.1008039,-1.3899703,-1.4688338,-1.4951217,-1.3636824,-1.5739853,-0.65391037,0.37131594,1.1336637,1.265103,1.1862394,1.0285123,0.76563374,0.94964872,0.97593658,1.0022244,0.71305804,0.73934589,0.21358881,-0.075577576,-0.15444114,-0.02300187,-0.31216826,2 +-0.63682035,-1.1261286,-1.4139571,-1.4715227,-1.4715227,-1.3276085,-1.4139571,-0.69438603,0.34179623,1.2340643,1.3779785,1.2340643,1.1764986,0.68719032,1.0038016,0.88867021,0.97501873,0.744756,0.48571044,0.19788203,-0.14751206,-0.26264342,0.025184982,-0.40655763,2 +-0.981618,-1.3164107,-1.5631,-1.5807207,-1.5631,-1.351652,-1.140204,-0.31203265,0.48089736,0.99189671,1.0447587,1.0800001,0.95665538,0.65710404,0.4632767,0.55138003,0.86855204,1.0623794,1.0271381,0.83331071,0.4632767,0.1989667,-0.22392931,-0.64682532,1 +-1.0574151,-1.3836699,-1.6633169,-1.6167091,-1.6167091,-1.4535817,-1.0574151,-0.42820943,0.52725107,1.1331528,1.1797607,1.1098489,0.87680978,0.66707455,0.64377064,0.66707455,0.78359413,0.52725107,0.38742758,0.59716281,0.34081975,0.78359413,0.31751584,-0.26508203,2 +-0.066713873,-0.60042481,-0.97402246,-1.1875068,-1.6144756,-1.2408779,-1.881331,-1.2408779,0.41362596,1.6945322,1.9080166,1.3209346,1.1608213,0.46699706,0.040028314,0.093399407,0.040028314,-0.12008497,-0.013342779,0.25351268,0.093399407,0.25351268,0.8939658,0.30688378,2 +-0.76494385,-1.2013619,-1.5214018,-1.6377799,-1.6086854,-1.4923073,-1.1431728,-0.6485657,0.51521575,1.3880518,1.3007682,1.2134846,1.0971065,0.74797204,0.54431028,0.77706657,0.57340482,0.48612121,0.28245946,0.16608131,0.16608131,0.74797204,0.28245946,-0.27033673,2 +-0.87292059,-1.1822508,-1.4353392,-1.491581,-1.491581,-1.4634601,-1.2947345,-0.67607407,0.84245622,1.1799074,1.3205121,1.2361493,1.0955446,0.81433528,0.58936784,0.87057715,0.92681901,0.72997249,0.36440039,0.33627946,-0.085534515,-0.057413583,-0.0011717203,-0.2542601,2 +-0.9881326,-1.2604079,-1.5326833,-1.6960485,-1.6143659,-1.4510007,-1.0970427,-0.36189931,0.67274699,1.4623455,1.2172977,1.1900701,1.0267049,0.67274699,0.61829193,0.67274699,0.56383686,0.45492672,0.31878905,0.29156151,0.26433398,0.69997453,0.10096877,-0.22576164,2 +-0.67649377,-1.0202496,-1.3904481,-1.4697764,-1.6548756,-1.4962191,-1.6284329,-0.75582203,0.40765911,1.2273845,1.3331555,1.2273845,1.0951707,0.64564388,0.61920114,0.77785765,0.77785765,0.46054462,0.43410187,0.35477361,0.19611709,0.3018881,0.53987288,-0.30629523,2 +0.79402173,0.59057132,-0.2910471,-0.42668071,-0.49449752,-0.96921513,-1.3761159,-2.3933679,-0.96921513,-0.2232303,0.1836705,0.59057132,0.59057132,0.45493772,-0.49449752,-0.35886391,-0.56231433,-0.42668071,-0.35886391,0.38712092,0.59057132,1.2687393,2.3538081,1.5400065,2 +-0.77096295,-1.3399089,-1.6120135,-1.6120135,-1.6367503,-1.5625399,-1.2409618,-0.15254347,0.73798058,1.2079794,1.1337691,1.1337691,0.96061159,0.4906128,0.51534958,0.61429668,0.54008636,0.29271856,0.21850822,0.26798178,1.1090323,0.61429668,0.39166568,-0.30096414,2 +-0.9805479,-1.1841722,-1.5914208,-1.6495991,-1.7077775,-1.5041532,-0.86419117,-0.39876423,0.70662476,1.3465868,1.3174976,1.1429625,1.055695,0.64844639,0.6193572,0.6193572,0.67753557,0.53208965,0.15393026,0.29937618,0.15393026,0.82298149,0.066662715,-0.28240749,2 +-0.98805752,-1.227215,-1.5215626,-1.6871332,-1.5767528,-1.4111823,-1.1536281,-0.32577537,0.55726751,1.1275661,1.201153,1.1643595,0.90680532,0.57566424,0.55726751,0.63085442,0.74123478,0.74123478,0.9619955,0.79642496,0.50207733,0.1341428,-0.25218846,-0.45455245,1 +-0.70834621,-1.1179922,-1.374021,-1.4508296,-1.4764325,-1.3996238,-1.6556526,-0.78515483,0.44378317,1.0326493,1.2118694,1.2118694,1.0582522,0.80222342,0.72541479,0.95584067,0.95584067,0.69981192,0.72541479,0.52059179,-0.093877204,-0.22189158,0.18775442,-0.24749446,2 +-0.38646425,-1.1508991,-1.3037861,-1.5076353,-1.5585977,-1.3547484,-1.60956,-1.2528237,-0.080690332,0.83663144,1.1424054,1.2952923,1.1933677,0.78566912,0.53085751,0.53085751,0.47989519,0.37797055,0.17412126,0.32700823,0.12315894,0.63278215,1.2952923,0.47989519,2 +-0.96238881,-1.2513833,-1.4959172,-1.5626082,-1.5626082,-1.5181475,-1.2513833,-0.40663011,0.4381231,1.0605728,1.1717246,1.0383425,0.90496041,0.5270445,0.50481415,0.63819623,0.79380867,0.9494211,1.0828032,0.79380867,0.4825838,0.21581963,-0.16209629,-0.42886046,1 +-0.62617113,-1.1475544,-1.6075985,-1.6689378,-1.6996074,-1.4235809,-0.99420641,-0.56483192,0.87663959,1.3060141,1.4593621,1.2446749,1.0299876,0.53927392,0.72329155,0.72329155,0.72329155,0.4472651,0.17123864,0.14056903,0.048560206,0.50860431,0.10989942,-0.31947507,2 +-0.90183284,-1.2058214,-1.5706077,-1.6618043,-1.6314054,-1.5706077,-1.1146248,0.040531802,0.80050329,1.3476828,1.2260873,1.1652896,0.83090215,0.3445204,0.43571698,0.55731242,0.4965147,0.19252611,0.10132953,0.28372269,1.2260873,0.70930671,0.19252611,-0.29385566,2 +-1.1112308,-1.3828398,-1.5309902,-1.6050654,-1.6050654,-1.2840729,-1.0124639,-0.5680127,0.46904002,1.1851002,1.2838671,1.2591754,1.111025,0.51842348,0.49373175,0.7653408,0.86410772,0.56780695,0.32088963,0.34558137,0.2961979,0.71595733,0.32088963,-0.41739314,2 +-1.064927,-1.3944072,-1.5591473,-1.6297502,-1.6532845,-1.3708729,-1.1119956,-0.0058835571,0.70014538,1.3120371,1.3355714,1.1943656,0.98255695,0.511871,0.4883367,0.5354053,0.5354053,0.4177338,0.25299372,0.4648024,0.4883367,0.77074828,0.22945942,-0.42950092,2 +-0.3452791,-0.94376287,-1.2660234,-1.4962094,-1.4501722,-1.3580978,-1.2199861,-0.7135768,0.20716745,0.94376286,1.3580978,1.3120606,0.94376286,0.16113024,-0.023018614,-0.16113025,-0.25320467,-0.20716746,-0.20716746,0.34527909,1.9565816,1.404135,0.80565122,0.20716745,2 +-0.98413405,-1.2032814,-1.4467785,-1.6172265,-1.5441773,-1.5685271,-1.0815329,-0.083194833,1.012542,1.3047385,1.4021374,1.1342906,0.76904496,0.47684846,0.40379933,0.45249875,0.25770108,0.23335137,0.25770108,1.1342906,0.8907935,0.37944962,-0.058845125,-0.52148959,1 +-0.99607153,-1.2325017,-1.5477419,-1.652822,-1.626552,-1.3638518,-1.1536916,-0.28678103,0.50131952,0.79028972,1.1318,1.0529899,0.94790983,0.36996943,0.23861933,0.1860793,0.21234932,0.55385956,1.3682301,1.3419601,0.79028972,0.55385956,0.10726924,-0.28678103,1 +-0.84033036,-1.1590763,-1.5067992,-1.4778223,-1.5067992,-1.3908916,-1.4778223,-0.75339964,0.37669981,1.1011225,1.3619147,1.2460071,1.0431687,0.81135343,0.84033034,0.81135343,0.89828416,0.60851507,0.40567672,0.37669981,0.37669981,-0.057953831,0.086930713,-0.17386147,2 +-1.0094511,-1.3793264,-1.4409722,-1.564264,-1.564264,-1.4615209,-1.071097,-0.3724438,0.51114701,1.0659599,1.0454112,0.94266811,0.675536,0.4084039,0.3262094,0.30566078,0.57279289,1.3125433,1.2098002,1.0659599,0.675536,0.34675802,-0.1053117,-0.49573555,1 +0.36402167,-0.39822505,-0.92593434,-1.2191061,-1.5122779,-1.3950092,-1.8054498,-1.043203,0.59855912,1.5953433,1.7712464,1.8298807,1.2435371,0.12948422,0.24675294,0.012215489,0.24675294,-0.22232196,0.12948422,-0.10505323,-0.1636876,-0.33959069,0.59855912,0.36402167,2 +-0.98822287,-1.3995063,-1.5366008,-1.4909027,-1.6051481,-1.4223554,-1.1710155,-0.097108611,0.7254584,1.2281382,1.2509873,1.1138928,0.93110016,0.63406207,0.45126939,0.47411848,0.47411848,0.29132581,0.10853315,1.2052891,0.74830749,0.5883639,0.017136808,-0.53124121,1 +-0.99980966,-1.3810678,-1.5002109,-1.5955255,-1.6431827,-1.4048964,-0.9521524,-0.18963619,0.52522275,0.97796675,0.95413812,0.90648086,0.66819454,0.4060796,0.31076507,0.47756549,0.38225096,0.52522275,1.4068821,1.4307108,0.88265223,0.50139412,-0.16580756,-0.52323703,1 +-0.18641131,-0.62192094,-1.0970224,-1.2949813,-1.3741649,-1.4533484,-1.2157977,-0.66151272,-1.0970224,-0.18641131,0.40746546,0.76379152,0.96175044,0.36787367,-0.22600309,-0.10722774,-0.18641131,-0.028044172,0.60542438,1.7535861,1.951545,1.5160354,0.92215866,0.48664903,1 +-0.87876633,-1.2233002,-1.5432244,-1.5186149,-1.5432244,-1.5432244,-1.2725193,-0.58345162,0.57319765,1.2376557,1.2376557,1.2376557,1.0899984,0.96695059,0.77007412,0.74546456,0.77007412,0.52397853,0.32710206,0.22866383,0.0071777951,0.081006472,0.3024925,0.0071777951,2 +1.1199341,0.39544841,-0.11169154,-0.47393437,-0.69128007,-0.76372864,-1.8504571,-1.6331114,-1.0535229,-0.40148581,0.39544841,0.68524268,0.54034555,0.25055128,-0.18414011,-0.54638294,-0.54638294,-0.40148581,-0.32903724,-0.11169154,0.39544841,0.83013981,2.4964569,1.9893169,2 +-0.059531806,-0.49609832,-0.89297698,-1.0120406,-1.1311042,-1.0914163,-1.0517284,-1.0517284,-1.488295,-0.77391338,0.33734685,0.41672258,0.4960983,-0.099219672,0.05953179,-0.059531806,0.17859539,-0.13890753,0.57547403,1.0120406,2.4011159,1.8454858,1.3692314,0.65484977,2 +-0.75366866,-1.1758313,-1.3706757,-1.4356238,-1.5330459,-1.4356238,-1.0784092,-0.81861676,0.41539726,1.2597227,1.2921967,1.3896189,1.0324043,0.77261183,0.77261183,1.0324043,1.0973524,0.74013778,0.3829232,0.22055294,-0.29903191,-0.26655785,0.025708618,-0.26655785,2 +-0.91857356,-1.2541649,-1.4348679,-1.4348679,-1.4864973,-1.3832384,-1.5897561,-0.58298229,0.37216212,1.198233,1.0691594,1.1724183,1.1466036,0.63030926,0.86264169,0.99171525,0.96590053,0.78519754,0.50123569,0.21727384,-0.015058583,-0.092502724,0.29471799,-0.015058583,2 +0.11858497,-0.5804422,-1.1296778,-1.2794694,-1.3293999,-1.2794694,-1.9784965,-1.0298168,0.46809855,1.4667088,1.8162224,1.8162224,1.2170562,0.46809855,-0.031206572,0.11858497,0.31830701,0.21844599,-0.18099811,0.31830701,-0.081137084,-0.18099811,0.56795957,0.16851548,2 +-1.1111432,-1.3841886,-1.5844219,-1.5662189,-1.6026249,-1.4387977,-1.1111432,-0.25560085,0.72736267,0.96400203,1.0368141,0.98220506,0.78197175,0.59994147,0.59994147,0.65455055,0.65455055,0.69095661,1.1096263,0.945799,0.58173844,0.27228696,-0.05536754,-0.49224022,1 +-0.83474434,-1.1254733,-1.3369125,-1.469062,-1.5219218,-1.4162022,-1.6012115,-0.67616494,0.38103107,1.0946384,1.3060776,1.2267879,1.0417786,0.80390947,0.83033937,0.90962907,0.88319917,0.77747957,0.59247027,0.27531146,-0.12113702,-0.14756693,0.27531146,-0.14756693,2 +-0.89578054,-1.1576409,-1.5242453,-1.6289895,-1.6028034,-1.4718733,-1.2100129,-0.84340848,0.4920792,1.1991021,1.1991021,1.0681719,0.8848697,0.5706373,0.51826524,0.51826524,0.54445127,0.8063116,0.8848697,0.78012557,0.43970714,0.6491954,0.099288706,-0.31968782,2 +0.20775913,-0.36959257,-0.84197124,-1.1044038,-1.1568904,-1.2618634,-1.0519173,-1.4718095,-0.78948472,0.10278609,0.57516475,0.89008387,1.10003,0.26024565,-0.42207909,-0.054673463,-0.47456561,-0.26461953,-0.1596465,-0.002186945,0.94257039,2.2547334,1.9923008,1.10003,2 +-1.0649145,-1.3625071,-1.4850452,-1.5725724,-1.555067,-1.4150234,-1.0299036,-0.3822022,0.40554279,1.0707497,1.1407715,0.93070612,0.79066257,0.5280809,0.59810268,0.66812446,0.82567346,1.0882551,1.0532442,0.91320068,0.5280809,0.17797202,-0.29467498,-0.55725664,1 +-0.92661512,-1.3078511,-1.5620084,-1.6382556,-1.5874241,-1.5874241,-1.1807724,0.039182586,0.8270702,1.4878792,1.1320589,1.1066432,0.8270702,0.44583425,0.36958707,0.47124998,0.44583425,0.16626123,0.11542977,0.54749717,1.0558118,0.75082301,0.064598315,-0.062480331,1 +-0.4258851,-0.72108342,-1.3483799,-1.4959791,-1.6066784,-1.5328789,-1.0531816,-0.61038405,-0.27828593,0.01691241,0.57040928,0.64420887,0.4966097,0.090711991,-0.31518572,-0.16758656,-0.13068676,1.1239062,1.3822047,1.7512026,1.5667037,1.2715053,0.42281012,0.34901053,1 +0.1123275,-0.52616566,-1.0227714,-1.0227714,-1.3065462,-1.1646588,-1.3774899,-1.1646588,0.1123275,1.6021449,2.240638,1.9568633,1.3183701,0.39610224,-0.10050355,-0.24239092,-0.17144724,-0.38427829,-0.17144724,0.041383812,-0.17144724,0.5379896,0.60893329,-0.10050355,2 +-0.053806337,-0.43642924,-1.1538472,-1.3451587,-1.3451587,-1.3451587,-1.2495029,-1.0103636,-0.86688001,-0.43642924,0.56795588,0.95057878,0.71143947,0.47230015,-0.29294565,-0.1016342,-0.43642924,0.47230015,1.572341,1.6679967,1.572341,1.4288574,0.52012801,0.13750512,1 +-0.37158954,-0.9232276,-1.382926,-1.5668053,-1.5668053,-1.4748656,-0.73934824,-1.2909863,-0.27964986,0.73168658,1.3752643,1.191385,1.2833247,0.91556594,0.2719882,0.45586755,0.73168658,0.36392788,0.18004852,-0.18771018,-0.55546889,1.2833247,1.0994453,0.45586755,2 +-1.1308538,-1.4047873,-1.4469309,-1.5733618,-1.5101464,-1.4890745,-0.94120749,-0.2879814,0.53381918,1.102758,1.0184708,0.84989633,0.63917823,0.34417289,0.3652447,0.49167556,0.59703461,0.74453728,1.2924043,1.2924043,0.91311176,0.32310108,-0.14047873,-0.58298673,1 +-0.78153981,-1.2110884,-1.4688175,-1.5547272,-1.5547272,-1.4401809,-0.92472267,-0.18017177,0.87938143,1.1657471,1.2802934,1.2802934,0.79347171,0.39255968,0.020284237,0.020284237,0.27801339,0.93665457,1.2516568,1.1371106,0.62165227,0.048920809,-0.29471806,-0.69563009,1 +-0.73916774,-1.2325692,-1.5241246,-1.5689793,-1.6586887,-1.5016973,-1.1652872,-0.44761232,0.56161796,1.1671561,1.1895835,1.1447288,0.74103668,0.49433595,0.47190861,0.60647264,0.60647264,0.47190861,0.74103668,1.2344382,0.76346402,0.38219925,-0.11120223,-0.62703104,1 +-0.97117231,-1.3479202,-1.5739689,-1.624202,-1.5990854,-1.5237359,-1.2976871,-0.29302613,0.48558615,1.0381497,1.0381497,0.96280014,0.83721752,0.58605226,0.4353531,0.76186794,0.73675142,0.56093573,0.48558615,0.38512005,1.0632662,0.76186794,0.48558615,-0.39349223,2 +-0.73670703,-1.0028086,-1.4167443,-1.3576106,-1.4463111,-1.4463111,-1.6237121,-0.73670703,0.41639962,1.1260037,1.2738379,1.2442711,1.1260037,0.74163483,0.80076851,1.0964369,1.0373032,0.65293432,0.44596646,0.32769911,0.032030738,-0.26363763,0.0024639004,-0.29320447,2 +-0.98769112,-1.2928185,-1.5788755,-1.597946,-1.559805,-1.3691004,-1.0258321,-0.20580209,0.55701647,1.0337781,1.0147076,1.0147076,0.8621439,0.46166415,0.42352322,0.57608694,0.74772111,1.071919,1.1482009,1.0528485,0.48073462,0.19467765,-0.32022488,-0.70163416,1 +-0.78102183,-1.2415753,-1.540935,-1.5179073,-1.5639627,-1.5179073,-1.2646029,-0.044136361,0.80788747,1.2914685,1.2914685,1.2914685,1.1993579,0.85394281,0.71577678,0.60063843,0.64669377,0.27825103,0.18614035,0.18614035,0.48550007,0.27825103,-0.18230238,-0.45863444,2 +-0.0032255405,-0.62252939,-1.0483008,-1.2031267,-1.3579527,-1.2805397,-0.9708878,-1.5127787,-1.0095943,-0.041932031,0.38383936,0.61607831,0.57737181,0.19030691,-0.11934501,0.03548095,-0.080638522,-0.11934501,0.42254585,1.777273,1.8159795,1.5450341,1.4289146,0.57737181,1 +0.97425839,0.2905683,-0.3247528,-0.52985984,-0.80333586,-0.94007389,-1.9656091,-1.281919,-1.0768119,-0.18801478,0.63241335,0.83752037,0.63241335,0.017092251,-0.25638379,-0.39312182,-0.52985984,-0.52985984,-0.3247528,0.017092251,0.42730631,0.90588938,2.5467457,1.8630556,2 +-0.11019751,-0.68986666,-1.3782238,-1.7042877,-1.5593704,-1.5593704,-1.1608479,-0.11019751,0.32455434,1.0853701,1.4838926,1.2302874,0.94045281,0.21586638,-0.14642683,-0.14642683,-0.11019751,-0.21888548,0.28832502,1.5925806,1.411434,0.72307688,0.14340773,-0.54494937,1 +-0.82170091,-1.2345361,-1.3615624,-1.6156148,-1.6156148,-1.4250755,-1.0757534,-0.21832633,0.73437037,0.98842283,1.2107187,1.0836925,0.70261382,0.16275235,-0.15481321,-0.091300101,0.09923924,1.0836925,1.2107187,1.337745,0.92490972,0.51207448,0.035726126,-0.47237878,1 +-0.86816171,-1.2694029,-1.5273437,-1.5846639,-1.5846639,-1.4700235,-1.0114622,-0.5242407,0.65082276,1.3100047,1.4819652,1.3386648,1.0520639,0.67948284,0.59350259,0.82278327,0.59350259,0.42154209,0.24958158,0.13494124,-0.0083591802,0.62216267,0.16360133,-0.26629993,2 +-0.96976485,-1.2823122,-1.490677,-1.615696,-1.6365324,-1.574023,-1.1572932,-0.032122918,1.0097015,1.0722109,1.1138839,0.94719199,0.67631765,0.38460683,0.38460683,0.50962575,0.5929717,0.48878927,1.1972298,1.0513744,0.5929717,0.32209737,-0.2196513,-0.36550672,1 +-0.46532339,-0.91745947,-1.3695955,-1.5052363,-1.5956636,-1.5052363,-1.2339547,-0.10361452,0.30330795,1.2075801,1.3884345,1.2527937,0.66501681,0.25809434,-0.28446896,-0.14882812,-0.10361452,-0.37489617,0.032026299,1.1171529,1.7049298,1.1171529,0.48416238,0.077239907,1 +-0.80506393,-1.1529148,-1.3110288,-1.5007656,-1.5323884,-1.43752,-0.99480076,-0.26747623,0.5230939,0.93419037,1.2820412,1.0606816,0.68120793,0.080374625,-0.17260781,-0.1093622,-0.014493791,0.58633951,1.5034009,1.6298921,1.1239272,0.58633951,-0.20423062,-0.48883586,1 +-0.13243129,-0.91399301,-1.2266177,-1.4871382,-1.5392424,-1.4871382,-1.0182012,-0.39295186,0.33650575,1.4306921,1.8996291,1.5349003,1.1180674,0.70123455,-0.23663952,-0.1845354,-0.13243129,-0.34084774,-0.1845354,-0.028223055,0.54492221,1.3264839,0.64913044,-0.23663952,2 +-0.081477511,-0.62234949,-1.0384049,-1.2464325,-1.3296436,-1.0800104,-0.91358824,-1.3712492,-0.83037718,0.0017335621,0.75063322,0.83384429,0.75063322,0.25136679,-0.16468858,-0.12308305,-0.41432181,-0.41432181,-0.16468858,1.7491661,1.7907717,1.7907717,1.1666886,0.70902768,1 +-1.0137094,-1.3691659,-1.507399,-1.5468941,-1.6653797,-1.4284086,-1.0532045,-0.046077694,0.68458294,1.0795346,1.0005443,0.8623112,0.68458294,0.36862158,0.348874,0.46735951,0.54634985,1.1190298,1.2375153,1.0597871,0.64508777,0.32912641,-0.14481562,-0.65825283,1 +0.010431441,-0.61545501,-0.99098688,-1.6168733,-1.7420506,-1.2413415,-0.7406323,-1.8672279,-0.49027772,0.5111406,0.76149518,1.3873816,1.0118498,1.0118498,0.26078602,0.26078602,0.010431441,-0.11474585,0.26078602,0.13560873,0.13560873,1.7629135,1.2622043,0.63631789,2 +0.27547177,-0.61929368,-1.215804,-1.6631867,-1.3649316,-1.5140591,-1.215804,-0.61929368,-0.072492568,-0.32103853,0.32518096,0.77256369,0.67314531,0.17605339,-0.42045691,-0.27132934,-0.32103853,0.17605339,1.5182016,1.7170383,1.6673291,1.4187832,0.7228545,0.17605339,1 +-0.92038492,-1.1828713,-1.4857402,-1.6068877,-1.6876528,-1.5059315,-1.16268,-0.21369083,0.53338578,1.0785498,0.95740223,0.81606341,0.71510711,0.35166444,0.43242948,0.3718557,0.69491585,1.0785498,1.2400799,1.2198886,0.65453333,0.31128192,-0.23388209,-0.45598595,1 +-0.99830116,-1.2736946,-1.4113913,-1.5261386,-1.5720375,-1.4572902,-1.2277957,-0.58521102,0.37866597,1.1130484,1.2048462,1.0671495,0.81470556,0.37866597,0.49341323,0.63110994,0.83765501,0.72290775,0.92945282,1.2048462,0.67700885,0.14917145,-0.17212088,-0.37866595,1 +-0.96811603,-1.3994791,-1.4583013,-1.5955532,-1.5955532,-1.3994791,-1.1641901,-0.22303434,0.58086961,1.0122327,1.2083068,1.0514475,0.87498082,0.5612622,0.48283254,0.62008443,0.58086961,0.93380306,1.0514475,0.97301789,0.50243996,0.12989911,-0.18381951,-0.57596778,1 +-0.88813553,-1.1495266,-1.505969,-1.5534946,-1.5534946,-1.505969,-1.2208151,-0.79308424,0.41881977,0.8465506,0.82278778,0.75149931,0.79902495,0.20495436,0.22871718,0.58515954,0.96536472,0.96536472,1.1792301,1.3930956,0.79902495,0.53763389,-0.056436704,-0.27030212,1 +-0.65172771,-1.3661828,-1.4427316,-1.4427316,-1.4937641,-1.4427316,-1.4937641,-0.80482524,0.29237376,1.0068289,1.1854427,1.210959,1.0068289,0.64960134,0.70063385,0.70063385,1.3385402,0.75166636,0.57305257,0.34340627,-0.013821314,0.26685751,0.26685751,-0.14140259,2 +0.40066425,-0.40583411,-0.96417915,-0.90214082,-1.3364091,-1.1502941,-0.77806414,-1.4604858,-1.2123325,0.33862592,0.95900929,1.0830859,0.95900929,0.46270259,0.27658758,0.58677927,-0.65398746,-0.77806414,-0.65398746,-0.28175744,0.83493262,1.9516226,1.5793926,1.1451243,2 +1.1750734,0.23501467,-0.12654636,-0.4881074,-0.70504401,-0.70504401,-1.5727905,-1.9343516,-1.2112295,-0.27117078,0.6688879,0.5242635,0.4519513,0.16270247,-0.12654636,-0.41579519,-0.4881074,-0.56041961,-0.27117078,0.090390257,0.4519513,0.5965757,2.3320687,2.1874443,2 +-0.91420779,-1.0957526,-1.4069722,-1.4069722,-1.4847772,-1.4069722,-1.5366471,-0.65485807,0.25286598,1.1087201,1.16059,1.3161998,1.16059,0.74563045,0.97904523,0.9012403,1.0827851,0.71969548,0.40847581,0.25286598,-0.084288667,-0.21396353,0.097256142,0.019451224,2 +0.021728189,-0.40493443,-0.83159706,-0.97381793,-1.1634458,-1.3056667,-0.87900402,-1.4004806,-0.7841901,0.021728189,0.49579777,0.6854256,0.49579777,0.069135147,-0.26271356,-0.45234139,-0.59456226,-0.54715531,0.21135602,1.7757857,2.0602274,1.7757857,1.39653,0.59061168,1 +-0.69159792,-1.2853181,-1.3885737,-1.5950851,-1.5434573,-1.5176433,-1.2853181,-0.58834225,0.52165629,0.96049292,0.98630684,0.96049292,0.6765398,0.39258669,0.28933101,0.72816764,0.49584237,0.36677277,1.2960739,1.2186321,1.1670043,0.44421453,-0.072063862,-0.53671441,1 +-0.42981357,-0.94558985,-1.2984894,-1.3799277,-1.4613661,-1.3527816,-1.4885122,-0.70127476,0.46600839,1.2532459,1.3618303,1.6332915,1.4704148,0.79176182,0.7646157,0.9003463,0.6288851,0.57459286,0.16740107,0.14025495,-0.37552132,-0.40266745,-0.02262177,-0.29408296,2 +-0.20376853,-0.70436518,-1.397499,-1.4745139,-1.6670511,-1.5900362,-1.0124247,-0.70436518,0.48936531,1.2595141,1.3750364,0.98996197,0.48936531,0.1427984,-0.24227596,-0.24227596,-0.20376853,0.065783526,1.2980215,1.606081,1.2595141,0.64339506,0.1427984,-0.31929082,1 +0.9549031,0.27722993,-0.46204989,-0.70847649,-0.8316898,-0.89329645,-1.7557896,-1.5709696,-0.9549031,0.27722993,0.8316898,0.89329645,0.89329645,0.27722993,-0.27722993,-0.21562328,-0.46204989,-0.58526319,-0.58526319,-0.21562328,-0.030803328,0.89329645,2.1254295,2.1254295,2 +-1.1357919,-1.4564861,-1.5967898,-1.65692,-1.5567031,-1.4564861,-0.9153147,-0.37414325,0.5278092,0.96876372,1.1291108,0.94872033,0.70819968,0.46767903,0.66811291,0.54785258,0.70819968,0.76832984,0.5278092,1.2493711,0.78837323,0.50776581,-0.053449039,-0.31401309,1 +1.4048443,0.79182131,0.17879836,-0.17150047,-0.4342246,-0.4342246,-0.25907518,-1.6602705,-1.0472476,-0.52179931,0.0036489434,0.26637307,0.17879836,-0.083925764,-0.87209813,-0.4342246,-0.69694871,-1.1348223,-0.87209813,-0.34664989,0.26637307,1.4048443,2.2805914,2.1930167,2 +-0.53437707,-1.0919879,-1.5380766,-1.6124247,-1.7239469,-1.5009025,-1.0176398,-0.79459546,0.39497435,1.2499777,1.2871517,1.3614998,1.1756295,0.65519275,0.76671492,0.76671492,0.76671492,0.54367058,0.20910407,-0.088288387,-0.12546244,0.69236681,0.13475596,0.023233785,2 +0.87310195,0.33234204,-0.41120284,-0.6815828,-0.95196275,-1.0195578,-0.41120284,-1.6279127,-1.2899377,-0.54639282,0.12955707,0.53512701,0.53512701,0.26474705,-0.27601286,-0.27601286,-0.47879783,-0.61398781,-0.47879783,-0.34360785,0.67031698,2.3601917,2.0898117,1.6166468,2 +-1.0865339,-1.4191934,-1.5300799,-1.4376745,-1.3822313,-1.4376745,-1.4007123,-0.34729041,0.61372608,0.87246129,0.90942346,0.76157477,0.59524499,0.33650978,0.41043413,0.68765042,0.83549911,1.2605641,1.2605641,1.0572721,0.72461259,0.18866109,-0.14399846,-0.32880933,1 +-0.1734977,-0.99804123,-1.2041771,-1.410313,-1.5339945,-1.4515402,-1.0392684,-0.66822382,0.1563197,1.2282263,1.3106807,1.3106807,0.69227298,0.23877405,-0.21472488,-0.1734977,-0.25595205,-0.29717923,0.19754688,1.9703155,1.393135,0.89840887,0.28000123,-0.25595205,1 +-0.17238814,-0.7835824,-1.1597019,-1.3947767,-1.4888065,-1.4888065,-1.3477617,-0.17238814,0.48582106,1.3320901,1.6611947,1.42612,0.8619406,0.2037314,-0.17238814,-0.21940308,-0.26641802,-0.4544778,-0.4544778,0.39179118,1.7552246,1.0970154,0.43880612,-0.078358256,2 +-1.1578002,-1.3178032,-1.4778063,-1.5666969,-1.5666969,-1.4600282,-1.1222439,-0.28667223,0.35334016,0.97557441,1.0289088,1.0822431,0.90446192,0.60223386,0.60223386,0.65556822,0.83334944,1.0289088,1.0466869,0.86890568,0.46000889,0.1400027,-0.16222538,-0.46445344,1 +-0.94694814,-1.2333105,-1.4676069,-1.5977716,-1.6498375,-1.4676069,-1.1552117,-0.42628937,0.45883054,0.9013905,1.109654,0.9013905,0.82329168,0.4327976,0.30263291,0.58899524,0.40676467,0.97948932,1.3179175,1.2137858,0.69312699,0.32866585,-0.087861164,-0.42628937,1 +-0.56349014,-0.76278771,-1.5030358,-1.4745647,-1.5030358,-1.5030358,-1.7308045,-0.73431663,0.57535308,1.2017169,1.2017169,1.3440723,1.0593615,0.68923741,0.74617957,0.91700605,0.91700605,0.71770849,0.4045266,0.20522903,-0.022539612,-0.16489501,0.034402548,-0.051010693,2 +1.0431286,-0.034937331,-0.75364793,-0.39429263,-0.99321813,-0.75364793,-0.51407773,-1.2327883,-0.51407773,0.92334346,1.522269,1.522269,1.0431286,-0.034937331,-0.87343303,-1.4723585,-0.39429263,-0.75364793,-0.63386283,-0.39429263,-0.63386283,1.7618392,1.2826988,1.2826988,2 +-1.1148502,-1.2294877,-1.4587628,-1.5504729,-1.5046179,-1.5275454,-1.1607052,-0.58751745,0.37543798,1.498886,1.1091183,0.94862575,0.67349563,0.32958296,0.37543798,0.51300305,0.55885807,0.44422051,1.1779008,1.1549733,0.62764061,0.51300305,0.054452841,-0.22067729,1 +-0.85666051,-1.2034533,-1.5007042,-1.5254751,-1.5007042,-1.4263914,-1.5007042,-0.55940963,0.65436481,1.2488666,1.2240957,1.1993248,0.95161568,0.80299024,1.0011575,0.82776115,0.82776115,0.55528118,0.28280119,0.3075721,-0.014449684,-0.039220591,0.23325938,0.010321223,2 +-0.59915023,-0.92595944,-1.2527686,-1.4978755,-1.3889391,-1.2527686,-1.5523437,-0.73532073,0.62638432,1.5523437,1.6885142,1.2527686,1.089364,0.59915022,0.65361842,0.84425713,0.92595944,0.65361842,0.272341,-2.4652778E-9,-0.272341,-0.35404332,-0.1361705,-0.1906387,2 +-0.98058699,-1.2455562,-1.5346136,-1.7032304,-1.5827898,-1.5587017,-1.1251157,-0.18567922,0.56105232,1.1632552,1.1873433,1.115079,0.72966912,0.29608306,0.41652363,0.48878797,0.46469986,0.32017117,0.58514043,1.2836958,0.94646214,0.60922854,0.0070256899,-0.25794357,1 +-0.9284231,-1.3455275,-1.4772446,-1.7187261,-1.7187261,-1.3455275,-1.1259989,0.015549942,0.67413579,1.2668631,1.1790516,1.0253816,0.84975868,0.4985129,0.38874859,0.45460718,0.45460718,0.38874859,0.73999438,1.2229573,0.71804151,0.41070145,-0.16007295,-0.46741301,1 +0.31561781,-0.59701203,-1.053327,-1.2814844,-1.0989584,-1.2814844,-0.55138054,-1.3271159,-0.59701203,0.26998632,0.63503826,0.86319573,0.68066976,0.22435483,-0.46011755,-0.50574904,-0.55138054,-0.55138054,-0.32322307,1.7301941,1.8670886,1.8670886,1.1369847,0.58940677,1 +-1.1355205,-1.3928062,-1.5907183,-1.6105095,-1.6105095,-1.3334326,-1.1553117,-0.027212901,0.70506175,1.0810947,1.1602595,0.90297382,0.8436002,0.46756727,0.44777606,0.40819364,0.5665233,0.40819364,1.1602595,1.1008859,0.62589692,0.46756727,-0.10637773,-0.38345462,1 +-0.030968151,-0.59932495,-1.0802423,-1.3425608,-1.47372,-1.0802423,-1.0802423,-0.5556052,-0.94908299,-0.64304471,0.10019111,1.1057454,0.9745862,0.66854792,-0.074687905,-0.20584717,-0.33700643,-0.5556052,0.36250964,1.717822,1.892701,1.4555035,1.1494652,0.58110841,1 +0.80827891,0.0076978914,-0.60813367,-0.79288313,-0.9776326,-1.1007989,-1.8397968,-1.9629631,-0.85446629,0.0076978914,0.62352944,0.86986207,0.80827891,0.31561367,-0.17705157,-0.23863473,-0.17705157,-0.17705157,-0.17705157,0.25403052,0.62352944,0.74669576,2.1631084,1.8551926,2 +-0.81884402,-1.2746953,-1.3506705,-1.6039213,-1.6039213,-1.5785962,-1.14807,-0.7428688,0.49805976,1.0298863,0.95391107,0.77663556,0.6500102,0.16883382,0.59936006,0.52338484,0.54870991,0.42208455,1.3844373,1.4097624,0.85261078,0.54870991,-0.0084416908,-0.23636735,1 +-1.1294263,-1.3954107,-1.5646736,-1.6130344,-1.709756,-1.5163128,-0.91180267,-0.25893181,0.51484108,1.288614,1.1918924,1.1435315,0.9259079,0.65992349,0.7082843,0.63574309,0.7566451,0.53902148,0.29721745,0.27303705,0.39393906,0.7324647,0.15213503,-0.1138494,2 +-0.83453801,-1.484665,-1.6596992,-1.6096894,-1.6346943,-1.3096308,-1.0345771,-0.58448917,0.69075994,1.1908576,1.1658527,1.0158234,0.79077947,0.49072086,0.51572575,0.54073063,0.54073063,0.31568667,0.34069156,1.1658527,0.96581366,0.5907404,0.11564759,-0.28443056,1 +-0.98381213,-1.0871899,-1.4800256,-1.5420523,-1.5834034,-1.3973234,-1.2939455,-0.32219416,0.60820608,1.1044196,1.2698241,1.0423929,0.9183395,0.40145047,0.40145047,0.50482828,0.58753052,1.0423929,1.1457707,0.95969062,0.44280159,0.1740193,-0.34286972,-0.5703009,1 +-0.96069078,-1.3150439,-1.4095381,-1.6457736,-1.6693971,-1.4095381,-1.1260556,-0.44097282,0.4330983,1.0473104,1.1181811,1.0000634,0.74020437,0.2677335,0.22048641,0.40947476,0.6457102,0.90556918,1.2599223,1.2126752,0.71658083,0.38585122,-0.1102432,-0.27560801,1 +-0.6937758,-1.1622076,-1.3751311,-1.4177158,-1.5028852,-1.4603005,-1.0770381,-0.7363605,0.072748872,0.88185825,1.2225359,1.6057982,1.3077053,0.88185825,0.83927355,0.92444295,1.0521971,0.71151943,0.3282571,0.11533357,-0.35309817,-0.52343698,-0.012420536,0.3708418,2 +-0.42980032,-1.0146832,-1.1741967,-1.5198094,-1.413467,-1.4400526,-1.546395,-0.77541294,0.42093845,1.1653349,1.4577763,1.4046052,1.1653349,0.87289342,0.9260646,1.0324069,0.79313666,0.63362315,0.23483935,0.128497,-0.2702868,-0.11077328,-0.16394445,-0.37662914,2 +-0.60929763,-0.97357522,-1.1817339,-1.4939718,-1.5460115,-1.4939718,-1.6500908,-0.55725798,0.37945583,1.0559714,1.3161696,1.3682093,1.0039317,1.0559714,0.69169377,0.89985239,0.95189205,0.43149549,0.11925755,-0.19298039,-0.34909936,0.84781274,0.22333686,-0.29705971,2 +-0.78336904,-1.2859436,-1.4458537,-1.468698,-1.6286081,-1.5600752,-1.2174107,-0.48639318,0.58728882,1.2497735,1.1583963,1.3183064,1.1127077,0.70151031,0.61013312,0.7700432,0.72435461,0.47306733,0.42737873,0.42737873,0.61013312,0.40453443,-0.12088441,-0.57777037,2 +-0.38380847,-0.7350908,-1.2424986,-1.5547496,-1.4376555,-1.28153,-0.969279,-0.69605943,0.43585029,1.56776,1.4116346,1.2164777,0.90422672,0.16263071,-0.22768299,-0.22768299,-0.18865162,-0.22768299,-0.22768299,1.6458228,1.5287287,0.90422672,0.0065052251,-0.38380847,1 +0.37346372,-0.047622894,-0.52886474,-0.76948566,-1.0101066,-1.130417,-1.7921246,-1.8522798,-0.70933043,0.49377419,0.9148608,1.1554817,0.9148608,0.37346372,0.43361896,0.25315326,-0.34839904,-0.46870951,-0.58901997,-0.46870951,0.31330849,0.61408465,1.997655,1.8773445,2 +0.18444349,-0.36130711,-0.84641875,-0.96769665,-1.0889746,-0.84641875,-0.54322397,-0.96769665,-0.30066815,0.48763826,0.73019408,0.73019408,0.42699931,-0.058112327,-0.48258502,-0.78577979,-0.9070577,-0.72514084,-0.66450188,-0.058112327,0.79083304,2.3068069,2.185529,1.7610563,2 +0.013716411,-0.77634935,-0.90802698,-1.4347375,-1.5664151,-1.5005763,-0.97386579,-1.1055434,-0.052122403,1.1329763,1.6596868,1.593848,1.4621703,0.079555224,-0.38131647,-0.052122403,-0.11796122,-0.31547766,-0.18380003,0.27707167,0.40874929,1.593848,0.86962098,0.27707167,2 +-0.42461124,-0.98492297,-1.2300593,-1.4401762,-1.6502931,-1.4401762,-1.0199424,-0.66974763,-0.73978659,0.065661523,0.55593429,0.7310317,0.69601222,0.38083687,-0.17947486,-0.07441641,-0.039396927,0.55593429,1.5014603,1.6765577,1.5714993,1.2213045,0.7310317,0.20573946,1 +-0.7225603,-0.94529448,-1.2634862,-1.5816778,-1.5816778,-1.6771353,-1.3271245,-0.78619863,0.61384479,1.3775048,1.4411432,1.3456857,1.0593132,0.45474895,0.7093023,0.58202562,0.83657897,0.42292978,0.13655727,0.1047381,-0.086176923,0.7093023,0.2001956,-0.022538586,2 +0.35757055,-7.2222217E-10,-0.83433131,-1.1919018,-1.4898773,-1.1919018,-1.6686626,-1.0131166,0.59595092,1.4302822,2.0262331,1.9666381,1.311092,0.65554602,0.059595093,-7.2222217E-10,0.23838037,0.11919018,-0.17878528,-0.059595093,-0.59595093,-0.53635583,0.11919018,-0.11919018,2 +-0.82687512,-1.3632265,-1.5992211,-1.556313,-1.4061346,-1.4919509,-1.2130481,-0.18325341,0.58909263,1.2970765,1.1254441,1.10399,0.82508725,0.56763857,0.31018989,0.28873584,0.37455206,0.35309801,1.1254441,1.2112603,0.86799537,0.24582772,-0.16179935,-0.48361021,1 +-0.86429084,-1.3307011,-1.6743718,-1.5516322,-1.6989197,-1.4779885,-1.3307011,-0.029662044,0.70677513,1.1486374,1.0749937,0.95225419,0.5840356,0.38765235,0.33855654,0.55948769,0.5840356,0.33855654,0.55948769,1.2959249,0.92770628,0.55948769,0.019433768,-0.078757856,1 +-0.88710392,-1.2159146,-1.6543289,-1.5721263,-1.7091307,-1.4625227,-1.1063111,-0.33908606,0.81175147,1.3323684,1.3597693,1.1679631,1.0309586,0.53774253,0.37333717,0.674747,0.64734611,0.40073807,0.23633271,0.20893181,0.31853539,0.78435057,0.29113449,-0.22948248,2 +-0.66198057,-1.0717781,-1.1033009,-1.4815755,-1.4185298,-1.4815755,-1.355484,-0.91416365,0.31522883,1.1978696,1.355484,1.2609154,1.1978696,0.88264075,1.0087323,0.9772094,0.94568652,0.69350345,0.53588903,0.15761441,-0.28370597,-0.34675173,-0.2206602,-0.18913731,2 +1.0961392,0.50422405,-1.0742165,-1.0742165,-1.4030582,-1.2715215,-1.9292051,-1.2715215,0.30691899,1.2934443,1.6222861,1.3592127,1.3592127,0.70152909,0.04384557,-0.087691137,-0.087691137,-0.41653291,-0.35076456,-0.35076456,-0.2849962,-0.15345949,0.96460251,0.50422405,2 +-0.93614976,-1.2613386,-1.4387144,-1.4091517,-1.5274022,-1.3500265,-1.2613386,-0.4927104,0.63066931,1.1036713,1.281047,1.0741087,0.92629555,0.42373094,0.068979453,0.098542076,0.21679257,1.0149834,1.1036713,1.2514844,0.83760768,0.33504307,-0.10839629,-0.58139827,1 +-0.85472817,-1.3070357,-1.49328,-1.7061306,-1.7061306,-1.253823,-1.0675788,-0.4556333,0.74165131,1.1939588,1.2205651,0.9545019,0.92789558,0.52880071,0.50219439,0.50219439,0.47558806,0.34255644,0.28934379,1.2205651,0.98110823,0.63522601,-0.16296373,-0.50884595,1 +-0.61995826,-0.88512851,-1.2386888,-1.3270789,-1.5333224,-1.5038591,-1.7690293,-0.9735186,0.38179605,1.1478435,1.2951603,1.2951603,1.0005267,0.70589304,0.76481976,0.94159993,1.0889167,0.7353564,0.44072278,0.17555252,-0.17800782,-0.17800782,0.20501588,0.02823571,2 +-0.54884231,-1.0942757,-1.3669923,-1.4488073,-1.476079,-1.3397207,-1.6942524,-0.73974399,0.40566604,1.0874578,1.1692728,1.3329028,1.1692728,0.6783827,0.81474104,0.86928438,1.0874578,0.78746938,0.56929603,0.3511227,-0.057952306,-0.35794065,-0.057952306,-0.13976731,2 +-0.90248601,-1.37497,-1.4495728,-1.37497,-1.5490431,-1.5241755,-1.3252349,-0.38026679,0.51496617,1.062053,1.1117881,1.0123178,0.6144365,0.44036343,0.39062827,0.41549585,0.49009859,0.41549585,1.3853315,1.360464,0.76364199,0.44036343,-0.15645855,-0.38026679,1 +-0.92785495,-1.2531011,-1.6000303,-1.6217133,-1.534981,-1.4482487,-1.1880518,-0.60260882,0.65500958,0.93688956,1.0236218,1.1320372,0.8067911,0.63332649,0.67669265,0.7200588,0.74174188,0.69837573,0.65500958,1.1537203,0.61164342,0.30808036,-0.12558114,-0.45082729,1 +-1.03352,-1.2905612,-1.440502,-1.6332829,-1.5904427,-1.5047623,-1.2048808,-0.17671585,0.76576869,1.1084904,1.0656501,0.89428931,0.78718879,0.35878673,0.31594653,0.35878673,0.63724807,0.8728692,1.237011,1.1084904,0.59440786,0.29452642,-0.17671585,-0.34807668,1 +-1.038822,-1.5560038,-1.4846684,-1.5203361,-1.5916715,-1.5381699,-1.0566559,-0.21846472,0.78023113,1.1012405,1.1190744,1.0655728,0.85156655,0.47705561,0.42355404,0.54839103,0.54839103,0.90506811,0.85156655,0.94073582,0.58405873,0.2452155,-0.057960031,-0.37896941,1 +-0.84085003,-1.1696035,-1.5489343,-1.6500892,-1.4224907,-1.4477794,-1.1948922,-0.23392069,0.55002973,1.1063816,1.3339802,1.0305155,0.90407185,0.47416356,0.34771995,0.52474101,0.47416356,0.65118463,1.2834027,1.0305155,0.65118463,0.14541016,-0.28449814,-0.71440642,1 +-0.83972602,-1.2348912,-1.4818694,-1.7041498,-1.5559629,-1.5312651,-1.1854955,-0.49395647,0.59274777,1.2842868,1.0126108,1.0620064,0.88912166,0.44456083,0.49395647,0.54335212,0.5186543,0.44456083,0.74093472,1.2842868,0.74093472,0.44456083,-0.074093472,-0.39516518,1 +-1.0449312,-1.3185131,-1.4279459,-1.6103339,-1.5738563,-1.3367519,-1.1908415,-0.22418523,0.90662027,1.0707695,0.97957546,0.99781426,0.83366507,0.45065031,0.46888911,0.72423228,0.81542627,0.97957546,1.107247,0.85190387,0.39593391,0.12235194,-0.40657321,-0.57072241,1 +-0.9670071,-1.3627332,-1.4791232,-1.6187912,-1.5489572,-1.5024012,-1.1066751,-0.26866697,0.49950718,1.1047353,1.1047353,0.94178928,0.70900923,0.26672713,0.35983915,0.38311716,0.42967316,0.40639516,1.3840713,1.3142373,0.84867725,0.45295117,-0.035886921,-0.31522298,1 +-0.31592034,-0.81662428,-1.0312117,-1.2815637,-1.5319156,-1.3530928,-1.2100345,-0.85238885,-0.95968255,-0.17286207,0.50666471,0.75701668,0.75701668,0.22054817,-0.20862664,-0.28015578,-0.28015578,0.93583951,1.2934852,1.6511308,1.6868954,1.221956,0.90007495,0.36360644,1 +-1.0614552,-1.4047169,-1.5763478,-1.6989412,-1.5518291,-1.3801982,-1.0369365,-0.22781953,0.58129738,1.2187835,1.1697461,0.99811518,0.77744694,0.40966652,0.53225999,0.70389085,0.55677868,0.60581607,0.65485346,1.2187835,0.63033477,0.43418521,-0.17878214,-0.37493169,1 +-0.46343095,-1.2412172,-1.6301103,-1.5134423,-1.5523317,-1.5523317,-1.1634385,-0.2689844,0.23657664,1.2476987,1.5199239,1.3643667,1.0921415,0.62546975,0.8588056,0.74213767,0.78102698,0.4699125,0.15879802,0.042130088,-0.15231647,0.66435906,0.0032407777,-0.2689844,2 +-1.0508381,-1.3295134,-1.4887564,-1.6280941,-1.568378,-1.4290403,-1.150365,-0.21481221,0.64111908,1.059132,1.0392266,0.93969976,0.80036211,0.30272763,0.48187605,0.46197067,0.60130832,1.1785643,1.1387535,0.93969976,0.56149757,0.3425384,-0.035663802,-0.59301441,1 +-1.0473637,-1.3445468,-1.4188425,-1.6417298,-1.7160255,-1.4931383,-1.072129,-0.52729346,0.61190809,1.0824478,1.3548656,1.1567436,0.93385635,0.53761233,0.68620384,0.76049959,0.76049959,0.51284708,0.21566407,0.24042932,0.042307309,0.78526485,0.53761233,0.042307309,2 +-0.82080657,-0.86344587,-1.460396,-1.5030353,-1.5456746,-1.5030353,-1.1192816,-0.94872447,0.11725807,1.1832406,1.2685192,1.2685192,1.2685192,0.75684759,0.92740479,0.92740479,1.0126834,0.45837247,0.45837247,0.15989737,-0.47969216,0.24517597,0.28781527,-0.095938445,2 +-0.79079043,-0.95582495,-1.5334458,-1.285894,-1.615963,-1.3684113,-0.87330769,-1.285894,0.034382193,0.94207207,1.1071066,1.3546584,1.1896239,1.0245893,0.19941672,0.61200303,0.94207207,0.52948576,0.034382193,-0.04813507,-0.6257559,0.85955481,1.1071066,0.4469685,2 +-0.16402365,-0.21651121,-0.5314366,-0.95133714,-1.0563123,-1.1087999,-0.84636201,-0.58392417,-0.42646148,-0.84636201,-0.47894904,-0.16402365,0.15090175,-0.16402365,-0.68889931,-0.5314366,-0.58392417,-0.059048511,1.5155785,1.8829915,2.0404542,2.0929417,1.1481655,0.57080229,1 +0.18083203,-0.38280028,-0.66461643,-1.2282488,-1.3409752,-1.2282488,-0.89006935,-0.6082532,-0.21371059,-0.49552674,0.63173789,1.0262805,0.63173789,0.1244688,-1.1155223,-1.1718855,-0.83370612,0.068105571,1.4771864,1.6462761,1.7590025,1.4208231,0.91355403,0.2935585,1 +-1.1252464,-1.3811334,-1.4992351,-1.5582859,-1.6173367,-1.4795514,-1.0858792,-0.14106589,0.5478605,1.0202672,1.0005836,0.88248189,0.68564578,0.42975883,0.44944245,0.48880967,0.62659495,0.80374745,1.1974197,1.1777361,0.70532939,0.50849328,-0.082015054,-0.55442172,1 +-0.75408393,-1.0641745,-1.5152154,-1.7689258,-1.6279756,-1.6279756,-1.1205546,-0.61313366,0.37351821,1.1064596,1.1346496,1.2755999,1.0218894,0.57084859,0.59903864,0.79636902,0.99369939,0.65541875,0.37351821,0.34532815,0.59903864,0.48627842,-0.1057127,-0.13390275,2 +-0.69498736,-0.86635412,-1.4090155,-1.6375045,-1.4946988,-1.4661377,-1.6089433,-0.58074286,0.79019111,1.3899747,1.3328525,1.4185358,0.79019111,0.70450774,0.67594661,0.70450774,0.93299674,0.56170211,0.33321312,0.10472412,-0.0380815,-0.09520375,0.21896862,-0.066642626,2 +0.48686846,0.017126027,-0.3938986,-0.51133421,-0.98107663,-1.0397944,-0.86364103,-1.3921013,-1.1572301,-0.57005201,0.31071505,0.25199724,0.60430406,-0.041591776,-0.3351808,-0.3938986,-0.57005201,-0.74620542,-0.51133421,0.42815065,2.0722492,1.9548136,1.7199423,1.6612245,2 +1.1710645,0.66005455,-0.055359415,-0.15756141,-0.46416739,-0.3619654,-0.15756141,-1.8949953,-1.3839853,-0.56636938,0.25124657,-0.055359415,-0.2597634,-0.2597634,-0.66857138,-0.66857138,-0.66857138,-0.66857138,-0.055359415,-0.055359415,0.14904457,1.6820745,2.3974884,2.0908825,2 +-0.75758784,-1.2642101,-1.3486471,-1.6301039,-1.5175212,-1.4049385,-1.1516274,-0.56056809,0.50896769,1.5222121,1.4659208,1.3533381,1.1000269,0.64969609,0.67784177,0.81857016,0.84671584,0.28380226,0.11492819,0.058636837,0.25565658,0.3682393,-0.082091555,-0.30725698,2 +-1.1717221,-1.4754082,-1.5766369,-1.5766369,-1.5766369,-1.4754082,-1.0704934,-0.037960759,0.48842845,1.0553091,1.1160463,0.99457192,0.6706401,0.42769123,0.42769123,0.52891993,0.4681827,0.6706401,1.3185037,0.99457192,0.58965715,0.44793697,-0.037960759,-0.19992667,1 +-0.04318015,-0.7064273,-1.1624097,-1.3282215,-1.4111274,-1.3282215,-0.99659792,-0.7064273,-0.78933319,-0.33335078,0.78587878,0.95169056,0.95169056,-0.001727203,-0.16753899,-0.29189783,-0.49916256,-0.33335078,1.0345965,1.7392965,1.7392965,1.4905789,0.99314351,0.41280226,1 +-0.82030428,-1.079727,-1.5697477,-1.540923,-1.6273972,-1.5697477,-1.2238507,-0.4744073,1.0533043,1.4856755,1.3703765,1.1686033,0.96683009,0.41915988,0.50563412,0.59210837,0.67858261,0.36151038,-0.04203609,0.24621139,0.18856189,0.67858261,0.24621139,-0.013211342,2 +-0.66140638,-1.4294912,-1.5924182,-1.5924182,-1.6622441,-1.5924182,-1.0105358,-0.17262514,0.82821267,1.1540668,1.1540668,0.89803857,0.75838676,0.33943142,0.31615612,0.5023585,0.4790832,0.40925731,1.1773421,1.1773421,0.73511147,0.24633023,-0.12607454,-0.33555222,1 +0.45372639,-0.34184864,-1.0379768,-1.0379768,-1.4854878,-1.2368706,-1.5352112,-1.1374237,0.80179047,2.0448764,1.8957061,1.6470889,1.1001311,0.40400295,-0.093231434,-0.14295488,0.0062154446,-0.44129551,-0.093231434,-0.14295488,-0.24240176,0.10566232,0.55317327,-0.043507995,2 +-0.73730694,-1.1184379,-1.3906743,-1.717358,-1.6356871,-1.3634507,-1.2545561,-0.68285966,0.70554602,1.3589134,1.4950316,1.2227952,1.0594534,0.46053326,0.51498054,0.89611151,0.73276967,0.43330962,0.43330962,0.079402282,-0.056715922,0.56942782,0.10662593,-0.1111632,2 +-1.1053679,-1.404495,-1.5914494,-1.5914494,-1.5914494,-1.3671041,-1.0866725,-0.2640731,0.57722172,1.0446078,1.0446078,0.98852142,0.85765334,0.53983084,0.53983084,0.44635364,0.55852628,1.0259123,1.1006941,0.98852142,0.5211354,0.29679011,-0.15190046,-0.37624575,1 +-0.91136151,-1.3150917,-1.4813336,-1.6238266,-1.5525801,-1.4813336,-1.1963475,-0.12764999,0.91729874,1.1310383,1.1072894,0.98854524,0.79855457,0.32357787,0.29982904,0.29982904,0.44232205,0.51356855,1.2972801,1.1785359,0.67981039,0.2760802,-0.080152312,-0.4838825,1 +-0.17078575,-0.83998709,-1.2164129,-1.5091885,-1.6764888,-1.4673634,-0.96546234,-0.75633692,-0.25443592,-0.42173625,0.24746508,0.70754101,0.83301626,0.20564,-0.0453105,-0.21261083,-0.12896067,0.83301626,1.3767424,1.711343,1.6695179,1.2930922,0.66571592,0.12198983,1 +-1.2003447,-1.3323198,-1.6339771,-1.5397092,-1.5585628,-1.4454413,-1.0872232,-0.12569055,0.70386708,0.98667081,1.0432315,0.94896365,0.77928141,0.47762408,0.40220975,0.55303841,0.57189199,1.0809387,1.0809387,0.94896365,0.51533125,0.40220975,-0.050276225,-0.52161579,1 +-0.73981382,-1.3472399,-1.4874151,-1.6275904,-1.6275904,-1.393965,-1.0668894,-0.13238774,0.70866377,1.3160898,1.3861775,1.1291895,1.1992771,0.35822564,0.3348631,0.3348631,0.35822564,0.26477547,0.26477547,1.2460022,0.7787514,0.35822564,-0.13238774,-0.48282586,1 +-1.0169723,-1.3481783,-1.4755652,-1.6284295,-1.6539069,-1.5010426,-1.0424497,-0.4819472,0.61358035,1.2759924,1.1995602,1.1740828,0.99574113,0.66453512,0.63905774,0.63905774,0.74096728,0.48619343,0.28237435,0.15498743,0.23141958,0.91930897,0.33332912,-0.20169596,2 +0.54095839,0.13268791,-0.19392848,-0.60219896,-0.76550715,-0.60219896,-0.52054486,-1.500394,-1.4187399,-0.60219896,-0.030620288,0.13268791,0.13268791,-0.11227438,-0.27558257,-0.52054486,-0.52054486,-0.43889077,-0.35723667,0.051033808,0.86757477,2.5006567,2.1740403,1.929078,2 +-0.87288758,-1.3261177,-1.5023739,-1.6534506,-1.67863,-1.4268355,-0.99878483,0.033572597,0.73859718,1.5191602,1.3932629,1.3177246,1.116289,0.48680268,0.26018764,0.58752048,0.63787938,0.31054654,0.15946985,0.083931496,0.20982875,0.71341773,0.1846493,-0.29376025,2 +-0.99658473,-1.2336577,-1.365365,-1.4970722,-1.4443893,-1.3126821,-1.4180479,-0.73317026,0.55756062,1.2424382,1.2951211,1.2687797,0.95268232,0.7156093,0.79463364,0.92634087,1.0580481,0.68926785,0.42585339,0.26780471,-0.17999988,-0.12731699,0.24146326,-0.12731699,2 +-0.95419574,-1.3605967,-1.5231571,-1.6450774,-1.6450774,-1.462197,-1.0354759,-0.22267391,0.75268855,1.0981294,1.1794096,1.0981294,0.75268855,0.38692763,0.30564743,0.36660758,0.54948804,0.61044819,1.1997297,1.0981294,0.65108829,0.24468728,-0.1007536,-0.34459421,1 +-0.30272858,-0.89756368,-1.2374694,-1.4923988,-1.5773752,-1.4499106,-1.0675166,-0.60014613,-0.21775213,-0.3452168,0.41957119,0.58952408,0.67450052,0.2496183,-0.26024036,-0.21775213,-0.3452168,0.67450052,1.4392885,1.6942178,1.6942178,1.2268474,0.92942985,0.41957119,1 +-0.90733655,-1.2994266,-1.4200697,-1.5407128,-1.5407128,-1.4502305,-1.0279797,-0.72637191,0.23877278,1.1134352,1.143596,1.0832744,0.99279208,0.87214899,0.90230976,0.99279208,1.1134352,0.81182745,0.60070204,0.41973742,-0.0025133962,-0.30412112,0.26893355,-0.33428189,2 +-0.77500399,-1.1173371,-1.4596701,-1.5452534,-1.6878922,-1.4311424,-1.4596701,-0.48972646,0.50874496,1.1078278,1.3360499,1.2789943,0.96518904,0.70843925,0.79402251,0.9937168,0.85107802,0.56580047,0.33757843,0.30905068,-0.06181013,0.023773134,0.36610619,-0.11886565,2 +-0.77763577,-1.1286688,-1.3334381,-1.5089547,-1.5089547,-1.3626909,-1.5089547,-0.71913025,0.39247449,1.2993099,1.3578154,1.3578154,1.0360351,0.74350756,0.68500205,0.83126583,0.94827685,0.7142548,0.48023276,0.24621071,-0.10482238,-0.16332789,0.21695795,-0.19258064,2 +0.20626657,-0.17453325,-0.99053285,-1.2081327,-1.2081327,-1.3169327,-0.66413301,-1.1537328,-0.8817329,-0.22893322,0.5326664,0.7502663,0.58706638,0.20626657,0.15186659,-0.33773317,-0.60973303,-0.44653311,-0.22893322,0.5326664,0.69586632,2.4366655,2.1102656,1.2398661,2 +0.52589062,-0.07774035,-0.5167447,-0.84599795,-1.0106246,-1.1203757,-1.8337577,-1.7240066,-1.2850023,-0.1326159,0.47101508,0.74539279,0.74539279,0.2515129,-0.07774035,-0.022864808,-0.18749144,-0.29724252,-0.1326159,0.52589062,1.074646,2.1172814,1.5685259,1.2392727,2 +-0.95005819,-1.2750187,-1.5187391,-1.5999792,-1.6812193,-1.4374989,-1.0312983,-0.54385753,0.53934419,1.1351051,1.053865,0.97262488,0.78306458,0.34978389,0.4851841,0.53934419,0.45810406,0.32270385,0.45810406,1.4329856,1.1621852,0.64766436,0.02482337,-0.32721719,1 +-0.79550393,-1.203723,-1.4235333,-1.4863363,-1.5491392,-1.4863363,-1.2351245,-0.41868629,0.58616078,1.1513873,1.2455917,1.2455917,0.93157695,0.80597107,0.83737254,1.2141902,0.96297842,0.74316813,0.39775195,0.20934313,-0.26167893,-0.16747452,0.052335775,-0.35588334,2 +-0.5066519,-0.9853781,-1.4641043,-1.4162317,-1.5119769,-1.128996,-1.3204864,-0.31516142,0.45080051,1.4561255,1.6954886,1.3603803,1.0252719,0.40292789,-0.07579831,-0.07579831,-0.17154356,-0.41090666,-0.31516142,0.35505527,1.5518708,0.92952672,0.49867313,-0.02792569,1 +-0.66859246,-1.0930956,-1.3194973,-1.3760977,-1.4326981,-1.2911971,-1.545899,-1.0647954,0.095513207,1.0860206,1.284122,1.3690227,1.3124222,0.85961888,0.88791909,0.97281972,0.88791909,0.68981762,0.37851531,0.26531447,-0.15918868,-0.10258826,0.15211363,-0.18748889,2 +-0.76906173,-1.039501,-1.3775501,-1.6479894,-1.5127697,-1.5127697,-0.90428137,-1.1071108,-0.29579297,0.78596417,1.5296722,1.1916231,0.98879363,0.71835435,0.44791506,0.78596417,0.78596417,0.44791506,0.31269542,0.17747578,-0.29579297,1.3268427,0.65074453,0.31269542,2 +0.0018942,-0.45271337,-0.81639942,-1.0437032,-1.1800855,-1.0437032,-0.81639942,-1.1800855,-0.77093866,-0.13448807,0.59288403,0.59288403,0.41104101,0.22919798,-0.3163311,-0.45271337,-0.63455639,-0.63455639,-0.27087034,1.9567067,2.1385498,1.7748637,1.2747954,0.77472706,1 +-0.9103363,-1.1901137,-1.3172852,-1.4698911,-1.5207597,-1.4190225,-1.215548,-0.83403337,0.89549962,1.4550544,1.4550544,1.3533172,1.0481055,0.69202515,0.71745946,0.64115653,0.5394193,0.23420759,0.056167429,-0.020135497,0.23420759,0.64115653,0.2596419,-0.3253472,2 +0.27485841,-0.49218832,-0.90127989,-1.3103715,-1.2592351,-1.1569622,-1.0035528,-0.64559766,-1.1058257,-0.083096725,0.47940421,0.58167711,0.63281355,0.070312619,-0.28764252,-0.18536963,-0.38991542,-0.59446121,-0.13423318,0.73508645,2.2180435,2.0646341,1.5021332,0.9907687,1 +-0.84154944,-1.2139798,-1.4718163,-1.5864102,-1.5864102,-1.5004648,-1.2426283,-0.35452508,0.30439022,1.106548,1.3643844,1.3643844,1.106548,0.70546911,0.59087514,0.84871157,0.96330553,0.56222665,0.33303872,0.10385078,-0.039391678,0.61952363,0.16114777,-0.2972281,2 +-0.81666336,-1.2325768,-1.3885443,-1.596501,-1.6224956,-1.4145389,-1.5185173,-0.14080404,0.32709858,1.0809417,1.18492,1.1589255,0.87298497,0.74301202,0.84699038,1.0289525,1.1069363,0.7950012,0.48306612,0.17113104,-0.11480945,-0.062820267,0.30110399,-0.19279322,2 +-0.648886,-1.1346019,-1.2863881,-1.529246,-1.5596032,-1.4685315,-1.2863881,-0.67924325,0.26183121,1.1725484,1.2636201,1.2636201,0.92969049,0.89933325,0.68683258,1.1725484,1.1421912,0.86897601,0.41361741,0.14040225,-0.13281292,-0.041741198,-0.041741198,-0.40602808,2 +-1.0301707,-1.4011413,-1.5538939,-1.6193593,-1.6193593,-1.4229631,-1.0738143,0.19184998,0.99925652,1.1956527,1.2174745,1.1083655,0.91196933,0.45371156,0.34460257,0.41006796,0.41006796,0.25731537,0.27913717,1.1301873,0.80286033,0.47553336,-0.048189807,-0.41916038,1 +-1.1441806,-1.3795032,-1.5424188,-1.596724,-1.6148257,-1.3614014,-0.9993667,-0.23909377,0.62978958,0.97372257,1.082333,1.0642313,0.95562083,0.5392809,0.5392809,0.70219653,0.75650174,0.75650174,0.97372257,0.91941736,0.55738264,0.21344964,-0.16668682,-0.61923024,1 +-0.76227642,-1.1933018,-1.336977,-1.5285438,-1.5285438,-1.5285438,-1.0975184,-0.61860128,0.33923296,1.1055004,1.3449589,1.3928506,1.2491755,1.0097169,0.77025837,0.8660418,0.67447495,0.81815008,0.4829081,0.0039909748,-0.33125101,-0.13968416,0.24344954,-0.23546759,2 +-0.72883983,-0.98607743,-1.3719339,-1.5327074,-1.7256356,-1.4362433,-1.0182322,-0.053591143,0.62165754,1.0396686,1.1361327,1.0396686,0.68596694,0.10718235,-0.15005524,-0.24651934,-0.11790054,0.10718235,1.3290609,1.6184532,1.2969062,0.71812164,0.075027655,-0.40729283,1 +-0.66987364,-1.1857122,-1.3863161,-1.4722892,-1.58692,-1.5009469,-1.58692,-0.44061207,0.59106501,1.2215343,1.3361651,1.2788497,1.1355612,0.73435349,0.73435349,0.84898428,0.84898428,0.50509192,0.24717264,0.21851495,0.046568771,0.16119955,0.18985725,-0.26866589,2 +-0.88848275,-1.3065923,-1.557458,-1.6968278,-1.557458,-1.5017101,-0.99997862,-0.47037322,0.67245949,1.3414347,1.3135608,1.2578128,0.95119918,0.56096362,0.58883759,0.70033346,0.70033346,0.44946774,0.36584584,0.11498012,0.14285409,0.78395537,0.33797187,-0.30312941,2 +-1.0436529,-1.3266775,-1.5288378,-1.5692699,-1.609702,-1.5086218,-1.1851652,0.0075810113,0.65449423,1.079031,1.0385989,0.89708668,0.55341403,0.35125365,0.37146969,0.4321178,0.57363007,0.93751876,1.2609753,1.1194631,0.65449423,0.37146969,-0.053067103,-0.4776039,1 +-0.60178749,-0.99699122,-1.3562673,-1.4999778,-1.5359054,-1.4640502,-1.1766293,-0.70957033,-0.3143666,-0.27843899,0.36825802,0.65567891,0.79938936,0.40418563,0.044909513,-0.026945711,0.0089819006,1.0868103,1.3023759,1.5897968,1.482014,1.1945931,0.69160652,0.33233041,1 +-1.0279646,-1.3235883,-1.5117126,-1.646087,-1.5923373,-1.4579628,-1.162339,-0.27546763,0.63827865,1.1220267,1.2295262,1.0951518,0.79952799,0.53077908,0.55765397,0.69202843,0.63827865,0.45015441,0.31577996,0.93390244,0.96077733,0.45015441,0.12765573,-0.54421653,1 +-0.91104907,-1.3138876,-1.5153068,-1.6943461,-1.6272064,-1.4257871,-0.93342898,-0.12775202,0.96886385,1.1702831,1.1479032,0.92410402,0.70030486,0.25270655,0.29746638,0.23032663,0.6107852,1.0583835,1.0807634,1.0136237,0.6107852,0.25270655,-0.15013193,-0.62011016,1 +-0.99765612,-1.344667,-1.5582121,-1.6115984,-1.6382915,-1.4781327,-1.0243493,-0.30363448,0.57723917,0.79078429,1.0310226,0.89755685,0.87086371,0.44377347,0.2035352,0.36369404,0.41708033,0.73739801,1.3513403,1.2712608,0.81747743,0.49715975,0.043376357,-0.35702076,1 +-0.5491846,-0.93939471,-1.4163182,-1.5030316,-1.6331016,-1.5030316,-1.2428915,0.23123562,0.66480242,1.2717959,1.401866,1.0983692,0.57808906,0.23123562,-0.1156178,-0.15897448,-0.15897448,-0.28904452,0.014452234,1.5752927,1.3585093,0.88158582,0.36130566,-0.15897448,1 +0.022959187,-0.67833949,-1.0790816,-1.4297309,-1.5299164,-1.3796382,-1.6801947,-1.0790816,0.27342299,1.2752782,1.9765769,1.3754638,1.1750927,0.32351575,-0.077226338,-0.1273191,0.022959187,-0.027133576,0.022959187,0.47379404,0.27342299,1.1249999,0.72425786,0.022959187,2 +-0.88935968,-1.1119895,-1.3902767,-1.5294203,-1.5294203,-1.4459342,-1.5850778,-0.6945586,0.55773403,1.0029936,1.2256234,1.1977947,1.0308224,0.61339148,0.94733618,0.91950746,0.80819256,0.72470638,0.55773403,0.52990531,0.056816978,-0.026669198,0.19596061,-0.16581282,2 +-1.0000126,-1.3138998,-1.5312064,-1.6277871,-1.6519323,-1.4104805,-1.0000126,-0.4446736,0.69014953,1.173053,1.2213433,1.0523271,0.73843988,0.42455263,0.40040745,0.47284297,0.52113332,0.35211711,0.42455263,1.2937789,0.95574643,0.64185918,0.086520208,-0.46881878,1 +-0.5237663,-0.83607415,-1.070305,-1.6168438,-1.6168438,-1.5387668,-0.83607415,-1.3826129,-0.21145844,1.037773,1.1939269,1.3500808,1.1158499,0.5693112,0.72546513,0.64738816,0.5693112,0.3350803,0.17892637,0.022772453,-0.5237663,1.5062347,0.88161905,0.022772453,2 +-0.20557423,-0.98675633,-1.2745603,-1.4390197,-1.5212494,-0.98675633,-0.86341179,-0.6989524,0.90452665,1.7679384,1.891283,1.6445939,1.0278712,0.45226333,0.12334455,-0.28780392,-0.49337816,-0.32891877,-0.45226331,6.40625E-9,0.20557425,1.1512157,0.49337818,-0.12334453,2 +-1.1625199,-1.3409117,-1.5193035,-1.6263385,-1.6263385,-1.4479467,-0.93061053,-0.038651552,0.81762906,1.01386,1.0316992,0.97818168,0.83546824,0.51436301,0.49652383,0.63923727,0.67491562,0.99602086,1.0495384,0.8711466,0.42516711,0.19325778,-0.23488253,-0.6095053,1 +-0.99751921,-1.292716,-1.5288735,-1.7059915,-1.6469522,-1.4403144,-0.90896017,-0.14144847,0.62606322,1.0983781,1.1869372,1.1574175,1.1574175,0.56702386,0.74414194,0.8031813,0.68510258,0.41942546,0.065189291,0.15374834,0.8031813,0.8031813,-0.082409111,-0.52520432,2 +-0.8492309,-1.1928886,-1.4043702,-1.5365462,-1.5365462,-1.377935,-1.6158518,-0.76992529,0.47252926,1.1598446,1.2655854,1.1069741,1.1069741,0.7368813,0.68401089,0.86905731,0.84262211,0.65757569,0.41965885,0.41965885,0.20817723,0.18174202,0.28748284,-0.13548042,2 +-0.16778057,-0.80616518,-1.2481237,-1.4445498,-1.5427628,-1.5427628,-1.2972303,-0.16778057,0.32328451,1.2563082,1.6982667,1.3054147,0.91256261,0.12685848,-0.11867406,-0.21688708,-0.31510009,-0.51152613,0.66703007,0.12685848,1.6000537,1.2072017,0.37239102,-0.21688708,2 +0.74071412,0.1181684,-0.57354906,-0.57354906,-0.7810643,-0.57354906,-0.43520557,-0.089346839,-0.57354906,0.25651189,0.74071412,0.94822935,0.67154237,0.048996654,-0.7810643,-1.1960948,-1.126923,-1.126923,-1.3344383,-0.85023605,1.0174011,2.1933208,1.7782903,1.5016033,1 +-0.78167669,-1.191886,-1.3833171,-1.5200535,-1.5747481,-1.4653589,-1.6020954,-0.53555109,0.47629863,1.2146754,1.4334538,1.1599809,0.94120255,0.5583405,0.74977152,0.88650797,0.85916068,0.64038236,0.47629863,0.2848676,0.066089279,0.066089279,0.36690947,-0.12534174,2 +-1.2498364,-1.4140485,-1.5600148,-1.5782606,-1.6147522,-1.4322943,-0.8666749,-0.17333498,0.50175915,0.92141225,1.0673786,0.93965804,0.73895438,0.48351336,0.428776,0.53825073,0.5747423,0.95790382,1.286328,1.0491328,0.62947965,0.33754706,-0.17333498,-0.39228443,1 +0.55361298,0.090891679,-0.5040357,-0.63624178,-0.70234482,-0.76844787,-1.2311692,-1.4955813,-1.1650661,-0.5040357,0.024788637,0.28920081,0.35530385,0.090891679,-0.30572657,-0.37182961,-0.30572657,-0.30572657,-0.30572657,0.024788637,0.61971602,2.4044982,2.2722921,1.8756738,2 +-1.0468305,-1.3498092,-1.5129516,-1.6294819,-1.652788,-1.4663395,-1.0002183,-0.37095477,0.65451181,1.1672451,1.0740209,0.88757239,0.65451181,0.39814517,0.46806334,0.58459363,0.53798152,0.39814517,0.51467546,1.4236117,1.0507148,0.46806334,0.14177852,-0.39426083,1 +-1.0642282,-1.3416376,-1.5001572,-1.5794171,-1.599232,-1.4208974,-1.143488,-0.21218515,0.50115324,0.85782244,0.95689721,0.95689721,0.87763739,0.5209682,0.62004297,0.65967288,0.81819253,1.0757869,1.1154169,0.95689721,0.5209682,0.26337378,-0.29144497,-0.54903939,1 +-0.39375112,-0.83950709,-1.4635654,-1.5527166,-1.6418678,-1.3744142,-0.92865828,-1.285263,-0.30459992,1.3001216,1.5675751,1.2109704,1.1218192,0.67606322,0.67606322,0.49776082,0.49776082,0.40860963,0.052004852,0.14115605,-0.30459992,1.2109704,0.58691201,0.14115605,2 +-0.099111129,-0.65413341,-1.0505779,-1.2488002,-1.3280891,-1.1298668,-0.8920001,-0.65413341,-0.8127112,-0.13875557,0.4162667,0.61448894,0.53520005,-0.059466681,-0.13875557,-0.49555562,-0.57484452,-0.57484452,0.97128898,1.9624003,2.0416892,1.6452447,1.0902224,0.5748445,1 +-0.0071746957,-0.52375274,-1.083379,-1.1264271,-1.2986198,-1.2555716,-0.95423444,-0.4376564,-0.82508993,0.078921646,0.55245152,0.68159603,0.55245152,0.12196982,-0.22241555,-0.48070457,-0.65289725,-0.69594542,-0.050222865,1.7578003,2.0160893,1.9730411,1.1981741,0.68159603,1 +0.3207932,-0.1603966,-0.8340623,-1.3152521,-1.4114901,-1.2190142,-0.6415864,-1.4114901,-0.25663456,1.3794108,2.0530765,1.8606006,1.4756487,0.70574502,-0.35287252,-0.1603966,-0.1603966,-0.25663456,-0.25663456,0.032079316,-0.73782435,-0.1603966,1.0906969,0.41703115,2 +0.94351038,0.25732101,-0.20013856,-0.08577367,-0.42886835,-0.20013856,0.25732101,-1.2294226,-0.77196303,-0.20013856,0.25732101,0.25732101,-0.08577367,-0.08577367,-1.5725173,-0.77196303,-0.88632793,-0.54323325,-0.54323325,-0.77196303,-0.08577367,2.5446189,2.2015242,1.7440646,2 +-1.0125705,-1.3538179,-1.5488164,-1.5975661,-1.5000668,-1.2563186,-1.0125705,-0.91507122,0.57179255,1.2055378,1.3274119,1.2055378,1.0349141,0.79116589,0.644917,0.76679108,0.76679108,0.47429329,0.42554365,0.35241921,0.23054513,0.69366663,0.08429623,-0.37882528,2 +-0.68518273,-1.1296256,-1.3666618,-1.4555503,-1.4851799,-1.4555503,-1.3962913,-0.65555321,0.35185059,1.0925887,1.2999953,1.2703658,1.0629592,0.85555249,0.82592297,1.0925887,1.1222182,0.82592297,0.29259155,0.17407345,-0.21111036,-0.24073988,0.025925833,-0.21111036,2 +0.16543842,-0.60803994,-1.1236922,-1.3815183,-1.4846487,-1.3299531,-2.1034314,-0.91743128,0.47482976,1.7123952,1.7123952,1.3514386,1.0936125,0.11387319,0.11387319,0.11387319,0.16543842,-0.0923877,0.06230797,0.32013409,0.42326454,0.42326454,0.73265587,0.06230797,2 +-1.0175031,-1.3466701,-1.4701077,-1.6346912,-1.6141183,-1.4289618,-1.058649,-0.17401275,0.73119643,0.95749873,1.1015093,1.0397905,0.73119643,0.42260239,0.40202946,0.42260239,0.46374827,0.54604001,1.4101033,1.1220822,0.64890469,0.38145652,-0.0094292675,-0.62661736,1 +-0.24861742,-0.79771111,-1.1271673,-1.4932298,-1.4932298,-1.3101985,-1.0173486,-0.68789237,-0.72449862,-0.10219244,0.41029501,0.73975122,0.77635746,0.19065753,-0.10219244,-0.24861742,-0.35843616,-0.065586192,1.4352699,1.7647261,1.6915136,1.4352699,1.0326012,0.30047627,1 +-0.85778719,-1.2819676,-1.5364759,-1.621312,-1.7061481,-1.5364759,-0.91434459,-0.34877062,0.81065601,1.3479513,1.3479513,1.2065578,1.093443,0.64098381,0.61270511,0.64098381,0.47131162,0.32991813,0.18852464,0.21680334,0.21680334,0.75409861,0.30163944,-0.37704932,2 +-0.94329127,-1.1153575,-1.5332324,-1.7052986,-1.7052986,-1.3365854,-1.1891001,-0.47625455,0.43323802,0.72820858,0.85111299,0.92485563,0.94943651,0.4578189,0.48239978,0.38407626,0.62988506,0.92485563,1.268988,1.3181497,0.72820858,0.40865714,-0.058379587,-0.42709279,1 +-0.89108777,-1.2080997,-1.5738826,-1.5738826,-1.6226536,-1.500726,-1.2080997,-0.62284698,0.35257408,0.84028462,1.181682,1.2548386,0.98659778,0.81589909,0.62081488,0.86467015,0.84028462,0.84028462,0.52327277,0.35257408,0.40134513,0.62081488,0.059947764,-0.35460619,2 +-1.0732529,-1.2879035,-1.5293854,-1.6367107,-1.663542,-1.5025541,-0.99275891,-0.40246983,0.40246984,0.99275892,1.1537469,1.0464216,0.99275892,0.67078306,0.85860232,0.88543364,0.99275892,0.50979513,0.40246984,0.26831323,0.67078306,0.5902891,0.080493972,-0.42930115,2 +-0.37067751,-0.842724,-1.2058366,-1.387393,-1.5689493,-1.532638,-1.1695254,-0.80641273,-0.47961131,-0.26174371,0.53710417,0.86390557,1.0454619,0.35554783,0.065057691,-0.0075648441,-0.22543245,0.17399149,1.5538196,1.6264421,1.4085745,1.335952,0.64603797,0.24661402,1 +-1.0155388,-1.3407822,-1.5440594,-1.5643871,-1.6050426,-1.4220931,-1.0561942,-0.080463882,0.97657733,1.0375605,1.1188714,0.9359219,0.79362789,0.38707358,0.34641815,0.46838444,0.46838444,0.44805672,1.2001822,1.1188714,0.85461104,0.32609043,-0.30406876,-0.54800135,1 +-0.14490473,-0.90565448,-1.23169,-1.7750827,-1.5577256,-1.23169,-0.79697594,-1.23169,0.18113087,1.2679162,0.83320208,1.3765948,1.1592377,1.3765948,0.72452355,0.18113087,0.2898094,-0.036226197,-0.3622618,-0.47094033,-0.25358326,1.3765948,0.94188061,0.2898094,2 +-0.60358877,-1.0785439,-1.4347602,-1.553499,-1.6722377,-1.4347602,-0.84106632,-1.0785439,0.049474493,1.0587541,1.4149704,1.4149704,1.355601,0.76190714,0.70253775,0.76190714,0.64316836,0.64316836,0.22758265,0.10884388,-0.42548061,0.64316836,0.40569081,-0.069264281,2 +-0.67451348,-1.1463043,-1.3821998,-1.677069,-1.7360429,-1.3527128,-1.0873305,-0.11426185,0.85880678,0.97675449,1.1536761,1.0062414,0.79983292,0.15112051,-0.084774922,-0.20272263,-0.14374877,0.092146646,1.3011107,1.3895715,1.183163,0.770346,0.15112051,-0.23220956,1 +-1.0736609,-1.3838835,-1.5971615,-1.6165504,-1.5971615,-1.4420502,-0.99610534,-0.10421542,0.72950777,1.0978971,1.117286,0.98156361,0.76828559,0.38050738,0.39989629,0.55500757,0.4192852,0.67134104,1.2142305,1.0785082,0.61317431,0.28356281,0.012118053,-0.51138255,1 +-0.99495555,-1.3812679,-1.5744241,-1.5985686,-1.5985686,-1.429557,-1.0191001,-0.34305343,0.71930559,1.202196,1.1056179,1.0573289,0.81588368,0.42957131,0.45371584,0.45371584,0.45371584,0.35713774,0.57443845,1.3229186,0.88831725,0.57443845,-0.0050301017,-0.46377604,1 +-0.76406636,-1.1501209,-1.3753194,-1.4718331,-1.6005179,-1.5040043,-1.0536073,-0.76406636,0.4262686,1.2627202,1.2948914,1.3270626,1.1018641,0.84449439,0.84449439,0.97317925,0.94100803,0.71580953,0.39409738,0.16889888,-0.2171557,-0.088470846,-0.024128416,-0.28149813,2 +-0.96916733,-1.3359228,-1.5289519,-1.6254665,-1.5675578,-1.4324374,-1.046379,-0.13914187,0.63297486,1.057639,1.2506682,1.1541536,0.84530695,0.51715735,0.26621942,0.4592486,0.5750661,0.32412817,1.1734565,1.2120624,0.49785443,0.36273401,-0.11983895,-0.56380606,1 +-0.37866805,-0.89663887,-1.2733449,-1.5558744,-1.650051,-1.3675214,-1.3204332,-0.89663887,0.65727357,1.2223326,1.7403034,1.3635974,1.0339796,0.5160088,-0.0019620058,-0.19031503,-0.14322678,-0.19031503,0.092214505,0.37474403,0.79853834,1.0810679,0.79853834,0.18639101,2 +-0.96361473,-1.2606556,-1.5576965,-1.5576965,-1.6425653,-1.3879588,-0.87874591,-0.96361473,-0.030057709,0.94593372,1.2005402,1.2429746,0.94593372,0.69132726,0.73376167,0.8610649,0.8610649,0.60645844,0.47915521,0.18211434,0.054811111,1.073237,0.47915521,-0.11492653,2 +-1.0578487,-1.4154314,-1.5431395,-1.6197644,-1.645306,-1.4665146,-1.2110984,0.14260737,0.5768149,1.2664386,1.1642721,1.0876473,0.85777271,0.62789814,0.52573166,0.5768149,0.60235652,0.34694033,0.21923223,0.50019004,0.90885595,0.73006462,0.19369061,-0.36822501,2 +-0.90659539,-1.3105954,-1.4837383,-1.5991669,-1.628024,-1.5414526,-1.0797382,-0.35830958,0.68054772,1.1134049,1.2576907,1.1711192,1.0556906,0.47854769,0.56511913,0.73826201,0.70940486,0.44969054,0.18997622,0.074547626,1.0556906,0.73826201,-0.040880964,-0.32945244,2 +-1.0029463,-1.3557068,-1.4594598,-1.666966,-1.666966,-1.4387092,-1.1066994,-0.13142055,0.63635215,1.0928657,1.1758681,1.072115,0.84385829,0.38734479,0.24209049,0.4080954,0.44959663,0.42884602,1.1758681,1.1343669,0.67785338,0.47034724,0.076085586,-0.44267976,1 +-0.64793158,-1.088868,-1.2946383,-1.5004086,-1.4416171,-1.4122213,-1.5004086,-0.67732734,0.23394126,1.2040014,1.3215844,1.3509802,1.0864183,0.79246072,0.85125224,1.0276268,1.0570226,0.70427344,0.29273279,0.29273279,-0.20699516,-0.38336972,0.11635822,-0.1775994,2 +-0.85907822,-1.1899824,-1.3936157,-1.5463407,-1.5463407,-1.4954324,-1.5463407,-0.40090318,0.66817193,1.2027095,1.2281636,1.1772553,1.0754386,0.66817193,0.79544277,0.87180528,0.82089694,0.6936261,0.46453858,0.18454272,0.057271869,0.23545106,0.10818022,-0.27363233,2 +0.019050876,-0.66678106,-1.2383077,-1.2954603,-1.5812237,-1.4669183,-1.2954603,-0.89539171,0.47627218,1.5621728,2.0193941,1.2764095,0.93349346,0.30481419,-0.095254446,-0.095254446,-0.20955977,-0.15240711,-0.20955977,0.1333562,0.076203539,1.3907148,0.8763408,0.1333562,2 +-0.95666169,-1.2932464,-1.5577057,-1.6538728,-1.6779145,-1.4615387,-1.0047452,-0.01903306,0.67817798,1.183055,1.183055,1.1349714,0.75030326,0.38967685,0.43776037,0.38967685,0.46180213,0.36563509,0.65413622,1.3032638,0.89455381,0.38967685,-0.091158339,-0.49986825,1 +-1.0983096,-1.4108721,-1.5411064,-1.619247,-1.619247,-1.5150596,-1.1243565,0.021705719,0.59473685,1.1938148,1.2459086,1.1156742,0.85520554,0.59473685,0.59473685,0.75101806,0.67287745,0.59473685,0.17798694,0.17798694,0.77706493,0.64683058,0.23008068,-0.31690358,2 +-0.82635576,-1.370105,-1.5704337,-1.6562888,-1.6849072,-1.5131969,-1.2270131,-0.11089623,0.54732654,1.1196942,1.2055493,0.97660228,0.91936551,0.49008978,0.60456331,0.66180007,0.74765521,0.51870816,0.26114273,0.49008978,1.0052206,0.66180007,0.11805082,-0.36846166,2 +-0.78321889,-1.2807932,-1.5295804,-1.6401525,-1.6677955,-1.5295804,-1.3084363,-0.25800152,0.87536228,1.1241495,1.2347215,1.1241495,0.82007624,0.59893209,0.62657511,0.70950417,0.65421813,0.54364605,0.21192982,0.46071699,0.79243322,0.57128907,0.018428676,-0.36857359,1 +-0.40782256,-0.84607966,-1.333032,-1.4304225,-1.5765082,-1.2356415,-1.8686796,-1.0895558,0.127825,1.2478153,1.3452058,1.5399867,1.1991201,0.71216778,0.56608208,0.46869163,0.51738686,0.32260593,0.22521546,0.22521546,0.030434526,0.127825,0.90694871,0.22521546,2 +1.2410089,0.64361782,0.046226695,-0.46582284,-0.63650602,-0.55116442,-2.0019714,-1.8312882,-0.97787238,0.13156828,0.55827623,0.55827623,0.64361782,0.13156828,-0.46582284,-0.63650602,-0.38048125,-0.46582284,-0.46582284,-0.29513966,0.13156828,0.98498418,1.9237416,2.1797664,2 +-0.94434673,-1.3768719,-1.4850032,-1.5931345,-1.5931345,-1.4850032,-1.0092255,-0.014417511,0.65599657,1.2615319,1.2182793,1.1317743,0.91551172,0.43973396,0.28835014,0.4181077,0.46136022,0.54786527,0.82900666,1.110148,0.72087535,0.33160266,-0.079296295,-0.74971038,1 +1.0553533,0.29359451,-0.27772455,-0.9125235,-0.9125235,-0.78556371,-1.9916817,-1.6108023,-0.97600339,-0.15076476,0.61099398,0.80143367,0.67447388,0.23011461,-0.08728486,-0.15076476,-0.27772455,-0.34120445,-0.34120445,-0.27772455,0.4205543,0.73795377,2.3884311,1.8805919,2 +-0.98157161,-1.2517289,-1.548902,-1.6029335,-1.6569649,-1.5218863,-1.2247132,-0.36020977,0.66638807,1.1256555,1.2607342,1.1256555,0.72041953,0.63937233,0.66638807,0.6934038,0.6934038,0.5313094,0.28816781,0.36921501,0.90952966,0.6934038,0.072041957,-0.3061783,1 +-1.088945,-1.3624021,-1.5186633,-1.5772612,-1.5967938,-1.4991306,-1.088945,-0.092780076,0.57132989,1.0205808,1.0205808,0.84478694,0.68852577,0.41506872,0.37600343,0.51273196,0.57132989,1.2354399,1.1573093,1.0205808,0.64946048,0.31740549,-0.092780076,-0.483433,1 +-0.82828519,-1.259185,-1.6039049,-1.7475381,-1.6613582,-1.5177249,-1.1155517,-0.1962988,0.78040744,1.2113072,1.2974872,1.1251273,1.0102207,0.4931409,0.57932086,0.66550082,0.63677417,0.4931409,0.34950763,0.1771477,0.40696093,0.69422747,0.34950763,-0.33993207,2 +0.060790377,-0.77290618,-1.0855424,-1.4502847,-1.6066028,-1.6066028,-1.1897545,-0.6686941,0.32132055,1.3113352,1.3634413,1.1029111,0.73816883,0.11289641,-0.1997398,-0.40816394,-0.3560579,-0.30395186,-0.095527727,1.0508051,1.8323956,1.1550171,0.63395676,0.060790377,1 +-0.63667677,-1.1502984,-1.5034133,-1.6318187,-1.6318187,-1.4392106,-0.70087947,-0.28356193,0.48687047,1.2894043,1.4178097,1.1609989,0.71157991,0.19795832,-0.31566328,-0.18725788,-0.058852478,0.32636371,1.2252016,1.4820124,0.93628937,0.48687047,0.19795832,-0.37986598,1 +0.10265191,-0.52445791,-0.92759993,-1.1067742,-1.330742,-1.1963613,-0.61404503,-1.2411548,-0.65883858,0.19223903,0.46100038,0.59538105,0.46100038,0.013064795,-0.34528368,-0.47966435,-0.56925147,-0.61404503,0.013064795,1.8048071,2.118362,1.8048071,1.2672844,0.77455529,1 +-1.1455804,-1.3193178,-1.5364894,-1.6016409,-1.6016409,-1.4713379,-0.92840879,0.048863625,0.54835842,1.026136,1.026136,0.96098455,0.59179275,0.37462109,0.46148976,0.61350991,0.70037857,0.70037857,1.1781562,1.2650248,0.67866141,0.3094696,-0.21174236,-0.66780281,1 +-1.0555549,-1.3922102,-1.5605379,-1.6236608,-1.6026199,-1.4342922,-1.0134729,0.038575095,0.81709065,1.1116641,0.94333641,0.94333641,0.83813161,0.41731239,0.31210759,0.41731239,0.50147623,0.88021353,1.153746,1.0485412,0.66980392,0.33314855,-0.15079355,-0.59265373,1 +-0.50894799,-1.0114536,-1.3593422,-1.5526136,-1.5526136,-1.2820336,-0.77952795,-0.50894799,0.72798891,1.3851117,1.3851117,1.0372232,0.76664319,0.2254833,-0.19971378,-0.19971378,-0.35433088,-0.19971378,-0.27702234,1.6170374,1.5010745,1.0758774,0.26413758,-0.19971378,1 +-0.98589936,-1.3076573,-1.5551634,-1.6789165,-1.6294153,-1.4314104,-0.98589936,-0.51563774,0.54863856,1.093152,1.0189002,0.96939896,0.8456459,0.32588305,0.37538428,0.57338917,0.69714223,0.57338917,0.49913733,1.2664063,1.0436508,0.647641,0.053626325,-0.44138591,1 +-0.59637766,-1.1054197,-1.4347998,-1.674349,-1.6144617,-1.4347998,-1.075476,-0.23705388,0.33187544,0.96069206,1.2900722,1.2301849,1.0205793,0.30193179,-0.14722294,-0.11727929,-0.11727929,0.032438952,1.2002412,1.4996777,1.1104103,0.60136827,0.032438952,-0.057391994,1 +-0.38248378,-1.1318398,-1.4440714,-1.6314104,-1.6314104,-1.4440714,-1.1006166,-0.25759112,0.24197954,0.99133552,1.272344,1.1162282,0.77277336,0.2732027,-0.10147529,-0.13269845,-0.10147529,0.085863702,1.3347903,1.5845757,1.1786745,0.61665753,0.1795332,-0.28881428,1 +-0.80659665,-1.090681,-1.4559323,-1.4965158,-1.5370993,-1.4965158,-1.2935984,-0.7254297,0.16740685,1.1008269,1.3849112,1.4254947,1.1008269,0.77615904,0.69499209,0.77615904,0.857326,0.57324165,0.32974077,0.16740685,-0.19784446,0.69499209,0.32974077,-0.27901142,2 +-1.0509161,-1.2250324,-1.5981388,-1.6478863,-1.6478863,-1.3245274,-1.0509161,-0.3047035,0.56587793,1.2125955,1.162848,0.98873177,0.73999422,0.36688789,0.51613042,0.49125667,0.6404992,0.34201414,0.51613042,1.3867118,0.93898426,0.54100418,-0.055965945,-0.50369354,1 +-1.0855598,-1.2618943,-1.4602707,-1.5925217,-1.6145635,-1.4602707,-1.0855598,-0.093677739,0.45736781,1.052497,1.0084134,0.89820426,0.72186968,0.36920052,0.45736781,0.47940964,0.45736781,0.7439115,1.3390407,1.2288316,0.63370239,0.65574421,-0.15980321,-0.68880695,1 +-0.91297508,-1.2765492,-1.6158851,-1.7128382,-1.6643616,-1.4219789,-1.1068813,0.032317706,0.54132151,1.1715167,1.1230401,1.026087,0.80794255,0.37165357,0.49284495,0.42013012,0.51708323,0.29893874,0.49284495,1.3654229,0.92913394,0.54132151,-0.016158847,-0.40397127,1 +-1.0673255,-1.3820756,-1.5273449,-1.5999795,-1.5999795,-1.5031333,-1.0673255,-0.050440727,0.72432868,1.0390787,1.1117134,0.96644411,0.91802103,0.53063633,0.48221324,0.65169405,0.43379016,0.28852089,0.50642479,1.3296173,0.82117485,0.55484787,-0.050440727,-0.51046006,1 +-0.6608612,-1.1376348,-1.5508386,-1.6461933,-1.6461933,-1.3919141,-0.94692536,-0.056947961,0.83302945,0.92838417,1.1826634,1.0873087,0.92838417,0.29268602,0.29268602,0.22911621,0.32447093,0.83302945,1.3733729,1.1508785,0.70588982,0.10197658,-0.37479703,-0.85157064,1 +-0.90468972,-1.1961334,-1.3904292,-1.511864,-1.511864,-1.4390031,-1.511864,-0.8318288,0.38251981,0.9168332,1.086842,1.1597029,1.0382681,0.89254623,0.79539834,0.89254623,1.0139811,0.7468244,0.55252862,0.40680679,-0.0060717462,0.50395468,0.13965009,-0.22465449,2 +0.53996143,-0.13244337,-0.68259276,-0.9882313,-1.2327422,-0.80484817,-0.86597588,-1.8440193,-0.86597588,0.17319518,0.78447226,0.47883372,0.84559998,0.050939758,-0.25469879,-0.13244337,-0.37695421,-0.49920963,-0.49920963,-0.010187953,0.66221684,2.5571759,1.7625157,1.3346217,2 +-0.38018325,-0.60687637,-1.1169359,-1.5703221,-1.5703221,-1.343629,-1.0602626,-1.1736092,0.46991594,1.2066686,1.6033815,1.3200151,1.3766884,0.35656938,-0.21016341,-0.32350997,-0.26683669,-0.32350997,-0.040143569,0.46991594,0.63993579,1.4333617,0.97997547,0.12987627,2 +0.81586664,0.20776728,-0.33952214,-0.70438176,-0.9476215,-0.9476215,-2.0422003,-1.7381507,-1.1300513,-0.035472467,0.93748651,0.87667657,0.81586664,0.39019709,0.14695734,-0.096282402,-0.33952214,-0.64357182,-0.40033208,-0.096282402,0.57262689,1.3631561,2.1536852,1.1807263,2 +-0.808256,-1.4079298,-1.4600754,-1.5122209,-1.4861481,-1.4079298,-1.4600754,-0.59967381,0.52145549,1.0950565,1.3557843,1.1732748,1.0950565,0.75611046,0.70396491,0.96469265,0.88647433,0.54752826,0.31287329,0.28680052,3.1944447E-9,0.13036387,0.31287329,3.1944447E-9,2 +0.72065838,-0.24618765,-0.89075167,-1.2130337,-1.2130337,-1.2130337,-0.89075167,-1.965025,-0.46104232,0.72065838,1.2577951,1.1503677,1.2577951,-0.13876031,-0.35361498,-0.24618765,0.076094365,0.076094365,-0.03133297,-0.03133297,-0.67589699,1.9023591,1.4726497,0.93551306,2 +-1.1035904,-1.3431857,-1.5174369,-1.6045624,-1.6045624,-1.4520927,-1.1471532,-0.058083719,0.55179522,1.1616742,1.1181114,1.0092044,0.8349533,0.39932549,0.44288827,0.39932549,0.48645105,0.46466966,1.0092044,1.2270183,0.72604635,0.48645105,-0.014520936,-0.47193014,1 +-0.98817866,-1.3751577,-1.5410059,-1.5594335,-1.6331438,-1.4120129,-1.1171717,-0.28793085,0.67030301,0.98357178,1.0757096,1.0572821,0.85457876,0.50445485,0.59659272,0.63344787,0.67030301,0.76244089,1.0757096,0.9651442,0.59659272,0.20961366,-0.14051025,-0.6011996,1 +-0.08641224,-0.56500306,-1.0435938,-1.4158311,-1.4158311,-1.2563009,-1.8412452,-1.0967706,0.60488561,1.5088905,1.8811278,1.6684207,1.2430067,0.44535533,-0.033235483,0.07311803,0.07311803,-0.033235483,0.019941274,0.28582506,0.28582506,0.07311803,0.71123912,-0.08641224,2 +-1.1447578,-1.3366166,-1.4709178,-1.5860331,-1.6435908,-1.4133601,-1.0680142,-0.16627766,0.65871536,0.94650363,0.96568951,0.81220244,0.6203436,0.3709271,0.44767064,0.6203436,0.77383067,1.1383625,1.1767342,1.0040613,0.67790125,0.33255533,-0.031976478,-0.68429654,1 +-0.39932659,-0.79269307,-1.2933413,-1.5079049,-1.579426,-1.3648625,-1.1860596,-0.54236894,-0.75693248,0.24436403,0.7092517,0.85229406,0.78077288,0.20860344,-0.22052364,-0.22052364,-0.22052364,0.42316698,1.4244635,1.4959847,1.6747876,1.2814211,0.78077288,0.20860344,1 +-0.91968282,-1.3246807,-1.5018673,-1.6031168,-1.6537416,-1.5018673,-0.94499519,-0.38812303,0.54843469,1.5356172,1.4596801,1.0546821,0.97874499,0.57374706,0.6243718,0.67499655,0.70030892,0.3712481,0.11812439,0.06749965,0.34593572,0.82687077,0.14343676,-0.18562406,2 +0.087697773,-0.44968431,-0.98706638,-1.1661937,-1.3453211,-1.3005393,-0.8975027,-0.49446615,-0.8975027,-0.001865907,0.49073434,0.53551618,0.40117065,-0.001865907,-0.40490247,-0.36012063,-0.49446615,-0.49446615,0.17726145,2.0580987,2.1924442,1.8341895,0.89377089,0.62507986,1 +-0.20356277,-0.62838942,-1.0532161,-1.308112,-1.43556,-1.308112,-1.0107334,-0.75583741,-0.92576807,-0.20356277,0.47615986,0.68857319,0.81602118,0.0088505532,-0.33101076,-0.41597609,-0.62838942,0.68857319,1.4107785,1.7081571,1.7506398,1.4957438,0.77353851,0.39119453,1 +-1.044008,-1.3143014,-1.5575654,-1.611624,-1.6656827,-1.5035067,-1.125096,-0.15204001,0.30745867,1.1994267,1.3345734,1.2805147,1.0102214,0.57775201,0.57775201,0.57775201,0.73992802,0.38854667,0.2534,0.19934133,0.36151733,0.87507469,0.38854667,-0.097981346,2 +-0.90912205,-1.3496118,-1.4964418,-1.5845397,-1.5845397,-1.4377098,-1.1440499,-0.7916581,0.089321541,0.88220321,0.99966716,1.0290331,1.1171311,0.67664129,0.85283723,0.94093519,0.99966716,0.79410525,0.50044537,0.29488346,0.35361543,0.76473925,0.35361543,-0.35116827,2 +-1.1775332,-1.3717655,-1.5271513,-1.6242674,-1.6242674,-1.4494584,-0.96387767,0.18209276,0.88132896,0.99786833,1.0755612,0.90075219,0.66767345,0.43459472,0.47344118,0.37632504,0.53171086,1.056138,1.1338309,0.92017542,0.4928644,0.33747858,-0.070409192,-0.65310602,1 +-0.89810684,-1.2587366,-1.4806626,-1.5916256,-1.6748478,-1.5084033,-1.0090698,-0.4542548,0.51667149,1.0992273,1.1824495,1.237931,0.93278275,0.76633825,0.7385975,0.905042,0.98826426,0.65537524,0.29474548,0.12830097,0.37796773,0.54441224,0.12830097,-0.62069931,2 +-0.72938187,-1.1678542,-1.4039547,-1.5388693,-1.6063266,-1.4376833,-1.1003969,0.28247737,0.75467835,1.1931507,1.3280653,0.92332156,0.65349243,0.012648239,-0.22345225,-0.25718089,-0.12226633,0.3836633,1.4629798,1.5304371,0.82213564,0.45112058,0.14756281,-0.35836682,1 +-0.98344467,-1.3189141,-1.5585351,-1.6304214,-1.6064593,-1.3668383,-1.055331,-0.48024049,0.52616786,0.64597837,0.95748573,1.0533341,0.8137131,0.57409207,0.45428155,0.47824365,0.52616786,1.1012583,1.2450309,1.1971067,0.66994048,0.35843314,-0.16873314,-0.43231628,1 +-0.17613367,-0.6783762,-0.97135101,-1.3480329,-1.43174,-1.1387652,-0.92949747,-0.38540139,-0.76208329,-0.13428012,0.45166951,0.66093723,0.70279078,0.15869469,-0.25984076,-0.34354784,-0.46910848,-0.55281557,0.32610887,2.0839577,2.1258113,1.7072758,0.9120585,0.45166951,1 +-1.0642386,-1.365489,-1.5591499,-1.5591499,-1.6452214,-1.4085247,-0.99968498,-0.0098623671,0.63567412,0.95844235,1.022996,0.89388871,0.63567412,0.37745952,0.37745952,0.48504894,0.42049529,0.70022776,1.3888,1.2596927,0.72174565,0.44201317,-0.03138025,-0.67691673,1 +-0.78291773,-1.0867995,-1.2387404,-1.3653578,-1.4160048,-1.2134169,-1.3147109,-0.58032986,0.23002165,1.3189315,1.4202254,1.6987837,1.3442549,0.86310875,0.81246178,0.83778526,0.78713829,0.53390345,0.33131558,0.12872771,-0.58032986,-0.40306546,0.027433767,-0.3524185,2 +-0.66071545,-1.0814159,-1.4373932,-1.5992011,-1.6639242,-1.5021163,-1.0490543,0.083600733,0.63374748,1.2162558,1.2486174,1.0544479,0.7308322,0.18068545,-0.14293028,-0.20765343,-0.078207134,0.6013859,1.2809789,1.3780636,1.0220863,0.50430118,-0.013483986,-0.49890758,1 +-0.98924226,-1.36972,-1.5219111,-1.6233719,-1.6233719,-1.4965459,-1.1414333,-0.22828668,0.3551126,1.0653378,1.0653378,1.0146074,0.7102252,0.48193853,0.48193853,0.76095557,0.76095557,0.50730371,0.55803408,1.2936245,0.83705112,0.50730371,0.050730361,-0.45657336,1 +-0.97087183,-1.2603243,-1.5208315,-1.6655577,-1.6655577,-1.5497767,-1.2024338,-0.18935015,0.62111675,0.79478824,1.2289669,1.1131859,0.96845972,0.56322625,0.5921715,0.70795249,0.85267873,0.62111675,0.38955478,0.2158833,0.91056922,0.67900724,0.2158833,-0.44985737,2 +-0.96404552,-1.2411365,-1.5736456,-1.6567728,-1.6844819,-1.3796819,-1.0471728,-0.46528185,0.69850005,1.2249728,1.2249728,1.3358092,0.97559098,0.53224549,0.69850005,0.78162733,0.83704552,0.39370003,0.25515456,0.17202729,-0.077354553,0.69850005,0.42140912,-0.16048183,2 +-1.1180706,-1.4317926,-1.5991111,-1.6200259,-1.6409407,-1.2644742,-1.0553262,-0.0095859435,0.59694335,1.2034727,1.0779839,1.0570691,0.78517658,0.47145453,0.42962492,0.55511375,0.65968777,0.45053973,0.78517658,1.1616431,0.76426178,0.42962492,-0.13507477,-0.55337084,1 +-0.9850985,-1.3390261,-1.5513827,-1.598573,-1.6929537,-1.4805972,-1.0794792,0.053089139,0.73734918,1.1856575,1.0912768,1.0204913,0.73734918,0.43061192,0.40701675,0.43061192,0.40701675,0.33623123,0.73734918,1.3272285,0.85532505,0.45420709,0.029493965,-0.51319503,1 +-0.98741278,-1.3241043,-1.5830978,-1.6348965,-1.5830978,-1.4795004,-1.0392115,-0.39172771,0.5147496,0.95503857,1.058636,0.87734052,0.74784376,0.4111522,0.43705155,0.5147496,0.61834701,0.30755479,0.30755479,1.4212269,1.2140321,0.82554182,0.17805803,-0.36582835,1 +-0.65754763,-1.0757758,-1.3545945,-1.4940039,-1.4940039,-1.4382402,-1.6612952,-0.54602011,0.62501875,1.1826563,1.3499476,1.2663019,0.98748316,0.68078251,0.8201919,0.98748316,0.93171941,0.68078251,0.40196373,0.20679059,-0.15567382,-0.18355569,0.17890871,-0.23931945,2 +-0.99642917,-1.3424233,-1.5459492,-1.5663018,-1.5866544,-1.4441862,-1.0574869,-0.039857174,0.57072069,0.9981252,1.2423563,1.1405934,0.79459924,0.50966291,0.40789993,0.50966291,0.57072069,0.77424665,1.1202408,1.0184778,0.61142588,0.24507917,-0.28408832,-0.65043504,1 +-0.77132521,-1.1467596,-1.4066758,-1.4644349,-1.4644349,-1.3777962,-1.4066758,-0.82908435,0.38385762,1.2502448,1.2502448,1.3368835,1.0480878,0.75929203,0.84593075,0.93256946,0.99032859,0.70153289,0.44161676,0.26833934,-0.19373379,-0.19373379,0.26833934,-0.22261336,2 +-1.1362322,-1.3898119,-1.5458609,-1.6043793,-1.5653671,-1.4288242,-1.0582076,-0.063394926,0.67783808,0.95092392,1.0874668,0.93141779,0.814381,0.52178902,0.50228289,0.52178902,0.59981355,0.67783808,1.106973,1.1264791,0.67783808,0.34623384,-0.10240719,-0.64857888,1 +0.14222256,-0.058562231,-0.46013181,-0.92862963,-0.92862963,-0.92862963,-2.3341232,-1.6648405,-1.263271,-0.32627528,0.61072038,0.7445769,1.4138596,0.4099356,0.27607908,0.00836603,0.20915082,-0.12549049,0.27607908,0.27607908,0.4099356,0.94536169,2.0831422,1.2130748,2 +-0.76270124,-1.1310647,-1.4144212,-1.4994282,-1.4994282,-1.3860856,-1.4427569,-0.36600215,0.59740996,1.2774656,1.5041508,1.4474795,1.1074517,0.73908821,0.68241691,0.79575951,0.73908821,0.512403,0.48406735,0.22904651,-0.054309996,-0.082645645,-0.054309996,-0.42267345,2 +-0.75835079,-1.2045958,-1.3958436,-1.5552168,-1.5870915,-1.4277183,-1.4277183,-0.79022543,0.38913623,1.0903783,1.2816262,1.2178769,0.96287974,0.77163191,0.83538118,0.89913046,0.89913046,0.70788263,0.51663479,0.35726159,0.038515197,-0.18460727,0.38913623,-0.025234082,2 +-0.75093269,-1.0846806,-1.4740531,-1.5018654,-1.5853024,-1.4462407,-1.5296777,-0.75093269,0.52843412,1.1681175,1.2515545,1.2515545,0.97343127,0.69530805,0.77874502,0.80655734,0.91780663,0.69530805,0.52843412,0.36156019,0.083436971,5.0798611E-9,0.27812322,-0.19468625,2 +-0.53448564,-1.2145059,-1.430876,-1.5545161,-1.6163361,-1.461786,-1.0599559,-0.16356548,0.60918484,1.2582951,1.3510251,1.1964751,0.79464491,0.20735467,-0.10174546,-0.039925429,0.021894596,1.011015,1.1346551,1.2892051,0.70191488,0.36190473,-0.16356548,-0.59630567,1 +0.09852253,-0.19704506,-0.78818025,-0.88670278,-1.1822704,-1.0837478,-0.73891898,-0.59113519,-0.34482886,-1.0344866,-0.64039645,-0.049261268,0.19704506,-1.1805555E-9,-0.64039645,-0.68965772,-0.54187392,0.09852253,1.7734056,1.9704506,1.9704506,1.7241443,1.0344866,0.54187392,1 +-0.84458128,-1.3089871,-1.609485,-1.691439,-1.636803,-1.4455771,-0.95385324,-0.29822141,0.60327233,1.4774481,1.3408581,1.2315861,0.6852263,0.41204638,0.6852263,0.63059032,0.82181626,0.38472839,0.22082044,0.19350244,0.46668237,0.79449827,0.24813843,-0.40749339,2 +-1.0471647,-1.3838418,-1.5620826,-1.6214962,-1.6214962,-1.4234509,-1.0471647,-0.1559607,0.67582971,0.99270227,1.2105521,1.0719204,0.79465692,0.43817531,0.41837078,0.51739344,0.51739344,0.37876171,1.2105521,1.0323113,0.73524332,0.37876171,-0.076742565,-0.43322418,1 +-1.10434,-1.4081126,-1.5853133,-1.6612564,-1.635942,-1.5093701,-1.0537112,-0.16770779,0.71829564,1.0473826,0.87018194,0.97143947,0.87018194,0.59172372,0.6170381,0.74361002,0.74361002,0.51578057,0.33857988,0.49046618,1.1486402,0.66766687,0.13606481,-0.34490848,2 +0.1586937,-0.46312653,-1.0072192,-1.3181293,-1.4735844,-1.3181293,-1.0849467,-1.4735844,-0.46312653,1.091424,1.7909718,1.4023342,0.39187629,0.31414876,-0.15221641,-0.22994394,0.0032386407,-0.22994394,-0.074488888,0.080966169,0.31414876,2.0241544,1.091424,0.62505887,2 +-0.070338753,-0.36824405,-0.91440376,-1.3116108,-1.659167,-1.4109126,-0.96405464,-0.56684758,-0.2192914,-0.26894228,0.22756655,1.1709333,1.2205842,-0.02068787,-0.91440376,-0.81510199,-0.61649846,1.0219807,1.2702351,1.4688386,1.5681404,1.2205842,0.77372626,0.17791566,1 +0.09385423,-0.85456735,-1.0916728,-1.5066072,-1.5658836,-1.5066072,-1.0916728,-1.0323964,0.44951232,1.4572102,1.8128683,1.753592,1.3979339,0.44951232,-0.083974817,0.09385423,-0.024698468,-0.20252752,0.09385423,-0.20252752,0.09385423,0.74589407,0.50878867,0.21240693,2 +-0.48777414,-1.1205622,-1.4369562,-1.5635138,-1.5318744,-1.500235,-1.6900715,-0.36121652,0.36648975,0.8094414,1.2840324,1.4105901,1.094196,0.8727202,0.8410808,0.96763841,0.8094414,0.61960498,0.33485035,0.20829274,-0.10810129,0.018456314,0.36648975,-0.2030195,2 +-0.92914205,-1.3199027,-1.5283084,-1.6064605,-1.6325113,-1.476207,-1.0593956,-0.40812781,0.68600207,1.1549149,1.1549149,0.9725599,0.71205278,0.45154567,0.50364709,0.5296978,0.63390065,0.21708926,0.21708926,1.3893713,0.9725599,0.65995136,0.13893713,-0.43417853,1 +0.18920959,-0.51717286,-0.92081996,-1.1226435,-1.3244671,-1.1226435,-0.61808463,-1.829026,-0.81990819,0.5928567,0.79468025,0.79468025,0.9965038,0.29012137,-0.41626108,-0.3153493,-0.012613966,-0.21443753,0.088297811,0.18920959,0.29012137,2.5101804,1.803798,0.69376847,2 +-0.87998623,-1.3452911,-1.5262429,-1.629644,-1.629644,-1.5262429,-1.1901894,-0.23372951,0.49007801,1.0846342,1.2914363,1.1104844,0.77443096,0.51592827,0.51592827,0.56762881,0.59347908,0.56762881,0.33497639,1.1880353,0.87783203,0.38667693,-0.052777635,-0.28543005,1 +-0.85478823,-1.1668022,-1.4008127,-1.5568196,-1.5828208,-1.5048173,-1.5308185,-0.3867673,0.49727224,1.1473013,1.2773071,1.3033083,1.0432967,0.60127689,0.57527573,0.83528736,0.75728387,0.73128271,0.18525829,0.34126526,0.029251313,0.75728387,0.1072548,-0.20475916,2 +-1.030172,-1.3640165,-1.5211197,-1.5603956,-1.6193093,-1.4032923,-0.99089616,-0.20537979,0.77651567,1.0907222,1.0710843,0.97289476,0.75687776,0.44267122,0.44267122,0.56049867,0.54086077,0.63905031,1.2674634,1.129998,0.6194124,0.32484376,-0.34284516,-0.59813798,1 +-0.70702693,-1.0990419,-1.4630557,-1.5470589,-1.5470589,-1.4070536,-1.6030611,-0.42701626,0.74902853,1.2250467,1.2810488,1.1690445,1.0290392,0.74902853,0.80503066,0.91703493,0.88903386,0.6090232,0.32901253,0.32901253,-0.0630024,-0.2310088,0.105004,-0.091003466,2 +-0.45872933,-0.97079927,-1.3365635,-1.556022,-1.556022,-1.3731399,-1.0805285,0.16306989,0.7848691,1.5163976,1.4798212,1.1506333,0.74829267,0.12649347,-0.27584721,-0.27584721,-0.45872933,-0.4221529,-0.05638866,1.4066683,1.296939,0.89459837,0.34595201,-0.092965085,1 +-0.055424489,-0.65171553,-1.202138,-1.3856122,-1.3397437,-1.3397437,-0.97279531,-0.55997845,-0.42237282,0.35739239,0.67847217,0.81607779,0.31152385,-0.0095559481,-0.37650428,-0.46824136,-0.65171553,-0.46824136,1.595843,1.9627914,1.4582374,1.5499745,0.90781487,0.2656553,1 +-0.98366717,-1.2358481,-1.526826,-1.6044202,-1.5850216,-1.4104348,-1.0612613,-0.1883274,0.9367874,1.03378,1.0919756,0.8785918,0.66520796,0.35483146,0.23844028,0.49062118,0.52941824,1.2471639,1.2471639,1.03378,0.47122265,0.21904174,-0.22712447,-0.61509508,1 +-1.1093835,-1.3704149,-1.5109703,-1.5712083,-1.551129,-1.4507323,-1.1495422,-0.22589255,0.35640827,1.0792645,1.0190265,0.85839173,0.67767769,0.41664629,0.43672563,0.53712232,0.71783637,0.93870909,1.1997405,1.1194232,0.71783637,0.41664629,-0.0050198273,-0.54716197,1 +-0.91427609,-1.1792836,-1.3912897,-1.5237935,-1.6297965,-1.5237935,-1.2322852,-0.56976626,0.54326551,1.2057844,1.1262821,1.1262821,0.86127458,0.96727761,0.9142761,0.86127458,0.56976627,0.35776022,0.22525644,0.51676475,0.70227005,0.70227005,-0.092752642,-0.62276777,2 +1.0743441,0.49274425,0.10501105,0.0080777627,-0.18578883,-0.28272213,0.0080777627,-1.6397883,-1.0581885,-0.67045532,-0.18578883,-0.088855535,-0.28272213,-0.37965542,-0.67045532,-0.86432192,-0.67045532,-0.57352202,-0.47658872,-0.088855535,-0.088855535,2.4314103,2.5283436,1.5590106,2 +-0.9710612,-1.3396391,-1.5664563,-1.6515128,-1.7082171,-1.5664563,-1.0277655,-0.23390527,0.44654638,1.126998,1.126998,1.1837023,0.98523726,0.58830714,0.50325068,0.70171574,0.70171574,0.41819423,0.36148993,0.44654638,0.95688511,0.64501144,0.10632057,-0.23390527,1 +-1.0093415,-1.3310111,-1.5042178,-1.6526807,-1.5289616,-1.4299864,-1.0588291,-0.3660023,0.64849419,1.1681143,1.1681143,0.99490763,0.82170092,0.42579984,0.47528747,0.45054365,0.54951892,0.22784931,0.27733694,1.4402963,1.0196514,0.62375038,0.05464259,-0.46497757,1 +-1.0517361,-1.3405424,-1.5523336,-1.5908411,-1.6293486,-1.4560649,-1.0324824,-0.22382485,0.46931016,0.95065391,0.87363891,0.79662392,0.66184767,0.46931016,0.45005641,0.58483267,0.68110142,1.2009527,1.3164752,1.1239377,0.58483267,0.25751891,-0.069794846,-0.4741236,1 +-0.79559579,-1.0977207,-1.3092082,-1.3998457,-1.4904832,-1.3998457,-1.3696332,-0.82580828,0.14099163,1.0775791,1.2588541,1.2890666,1.0171541,0.71502909,0.89630407,1.1984291,1.1380041,0.92651657,0.44311661,0.14099163,-0.22155833,-0.28198333,0.11077914,-0.16113334,2 +-0.84235122,-1.0613017,-1.3532358,-1.5721863,-1.6451698,-1.5721863,-0.91533473,-1.1342852,-0.18549973,0.98223628,1.2011868,0.98223628,1.0552198,0.76328578,0.61731878,0.61731878,0.76328578,0.61731878,0.32538478,0.17941777,-0.33146673,1.2741703,0.83626929,0.39836828,2 +-0.84185725,-1.3353204,-1.5546373,-1.6917104,-1.7465397,-1.3079058,-1.006345,-0.51288183,0.63853217,1.3238976,1.1868245,1.1045807,0.80301989,0.41921521,0.52887369,0.50145907,0.50145907,0.30955674,0.22731288,0.88526374,1.1045807,0.72077603,0.090239791,-0.34839411,1 +-0.97617124,-1.0813479,-1.2654072,-1.3705839,-1.396878,-1.2917013,-1.2654072,-0.71322949,0.39112585,1.1273627,1.4165987,1.2325394,1.0484802,0.75924431,1.1799511,0.91700936,0.91700936,0.78553848,0.83812683,0.18077245,-0.37140522,-0.39769939,-0.10846347,-0.55546444,2 +-1.0738356,-1.3535865,-1.5284308,-1.5808841,-1.615853,-1.4584931,-1.0038979,-0.12967621,0.81448316,0.91938976,1.0068119,0.8844209,0.8844209,0.58718554,0.5697011,0.76202987,0.6746077,1.0242964,1.0068119,0.8844209,0.44731007,0.16755915,-0.16464508,-0.72414693,1 +-0.88051755,-1.2612819,-1.4788615,-1.6420462,-1.6692437,-1.3972692,-1.0708997,-0.064593959,0.72413219,1.3768711,1.4584634,1.2680813,1.0233042,0.75132965,0.66973729,0.75132965,0.72413219,0.42496021,0.28897294,0.071393308,0.016998401,0.28897294,0.071393308,-0.4453583,2 +-0.67757153,-1.2151489,-1.3495433,-1.5287358,-1.6631301,-1.3943414,-0.99115835,-0.90156212,-0.050397889,1.0695551,1.5623344,1.42794,1.2487475,0.80076635,0.71117012,0.62157388,0.80076635,0.26318894,0.30798706,0.12879459,0.17359271,0.89036259,-0.050397889,-0.18479224,2 +-0.80157412,-1.1825203,-1.4818351,-1.5362559,-1.5906768,-1.2641516,-1.3457829,-0.39341756,1.1031565,1.3480504,1.3752608,1.2936295,0.91268343,0.66778949,0.64057905,0.72221037,0.77663124,0.34126424,0.17800162,-0.36620712,0.014738995,0.58615818,0.36847468,-0.36620712,2 +0.94223181,0.011085078,-0.3879778,-0.92006165,-0.92006165,-0.65401973,-0.25495684,-1.8512084,-0.92006165,0.011085078,0.67618989,0.011085078,0.14410604,0.011085078,-0.52099877,-0.52099877,-0.52099877,-0.3879778,-0.3879778,-0.25495684,0.54316893,2.8045253,1.8733785,1.4743157,2 +-0.27346215,-0.86120171,-1.2530281,-1.399963,-1.6448545,-1.6938328,-1.0571149,-0.077548963,0.41223401,1.4897565,1.4897565,1.1958868,0.95099528,-0.27346215,-0.077548963,-0.12652726,-0.12652726,-0.32244044,-0.22448385,0.21632082,1.5877131,1.2938433,0.70610379,0.069385928,2 +-0.85276421,-1.2857615,-1.4589605,-1.6610259,-1.54556,-1.372361,-1.314628,-0.21770144,0.79262569,1.3122225,1.3699555,1.283356,0.96582462,0.67715973,0.7637592,0.73489271,0.64829324,0.35962835,0.070963448,0.2152959,0.013230468,0.67715973,0.24416239,-0.41976687,2 +-0.041465856,-0.63857386,-1.1361638,-1.3351998,-1.5342358,-1.3351998,-1.7830308,-1.0864048,0.45612415,1.7000992,1.7996172,1.5010632,1.2025092,0.45612415,0.0082931442,0.15757015,0.0082931442,0.0082931442,0.058052145,0.25708815,0.058052145,0.20732915,0.75467816,0.25708815,2 +-0.73112666,-1.3102368,-1.4550144,-1.5418809,-1.5129254,-1.4550144,-1.2233703,-0.93381523,0.10858316,1.122026,1.2088926,1.179937,1.0930705,0.65873786,0.77455991,0.91933746,0.97724848,0.54291582,0.31127174,0.16649418,0.68769337,0.57187133,0.13753867,-0.29679398,2 +-0.4668821,-1.0055923,-1.3647324,-1.4724744,-1.6520444,-1.4724744,-1.0415063,-0.14365604,0.32322608,1.3647324,1.5083884,1.1851623,0.68236616,0.071828022,-0.21548405,-0.10774203,-0.17957005,-0.071828013,1.1492483,1.5083884,1.1133343,0.68236616,0.071828022,-0.4668821,1 +-1.0120017,-1.3305334,-1.5428878,-1.6225207,-1.7817866,-1.4632549,-0.79964721,-0.37493831,0.76646684,1.2442644,1.4300745,1.1380871,0.92573268,0.47447948,0.55411239,0.76646684,0.66028962,0.47447948,0.26212502,0.1559478,0.049770581,0.84609976,0.36830225,-0.18912817,2 +-0.7631223,-1.2040919,-1.4098776,-1.5568675,-1.4686736,-1.4686736,-1.5274695,-0.49854057,0.67737822,1.2359397,1.2359397,1.4417254,0.58918431,0.58918431,0.76557213,1.0007559,0.88316401,0.67737822,0.55978634,0.32460258,0.0012249152,-0.057571024,0.23640867,-0.26335681,2 +-0.87403563,-1.2174068,-1.4671313,-1.4671313,-1.4671313,-1.4359157,-1.1237601,-0.59309561,0.53066449,1.2174068,1.2486224,1.2174068,0.96768231,0.7491734,0.81160452,0.9052512,1.0925446,0.93646675,0.49944893,0.28094003,-0.031215558,-0.28094003,0.093646675,-0.59309561,2 +-0.84553671,-1.1782069,-1.3294206,-1.4806343,-1.5108771,-1.3294206,-1.2084496,-0.48262378,0.3339303,1.2412126,1.3924263,1.3319408,1.3319408,0.84805694,0.84805694,0.96902792,0.8178142,0.75732871,0.3339303,0.031502863,-0.27092458,-0.33141006,0.09198835,-0.36165281,2 +-1.014919,-1.4683265,-1.5438944,-1.6194623,-1.594273,-1.3675692,-1.1912441,0.017842429,0.6223857,1.0002252,1.226929,1.2017397,1.0254145,0.49643918,0.44606058,0.59719639,0.647575,0.47124988,0.47124988,0.84908943,0.82390012,0.34530336,0.16897824,-0.61189015,1 +0.96975094,0.24449812,-0.15109433,-0.61261886,-0.74448301,-0.74448301,-1.7334642,-1.6675321,-0.94227924,0.24449812,0.70602264,0.77195472,0.83788679,0.24449812,-0.21702641,-0.41482263,-0.61261886,-0.61261886,-0.61261886,-0.21702641,0.24449812,0.50822642,2.3543245,2.1565283,2 +-1.0988751,-1.3406277,-1.5823802,-1.6043577,-1.6043577,-1.4944702,-0.94503262,0.15384252,0.79119009,1.2307402,1.2527177,0.94503261,0.8571226,0.48350505,0.54943756,0.54943756,0.57141506,0.48350505,0.54943756,1.0329426,0.70328008,0.37361755,-0.21977503,-0.63734758,1 +-0.90782832,-1.2404677,-1.4345073,-1.5176672,-1.5176672,-1.3790674,-1.3236276,-0.71378868,0.53360901,1.2543277,1.3097676,1.3097676,1.0048481,0.69992871,0.7553686,0.92168829,0.92168829,0.58904891,0.47816912,0.28412947,-0.076229863,-0.076229863,0.25640953,-0.13166976,2 +-0.4957083,-1.0300047,-1.4574418,-1.5286813,-1.5999208,-1.4930615,-1.0656244,0.038588065,0.53726468,1.2140401,1.4633784,1.1428006,0.64412395,0.14544735,-0.24636999,-0.13951072,-0.17513048,-0.068271209,0.60850419,1.677097,1.2852796,0.75098323,0.14544735,-0.35322927,1 +-1.024161,-1.3848137,-1.5512687,-1.6067538,-1.6622388,-1.5512687,-1.1351311,-0.05317314,0.69587465,1.0842698,1.1952398,1.0565273,0.91781474,0.52941958,0.52941958,0.75135967,0.69587465,0.41844954,0.25199447,0.50167707,0.86232971,0.69587465,0.19650945,-0.41382579,2 +-0.52578483,-1.0824981,-1.3422977,-1.6763257,-1.6020972,-1.6020972,-1.0824981,-0.34021372,0.21649963,0.36495651,0.84744142,0.84744142,0.6618703,0.25361385,-0.19175683,-0.043299932,0.030928513,0.58764186,1.5897258,1.7752969,1.1814694,0.92166986,0.29072807,-0.080414155,1 +-0.26700407,-0.73381912,-1.073321,-1.2006342,-1.2855097,-1.2006342,-0.90357005,-0.52163047,-0.86113232,-0.09725313,0.45443739,0.32712419,0.36956192,-0.054815397,-0.3094418,-0.47919273,-0.47919273,-0.13969087,1.5153807,2.1519467,1.8124448,1.5153807,1.0910034,0.36956192,1 +-0.98300119,-1.3098429,-1.5772588,-1.6961103,-1.6663974,-1.3692686,-1.1018527,-0.21046624,0.38379139,0.97804902,1.245465,1.1860392,0.85919749,0.56206868,0.74034597,0.74034597,0.85919749,0.44321715,0.2055141,0.23522698,1.0969005,0.71063309,-0.032188961,-0.29960489,2 +-0.90650699,-1.2468016,-1.3829195,-1.4509784,-1.5417236,-1.3829195,-1.4509784,-0.54352608,0.54541663,1.0672017,1.3621237,1.2486921,1.089888,0.794966,0.70422078,0.794966,1.0445154,0.84033861,0.38661248,0.25049464,0.046317881,-0.021741039,0.069004186,-0.31666302,2 +-1.0853308,-1.403445,-1.497008,-1.590571,-1.5718584,-1.4408702,-1.0666182,-0.22455117,0.50524018,1.029193,1.1601812,1.0104804,0.89820474,0.54266537,0.52395278,0.67365356,0.61751576,0.63622836,1.0853308,1.0104804,0.61751576,0.28068899,-0.093562981,-0.61751574,1 +-0.93176376,-1.2460937,-1.4706151,-1.6053279,-1.6502322,-1.4706151,-1.0215723,-1.1562852,0.011226064,0.72969451,0.95421589,1.0440245,0.99912017,0.63988596,0.72969451,0.77459879,0.77459879,0.99912017,0.5500774,0.28065174,0.32555601,1.0440245,0.5500774,0.1459389,2 +-0.92450564,-1.3374362,-1.447551,-1.6402519,-1.6402519,-1.447551,-1.1172066,-0.29134545,0.75474529,1.4154342,1.3879055,1.2227333,0.91991751,0.58957306,0.50698695,0.75474529,0.61710177,0.34181473,0.25922862,0.17664251,0.25922862,0.78227399,0.20417121,-0.34640286,2 +-1.0252622,-1.296406,-1.4997638,-1.6127403,-1.590145,-1.4545732,-1.0704529,-0.076259179,0.60160016,1.1890783,1.1438876,0.98572045,0.75976734,0.33045643,0.35305174,0.35305174,0.35305174,0.46602829,1.2568642,1.2568642,0.78236265,0.46602829,-0.14404511,-0.5281654,1 +-0.86321448,-1.1502279,-1.3328727,-1.385057,-1.4372412,-1.4111491,-1.5155176,-0.49792472,0.59794454,1.2763398,1.3807083,1.0676028,0.80668154,0.67622091,0.67622091,0.96323429,1.4068004,0.78058941,0.46748391,0.23265478,-0.2630956,-0.2630956,0.10219416,-0.31527985,2 +-1.1696835,-1.3484886,-1.4602418,-1.5272938,-1.5496444,-1.4602418,-1.013229,-0.11920343,0.48426388,1.0877312,1.1100818,0.97597799,0.75247156,0.41721195,0.30545875,0.48426388,0.48426388,0.84187412,1.4006401,1.1771337,0.59601708,0.30545875,-0.208606,-0.56621624,1 +0.96291757,-0.0080917443,-0.52596338,-0.91436711,-0.97910106,-0.84963315,-0.84963315,-1.5617067,-1.1733029,-0.52596338,0.25084407,0.44504594,0.38031198,-0.20229361,-0.20229361,-0.13755965,-0.33176152,-0.46122943,-0.33176152,-0.0080917443,1.0923855,2.5165325,1.9986608,1.4160553,2 +-1.0454234,-1.2125054,-1.5745166,-1.6859047,-1.7415987,-1.4631286,-0.87834129,-0.15431888,0.82032665,0.90386771,0.98740875,0.90386771,0.82032665,0.29123337,0.12415128,0.29123337,0.5418565,0.70893859,1.3494199,1.2658789,0.70893859,0.37477441,0.040610227,-0.377095,1 +-0.67412478,-1.208735,-1.4619715,-1.5463836,-1.6307958,-1.4901089,-1.0399107,-0.19578928,1.0141181,1.2673546,1.2673546,1.0703929,0.53578265,0.25440883,-0.19578928,-0.25206405,-0.055102367,0.98598076,1.0422555,1.2110798,0.87343123,0.50764527,0.11372192,-0.39275096,1 +-1.0326199,-1.3239547,-1.5376002,-1.6347118,-1.5570225,-1.401644,-1.0714646,-0.25572719,0.67654409,1.0844128,1.0455681,1.0067235,0.85134496,0.50174323,0.40463164,0.54058787,0.77365569,0.56001018,1.1426797,1.0649905,0.63769946,0.32694236,-0.10034865,-0.70244052,1 +-1.0106619,-1.3159419,-1.5379637,-1.7322328,-1.5934692,-1.4547055,-0.92740365,0.099447279,0.79326546,1.3760728,1.4870837,1.1818037,1.0707928,0.5157382,0.65450184,0.59899639,0.54349093,0.34922183,0.071694551,0.071694551,0.26596365,0.62674911,0.18270546,-0.31684364,2 +-0.70617457,-1.0886858,-1.3240773,-1.500621,-1.500621,-1.4123491,-1.471197,-1.0298379,0.29423941,1.0886858,1.1769576,1.2946534,1.1181097,0.76502245,0.88271822,0.9415661,1.0298379,0.73559851,0.52963093,0.23539152,-0.088271822,-0.11769576,0.20596758,-0.058847881,2 +0.12399703,-0.43668521,-0.73859104,-1.0404968,-1.0404968,-1.0836262,-0.69546163,-1.0404968,-0.69546163,0.16712644,0.64154986,0.94345569,0.16712644,-0.1779088,-0.52294402,-0.65233223,-0.65233223,-0.73859104,-0.39355581,1.7197849,2.2373378,1.8060437,1.3747497,0.72780868,1 +1.3042447,0.76188548,-0.090393198,-0.24535296,-0.4777926,-0.55527249,-0.55527249,-1.6399908,-1.0201518,-0.32283284,-0.24535296,0.37448609,0.29700621,-0.4777926,-0.55527249,-0.78771213,-0.63275237,-0.63275237,-0.78771213,0.064566563,0.29700621,1.071805,2.6214027,2.2340033,2 +-0.27108698,-0.7828017,-1.2579654,-1.3676186,-1.5138228,-1.5138228,-1.1848633,-0.67314855,-1.0386591,-0.12488276,0.38683198,0.6792404,0.93509777,0.35028092,0.16752566,-0.051780655,-0.051780655,0.24062777,1.3371594,1.6661188,1.6295678,1.3006083,0.75234251,0.38683198,1 +1.1182896,0.36226283,-0.015750558,-0.46936663,-0.46936663,-0.46936663,-1.9058175,-1.6790095,-0.77177734,-0.015750558,0.43786551,0.66467355,0.58907087,0.05985212,-0.46936663,-0.46936663,-0.39376395,-0.54496931,-0.62057198,-0.54496931,0.28666015,0.74027622,2.6303432,1.9499191,2 +-1.1572999,-1.3376584,-1.4922513,-1.5953133,-1.5953133,-1.4922513,-1.105769,-0.35856974,0.49169144,1.0842977,1.0585322,0.98123576,0.72358085,0.46592595,0.54322242,0.64628438,0.62051889,0.41439497,0.36286399,1.4707801,0.85240831,0.5947534,0.10520909,-0.28127327,1 +-1.0674414,-1.3016479,-1.4998227,-1.5899022,-1.5538704,-1.4637909,-1.1034732,-0.31077407,0.77017923,0.968354,1.0584334,0.98636989,0.87827456,0.53597268,0.57200446,0.69811568,0.84224278,0.98636989,1.0404176,0.84224278,0.33779791,0.1936708,-0.23871052,-0.5810124,1 +-0.96468249,-1.3032438,-1.5376323,-1.6678482,-1.6678482,-1.5376323,-1.1730279,0.024958044,0.59790782,0.98855541,1.0406418,0.88438272,0.88438272,0.41560563,0.67603734,0.46769197,0.54582149,0.28538976,0.41560563,1.3271167,0.88438272,0.75416686,0.10308756,-0.44381904,1 +-1.1109045,-1.3682569,-1.4711978,-1.6256092,-1.6770797,-1.5226683,-1.1366397,-0.15870064,0.40747461,0.92217939,0.84497367,0.81923843,0.51041557,0.38173937,0.43320985,0.61335652,0.74203271,0.51041557,0.30453366,1.3854137,1.1795318,0.89644415,0.40747461,-0.28737683,1 +-0.8575738,-1.2819402,-1.5471693,-1.5471693,-1.5736922,-1.6797838,-1.0432341,-0.40668447,0.70727737,1.343827,1.3968728,1.2377354,0.89293769,0.65423157,0.46857126,0.62770867,0.60118577,0.38900256,0.28291095,0.15029644,-0.0088409588,0.91946059,0.41552546,-0.14145546,2 +-0.71317264,-0.97707793,-1.3163847,-1.429487,-1.4671877,-1.3917862,-0.97707793,-0.86397566,0.19164551,1.2849674,1.4734712,1.4734712,1.2095659,0.87025912,0.83255836,0.98336139,0.98336139,0.68175533,0.26704702,0.0031417277,-0.48696811,-0.48696811,0.116244,-0.26076356,2 +-1.0206877,-1.2981561,-1.4765287,-1.5756246,-1.5756246,-1.4567096,-1.2386986,-0.26755892,0.38647396,0.74321917,0.96123012,0.96123012,0.76303835,0.56484657,0.50538902,0.68376163,0.92159177,1.278337,1.0999644,0.9810493,0.52520821,0.20810136,-0.22792056,-0.44593152,1 +-1.0311189,-1.3056147,-1.5589955,-1.5589955,-1.6434557,-1.4534202,-1.052234,-0.038710948,0.57362587,1.0803874,1.1015024,1.0381573,0.67920118,0.36247525,0.34136018,0.4469355,0.48916562,0.4469355,1.3126531,1.2070778,0.76366142,0.46805056,-0.10205614,-0.56658751,1 +-1.111803,-1.3635319,-1.5145693,-1.5816971,-1.5649151,-1.4810055,-1.0111114,-0.35661605,0.71742758,0.90202882,1.0027204,0.93559269,0.86846496,0.53282633,0.56639019,0.76777337,0.76777337,1.0530662,1.0362843,0.86846496,0.48248053,0.21396963,-0.15523287,-0.57478116,1 +-0.96316155,-1.3153681,-1.4636656,-1.4636656,-1.5192772,-1.5192772,-1.4822028,-0.14752516,0.46420214,0.85348314,0.85348314,0.9276319,0.87202033,0.63103685,0.61249966,0.64957404,0.59396247,1.1871526,1.0944666,1.038855,0.51981371,0.29736743,-0.16606235,-0.55534336,1 +-0.78223724,-1.1810714,-1.4089766,-1.5229293,-1.5514174,-1.4374648,-1.4944411,-0.69677278,0.38577709,0.98402834,1.2689099,1.3543743,0.92705203,0.55670602,0.7561231,0.95554019,1.0410046,0.72763494,0.61368233,0.47124155,0.1293837,0.043919243,0.072407397,-0.21247415,2 +-1.011718,-1.3136608,-1.5904417,-1.6407655,-1.6407655,-1.4897941,-1.011718,0.070243623,0.62380542,1.227691,1.1773672,1.1270434,0.90058634,0.39734833,0.47283403,0.47283403,0.42251023,0.29670073,0.29670073,1.3283386,0.82510063,0.47283403,-0.13105158,-0.28202298,1 +-0.99783559,-1.3280196,-1.4834004,-1.5805133,-1.5999359,-1.4834004,-1.1726389,-0.10439641,0.45885871,1.0026912,1.0415364,1.0026912,0.80846534,0.42001353,0.45885871,0.55597167,0.61423944,1.1969171,1.1386494,0.98326866,0.53654908,0.20636504,-0.10439641,-0.5705386,1 +-0.80532083,-1.2261416,-1.5267279,-1.6169038,-1.6469625,-1.4064934,-1.0758485,-0.62496905,0.69761072,1.3589006,1.4490765,1.328842,0.90802113,0.36696577,0.66755209,0.75772798,0.5773762,0.4872003,0.21667262,0.27678988,0.42708303,0.66755209,0.12649673,-0.3845,2 +-0.6519161,-1.2157354,-1.4976451,-1.6385999,-1.4976451,-1.4271677,-0.93382576,-0.93382576,0.052858064,0.96906448,1.2509741,1.2509741,1.2509741,0.82810965,0.54619999,0.54619999,0.47572256,0.40524514,-0.08809677,0.052858064,-0.29952902,1.391929,0.82810965,0.33476773,2 +0.27846704,-0.14925833,-0.63044937,-1.0581748,-1.2185718,-1.0581748,-0.84431206,-1.4859001,-0.79084639,0.1715357,0.70619242,0.81312376,0.75965809,0.1715357,-0.41658668,-0.41658668,-0.5769837,-0.5769837,-0.25618967,-0.095792656,0.9200551,2.4170939,1.8824372,1.4547118,2 +-0.52194177,-0.86798052,-1.3178309,-1.5254541,-1.560058,-1.3524348,-1.1794154,-0.79877277,-0.10669528,0.13553184,0.65458996,0.79300546,0.58538221,0.20473959,-0.24511078,-0.17590303,-0.10669528,0.44696671,1.4504791,1.6927062,1.6234984,1.2428558,0.82760933,0.10092797,1 +-1.0001648,-1.314902,-1.5876742,-1.6086567,-1.6086567,-1.3988319,-0.97918235,-0.20283064,0.76236338,1.182013,1.2659429,0.99317065,0.74138091,0.34271381,0.36369629,0.40566125,0.46860868,0.48959116,1.140048,1.0980831,0.76236338,0.40566125,-0.11890072,-0.60149773,1 +-0.80401955,-1.1367173,-1.3862406,-1.5803143,-1.6634887,-1.4416902,-1.5803143,-0.58222105,0.47132181,1.025818,1.2753413,1.2476165,0.97036843,0.6653955,0.77629474,0.85946918,0.9149188,0.69312031,0.33269775,0.16634888,0.083174445,0.24952332,0.49904662,-0.055449617,2 +-0.45089472,-1.0605552,-1.4796968,-1.5559043,-1.5559043,-1.3653854,-0.94624385,-0.10796071,0.4254922,1.1875678,1.3780867,0.95894511,0.84463377,0.19686953,-0.22227205,-0.18416827,-0.33658338,-0.14606449,0.31118086,1.7972283,1.4542942,0.95894511,0.19686953,-0.2984796,1 +-1.0152354,-1.2845836,-1.4503363,-1.5539317,-1.5539317,-1.4503363,-1.2224263,-0.20719089,0.51797724,0.97379721,1.1188308,0.93235903,0.82876359,0.51797724,0.55941542,0.64229178,0.55941542,0.66301087,1.160269,1.2638645,0.62157269,0.29006725,-0.1864718,-0.72516812,1 +-1.1304725,-1.3993214,-1.6009581,-1.6009581,-1.5785541,-1.4441296,-0.95123987,-0.27911748,0.54983344,1.1099354,1.1547436,1.0875313,0.90829872,0.54983344,0.52742936,0.61704568,0.50502528,0.34819673,0.30338857,1.1771476,0.88589464,0.63944975,0.056943701,-0.43594604,1 +-0.77428062,-1.1934401,-1.4728797,-1.5660262,-1.5660262,-1.519453,-1.0537202,-0.96057371,0.15718479,1.0420769,1.22837,1.2749433,0.99550366,0.85578385,0.85578385,0.90235712,0.99550366,0.6229175,0.48319768,0.017464978,-0.26197465,0.34347787,0.48319768,0.11061152,2 +-1.0955341,-1.3844662,-1.5702082,-1.6114842,-1.6321222,-1.3638281,-1.0129821,-0.063633841,0.82380037,1.1540084,1.0920944,0.9476284,0.80316236,0.32848825,0.32848825,0.43167828,0.5142303,0.59678231,1.1952844,1.1127324,0.69997234,0.26657424,-0.042995836,-0.51766995,1 +-0.88807831,-1.2536198,-1.5910427,-1.6753984,-1.6472798,-1.5348055,-1.1411455,0.039834649,0.79903616,1.4457634,1.3051705,1.0521033,0.77091759,0.43349469,0.51785042,0.65844329,0.65844329,0.32102039,0.20854609,0.20854609,0.43349469,0.93962903,0.29290182,-0.3538254,2 +-0.79329388,-1.2663138,-1.6506426,-1.6506426,-1.6802063,-1.4436963,-0.91154887,-0.52722016,0.68489348,1.2170409,1.4535509,1.2170409,0.92140345,0.56663849,0.65532973,0.68489348,0.71445722,0.53707474,0.27100102,0.034491046,0.15274603,0.83271221,0.21187352,-0.23158269,2 +-0.85547118,-1.3304886,-1.4888277,-1.6471669,-1.620777,-1.5152176,-1.1457596,-0.35406391,0.70153035,1.2557173,1.3612768,1.3348869,0.99181877,0.54319121,0.62236078,0.70153035,0.62236078,0.41124193,0.27929265,0.20012308,0.22651293,0.7279202,0.20012308,-0.22211462,2 +0.80062941,0.20481218,-0.53995937,-0.61443653,-0.53995937,-0.61443653,-2.1039797,-1.5081624,-1.0612995,-0.46548221,0.72615225,1.0240609,0.80062941,0.27928933,-0.093096442,-0.24205076,-0.31652791,-0.39100506,-0.61443653,-0.093096442,0.5027208,0.57719795,2.4391269,1.8433096,2 +-0.97139428,-1.2254151,-1.3665377,-1.4512113,-1.5076604,-1.3947622,-1.3100887,-0.80204709,0.29870962,1.0325474,1.2018946,1.2018946,1.2018946,0.89142478,0.94787384,0.91964931,1.060772,0.66562853,0.46805681,0.21403603,-0.18110741,-0.12465835,0.29870962,-0.068209278,2 +-0.9986564,-1.3179604,-1.5175253,-1.6173078,-1.5973513,-1.4576558,-1.0784824,-0.040744508,0.75751541,1.1566453,1.0768193,1.1366888,0.97703688,0.55795043,0.53799393,0.45816794,0.43821144,0.33842895,1.0568628,1.0369063,0.61781992,0.29851595,-0.22035299,-0.59952644,1 +-1.0442759,-1.3473764,-1.4042078,-1.555758,-1.6125894,-1.4231515,-1.0442759,-0.30546847,0.37650765,1.0963713,1.0963713,1.0205962,0.9258773,0.5280579,0.47122655,0.5280579,0.66066436,1.1342589,1.0963713,0.96376487,0.56594546,0.16812606,-0.26758091,-0.62751275,1 +-0.076842574,-0.50243225,-1.0698852,-1.3063239,-1.4481871,-1.2117484,-1.0225974,-0.4551445,-0.69158321,0.017732909,0.49061033,0.6797613,0.77433678,0.25417162,-0.31328128,-0.31328128,-0.54971999,-0.59700773,-0.26599354,1.8619548,1.8619548,1.5782284,1.4836529,0.82162452,1 +-1.0982213,-1.4571294,-1.6365835,-1.6141517,-1.5468564,-1.4122659,-1.1430849,0.1803887,0.51686502,1.1673859,1.1898177,0.98793188,0.80847784,0.49443327,0.44956976,0.44956976,0.427138,0.33741098,0.49443327,1.1449542,0.89820486,0.65145556,0.1803887,-0.47013222,1 +-0.71035809,-1.0106269,-1.3108956,-1.4443484,-1.5110748,-1.4443484,-0.97726367,0.19044823,1.2247074,1.3581602,1.5583394,1.2580706,0.7242594,0.25717463,-0.24327333,-0.30999972,-0.30999972,-0.41008931,0.023632248,1.5583394,1.0245282,0.6241698,0.12372184,-0.24327333,1 +-0.87267355,-1.2164902,-1.4457013,-1.5603069,-1.5603069,-1.4743527,-1.4170499,-0.55750827,0.30203339,0.98966673,1.2188778,1.2188778,0.96101534,0.84640977,0.58854727,1.0183181,1.0183181,0.84640977,0.50259311,0.18742783,-0.041783272,-0.013131883,0.44529033,0.015519506,2 +-0.57585941,-1.0681973,-1.3847002,-1.4902011,-1.4902011,-1.3847002,-1.0330303,0.02197937,0.5143172,0.69015213,1.4989929,1.18249,0.61981817,0.057146358,-0.29452353,-0.32969051,-0.22418955,-0.22418955,1.3583249,1.6748278,1.252824,0.79565309,0.26814828,-0.43519147,1 +-1.1103525,-1.3463695,-1.5180182,-1.6038425,-1.6467547,-1.4965621,-1.0674403,-0.037548156,0.5632223,1.1854488,1.1639927,0.97088797,0.77778318,0.45594187,0.49885404,0.52031013,0.5632223,0.43448578,0.64904665,1.1854488,0.86360753,0.54176622,-0.037548156,-0.50958209,1 +-0.9131274,-1.2641695,-1.3895417,-1.5901372,-1.5399883,-1.3393928,-1.3895417,-0.78775522,0.41581774,1.0426787,1.1429764,1.0928275,0.99252978,0.71671098,0.8671576,0.99252978,1.0677531,0.74178542,0.5913388,0.44089218,-0.010447686,-0.010447686,0.34059443,-0.21104318,2 +0.81368332,-0.16928982,-0.89013678,-0.89013678,-1.0211999,-1.0867314,-0.89013678,-1.152263,-0.49694753,0.81368332,0.81368332,1.2068726,1.141341,0.027304812,-0.49694753,-0.43141599,-0.69354215,-0.82460523,-0.75907369,-0.23482136,0.35496252,2.583035,1.6000618,0.68262024,2 +-0.46798175,-0.90415892,-1.2312918,-1.3766842,-1.5584247,-1.3766842,-1.2312918,-0.75876653,-0.83146273,-0.24989317,0.47706878,0.91324595,0.94959404,0.36802449,0.004543518,-0.031804579,0.1499359,0.47706878,1.2767269,1.7129041,1.6038598,1.1676826,0.69515736,0.2226321,1 +-1.0857745,-1.3643614,-1.5143697,-1.6000887,-1.6000887,-1.4286507,-1.0000555,0.0071432612,0.80004439,1.18578,1.18578,1.0572015,0.80004439,0.39287894,0.3071599,0.4143087,0.43573846,0.37144918,1.18578,1.0572015,0.75718486,0.32858966,-0.1214353,-0.57146026,1 +-1.1178645,-1.4190694,-1.505128,-1.6342158,-1.6557304,-1.505128,-1.0102914,0.043925717,0.4742184,1.0335989,1.0551135,0.969055,0.8399672,0.49573304,0.4096745,0.60330622,0.5387623,0.58179157,0.81845256,1.2487452,0.79693793,0.45270377,-0.020618186,-0.49394015,1 +-0.32030988,-0.84882117,-1.2812395,-1.4253789,-1.3773325,-1.4253789,-0.94491413,0.40038734,0.68866623,1.7456888,1.8898283,1.6495959,0.88085216,0.16015494,-0.27226339,-0.46444932,-0.32030988,-0.56054228,-0.32030988,-0.12812395,0.35234086,1.265224,0.59257327,0.064061967,2 +-0.92155957,-1.2832933,-1.438322,-1.5158363,-1.5933507,-1.5416745,-1.4641601,-0.68901651,0.65456568,1.0421375,1.1713281,1.14549,0.88710876,0.78375628,0.88710876,0.86127064,0.70624192,0.5512132,0.42202262,0.42202262,0.24115578,0.34450826,0.37034638,-0.043063531,2 +-0.93962884,-1.3513501,-1.5384961,-1.5384961,-1.5572107,-1.4449231,-1.1454895,-0.22847405,0.78211433,0.89440192,1.0066895,0.93183112,0.74468513,0.44525153,0.46396613,0.52010993,0.65111213,1.2874085,1.2499793,0.95054572,0.42653693,0.18324713,-0.20975945,-0.58405145,1 +-0.49341783,-1.0647438,-1.22056,-1.5321923,-1.4802536,-1.2724987,-0.96086633,-0.85698888,0.5972953,1.2724987,1.584131,1.6880084,1.5321923,0.80505018,0.54535657,0.70117274,0.64923402,0.38954041,0.12984681,-0.12984679,-0.649234,0.12984681,0.025969369,-0.38954039,2 +-1.0286754,-1.2847771,-1.4896585,-1.6177094,-1.566489,-1.3872178,-1.1055059,-0.38842099,0.61037584,1.22502,1.1994099,1.0457488,0.86647759,0.37988426,0.43110461,0.45671479,0.61037584,0.37988426,0.25183339,1.3530709,0.99452848,0.58476566,-0.0042683627,-0.51647186,1 +-0.097203259,-0.85895939,-1.2874472,-1.525496,-1.4778863,-1.1922277,-1.0493984,-0.57330084,0.71216264,1.6643578,1.9976261,1.4739188,0.95021143,0.18845529,-0.14481302,-0.24003253,-0.28764229,-0.33525205,-0.28764229,-0.049593501,0.37889433,1.3310895,0.7597724,-0.049593501,2 +-0.13725925,-0.8510074,-1.4000445,-1.4549482,-1.6196593,-1.4549482,-0.96081481,-0.30197037,0.35687408,1.4549482,1.674563,1.5647556,1.0157185,0.30197038,-0.082355551,-0.19216296,-0.082355551,-0.19216296,-0.24706666,-0.027451848,1.5098519,1.0157185,0.46668149,-0.35687407,2 +-0.97599916,-1.3559683,-1.5347773,-1.5794796,-1.6465329,-1.4453728,-1.0877548,-0.081954126,0.63328191,1.0803044,1.1026555,1.0803044,0.72268641,0.34271726,0.38741952,0.40977064,0.47682402,0.36506839,1.19206,1.2814646,0.76738867,0.43212177,-0.059603,-0.50662552,1 +-1.1466745,-1.3062118,-1.4856913,-1.5654599,-1.5455178,-1.3859805,-1.1267323,-0.18945057,0.60823603,0.98713716,1.086848,0.967195,0.68800469,0.38887222,0.30910356,0.42875654,0.66806252,1.1666166,1.2463853,1.1067902,0.54840953,0.30910356,-0.18945057,-0.5683517,1 +-0.70616265,-1.1074791,-1.4779251,-1.6322776,-1.6322776,-1.4470546,-0.79877415,-0.15049368,0.96084426,1.1460673,1.1460673,0.89910326,0.71388027,0.096470303,-0.088752688,0.0038588075,0.12734081,0.89910326,1.4547722,1.3621607,0.92997376,0.1582113,-0.24310517,-0.61355115,1 +-0.6410856,-1.0392459,-1.3520862,-1.4374063,-1.4374063,-1.4374063,-1.6080464,-0.81172575,0.5533955,1.122196,1.2359561,1.2643961,1.093756,0.80935573,0.80935573,1.093756,0.97999589,0.63871558,0.52495547,0.26899524,-0.18604517,-0.27136524,-0.043845044,-0.12916512,2 +-1.0489301,-1.3995988,-1.5103363,-1.5472488,-1.5841613,-1.418055,-1.0858426,-0.12611769,0.79669469,1.0366259,1.0919947,1.1658197,0.88897593,0.42756973,0.42756973,0.51985097,0.64904471,0.75978219,1.1658197,0.85206343,0.48293847,0.26146351,-0.12611769,-0.67980512,1 +-1.1346957,-1.3975205,-1.5794762,-1.6401281,-1.6401281,-1.4783897,-0.87187083,-0.063179037,0.30073226,0.88703382,0.967903,0.86681652,0.68486087,0.36138415,0.42203603,0.58377439,0.74551275,1.0083376,1.2711624,1.0285549,0.72529546,0.50290521,-0.083396331,-0.46752493,1 +0.43000648,0.0075439712,-0.53562211,-0.89773284,-1.0184364,-0.83738105,-0.53562211,-0.052807815,-0.53562211,0.3696547,0.79211719,0.43000648,0.0075439712,-0.17351139,-0.53562211,-0.89773284,-1.0787882,-1.13914,-0.83738105,-0.29421496,1.3352833,2.4216155,1.9388012,1.6370422,1 +-1.0020782,-1.2391526,-1.4762269,-1.5552517,-1.6079349,-1.5025685,-1.212811,-0.080122345,0.7891503,1.3159822,1.3686654,1.3159822,0.99988306,0.57841753,0.55207594,0.52573434,0.60475913,0.13061041,0.13061041,0.26231839,0.89451668,0.47305115,0.13061041,-0.3962215,2 +-1.1992378,-1.4228245,-1.565107,-1.6260852,-1.565107,-1.4431506,-1.0366293,-0.020326067,0.65043408,1.0772814,1.0569554,0.97565111,0.79271653,0.42684736,0.48782556,0.54880375,0.52847769,0.46749949,1.0366293,1.1382596,0.73173834,0.48782556,-0.10163032,-0.42684736,1 +-0.9767843,-1.3215317,-1.6203127,-1.6892622,-1.5973296,-1.5053969,-1.0687169,0.057457889,0.74695267,1.0917001,1.0917001,1.0457338,0.83888531,0.42518844,0.49413792,0.49413792,0.4481716,0.47115476,0.74695267,1.2066159,0.81590215,0.37922212,-0.14939055,-0.42518846,1 +-1.070522,-1.3321567,-1.5414645,-1.5937914,-1.5937914,-1.5937914,-1.0879643,-0.21584865,0.51672855,1.0574403,1.0051133,1.039998,0.90045945,0.44695929,0.56905549,0.67370937,0.77836326,0.77836326,0.98767102,0.90045945,0.53417086,0.34230541,-0.076310136,-0.42515642,1 +-0.34715578,-0.92175845,-1.2808851,-1.3886231,-1.6759244,-1.4963611,-1.1013218,-0.70628244,-0.77810779,0.011970888,0.76613689,0.87387489,0.76613689,0.29927222,-0.13167978,-0.095767112,-0.059854445,1.2689142,1.2689142,1.5203029,1.4125649,1.0534382,0.62248622,0.11970889,1 +-1.0169325,-1.2735042,-1.4980044,-1.4338615,-1.4659329,-1.5300758,-1.2414327,-0.18307458,0.39421168,1.2922125,1.4525698,1.324284,0.87528356,0.55456897,0.65078335,0.74699772,0.74699772,0.42628314,0.16971147,0.041425636,0.8432121,0.61871189,0.10556855,-0.60000354,2 +-0.98043988,-1.5527452,-1.574757,-1.6407922,-1.5967687,-1.398663,-1.0024516,-0.011923036,0.51635887,0.95659381,1.0006173,0.86854683,0.67044111,0.42831189,0.36227665,0.42831189,0.42831189,0.58239412,1.3528052,1.2207347,0.80251159,0.53837062,0.12014745,-0.51819321,1 +-0.17213456,-0.65344285,-0.89409699,-1.2149692,-1.2550782,-1.2149692,-1.0545331,-1.4556233,-0.85398797,-0.25235261,0.50971884,0.79048201,0.83059104,0.30917373,-0.051807485,-0.051807485,-0.25235261,-0.33257066,0.10862861,1.6327715,1.9536437,1.7530986,1.1514632,0.67015494,1 +-0.78609519,-1.2500202,-1.2757938,-1.4304355,-1.4046619,-1.4046619,-1.6108508,-0.65722712,0.399491,1.2500202,1.1726994,1.2500202,0.73454797,0.91496326,0.94073687,1.0438313,1.0953785,0.7860952,0.42526461,0.1933021,-0.1933021,-0.24484932,0.14175487,-0.090207645,2 +-0.67781334,-1.2810588,-1.5022488,-1.6027898,-1.6832225,-1.522357,-1.2006261,-0.25554149,0.72975948,1.1922477,1.1922477,1.1319231,0.93084131,0.44824491,0.52867765,0.56889401,0.5890022,0.5890022,0.93084131,0.97105767,0.4683531,0.2270549,-0.29575786,-0.47673151,1 +-1.0676472,-1.3598454,-1.5396597,-1.5846133,-1.6295668,-1.3373686,-1.090124,0.23600622,0.5506812,1.0226937,1.0002169,0.93278652,0.73049547,0.30343657,0.30343657,0.43829728,0.39334371,0.5506812,1.404799,1.3148919,0.8204026,0.34839014,-0.16857589,-0.57315801,1 +-0.66183059,-0.96470221,-1.3348787,-1.4358359,-1.5367931,-1.3012263,-1.0993118,-0.72913538,0.3813939,1.222704,1.4582708,1.4919232,1.222704,0.81887514,1.0207896,0.91983235,0.91983235,0.54965592,0.3813939,0.17947948,-0.45991617,-0.35895897,-0.19069695,-0.49356857,2 +0.52937307,-0.18254244,-0.40159337,-1.0587462,-1.1135089,-1.1135089,-0.94922068,-1.5516108,-0.78493248,0.20079669,0.80318673,0.80318673,0.63889853,0.14603395,-0.29206791,-0.23730517,-0.51111883,-0.56588155,-0.67540702,-0.18254244,0.74842399,2.3365433,2.0079669,1.4055768,2 +0.48236112,-0.24467592,-0.6361574,-0.8598611,-1.1954167,-1.2513426,-1.0276389,-1.7546759,-0.91578703,-0.07689814,0.65013889,0.70606482,0.76199074,0.090879636,-0.13282406,-0.24467592,-0.30060185,-0.46837962,-0.35652777,0.31458334,0.92976852,2.3279166,1.7686574,1.4331018,2 +-1.0087333,-1.4894641,-1.5471518,-1.566381,-1.5471518,-1.4125472,-1.0471918,-0.23956415,0.39500043,1.0103358,0.99110655,1.0103358,0.8949604,0.5680635,0.54883427,0.58729273,0.68343887,1.0487942,1.0680235,0.97187732,0.49114658,0.29885428,-0.047271857,-0.66260721,1 +-0.92215376,-1.2532377,-1.4060457,-1.5843217,-1.6097897,-1.4060457,-1.0749618,-0.64200579,0.50405412,1.2680941,1.4718381,1.2935621,1.1916901,0.86060609,0.6823301,0.7077981,0.58045811,0.52952212,0.19843814,0.14750215,0.17297014,0.58045811,-0.005305844,-0.28545382,2 +-0.95391869,-1.3820188,-1.456471,-1.4936971,-1.5681493,-1.5495362,-1.1586622,-0.28384898,0.60957731,1.1865818,1.1307426,1.1865818,0.90738607,0.47928598,0.57235122,0.66541645,0.55373817,0.75848169,1.0376774,0.90738607,0.38622074,0.18147721,-0.22800983,-0.4885925,1 +-0.91664261,-1.3745492,-1.533821,-1.4940031,-1.573639,-1.533821,-1.1754594,-0.21982832,0.457077,0.97471049,1.1140734,1.1339823,0.99461947,0.57653089,0.53671292,0.71589375,0.93489253,0.75571171,0.61634885,0.99461947,0.53671292,0.31771414,-0.2397373,-0.59809894,1 +-1.0989856,-1.3555937,-1.5388853,-1.5572144,-1.630531,-1.4289103,-1.1356439,-0.2741736,0.82557567,1.1188421,1.0271964,0.95387975,0.78891736,0.51398004,0.60562581,0.69727158,0.78891736,0.69727158,1.0271964,0.88056313,0.47732173,0.22071357,-0.12754037,-0.4757943,1 +-0.68329038,-1.1096635,-1.4704408,-1.5688346,-1.5688346,-1.4704408,-1.0112697,-0.7816842,0.30064775,1.21899,1.3173838,1.4157776,1.0877982,0.79261682,0.79261682,0.8582127,0.98940445,0.75981887,0.39904157,0.23505188,-0.19132132,-0.25691719,0.13665806,-0.19132132,2 +-0.59339106,-0.88804041,-1.3463838,-1.5100779,-1.5755555,-1.5428167,-1.1172121,-0.20052525,0.51972871,1.1417662,1.4691544,1.3709379,0.8798557,0.25781818,-0.23326407,-0.03683117,-0.1023088,-0.20052525,0.78163925,1.5673708,1.1090274,0.71616162,0.028646463,-0.4951746,1 +-0.72974132,-1.1081257,-1.3243454,-1.3513728,-1.5135375,-1.3513728,-1.5946199,-0.78379623,0.24324711,1.1081257,1.1081257,1.2702904,1.1892081,0.75676877,0.83785115,0.86487861,1.2162355,0.94596098,0.51352167,0.24324711,-0.21621965,-0.16216474,0.054054912,-0.21621965,2 +-0.89736894,-1.3381817,-1.4851193,-1.7580034,-1.6110658,-1.4851193,-1.149262,-0.14168985,0.61398926,1.0967842,1.0548021,0.94984666,0.86588231,0.36209623,0.42506949,0.48804275,0.48804275,0.48804275,1.1177753,1.1597575,0.80290904,0.42506949,-0.057725495,-0.41457397,1 +-0.98620087,-1.3011391,-1.5433993,-1.6160774,-1.6645294,-1.3980432,-1.0831049,-0.017160105,0.78229854,1.2910449,1.339497,1.2183669,0.87920262,0.44313427,0.37045621,0.49158631,0.39468223,0.10397,0.20087408,1.0487848,0.90342863,0.46736029,0.10397,-0.42900242,1 +-0.67489646,-1.1546138,-1.4650192,-1.5214565,-1.6061125,-1.4932378,-1.5496752,-0.56202179,0.62316224,1.3286289,1.2721916,1.2721916,0.99000492,0.59494357,0.62316224,0.82069291,0.79247425,0.56672491,0.25631956,0.34097557,0.058788898,0.36919423,0.34097557,-0.22339778,2 +0.10056887,-0.53699984,-1.2201092,-1.5388935,-1.5388935,-1.4933529,-1.0834873,-0.58254046,-0.44591859,0.28273136,0.51043447,0.41935323,0.69259696,0.1461095,-0.30929673,-0.40037797,-0.30929673,0.1461095,1.3301657,1.9677344,1.6944907,1.4667875,0.69259696,0.0094876247,1 +-0.24111803,-0.76354041,-1.0850311,-1.4467082,-1.4065218,-1.4065218,-1.0448448,-0.96447208,-0.3214907,-0.44204971,0.32149069,0.72335406,0.76354039,0.32149069,-0.04018634,-0.24111803,-0.3214907,-0.04018634,1.4467082,1.9289442,1.6074535,1.4467082,0.84391307,0.36167703,1 +1.7402473,0.66318879,0.30416929,0.30416929,-0.29419654,-0.054850209,0.54351562,-1.1319087,-1.0122355,-0.054850209,-0.29419654,-0.53354287,-0.054850209,-0.4138697,-0.7728892,-0.53354287,-1.371255,-0.89256236,-0.89256236,-0.65321603,-0.29419654,2.0992668,2.21894,1.3812278,2 +-0.72620922,-1.1411859,-1.3783155,-1.5561627,-1.5858039,-1.5265215,-1.0522624,-0.25195013,0.9040564,1.1708271,1.2004683,0.9040564,0.5187209,-0.044461779,-0.13338536,-0.16302655,-0.10374417,0.81513282,1.1708271,1.4375979,1.0819036,0.69656805,0.25195015,-0.48907967,1 +-0.92264037,-1.3429179,-1.5267893,-1.658126,-1.658126,-1.4479872,-1.1327791,-0.42356089,0.54833077,1.3100837,1.3100837,1.2050143,0.9423409,0.54833077,0.60086545,0.60086545,0.81100419,0.54833077,0.18058798,0.36445937,0.4432614,0.65340014,0.25939,-0.21342215,2 +-1.017714,-1.3787812,-1.4212597,-1.5911737,-1.5699345,-1.442499,-1.017714,-0.019469326,0.42655492,0.8938184,0.95753614,0.83010065,0.68142591,0.29911942,0.32035867,0.36283717,0.63894741,1.1062109,1.4672781,1.3186034,0.70266516,0.29911942,-0.21062257,-0.63540755,1 +-0.23853703,-0.69960187,-1.1222447,-1.314355,-1.6601537,-1.4296212,-1.1222447,-0.69960187,-0.89171221,-0.23853703,0.49148233,0.60674854,0.79885888,0.41463818,-0.084848737,-0.16169288,-0.2769591,0.14568369,1.2983458,1.6441445,1.6441445,1.4904562,1.0293913,0.37621611,1 +-1.149072,-1.3923538,-1.5487492,-1.5661265,-1.5661265,-1.4271083,-1.1316947,-0.31496305,0.74505047,1.0057095,1.0230868,1.0057095,0.81455957,0.51914596,0.62340958,0.7276732,0.84931411,0.81455957,1.0230868,0.79718229,0.51914596,0.18897782,-0.19332215,-0.36709486,1 +-0.18421478,-1.0449706,-1.4362232,-1.2405969,-1.4362232,-1.3579727,-1.0058453,-0.77109376,0.36353891,1.4590463,1.4590463,1.3025452,0.79391682,0.16791259,-0.34071584,-0.26246531,-0.26246531,-0.18421478,0.050536797,1.6937979,1.419921,0.87216735,0.16791259,-0.22334005,1 +-1.1015447,-1.2969407,-1.5314158,-1.5900346,-1.6291138,-1.4141783,-1.1015447,-0.10502533,0.59840013,1.0087316,0.95011285,0.83287528,0.77425649,0.36392497,0.38346457,0.42254376,0.55932093,1.2627464,1.282286,1.0673504,0.55932093,0.28576659,-0.10502533,-0.47627765,1 +-0.4223829,-0.69426154,-1.3156984,-1.4710577,-1.5487373,-1.4710577,-1.0438198,-0.81078096,-0.4223829,0.31557343,0.43209285,0.70397148,0.7816511,0.27673362,-0.26702367,-0.18934406,-0.30586348,0.19905401,1.3642482,1.6749667,1.6361269,1.4807676,0.7816511,0.31557343,1 +-0.8226899,-1.3150082,-1.5741231,-1.7036806,-1.7036806,-1.3927427,-0.97815885,-0.12307959,0.6283537,1.4316099,1.4834329,1.1984065,0.88746863,0.73199966,0.6024422,0.6283537,0.57653071,0.36923876,0.36923876,0.13603533,0.2396813,0.57653071,0.18785832,-0.43401751,2 +-0.84354529,-1.273588,-1.5051494,-1.5713099,-1.6374703,-1.4059088,-0.97586612,-0.31426197,0.74430466,0.87662549,1.2074276,1.1412672,0.81046507,0.34734218,0.31426197,0.21502135,0.21502135,0.67814424,1.4720692,1.2074276,0.81046507,0.24810156,-0.18194114,-0.57890363,1 +-0.36282649,-0.92144238,-1.3814789,-1.5457777,-1.644357,-1.5457777,-1.0857411,-0.62570456,0.42580768,1.2144418,1.4773199,1.3130211,0.8858443,0.39294793,-0.067088676,-0.099948433,-0.0013691601,0.064350355,0.22864914,1.5101797,1.2144418,0.72154552,0.22864914,-0.39568626,1 +-0.75034038,-1.1184801,-1.4252632,-1.3639066,-1.4866199,-1.3639066,-1.5172982,-0.68898375,0.53814872,1.2744282,1.3664631,1.4584981,1.151715,0.84493184,0.69154028,0.66086197,0.84493184,0.7528969,0.41543547,0.10865235,-0.16745245,-0.22880908,0.13933067,-0.13677414,2 +-0.46711094,-1.3037275,-1.6104869,-1.6104869,-1.6383741,-1.498938,-1.1364042,-0.60654704,0.59260341,1.3455583,1.2897839,1.178235,1.178235,0.56471619,0.53682897,0.64837786,0.7041523,0.34161844,0.20218234,0.25795678,0.23006956,0.87147562,0.23006956,-0.29978761,2 +-0.91691163,-1.2358374,-1.3953003,-1.6185483,-1.4271929,-1.4590854,-1.2358374,-0.85312647,0.55014697,1.2836763,1.4112466,1.3155688,1.0923208,0.58203955,0.67771729,0.70960986,0.77339502,0.42257666,0.16743604,-0.087704595,0.23122119,0.70960986,0.32689893,-0.023919439,2 +-1.2292469,-1.3939471,-1.4762972,-1.5998224,-1.5174723,-1.2910095,-1.0645467,-0.096932948,0.78833072,1.0765561,1.0559686,1.035381,0.64421803,0.39716771,0.43834276,0.35599265,0.47951782,1.035381,1.2412563,1.1177312,0.56186792,0.23246749,-0.22045811,-0.57044608,1 +-1.1470603,-1.3707116,-1.4723713,-1.5536991,-1.6350268,-1.5333671,-1.1470603,-0.17112716,0.56082267,1.0691212,1.0691212,0.9877934,0.76414207,0.60148655,0.70314625,0.64215043,0.70314625,0.54049073,0.45916297,1.2114447,0.84546983,0.31683939,-0.069467457,-0.37444656,1 +0.89950527,0.0057293295,-0.8192946,-1.6443185,-0.61303862,-0.8880466,-0.8192946,-1.3005586,-0.54428663,0.074481324,0.28073731,0.4869933,0.83075327,0.55574529,0.28073731,0.0057293295,-0.68179061,-0.68179061,-1.0255506,-0.75054261,0.76200128,2.0682892,1.7245292,1.7932812,2 +-0.89836683,-1.1736111,-1.5635405,-1.6552886,-1.6552886,-1.4947295,-1.1736111,-0.095570941,0.52372874,1.2347765,1.2577135,1.1200914,0.89072115,0.47785469,0.38610659,0.50079171,0.52372874,0.36316956,0.66135089,1.2577135,0.68428791,0.36316956,-0.11850796,-0.41668929,1 +-0.25294588,-1.0117835,-1.3747058,-1.5066776,-1.6386494,-1.4406917,-1.2097411,-0.15396705,0.37391999,1.0667717,1.3307153,1.1987435,0.86881409,0.17596235,-0.28593882,-0.12097411,-0.21995294,-0.21995294,1.1657506,1.6276517,1.1327576,0.73684233,0.17596235,-0.41791059,1 +-0.97286645,-1.2500668,-1.505944,-1.6338826,-1.5912364,-1.4419747,-1.1647744,-0.43978894,0.54107368,0.92488949,0.90356639,0.92488949,0.81827399,0.39181198,0.32784267,0.71165849,0.77562779,1.1381205,1.2873822,1.0528281,0.47710438,0.17858097,0.0079961686,-0.46111204,1 +-0.415745,-0.74212426,-1.3948828,-1.4415084,-1.6280108,-1.3016315,-1.1151291,-0.97525229,0.33026472,1.4492793,1.7756586,1.5425305,0.98302322,0.23701351,0.0038854641,0.050511072,0.0038854641,-0.18261696,-0.18261696,0.0038854641,0.70326958,1.3094025,0.7965208,0.1903879,2 +-1.0149996,-1.3558576,-1.469477,-1.6512679,-1.6285441,-1.469477,-1.1513428,0.030298494,0.68929075,1.2119398,1.0301488,0.98470107,0.98470107,0.59839526,0.55294752,0.59839526,0.64384301,0.46205204,0.28026107,1.1437682,0.8029101,0.37115656,-0.060596988,-0.58324602,1 +-0.34592969,-0.87028628,-1.2635538,-1.5257321,-1.5694284,-1.4820357,-1.0013755,-0.5644116,-0.34592969,-0.30223331,0.4406052,0.79017626,0.87756901,0.48430158,-0.30223331,-0.30223331,-0.34592969,0.52799797,1.3145329,1.4019256,1.7514967,1.3145329,1.0086582,0.30951605,1 +-0.42323646,-0.91230971,-1.1380358,-1.514246,-1.476625,-1.401383,-1.1380358,-0.83706767,-0.53609952,-0.46085748,0.02821577,0.479668,0.74301514,0.25394189,0.02821577,0.1034578,0.06583679,1.1568463,1.3825724,1.6459196,1.5330565,1.3449514,0.8558782,0.21632087,1 +-0.98115413,-1.3242007,-1.495724,-1.5937373,-1.642744,-1.495724,-1.0546641,0.17050233,0.75858221,1.1506355,1.3711654,1.1016288,0.70957556,0.24401231,0.36652896,0.51354893,0.46454227,0.24401231,0.34202563,1.3221588,0.88109886,0.4890456,0.02348235,-0.56459753,1 +-0.45277827,-0.22949036,-1.4203592,-1.7180765,-1.7180765,-1.4203592,-1.0482127,-1.6436471,0.21708548,0.96137853,1.4079543,1.333525,1.333525,0.66366131,0.58923201,0.4403734,0.4403734,0.14265618,0.4403734,0.14265618,0.14265618,0.96137853,0.36594409,0.068226867,2 +0.84832769,0.29557119,-0.53356357,-0.80994182,-0.90206791,-0.71781574,-0.62568965,-1.8233287,-1.5469505,-0.25718532,0.2034451,0.47982335,0.57194944,-0.16505923,-0.44143749,-0.25718532,-0.44143749,-0.16505923,-0.25718532,0.11131902,0.47982335,1.4010842,2.230219,2.322345,2 +-0.98227022,-1.2962976,-1.4757418,-1.5878945,-1.565464,-1.5206029,-1.1392839,-0.35421543,0.54300571,1.0589079,1.193491,1.2607826,1.0140468,0.61029729,0.54300571,0.61029729,0.65515835,0.40842254,0.31870042,1.0589079,0.8570331,0.38599201,-0.085049091,-0.51122913,1 +-0.98376274,-1.2497944,-1.4493181,-1.6266725,-1.5823339,-1.5601646,-1.0059321,-0.2300065,1.1666595,1.2553367,1.1666595,1.1223209,0.85628927,0.56808835,0.32422604,0.36856464,0.39073394,0.36856464,0.50158045,1.1666595,0.72327346,0.36856464,-0.11916,-0.54037673,1 +0.93961434,-0.11745179,-0.68122039,-1.1040468,-1.3154601,-0.9631047,-0.32886502,-0.9631047,-0.25839394,0.51678789,1.0805565,1.2214986,0.93961434,0.023490356,-0.9631047,-0.75169147,-0.82216254,-0.89263362,-0.9631047,-0.11745179,0.58725896,2.1376226,1.6443251,1.1510276,2 +-1.0978969,-1.2755912,-1.5802099,-1.6563646,-1.6563646,-1.5802099,-1.1486667,-0.13327072,0.55212155,1.0598195,1.0344346,1.0344346,0.75520075,0.47596685,0.57750644,0.57750644,0.70443095,0.62827625,0.55212155,0.75520075,0.98366483,0.67904605,0.095193369,-0.33634991,2 +-1.0253864,-1.2037144,-1.4266245,-1.6495346,-1.7386986,-1.4712065,-0.98080438,-0.84705833,0.35665613,1.1145504,1.3820425,1.2037144,1.0699684,0.75789428,0.53498419,0.66873024,0.62414823,0.44582016,0.49040218,0.49040218,0.13374605,0.66873024,0.40123815,-4.0625001E-9,2 +-1.10272,-1.422349,-1.5502006,-1.635435,-1.635435,-1.422349,-1.0174856,-0.44215343,0.51673353,1.0707571,0.98552271,0.96421412,0.81505392,0.45280773,0.45280773,0.70851092,0.90028832,0.66589373,0.58065933,1.1559915,0.77243672,0.47411633,0.04794435,-0.33561044,1 +-0.73312329,-1.0601671,-1.3218022,-1.4526197,-1.648846,-1.3218022,-0.86394083,-0.86394083,0.90209595,1.4907748,1.5561836,1.3599573,1.163731,0.83668718,0.50964332,0.37882578,0.50964332,0.44423455,0.18259948,-0.2752619,-0.79853206,0.64046087,0.37882578,-0.013626827,2 +0.16295187,-0.78513181,-1.0221527,-1.3776841,-1.4961946,-1.2591737,-0.66662134,-1.614705,-0.074069045,0.99252509,1.1110356,0.99252509,1.1110356,0.16295187,-0.54811088,0.28146234,0.75550417,0.28146234,-0.074069045,-0.66662134,-0.54811088,1.7035879,1.466567,1.1110356,2 +-0.22978715,-0.57021255,-0.97872303,-1.5914887,-1.5914887,-1.1829783,-0.50212747,-1.2510633,-0.43404239,0.79148905,1.0638294,1.0638294,0.85957413,0.042553169,-0.36595731,-0.36595731,-0.22978715,-0.16170207,-0.16170207,0.11063825,0.99574429,2.1531906,1.6765951,0.85957413,2 +-0.83729149,-1.3051611,-1.6092763,-1.7028502,-1.7028502,-1.398735,-1.1180132,-0.34602849,0.70667794,1.104367,1.1745475,1.0107931,0.77685837,0.40256276,0.40256276,0.63649751,0.56631708,0.40256276,0.49613665,1.2681214,0.8470388,0.54292361,-0.041913297,-0.27584806,1 +1.007087,0.29620207,-0.41468288,-0.33569566,-0.65164452,-0.65164452,-0.41468288,-1.6784783,-1.0465806,-0.41468288,0.059240419,0.21721485,-0.019746797,-0.098734012,-0.33569566,-0.57265731,-0.73063173,-0.57265731,-0.33569566,-0.41468288,0.53316372,2.4288568,2.2708824,1.8759463,2 +-0.70908579,-1.2181731,-1.5818068,-1.5575646,-1.7515026,-1.6302913,-1.1212041,-0.17575631,0.57575344,1.1818097,1.2302942,1.0848407,0.89090267,0.38181544,0.40605769,0.59999569,0.59999569,0.28484644,0.47878444,1.2302942,0.84241818,0.40605769,-0.10302956,-0.34545206,1 +-0.74339557,-0.91304527,-1.2523447,-1.3654445,-1.3937194,-1.3088946,-1.4502693,-0.68684567,0.35932749,1.207576,1.3772257,1.4337756,1.0944762,0.8117267,0.9248265,1.0944762,1.0944762,0.7551768,0.41587739,-0.008246858,-0.31927131,-0.40409616,-0.23444646,-0.48892101,2 +-0.47221758,-1.2227621,-1.5229799,-1.5229799,-1.5229799,-1.2978165,-0.9975987,-0.92254426,-0.17199978,1.0288714,1.3290892,1.5542526,1.4041437,0.87876249,0.50349026,0.27832692,0.42843581,0.20327247,0.12821802,-0.021890882,-0.24705423,1.2540348,0.72865359,0.20327247,2 +-0.77677379,-1.3357222,-1.4672394,-1.5658774,-1.5987567,-1.532998,-1.1384463,-0.053428878,0.43976083,1.3275023,1.4261403,1.2288644,1.0973471,0.40688152,0.66991603,0.76855398,0.76855398,0.3740022,0.24248494,-0.053428878,0.73567466,0.57127809,-0.053428878,-0.48085995,2 +0.74575839,0.041566857,-0.60394204,-0.95603781,-0.95603781,-0.77998992,-0.7213073,-1.4254988,-1.4254988,-0.13448102,0.62839314,0.68707576,0.74575839,0.45234525,-0.3105289,-0.25184628,-0.54525941,-0.77998992,-0.66262467,-0.42789416,1.2152194,2.2128241,1.8020457,1.4499499,2 +-1.1247362,-1.3806937,-1.5382059,-1.5972731,-1.5382059,-1.5382059,-1.04598,-0.19935151,0.50945381,0.82447839,0.84416742,0.86385646,0.72603321,0.52914285,0.48976477,0.70634417,0.72603321,1.2182591,1.139503,1.0410578,0.58820995,0.33225249,-0.081217285,-0.49468705,1 +-0.91256658,-1.1240627,-1.5000558,-1.6410532,-1.6645528,-1.4765562,-1.218061,-0.39557607,0.63840495,1.014398,1.2023946,1.014398,0.84990107,0.4504084,0.37990969,0.40340926,0.42690883,0.59140581,1.2728933,1.1553955,0.61490538,0.40340926,-0.043082539,-0.44257521,1 +-0.54186234,-0.95081505,-1.4415583,-1.7278252,-1.7687205,-1.5642441,-1.2370819,-0.41917653,0.15335727,1.0939485,1.2166343,1.2984249,1.0939485,0.35783362,0.15335727,-0.092014364,0.07156672,0.112462,0.48051944,0.84857687,0.97126269,1.175739,0.64410052,0.07156672,2 +0.038482736,-0.5156686,-0.93128209,-1.2083578,-1.3930749,-1.3468956,-0.93128209,-0.46948932,-1.0236406,-0.053875819,0.31555839,0.54645478,0.5002755,-0.1000551,-0.23859293,-0.42331004,-0.46948932,-0.33095149,0.45409623,1.8394745,2.1165502,1.9318331,1.0082476,0.68499261,1 +-0.88164789,-1.2663669,-1.5327109,-1.5918985,-1.6214922,-1.4143358,-1.1183981,-0.79286657,0.53885332,1.2491039,1.367479,1.2491039,1.1899164,0.50925954,0.56844709,0.56844709,0.47966577,0.47966577,0.39088444,0.45007199,0.39088444,0.74600974,0.24291557,-0.20099105,2 +-1.1459551,-1.4102248,-1.5234832,-1.5989889,-1.5801124,-1.4291012,-1.0326967,-0.14550563,0.6095506,1.1569664,1.0437079,0.9682023,0.79831465,0.45853935,0.40191013,0.47741576,0.51516857,1.0625843,1.1003371,0.94932589,0.6095506,0.30752811,-0.10775281,-0.48528093,1 +-0.18963774,4.8940973E-9,-0.88497614,-1.3906768,-1.3906768,-1.3906768,-1.5803145,-1.3906768,0.18963774,1.0746139,1.7067397,1.5803145,1.1378265,0.37927549,-0.25285033,-0.063212577,-0.18963774,-0.31606291,-0.31606291,-0.12642516,1.2642516,1.201039,0.69533839,0.25285033,2 +-0.3261549,-0.7588428,-1.0341897,-1.4275423,-1.6242186,-1.388207,-1.1128602,-0.79817807,-0.87684859,-0.24748437,0.38187986,0.7752325,0.81456776,0.38187986,-0.090143311,-0.12947858,-0.24748437,0.42121512,1.2472557,1.7192788,1.6799436,1.4045967,0.7752325,0.46055038,1 +-0.96973024,-1.3576223,-1.5617761,-1.4596992,-1.6434376,-1.3780377,-1.1330532,-0.31643829,0.56142276,1.0922225,1.173884,0.96973023,0.683915,0.43893052,0.37768441,0.41851515,0.56142276,0.90848411,1.2963762,1.1126379,0.60225351,0.33685366,-0.17353067,-0.5410074,1 +-1.1129653,-1.4394138,-1.5354281,-1.6314423,-1.5546309,-1.4778195,-0.97854538,-0.17202556,0.88413135,1.0953627,1.056957,0.94173991,0.63449425,0.38485717,0.50007428,0.48087143,0.53847999,0.69210282,1.2489855,0.99934847,0.6536971,0.30804576,-0.056808447,-0.46006836,1 +-1.1168419,-1.3078457,-1.4776269,-1.6049628,-1.6049628,-1.3927363,-1.0956193,-0.39527186,0.58097002,1.1327589,1.2600948,1.1752042,0.94175505,0.51730207,0.49607942,0.62341532,0.53852472,0.43241147,0.53852472,1.1327589,0.77197386,0.38996617,-0.05570947,-0.48016245,1 +-0.68139665,-1.0145239,-1.2870825,-1.4687883,-1.5293569,-1.3779354,-1.5293569,-0.77224954,0.37855369,1.4082197,1.3779354,1.3476511,1.1356611,0.77224952,0.74196523,0.89338671,0.92367101,0.59054375,0.37855369,0.045426441,-0.19684792,-0.16656362,0.13627933,-0.10599503,2 +0.18994871,-0.38711066,-0.96417004,-1.3681116,-1.3681116,-1.021876,-1.8297591,-0.79105222,0.18994871,1.4017734,1.9211268,1.8634209,1.5748912,0.59389027,0.24765465,0.016830902,0.074536841,-0.040875035,0.074536841,-0.15628691,-0.56022848,-0.50252254,0.65159621,0.18994871,2 +-1.3150228,-1.2897339,-1.2897339,-1.4667561,-1.5173339,-1.5173339,-1.2897339,-0.40462239,0.35404458,1.1380005,1.3150228,1.2138672,1.0621338,0.70808915,0.60693356,0.68280026,0.73337805,0.63222246,0.58164466,0.53106686,0.63222246,0.32875568,0.025288892,-0.45520018,2 +0.95,-0.05,-0.95,-1.25,-1.65,-1.35,-0.65,-1.55,-0.15,1.25,1.65,1.75,1.55,0.45,-0.45,-0.35,-0.15,-0.35,-0.35,-0.15,-0.15,0.35,1.15,0.45,2 +-0.73050432,-1.1815876,-1.4221654,-1.4823098,-1.4221654,-1.4221654,-1.512382,-0.76057653,0.35209557,1.1339733,1.3444788,1.103901,0.92346773,0.80317885,0.86332329,1.0136844,1.0437566,0.80317885,0.53252888,0.23180669,-0.008771059,-0.068915497,0.20173447,-0.33956547,2 +-0.89173524,-1.1288726,-1.4845786,-1.4648172,-1.6031473,-1.5438629,-1.2079184,-0.33841476,0.59037318,1.2227395,1.1634551,1.0646479,0.84727197,0.51132741,0.51132741,0.61013463,0.70894185,0.64965752,1.1832166,0.92631776,0.51132741,0.19514428,-0.29889187,-0.73364367,1 +-0.94728637,-0.81420418,-1.4574347,-1.5683365,-1.7235991,-1.6348776,-1.16909,-0.54803981,0.51661763,1.1598482,1.0711267,1.2042089,0.93804454,0.58315872,0.51661763,0.538798,0.64969981,0.47225691,0.56097836,1.2042089,0.73842127,0.47225691,-0.17097364,-0.59240054,1 +-0.68536916,-1.1352525,-1.3039587,-1.5289004,-1.5289004,-1.4445473,-1.5570181,-0.68536916,0.66428087,1.1985173,1.3672236,1.3109882,1.0016934,0.63616316,0.83298712,0.91734025,0.86110483,0.57992774,0.41122149,0.21439753,-0.066779565,-0.066779565,0.29875066,-0.29172123,2 +-1.0555547,-1.3303736,-1.580209,-1.580209,-1.7051267,-1.3303736,-1.0805382,-0.38099904,0.69329329,1.3678489,1.2679148,1.09303,0.96811226,0.54339204,0.59335912,0.74326038,0.66830975,0.46844141,0.24358954,0.21860599,0.29355662,0.86817809,0.3435237,-0.33103195,2 +-1.0557646,-1.365777,-1.531117,-1.5931195,-1.613787,-1.4691145,-1.1177671,-0.16706226,0.5976351,1.093655,1.13499,0.92831504,0.88698005,0.41162763,0.47363012,0.63897009,0.72164008,0.78364256,0.74230757,1.1143225,0.65963759,0.39096014,-0.14639476,-0.5184097,1 +0.66029032,-0.3059882,-0.75691818,-1.079011,-1.2722667,-1.2078482,-1.1434296,-1.5943596,-1.0145924,0.016104648,0.85354603,1.0468017,1.304476,0.40261605,-0.37040677,-0.62808104,-0.69249961,-0.37040677,0.66029032,0.46703462,0.78912746,1.9486617,1.4977317,0.78912746,2 +-0.90172313,-1.202895,-1.5040669,-1.6331406,-1.6331406,-1.4180178,-1.0738213,-0.60055118,0.13086637,1.1634558,1.4216032,1.1634558,1.1634558,0.64716112,0.86228393,0.73321025,0.86228393,0.56111199,0.25994006,0.0017926834,0.087841808,0.77623481,0.25994006,-0.12728101,2 +-0.81358337,-1.2225048,-1.358812,-1.5973495,-1.6655031,-1.4951192,-1.0521209,-0.23427793,0.41318108,0.48133466,1.0265633,0.99248651,0.75394898,0.10648997,-0.097970779,0.10648997,0.14056676,0.58356503,1.5036384,1.6058687,1.1287937,0.75394898,0.27687392,-0.3365083,1 +-0.0026159778,-0.44209999,-0.81880058,-1.1327177,-1.1327177,-1.1327177,-2.0116857,-1.2582846,0.49965146,1.6297532,2.0692372,1.6925366,1.3158361,0.3740846,0.24851774,-0.0026159778,-0.37931656,-0.065399408,-0.065399408,-0.0026159778,0.060167453,-0.19096627,0.68800175,0.060167453,2 +-1.0114345,-1.3325747,-1.5403714,-1.6159338,-1.5403714,-1.4270278,-1.0681063,-0.29359148,0.76428236,1.0854227,1.1043133,0.9531884,0.76428236,0.44314209,0.4620327,0.4998139,0.68871994,1.0854227,1.0665321,0.9342978,0.55648572,0.21645484,-0.16135725,-0.63362235,1 +-0.69707713,-1.0925819,-1.4089857,-1.3694352,-1.5671876,-1.4485362,-0.93437998,-0.38067333,-0.22247142,0.56853809,0.92449236,0.44988666,0.68718951,0.093932385,-0.2620219,-0.10382,-0.2620219,0.33123523,1.6759514,1.7946028,1.5177495,1.0431438,0.52898761,0.13348285,1 +-1.0769144,-1.3977329,-1.5180399,-1.538091,-1.5581422,-1.4378352,-1.0167609,-0.014202898,0.66753651,0.98835507,1.0084062,0.94825275,0.74774115,0.34671796,0.36676912,0.5271784,0.66753651,0.98835507,1.228969,1.108662,0.64748536,0.32666681,-0.33502144,-0.67589114,1 +-0.90774442,-1.3271066,-1.5367877,-1.6206601,-1.6206601,-1.4529153,-1.1593617,-0.2367649,0.58099137,1.1261622,1.2310028,1.2100347,0.97938545,0.53905515,0.56002326,0.49711893,0.47615082,0.39227838,0.70680003,1.1051941,0.66486381,0.35034216,-0.089988144,-0.46741412,1 +-1.0396887,-1.4138597,-1.5775595,-1.6711023,-1.6711023,-1.4138597,-1.0630744,0.24652413,0.69085221,1.1819516,1.2053373,1.0884089,0.83116634,0.45699532,0.52715238,0.48038101,0.55053807,0.26990982,0.26990982,0.99486615,0.76100927,0.7142379,0.036052934,-0.45504651,1 +-1.0903131,-1.3826876,-1.5471482,-1.5654216,-1.583695,-1.4375078,-1.0537663,-0.1949163,0.51774643,1.0659486,0.99285492,0.99285492,0.77357408,0.37155921,0.35328581,0.53601983,0.62738685,1.175589,1.1207688,0.99285492,0.59084005,0.38983261,-0.12182268,-0.52383755,1 +-1.0777434,-1.3438529,-1.5389999,-1.5922218,-1.5744812,-1.485778,-1.0954841,-0.22619307,0.46569161,0.94468869,0.99791059,1.0688731,0.98016996,0.71406047,0.57213541,0.6253573,0.80276363,0.80276363,1.0156512,0.92694806,0.48343224,0.25280402,-0.26167433,-0.45682129,1 +-0.33429209,-1.0433023,-1.4537819,-1.3791492,-1.4910982,-1.4910982,-1.1179349,-0.11039413,0.52398343,1.4195752,1.4195752,1.2329936,0.8971467,0.076187506,-0.14771046,-0.33429209,-0.29697576,-0.035761474,0.44935078,1.6434732,1.2703099,0.67324874,0.11350384,-0.48355739,1 +-0.95573627,-1.3919112,-1.59717,-1.5715127,-1.6484847,-1.4945406,-1.1096804,0.044900367,0.6863341,1.1994811,1.2507958,1.1738237,0.91725024,0.4297606,0.5837047,0.5837047,0.50673265,0.37844591,0.14752976,0.45541795,1.045537,0.71199145,0.044900367,-0.39127458,1 +-1.0332543,-1.3025062,-1.410207,-1.4371322,-1.4909826,-1.5717581,-1.3025062,-0.575526,0.77073365,1.3092375,1.2553871,1.2284619,1.093836,0.50148172,0.52840691,0.60918249,0.5822573,0.44763133,0.25915498,0.44763133,0.79765884,0.60918249,0.070678638,-0.38704965,2 +-0.94999628,-1.162682,-1.4604421,-1.715665,-1.6305907,-1.5880535,-1.2052192,-0.73731054,0.19850669,0.87910105,1.0917868,0.96417535,0.87910105,0.75148961,0.58134102,0.87910105,0.9216382,0.70895246,0.62387816,0.70895246,0.32611813,0.70895246,0.45372957,-0.22686478,2 +-0.94451625,-1.3397599,-1.5025074,-1.6187555,-1.6420051,-1.5490066,-1.2467614,-0.084279916,0.45046159,0.91545419,1.0084527,1.054952,0.91545419,0.70620752,0.38071269,0.49696085,0.70620752,0.63645863,0.75270678,1.1712001,0.79920604,0.45046159,-0.084279916,-0.43302436,1 +-0.91311238,-1.1593449,-1.4466162,-1.487655,-1.6107713,-1.487655,-1.0772674,-0.91311238,0.071817822,1.0977868,1.1798643,1.2209031,1.056748,0.892593,0.60532169,0.76947672,1.0157093,0.97467051,0.27701162,0.52324417,0.071817822,0.56428293,0.071817822,-0.297531,2 +-1.0319648,-1.3223669,-1.529797,-1.612769,-1.612769,-1.509054,-1.0112218,-0.098529299,0.44078897,1.0838223,1.0008502,0.98010724,0.71044811,0.39930295,0.31633091,0.46153198,0.58599004,0.87639219,1.3119954,1.1460513,0.64821907,0.42004596,-0.14001532,-0.5133895,1 +0.19860371,-0.240415,-0.93030156,-1.0557355,-1.2438864,-0.67943372,-0.55399979,-1.0557355,-0.49128284,0.51218851,0.7003394,0.51218851,0.32403763,-0.11498108,-0.55399979,-0.74215068,-0.67943372,-0.74215068,-0.36584892,0.13588675,0.95120723,2.5818481,2.1428294,1.3902259,2 +0.27332171,-0.41998215,-1.0599549,-1.113286,-1.5399345,-1.4332724,-2.1265763,-1.0066239,0.27332171,1.7132605,1.8199226,1.4466052,1.0199566,0.43331491,0.27332171,-0.04666468,0.16665958,-0.04666468,-0.04666468,0.21999065,0.0066663868,0.16665958,0.69997024,0.32665278,2 +-0.96443008,-1.3414743,-1.5299964,-1.5718902,-1.5928371,-1.4462088,-1.0482177,-0.46170453,0.62753417,1.0045783,1.2140473,1.2559411,1.0883659,0.54374658,0.45995899,0.60658727,0.56469348,0.52279968,0.58564038,1.067419,0.71132177,0.37617139,-0.16844795,-0.50359833,1 +-0.98574055,-1.2747199,-1.4481075,-1.5636992,-1.6214951,-1.4481075,-1.1783935,-0.38851662,0.74813535,1.0949105,1.191237,1.0949105,0.84446179,0.49768661,0.55548247,0.55548247,0.69033949,0.97931881,0.96005352,0.88299237,0.40136017,0.15091143,-0.21512903,-0.52337364,1 +-0.99421379,-1.3011094,-1.4737381,-1.6080049,-1.588824,-1.4929191,-1.1092996,-0.22697485,0.46354019,1.0006074,1.1924172,1.2307791,1.0197884,0.54026408,0.55944506,0.52108311,0.597807,0.63616895,0.94306452,1.0389694,0.57862603,0.23336851,-0.22697485,-0.53387043,1 +-0.74924199,-1.2468935,-1.3796006,-1.5123077,-1.6450147,-1.4127774,-0.91512583,0.047000427,0.27923779,1.1750105,1.3077176,1.0091267,0.81006607,0.11335396,-0.35112078,-0.18523695,-0.11888342,0.44512163,1.3740711,1.539955,1.0423034,0.61100547,0.17970749,-0.41747432,1 +-0.31032911,-0.80685567,-1.262005,-1.3033822,-1.3861367,-1.3861367,-1.0964962,-0.80685567,0.51721518,1.6344,1.9240405,1.7585316,1.3033822,0.51721518,0.020688607,-0.062065821,-0.14482025,-0.26895189,-0.35170632,-0.22757468,0.062065821,1.0137417,0.47583796,0.18619746,2 +1.1545687,0.21978536,-0.11406582,-0.38114676,-0.98207888,-0.78176817,-1.8500919,-1.9168622,-0.84853841,-0.18083605,0.21978536,0.68717701,0.55363654,0.15301512,-0.18083605,-0.38114676,-0.58145747,-0.58145747,-0.18083605,0.019474644,0.55363654,2.1561222,1.822271,1.4216496,2 +-0.793748,-1.111729,-1.5164321,-1.5453394,-1.5742468,-1.4008026,-1.0250069,-0.59139646,0.42036122,1.1430453,1.2586748,1.2586748,0.82506429,0.24691705,0.18910232,-0.12887866,0.015658147,0.7383422,1.2875821,1.2586748,0.96960111,0.50708331,-0.013249216,-0.41795229,1 +-1.0799681,-1.351702,-1.4980202,-1.6025333,-1.5607281,-1.456215,-1.0381629,-0.53650027,0.52953273,1.0939032,1.1148058,1.1148058,0.90577967,0.50863012,0.57133794,0.63404577,0.69675359,0.52953273,0.57133794,1.1775136,0.73855881,0.50863012,-0.11844811,-0.45288984,1 +-0.99286946,-1.3232861,-1.537085,-1.5953938,-1.5565213,-1.4787762,-1.0123057,-0.21541866,0.34823317,0.89244873,1.0868114,0.93132127,0.83413992,0.54259587,0.60090468,0.60090468,0.81470365,1.125684,1.1062477,0.98963008,0.54259587,0.19274301,-0.19598239,-0.70132541,1 +0.31992897,-0.69037301,-1.195524,-0.79140321,-1.195524,-1.195524,-0.8924334,-1.5996448,-0.8924334,0.31992897,1.4312611,1.2292007,0.92611014,0.21889877,-0.084191824,-0.48831261,0.11786857,-0.18522202,0.21889877,0.016838372,-0.38728241,2.1384725,1.6333215,1.0271403,2 +-0.96196967,-1.320259,-1.566583,-1.6337622,-1.6113691,-1.4546175,-1.0067558,-0.20060475,0.73990489,1.1205873,1.0086219,0.76229798,0.76229798,0.49358094,0.40400859,0.40400859,0.47118785,0.78469106,1.299732,1.2325528,0.67272563,0.31443625,-0.22299783,-0.49171487,1 +-0.78931737,-1.1652975,-1.4255915,-1.3966699,-1.5123561,-1.3099053,-1.5701992,-0.76039582,0.54107402,1.2062697,1.2930344,1.2641128,1.0038189,0.801368,0.65676023,0.88813265,1.1195051,0.65676023,0.51215247,0.16509385,-0.12412167,-0.18196477,0.2518585,-0.12412167,2 +-0.50387394,-0.95787642,-1.2880601,-1.4944248,-1.5356978,-1.370606,-1.0816953,-0.66896575,-0.13241739,-0.2975092,0.32158509,0.6517687,0.8994064,0.32158509,-0.091144431,-0.17369034,-0.25623625,0.52794985,1.4359548,1.8074114,1.5597737,1.3534089,0.69304164,0.28031213,1 +-0.25357747,-0.89419425,-1.1744641,-1.3746568,-1.4947725,-1.3346183,-1.6949652,-0.9342328,0.50715495,1.3479645,1.7483499,1.7083114,1.1477717,0.74738624,0.10676946,-0.053384728,0.066730917,0.066730917,0.026692369,0.22688511,0.14680801,0.90754043,0.50715495,-0.053384728,2 +-0.63096648,-1.0184892,-1.3165836,-1.4358214,-1.5550591,-1.346393,-1.6742969,-0.69058536,0.20369784,1.1874094,1.2470282,1.2768377,1.1277905,0.77007719,0.82969607,1.0085527,0.94893383,0.85950551,0.4719828,0.26331672,-0.15401544,-0.24344376,0.05465064,-0.18382488,2 +0.018950483,-0.72528672,-1.0974053,-1.2214449,-1.2627914,-1.1800984,-0.93201927,-1.1800984,-0.68394021,0.18433653,0.68049466,0.92857373,0.63914815,0.22568304,-0.10508905,-0.2704751,-0.55990068,-0.60124719,-0.06374254,1.7141575,1.9622366,1.7141575,1.1353063,0.68049466,1 +-0.82192428,-1.2133167,-1.3698737,-1.5264307,-1.5264307,-1.3437809,-1.5525236,-0.4566246,0.32616042,1.2394096,1.2394096,1.2915952,1.0045741,0.84801708,0.97848125,0.84801708,0.97848125,0.69146008,0.27397474,0.30006758,0.091324905,-0.11741777,-0.091324931,-0.091324931,2 +-0.71701739,-1.0964155,-1.421614,-1.5571133,-1.5029136,-1.4487138,-1.5842132,-0.74411726,0.39407727,1.2341732,1.288373,1.1799735,1.071574,0.7192757,0.69217583,0.99027439,0.74637557,0.74637557,0.47537687,0.33987753,0.041778957,-0.14792013,0.28567778,0.014679088,2 +-0.70034067,-1.0570129,-1.4582691,-1.5920212,-1.5474371,-1.4582691,-1.1015969,-0.92326079,0.28050781,1.1276042,1.2167723,1.3951084,1.2167723,0.77093206,0.68176402,0.77093206,0.94926815,0.59259597,0.23592379,0.19133976,0.32509183,0.63717999,0.057587704,-0.61117263,2 +-0.65390468,-1.0026538,-1.2879941,-1.5733343,-1.7318566,-1.6684477,-1.2879941,-0.65390468,0.36063835,1.216659,1.2800679,1.3117724,0.83620538,0.6142741,0.6142741,0.89961432,0.89961432,0.58256963,0.23382047,0.07529812,0.17041152,0.96302326,0.17041152,-0.36856445,2 +-1.0439193,-1.3207598,-1.577826,-1.5976003,-1.5976003,-1.3998571,-1.0439193,-0.11452627,0.75554382,1.0521586,1.0521586,0.81486678,0.67644654,0.39960605,0.36005741,0.43915469,0.53802629,1.1905789,1.2499018,1.0323843,0.55780061,0.30073445,-0.11452627,-0.60888427,1 +-0.87894469,-1.3678131,-1.5878039,-1.6611342,-1.710021,-1.3433697,-0.90338811,-0.43896311,0.56321716,1.1743027,1.1254159,1.1743027,0.85653821,0.46544348,0.41655664,0.46544348,0.58766057,0.4898869,0.53877374,1.2965198,0.85653821,0.44100006,-0.19452889,-0.36563284,1 +-0.15082924,-0.68428846,-1.103435,-1.2939562,-1.3701646,-1.3320604,-1.103435,-1.0653308,-0.95101807,-0.18893347,0.5350469,0.80177651,0.80177651,0.26831729,-0.074620776,-0.18893347,-0.30324616,-0.2270377,1.2971315,1.716278,1.716278,1.4876527,0.87798497,0.5350469,1 +-0.89984354,-1.2377248,-1.3785087,-1.5756061,-1.462979,-1.462979,-1.462979,-0.59011904,0.28274093,1.1274441,1.1274441,1.2963848,1.0711306,0.78956284,0.81771962,0.90218994,1.0429738,0.70509253,0.45168157,0.3108977,-0.08329712,0.057486745,0.22642738,-0.055140347,2 +-0.82552207,-1.2348718,-1.4190792,-1.6032866,-1.6442216,-1.4804817,-1.0097294,-0.10915994,1.0779544,1.3235643,1.2621618,1.0574869,0.85281203,0.38205979,0.42299477,0.40252728,0.23878737,0.77094208,1.0574869,0.91421451,0.50486472,0.054579967,-0.29336734,-0.70271714,1 +-1.0285305,-1.2822649,-1.427256,-1.6084949,-1.5722471,-1.4453799,-1.1735216,-0.35794674,0.72948639,1.0375925,1.110088,1.0919641,0.92884913,0.53012366,0.54824754,0.65699085,0.72948639,1.0013447,1.0013447,0.76573416,0.36700869,0.20389371,-0.21295566,-0.59355725,1 +-1.0233394,-1.3325498,-1.5534144,-1.5975874,-1.6417603,-1.4429821,-1.0012529,0.080983683,0.54479938,1.1632203,1.052788,0.8760963,0.67731815,0.3018483,0.34602122,0.36810768,0.52271292,0.65523169,1.3619985,1.2073932,0.78775046,0.36810768,-0.18405385,-0.53743724,1 +-1.037707,-1.2863741,-1.5541695,-1.4967847,-1.5924259,-1.4585283,-1.0950917,-0.32996213,0.798604,1.1046558,1.1237841,1.0281429,0.8942452,0.49255217,0.51168041,0.54993689,0.72209104,0.8942452,1.0472711,0.93250168,0.41603921,0.1673721,-0.31083389,-0.52124453,1 +-0.67224738,-1.0071027,-1.3115166,-1.4028407,-1.4637235,-1.3723994,-1.5550477,-0.82445433,0.45408408,1.2760016,1.3673258,1.3368844,1.0933533,0.72805659,0.84982215,0.97158772,1.0020291,0.72805659,0.3932013,0.088787391,-0.093860953,-0.30695069,-0.15474374,-0.12430234,2 +-0.99302489,-1.2993564,-1.4218891,-1.5648438,-1.6669543,-1.5239996,-1.0951354,-0.38036172,0.66116565,1.110452,1.2125625,1.0287636,0.96749723,0.49778881,0.51821091,0.62032144,0.70200986,0.57947723,0.57947723,1.110452,0.70200986,0.37525617,-0.15571856,-0.56416067,1 +-0.92542174,-1.2321208,-1.5388198,-1.4877033,-1.5132616,-1.5388198,-1.257679,-0.18423241,0.63363169,1.3237045,1.4003793,1.2981463,0.96588896,0.42916566,0.48028217,0.58251518,0.65918994,0.48028217,0.22469964,0.42916566,0.8380977,0.60807343,-0.1331159,-0.54204795,2 +-0.97836169,-1.3087846,-1.515299,-1.5979047,-1.6185562,-1.4533447,-1.1229217,-0.17295576,0.50854157,1.2726446,1.3552504,1.3345989,1.0454789,0.77701021,0.50854157,0.63245017,0.73570734,0.529193,0.42593583,0.38463296,0.28137579,0.42593583,-0.0077442896,-0.44142441,2 +-1.0408681,-1.3752572,-1.4932769,-1.6112966,-1.5916266,-1.4932769,-1.0211981,-0.077040621,0.5917376,0.96546661,0.96546661,0.84744692,0.72942723,0.33602828,0.39503812,0.49338786,0.65074744,1.0638163,1.201506,1.1621661,0.72942723,0.31635833,-0.096710568,-0.6474691,1 +-0.92201869,-1.2372949,-1.4540473,-1.6510949,-1.6116854,-1.473752,-1.1978854,-0.37028533,0.39820041,1.0090481,1.1469814,1.0484576,0.94993377,0.47701946,0.59524804,0.71347662,0.73318138,0.67406709,1.0484576,1.0681623,0.53613375,0.22085755,-0.21264723,-0.48851391,1 +-0.86434203,-1.1362189,-1.4352835,-1.5168466,-1.5440343,-1.4624712,-1.5168466,-0.67402818,0.65816869,1.0387964,1.1475471,1.1475471,1.0931717,0.68535638,0.79410715,0.98442099,1.0116087,0.73973176,0.49504254,0.25035332,0.0056641013,0.0056641013,0.16879025,-0.075898973,2 +-0.41331946,-0.8693961,-0.90740249,-1.2874664,-1.4014855,-1.4774983,-1.2874664,-1.0214216,-0.98341526,-0.45132584,0.15677635,0.5748466,0.72687215,0.38481467,0.15677635,-0.14727475,0.15677635,1.106936,1.3729807,1.5630127,1.6390254,1.2209552,0.72687215,0.46082744,1 +-0.63519891,-1.1413731,-1.4688975,-1.5879973,-1.7070971,-1.4688975,-1.0818232,-0.21834962,0.49624916,1.0619732,1.2703978,1.0619732,0.76422371,0.16872472,-0.18857467,-0.039699919,0.049624928,1.0917481,1.181073,1.2703978,0.91309845,0.49624916,0.19849967,-0.48632416,1 +0.46615603,2.4722222E-9,-0.81577306,-1.1653901,-1.2819291,-1.1071206,-0.99058157,-1.6315461,-0.75750355,0.058269506,0.58269504,0.99058157,0.69923405,2.4722222E-9,-0.29134752,0.058269506,-0.34961702,-0.29134752,-0.52442554,0.11653901,0.64096454,2.3307802,1.8646241,1.3984681,2 +-0.85344603,-1.2349632,-1.4734115,-1.4495667,-1.4972563,-1.4257218,-1.544946,-0.66268743,0.52955382,1.1256745,1.1256745,1.3164331,1.1495193,0.81569171,0.64877793,0.83953653,0.93491583,0.69646758,0.33879521,0.12419179,0.10034696,0.36264004,0.21957109,-0.18579094,2 +1.2522146,0.1487512,-0.24070649,-0.69507379,-0.82489301,-0.88980265,-1.7985372,-1.7985372,-1.0196219,-0.43543533,0.27857044,0.79784736,0.47329929,0.1487512,-0.11088726,-0.37052571,-0.50034494,-0.43543533,-0.37052571,0.083841592,1.5767627,1.3820339,1.7065819,1.6416723,2 +-0.94394329,-1.1081073,-1.5595585,-1.662161,-1.580079,-1.6416405,-1.2312304,-0.14364353,0.45145115,1.0055048,1.1286278,1.1491483,1.0670663,0.55405368,0.57457418,0.71821773,0.73873823,0.51301267,0.73873823,0.9439433,0.59509469,0.26676659,-0.18468455,-0.38988961,1 +-0.021442477,-0.75048629,-1.0935657,-1.1364506,-1.3937602,-1.3937602,-1.0935657,-0.70760136,-1.0506808,0.10721232,0.75048627,0.92202599,0.70760134,0.064327383,-0.32163699,-0.36452192,-0.49317671,-0.27875206,0.92202599,1.7797246,1.8654945,1.4366452,0.87914106,0.66471641,1 +0.61273647,-0.22758785,-0.8278195,-1.1879585,-1.3080048,-1.1279353,-2.1483291,-1.4280511,0.13255115,1.4530608,1.6931535,1.873223,1.0929218,0.25259748,-0.22758785,0.012504818,0.25259748,-0.10754152,0.072527984,0.012504818,-0.10754152,0.012504818,0.9128523,0.31262064,2 +-1.0560869,-1.1913381,-1.3536396,-1.4888909,-1.5429914,-1.5159411,-1.2183884,-0.19047884,0.64807892,1.2161342,1.4054859,1.4325362,1.1349834,0.81038042,0.59397841,0.56692816,0.53987791,0.21527491,-0.0011270849,0.21527491,0.81038042,0.59397841,-0.10932809,-0.51508183,2 +-0.80377593,-1.1948021,-1.4033493,-1.4815546,-1.4554861,-1.3251441,-1.5597598,-0.77770752,0.57784972,1.3077652,1.359902,1.4381072,0.94280745,0.65605495,0.78639699,0.78639699,0.8124654,0.55178132,0.36930246,0.1868236,0.030413141,0.212892,0.26502882,-0.28240776,2 +-0.94289611,-1.2949106,-1.445774,-1.4960618,-1.5966374,-1.5714935,-1.1691912,-0.54059376,0.59088156,1.3200545,1.2446228,1.2446228,1.0434717,0.74174494,0.76688884,0.81717663,0.71660104,0.33944261,0.31429871,0.13829144,0.11314754,0.66631325,0.26401092,-0.26401091,2 +-0.89934535,-1.2423719,-1.4798519,-1.6645585,-1.6645585,-1.4798519,-1.1368253,-0.71463873,0.41998768,1.2907475,1.2115875,1.1324275,0.94772089,0.63108097,0.60469431,0.78940093,0.71024095,0.60469431,0.41998768,0.3408277,0.28805438,0.84217425,0.23528106,-0.18690551,2 +-0.9059747,-1.3996752,-1.5436712,-1.6053837,-1.6876672,-1.4819586,-0.96768726,-0.10371139,0.53398509,1.0482564,0.96597303,0.94540217,0.69855192,0.3488474,0.43113082,0.49284338,0.76026448,0.86311875,1.2128233,1.1305399,0.67798107,0.30770569,-0.10371139,-0.61798274,1 +-0.85704647,-1.0843295,-1.4252541,-1.5388956,-1.4820748,-1.4252541,-1.0275088,-0.80022571,0.10890646,1.1316801,1.5294255,1.415784,1.2453217,0.9043971,0.73393482,0.3361895,0.79075557,0.44983102,0.27936874,0.052085696,-0.57294267,0.84757634,0.39301026,-0.004735064,2 +0.063916924,-0.46505072,-0.99401837,-0.99401837,-1.311399,-1.0469151,-0.67663778,-0.35925719,-1.0998119,-0.83532808,0.80447163,0.75157486,1.0689555,0.43419428,-0.2005669,-0.2005669,-0.57084425,-0.51794749,-0.46505072,0.011020159,1.4392328,2.4442713,1.7566134,0.96316192,1 +-1.015474,-1.2432439,-1.5165677,-1.5848987,-1.6304527,-1.4710138,-1.1293589,-0.35494138,0.62446905,0.8977929,0.98890085,0.85223892,0.715577,0.39669919,0.32836823,0.44225317,0.51058412,1.1255628,1.2850017,1.1711168,0.69280001,0.44225317,0.0094904115,-0.53715728,1 +1.1290823,0.28227057,0.094090188,-0.094090191,-0.094090191,-0.094090191,-0.094090191,-1.5995332,-1.2231725,-0.75272152,-0.094090191,-0.28227057,-1.3402778E-9,-0.47045095,-0.75272152,-0.75272152,-0.56454114,-0.56454114,-0.56454114,-0.18818038,0.094090188,2.3522547,2.2581646,1.975894,2 +-0.91770709,-1.1807632,-1.5633903,-1.6590471,-1.6351329,-1.5394761,-1.0611923,-0.46333745,0.61280116,0.99542823,1.1389134,1.1867418,0.8041147,0.54105859,0.5171444,0.63671536,0.54105859,0.32583086,0.42148763,1.2584843,0.94759985,0.5171444,-0.0089678139,-0.41550906,1 +-0.84106758,-1.3051049,-1.5661258,-1.5661258,-1.5081212,-1.5371235,-1.1310909,-0.58004661,0.31902563,1.1310909,1.2761025,1.2761025,1.1020886,0.84106758,0.69605593,0.75406059,0.84106758,0.2900233,0.02900233,-5.0885222E-17,0.31902563,0.81206525,0.49303962,-0.14501165,2 +-1.0451395,-1.2187267,-1.5080387,-1.5659011,-1.7973507,-1.5080387,-1.2476579,-0.43758437,0.25676438,1.1825627,1.2114939,0.95111314,0.95111314,0.31462678,0.66180116,0.77752595,0.89325074,0.71966355,0.40142037,0.51714517,0.48821397,0.66180116,0.37248918,-0.0325476,2 +-0.95573343,-1.3512093,-1.5593545,-1.5593545,-1.6842416,-1.4760964,-1.1222496,-0.20641067,0.60535565,1.1049041,1.1257187,1.0840896,1.0424606,0.50128304,0.459654,0.52209756,0.52209756,0.459654,0.73024277,1.1465332,0.70942825,0.459654,-0.16478163,-0.39374137,1 +-0.93792522,-1.3634106,-1.5052391,-1.5457615,-1.5660228,-1.4039331,-1.2215822,-0.30982768,0.80453891,1.0274122,1.0476734,0.9666286,0.80453891,0.43983712,0.37905349,0.54114317,0.70323286,1.1287183,1.1287183,0.9666286,0.48035954,0.19670259,-0.22878284,-0.532701,1 +-0.18866599,-1.0665404,-1.3437639,-1.6209874,-1.6671913,-1.5285796,-0.97413258,-0.41968558,0.78161627,1.2898593,1.6594907,1.5670828,0.92022802,0.31957709,-0.14246208,-0.050054241,-0.0038503234,-0.14246208,-0.096258158,0.13476142,0.73541235,1.2436554,0.73541235,-0.14246208,2 +-1.0085048,-1.302652,-1.4917466,-1.5757887,-1.5757887,-1.4287151,-1.1555784,-0.18909465,0.651326,1.1975994,1.1765889,1.0085048,0.75637858,0.42021032,0.39919981,0.44122084,0.44122084,0.42021032,1.1555784,1.260631,0.7773891,0.31515774,-0.14707361,-0.54627342,1 +-0.94278376,-1.2707086,-1.560054,-1.617923,-1.5986333,-1.4828952,-1.1742601,-0.2290651,0.6582608,1.1019237,1.1597928,1.082634,0.88973712,0.40749478,0.42678448,0.46536386,0.56181233,0.73541957,1.1597928,0.98618558,0.58110202,0.23388754,-0.2290651,-0.34480326,1 +-0.97818482,-1.3299796,-1.4941504,-1.6114154,-1.6583213,-1.4003385,-1.0016378,-0.29804832,0.71042994,0.99186573,0.92150678,0.87460081,0.64007099,0.42899414,0.26482326,0.40554116,0.42899414,0.49935309,1.3202075,1.5312843,0.8980538,0.38208818,-0.040065512,-0.48567218,1 +-1.0743673,-1.3645502,-1.5510963,-1.5718236,-1.592551,-1.4060049,-1.0743673,-0.39036499,0.56309285,1.2056405,1.2263679,0.97763974,0.97763974,0.50091082,0.5838202,0.5838202,0.60454754,0.16927331,0.33509207,1.2263679,0.87400302,0.52163817,0.024181904,-0.3489103,1 +-0.96145113,-1.267213,-1.5118224,-1.5933589,-1.5933589,-1.5322066,-1.1652924,-0.20723858,0.75081519,1.1992659,1.2604183,1.0361929,0.77119932,0.36351686,0.36351686,0.42466923,0.42466923,0.62851046,1.1381135,1.056577,0.60812633,0.32274861,-0.084933846,-0.43146393,1 +0.44637513,-0.33750315,-0.80783011,-1.0691229,-1.17364,-1.17364,-0.86008866,-0.54653736,-0.96460577,-0.023951837,0.55089224,0.81218498,0.65540934,0.080565265,-0.18072749,-0.54653736,-0.80783011,-0.75557156,-0.49427881,0.34185803,2.327683,2.0663903,1.4915462,0.96896064,2 +1.5222307,0.64286766,-0.076611165,-0.31643745,-0.55626372,-0.31643745,-1.5955109,-1.9152793,-1.1158584,-0.31643745,0.56292556,0.56292556,0.80275184,0.083273018,-0.47632163,-0.39637954,-1.1158584,-0.55626372,-0.47632163,-0.15655326,0.40304138,0.88269393,1.7620569,2.1617674,2 +0.15445788,-0.4365114,-1.0812052,-1.1886541,-1.2423786,-1.0274807,-1.0274807,-1.5647255,-0.97375619,-0.060440039,0.42308028,1.067774,1.0140496,0.3693558,0.04700892,0.1007334,-0.32906244,-0.49023588,-0.22161348,0.20818236,1.1214985,1.8736413,1.8736413,1.3901209,2 +0.72173067,0.10530591,-0.51111885,-0.88097371,-1.0042587,-0.94261619,-1.559041,-1.7439684,-0.88097371,-0.017979051,0.47516076,0.84501562,1.029943,0.35187581,-0.26454895,-0.26454895,-0.32619143,-0.44947638,-0.44947638,-0.141264,0.78337314,0.84501562,2.2011501,2.0778651,2 +-1.1569093,-1.3669382,-1.3669382,-1.5559642,-1.5559642,-1.5349614,-1.0728977,-0.44281099,0.56532784,0.83836544,1.0483944,1.111403,1.111403,0.54432495,0.52332206,0.60733363,0.6703423,0.6703423,1.111403,1.0063886,0.58633073,0.29229025,-0.12776759,-0.50581967,1 +-0.91662145,-1.2836099,-1.5078805,-1.5894335,-1.6098218,-1.4671041,-1.1001157,-0.080703464,0.59210859,1.04065,1.1018147,1.0610382,0.81637925,0.38822615,0.32706141,0.44939088,0.42900263,0.81637925,1.2853089,1.1629794,0.65327332,0.26589668,-0.1418682,-0.69235076,1 +-0.29987073,-0.72074194,-1.1837003,-1.3099616,-1.436223,-1.3099616,-0.8470033,-0.8470033,-1.0574389,-0.17360937,0.45769743,0.54187167,0.45769743,-0.13152225,-0.34195785,-0.25778361,-0.089435131,0.54187167,1.3836141,1.7623982,1.6782239,1.5940497,0.96274288,0.62604592,1 +-0.73408063,-1.3121691,-1.5323933,-1.6700334,-1.6149774,-1.3947532,-1.0093609,-0.48632842,0.6973766,1.3855772,1.4406332,1.2754651,0.97265683,0.53220845,0.72490462,0.72490462,0.77996067,0.39456834,0.17434415,0.1192881,0.064232057,0.66984857,0.14681613,-0.3486883,2 +-0.73793957,-1.1571242,-1.4365806,-1.4715126,-1.5064447,-1.4365806,-0.98246392,-0.91259982,0.37988605,1.1483912,1.3929155,1.2881194,1.1134591,0.86893475,0.9038668,0.93879885,1.008663,0.7641386,0.4148181,0.10042965,-0.28382291,-0.21395881,0.10042965,-0.28382291,2 +-0.18665969,-0.59057905,-1.251538,-1.7288973,-1.3984178,-1.5452976,-1.1413782,-0.076499872,0.54773913,1.245418,1.6493374,1.3188579,0.95165849,-0.03977993,-0.22337964,-0.14993975,-0.33353946,-0.3702594,-0.0030599886,1.5758975,1.3188579,0.73133884,0.033659953,-0.33353946,1 +-0.45496416,-0.88679454,-1.2569349,-1.6270752,-1.6887653,-1.6887653,-1.0101747,-0.88679454,0.34700656,0.96390711,1.3340475,1.3957375,1.5808077,0.84052701,0.59376679,0.59376679,0.59376679,0.40869662,0.28531651,0.10024634,-0.64003433,0.65545684,0.34700656,0.10024634,2 +-0.78366178,-1.1714532,-1.4761464,-1.5038458,-1.6146434,-1.448447,-1.5038458,-0.70056363,0.51820933,1.210694,1.2383934,1.1552952,1.0444977,0.54590871,0.62900687,0.82290257,0.82290257,0.60130749,0.43511117,0.2135161,-0.0080789912,0.73980441,0.43511117,-0.20197469,2 +-1.173104,-1.4537135,-1.4225347,-1.3913559,-1.4225347,-1.4537135,-1.3289982,-0.58070594,0.51055355,1.2588458,1.5082765,1.1653092,0.94705734,0.60409008,0.51055355,0.63526892,0.75998429,0.41701702,0.16758628,0.011692072,0.54173239,0.85352082,0.32348049,0.011692072,2 +-1.1834923,-1.3923439,-1.4758845,-1.6011955,-1.6220807,-1.6011955,-0.93287042,0.02784688,0.570861,0.98856417,0.96767902,0.86325322,0.69617195,0.34112426,0.27846878,0.40377973,0.54997584,0.61263132,1.2809564,1.2600712,0.84236806,0.50820553,0.0069617222,-0.38985629,1 +-0.63849391,-1.0736541,-1.322317,-1.4155656,-1.4155656,-1.4155656,-1.5088142,-0.88715686,0.13857778,1.1021467,1.2264782,1.3197268,1.1021467,0.76023514,0.88456661,1.0088981,1.0710638,0.88456661,0.6048208,0.26290925,-0.20333376,-0.17225089,0.014246307,-0.32766523,2 +-0.073624278,-0.62580632,-0.73624273,-1.2332065,-1.5645157,-1.5645157,-0.84667913,-0.73624273,-0.18406069,-0.23927889,0.64421237,1.1963944,0.47855776,0.42333956,-0.90189733,-0.90189733,-0.79146093,0.9203034,1.4172672,1.4172672,1.7485764,0.9203034,0.9755216,0.25768495,1 +-0.41057879,-1.0114258,-1.2117081,-1.371934,-1.6923857,-1.4119905,-1.1716517,0.47066349,0.71100229,1.3118493,1.4320187,0.91128463,0.59083289,0.15021175,-0.29040939,-0.41057879,-0.33046585,-0.21029645,-0.13018352,1.5922446,1.6723575,0.83117169,0.19026822,-0.21029645,1 +-0.82682528,-1.2016788,-1.6233889,-1.763959,-1.6702456,-1.4828189,-1.1079654,-0.10054664,0.60230365,1.2114406,1.1411555,1.0474422,0.90687211,0.36802022,0.43830525,0.4617336,0.50859028,0.32116354,0.4617336,1.3285823,0.7897304,0.50859028,-0.030261612,-0.28797338,1 +-0.53492435,-0.88826888,-1.3201344,-1.3593949,-1.5556974,-1.3986554,-0.96678989,-0.024537821,0.52510923,1.4281008,1.5851428,1.1532773,0.91771425,0.28954621,-0.14231932,-0.37788234,-0.41714284,-0.33862184,-0.26010083,1.6636638,1.4281008,0.64289073,0.28954621,-0.33862184,1 +-1.0942168,-1.3465079,-1.5529278,-1.5758634,-1.64467,-1.4611856,-1.0483457,-0.47495702,0.48833607,1.1075959,1.1993381,1.0846604,0.92411151,0.46540052,0.41952943,0.58007827,0.60301382,0.44246497,0.48833607,1.1993381,0.87824041,0.46540052,0.052560627,-0.19973042,1 +-0.89592832,-1.147417,-1.5246499,-1.6503943,-1.7132664,-1.3989056,-1.147417,-0.77018399,0.047154129,0.67587576,0.99023657,1.178853,1.0531087,0.80162008,0.61300359,0.67587576,0.55013143,0.55013143,0.29864278,0.17289846,-0.14146237,1.178853,1.1159809,0.48725927,2 +-0.70296509,-0.93133954,-1.2739012,-1.5593693,-1.6735565,-1.8162905,-1.2168076,-0.70296509,0.32471992,1.3809517,1.1811241,1.3238581,1.0383901,0.7243752,0.69582839,0.7243752,0.83856242,0.66728159,0.35326672,0.12489228,0.32471992,0.41036033,0.15343908,-0.38895023,2 +-1.0443849,-1.3250464,-1.5193506,-1.5841186,-1.6272973,-1.5409399,-1.1523316,-0.18081084,0.48845906,1.0497822,1.157729,1.1145503,0.94183545,0.57481647,0.63958452,0.66117387,0.48845906,0.40210166,0.46686971,1.0929609,0.83388868,0.46686971,0.078261385,-0.48306175,1 +-0.80765223,-1.2168058,-1.4469547,-1.523671,-1.5492431,-1.523671,-1.4725268,-0.5519312,0.72667388,1.1102554,1.3148322,1.1613996,0.72667388,0.72667388,0.88010648,0.93125069,0.95682279,0.62438547,0.41980866,0.24080395,-0.040489173,0.061799234,0.39423656,-0.14277759,2 +-0.71559963,-1.1904676,-1.3751385,-1.5334278,-1.5861909,-1.40152,-1.6125724,-0.63645497,0.3396625,0.99920133,1.1311091,1.2366353,1.0519644,0.76176735,0.81453046,0.94643822,0.97281978,0.7881489,0.57709648,0.26051784,-0.029679244,-0.056060799,0.41880716,-0.16158701,2 +-0.87502834,-1.2123887,-1.3810688,-1.4935223,-1.5216356,-1.2967287,-1.5778624,-0.84691498,0.50252632,1.177247,1.177247,1.2897004,1.0647935,0.7274332,0.7274332,0.95234008,0.98045344,0.5868664,0.33384615,0.19327935,0.16516599,0.24950607,0.24950607,-0.17219433,2 +1.8225767,0.73175771,-0.031815555,-0.57722502,-0.46814313,-0.46814313,0.07726634,-0.79538881,-1.3407983,-0.031815555,-0.14089745,-0.031815555,-0.14089745,-0.35906124,-0.79538881,-0.57722502,-0.79538881,-0.79538881,-0.79538881,-0.46814313,-0.14089745,2.1498223,2.2589042,1.7134948,2 +-0.58905468,-0.66346158,-1.1843099,-1.4075306,-1.5563445,-1.519141,-1.2215134,-0.51464777,0.41543856,1.3083214,1.4571352,1.1967111,0.82467655,0.22942129,-0.3286305,-0.14261324,-0.10540978,0.04340403,0.37823511,1.8291698,1.271118,0.75026964,0.11781094,-0.58905468,1 +0.28280384,-0.28712145,-0.59798979,-1.1161037,-1.2197265,-0.96066953,-0.85704675,-0.49436701,-0.28712145,-0.90885814,-0.33893284,-0.23531006,0.23099245,0.075558273,-0.85704675,-0.80523536,-0.49436701,-0.079875895,1.7853342,1.9407683,1.8889569,1.7335228,1.1635975,0.43823801,1 +-1.0267233,-1.284523,-1.4778728,-1.5208394,-1.6067727,-1.5208394,-1.284523,-0.10294087,0.73490828,1.1860578,1.3149577,1.1430912,0.9497414,0.73490828,0.62749172,0.5845251,0.52007517,0.3911753,0.30524205,0.97122471,0.60600841,0.26227543,-0.081457554,-0.42519054,1 +-0.59779462,-1.0988871,-1.3889933,-1.3889933,-1.4417399,-1.2307536,-1.4417399,-0.59779462,0.40439047,1.353829,1.4329488,1.4593221,1.2483358,0.85273642,0.905483,0.74724325,0.85273642,0.66812338,0.37801718,-0.043955499,-0.38680829,-0.41318158,-0.017582207,-0.25494184,2 +-1.0567083,-1.3842111,-1.5684314,-1.5889004,-1.6503071,-1.4660868,-1.0976461,-0.17654449,0.51939899,1.1334668,1.0925289,1.1539357,0.90830858,0.51939899,0.56033684,0.72408825,0.66268147,0.51939899,0.47846114,0.92877751,0.78549503,0.47846114,-0.012793088,-0.46310947,2 +-0.97649311,-1.4036122,-1.4593233,-1.6264569,-1.5521753,-1.3850418,-1.1250563,-0.2708182,0.49056787,1.1033908,1.2705243,1.2519539,0.95482768,0.47199749,0.4534271,0.60199023,0.6577014,0.58341983,1.0105388,0.95482768,0.49056787,0.212012,-0.19653663,-0.5122333,1 +-1.0193352,-1.3401751,-1.5206476,-1.5407001,-1.6008576,-1.4805426,-1.1195977,-0.47791782,0.56481197,1.0059669,1.1463343,1.0661244,0.90570439,0.54475947,0.58486446,0.76533692,0.82549441,0.62496945,0.66507444,1.0861769,0.68512694,0.20386704,-0.13702539,-0.43781283,1 +-0.77293033,-1.1715763,-1.3576111,-1.4639167,-1.5436459,-1.3841875,-1.7031043,-0.66662473,0.47616051,1.1139941,1.1937233,1.1671469,1.0342649,0.63561891,0.76850092,1.0342649,1.0342649,0.71534812,0.3432785,0.47616051,0.1040909,-0.1085203,0.2103965,-0.1350967,2 +-0.91741201,-1.1095881,-1.3841254,-1.4939403,-1.4664866,-1.4115791,-1.5488477,-0.80759711,0.42782057,1.1141637,1.1965249,1.2788861,1.08671,0.70235783,0.89453392,0.83962647,0.94944137,0.78471901,0.51018175,0.20819076,-0.066346499,-0.066346499,0.29055194,-0.011439048,2 +-0.42855784,-0.93336218,-1.2804152,-1.6905687,-1.5328174,-1.5328174,-1.0595633,-0.27080649,0.77035247,1.3382573,1.3698076,1.3698076,0.80190274,0.13934704,-0.20770594,-0.27080649,-0.11305513,0.17089731,1.180506,1.3382573,0.99120437,0.39174921,-0.018404309,-0.52320866,1 +-1.0335555,-1.2812278,-1.4717449,-1.6432104,-1.6622621,-1.3574346,-1.0145038,-0.27148693,0.75730564,1.0049779,1.0430814,0.89066763,0.87161591,0.50963336,0.41437478,0.58584021,0.7001505,1.0430814,1.0811848,1.0240296,0.54773678,0.24290936,-0.29053864,-0.69062462,1 +-0.98579752,-1.0502638,-1.4585505,-1.6734383,-1.6519495,-1.5874832,-1.1791965,-0.1692241,0.56139422,1.2060574,1.2705238,1.1415911,1.0126585,0.4969279,0.45395035,0.4969279,0.582883,0.45395035,0.51841668,1.1415911,0.69032688,0.34650648,-0.23369042,-0.38411184,1 +0.97395041,0.35062215,-0.39737177,-0.7090359,-0.77136873,-1.2700313,-2.1426909,-1.4570298,-0.77136873,0.038958012,-0.023374815,0.53762063,0.53762063,0.038958012,-0.33503894,-0.27270612,-0.39737177,-0.27270612,-0.085707642,0.10129084,1.0362832,1.3479474,2.1582741,1.7842772,2 +-0.79504357,-1.2624466,-1.5098953,-1.6198725,-1.6473668,-1.4274124,-1.0424922,-0.71256066,0.60716582,1.2945233,1.2395347,1.1845461,1.0195803,0.60716582,0.5796715,0.66215442,0.85461453,0.79962593,0.5246829,0.4147057,-0.025203122,0.5796715,0.11226839,-0.43761765,2 +-0.96859644,-1.2707769,-1.4866201,-1.5513731,-1.5729574,-1.4218672,-1.1196867,-0.51532569,0.56389039,1.2330044,1.340926,1.2330044,1.0603298,0.43438446,0.45596878,0.62864336,0.54230607,0.52072175,0.3696315,1.0171612,0.77973361,0.34804717,-0.10522358,-0.51532569,1 +-1.0304051,-1.4422239,-1.2363145,-1.6275424,-1.5657696,-1.4628149,-1.0921779,-0.062630775,0.41096089,1.069871,1.090462,0.94632539,0.74041597,0.32859712,0.34918806,0.39036995,0.53450654,0.96691633,1.4199171,1.1522348,0.6580522,0.28741524,-0.14499455,-0.68035903,1 +0.54977287,-0.20420135,-0.68889907,-0.95817558,-1.1197415,-1.1197415,-1.8198604,-1.7660051,-1.0658862,0.11893046,0.87290469,0.87290469,0.98061529,0.65748348,0.28049636,-0.15034605,-0.20420135,-0.47347786,-0.25805666,0.011219857,0.92675999,1.465313,1.6807342,1.4114577,2 +-0.89646406,-1.2156008,-1.5347376,-1.6677113,-1.6145218,-1.5347376,-1.1624114,0.0077567951,0.75240927,1.2843039,1.2577092,1.1513302,0.96516712,0.4332725,0.38008303,0.59284088,0.45986723,0.22051465,0.30029884,0.80559873,0.99176185,0.56624615,-0.072027399,-0.47094837,1 +-0.76047074,-1.1517696,-1.3474191,-1.4592187,-1.5151186,-1.3194691,-1.4871687,-0.5648213,0.69292511,1.2519235,1.2798734,1.3078233,1.1121739,0.80472479,0.91652447,0.88857455,0.86062463,0.66497519,0.38547599,0.21777646,-0.0058228981,-0.11762258,-0.1455725,-0.50892146,2 +-0.74679732,-1.1036132,-1.3506396,-1.4878764,-1.5427712,-1.3506396,-1.5976659,-0.63700782,0.37854504,1.3117558,1.3117558,1.256861,1.0098347,0.76280829,0.79025567,0.98238729,0.92749254,0.68046617,0.48833454,0.18641342,-0.14295508,-0.1155077,0.13151867,-0.14295508,2 +-0.80745825,-1.120942,-1.3774288,-1.4914229,-1.4914229,-1.2919332,-1.2634347,-0.60796856,0.24698724,1.2159371,1.3014327,1.5579194,1.3299312,0.93095188,0.78845924,0.75996072,0.93095188,0.64596661,0.4179784,0.07599608,-0.1234936,-0.23748772,-0.15199213,-0.23748772,2 +-0.97955497,-1.2933114,-1.5622454,-1.6070678,-1.6518901,-1.4501896,-1.1364332,-0.28480864,0.70128293,1.2167399,1.1719175,1.0822728,0.85816114,0.52199356,0.4099377,0.45476004,0.61163824,0.4099377,0.43234887,1.0374505,1.0150393,0.47717121,-0.015874578,-0.41927568,1 +-0.39884783,-1.2805114,-1.4694394,-1.5324153,-1.5953913,-1.4064634,-0.96563158,-1.0915835,0.10495995,1.2385275,1.2385275,1.3644794,1.3015034,0.86067162,0.60876773,0.60876773,0.60876773,0.67174371,0.2309119,-0.083967968,-0.33587185,0.79769565,0.54579176,-0.020991996,2 +0.037115773,-0.64406769,-0.90606133,-1.168055,-1.2204537,-1.168055,-0.59166896,-0.64406769,-0.95846006,-0.2772766,0.61350177,0.50870431,0.40390686,-0.22487787,-0.015282954,-0.17247914,-0.38207405,-0.48687151,-0.32967533,0.35150813,2.1854636,2.290261,1.8186725,0.98029286,2 +-0.59936329,-1.0260286,-1.3307896,-1.6050745,-1.6050745,-1.7879311,-1.0565047,-0.35555449,0.89396558,1.0768221,1.1682504,1.2292026,0.83301338,0.31491969,0.010158699,0.0406348,0.1930153,0.43682409,1.2596787,1.2292026,0.86348948,0.40634799,0.010158699,-0.59936329,1 +-1.0020976,-1.339995,-1.4990055,-1.4990055,-1.5785108,-1.5188818,-1.1213555,-0.2467976,0.40912084,1.045163,1.1246682,1.0054103,0.78677085,0.46874979,0.44887348,0.58800769,0.64763664,0.92590507,1.1644209,1.045163,0.70726559,0.25011031,-0.2467976,-0.56481867,1 +-0.64768794,-1.0505694,-1.3191571,-1.4198775,-1.6548917,-1.5877447,-1.1177163,-0.211233,0.99741145,1.2995726,1.4674398,1.0309849,0.89669108,0.42666268,-0.17765954,-0.14408609,-0.11051263,0.057354658,0.39308923,1.6017337,1.0309849,0.52738305,0.090928115,-0.37910029,1 +-0.29284315,-1.0045632,-1.2269757,-1.5383533,-1.4493883,-1.3604233,-1.1380107,0.018534375,0.2409469,1.219562,1.397492,1.130597,0.81921946,0.018534375,-0.20387815,-0.070430634,-0.33732566,-0.42629067,-0.42629067,0.46335942,1.8867996,1.664387,0.50784193,0.10749939,2 +0.1563451,-0.49881532,-1.0348557,-1.1539758,-1.451776,-1.451776,-1.7495761,-1.0944157,0.1563451,1.6453461,1.8835862,1.6453461,1.4071059,0.57326538,0.037225032,0.27546518,0.4541453,0.09678507,0.09678507,0.09678507,-0.3201352,-0.20101512,0.27546518,0.1563451,2 +-0.95838417,-1.3361051,-1.4752655,-1.5746657,-1.6343059,-1.4553854,-1.0776645,-0.18306214,0.71154018,1.1886614,1.2085415,1.1489013,0.91034069,0.3338192,0.4133394,0.4133394,0.53261971,0.53261971,1.1489013,1.029621,0.57237982,0.25429899,-0.14330204,-0.56078313,1 +-1.1398499,-1.3177777,-1.4512235,-1.6513923,-1.5846693,-1.3622596,-0.98416305,-0.094524132,0.50598214,1.1064884,1.0397655,0.90631966,0.75063285,0.43925922,0.26133143,0.41701825,0.3725363,0.55046409,1.440103,1.3066572,0.83959674,0.35029533,-0.11676511,-0.58382555,1 +-0.8869813,-1.3924905,-1.5329097,-1.5329097,-1.7294965,-1.4486581,-0.99931667,-0.38147217,0.65762994,1.4158937,1.2754744,1.2473906,0.9665522,0.60146226,0.6295461,0.76996531,0.76996531,0.37679153,0.20828849,0.26445617,0.20828849,0.65762994,0.15212081,-0.29722065,2 +0.99357049,0.010918354,-0.44765265,-0.64418307,-0.77520335,-0.84071349,-1.8888757,-1.7578554,-1.102754,-0.25112222,0.4039792,0.53499948,0.66601979,0.14193864,-0.25112222,-0.18561207,-0.18561207,-0.12010192,-0.18561207,-0.054591788,0.53499948,0.99357049,2.3692834,2.0417327,2 +-0.87992473,-1.3649358,-1.5266062,-1.6276502,-1.5670238,-1.5063974,-1.1830567,-0.17261681,0.99949345,1.039911,1.0197022,0.91865826,0.77719667,0.43364711,0.45385591,0.45385591,0.4942735,0.61552629,1.2217902,1.0601198,0.67615268,0.33260312,-0.2130344,-0.45553999,1 +-1.0182047,-1.3705392,-1.5215397,-1.59704,-1.6725402,-1.4712062,-0.96787124,-0.5400365,0.54213371,1.322303,1.1713025,1.1713025,0.8944682,0.59246721,0.69313421,0.64280071,0.76863446,0.69313421,0.39113322,0.49180022,0.038798726,0.71830096,0.34079972,-0.31353576,2 +-0.98500015,-1.3499402,-1.5121358,-1.613508,-1.5729591,-1.4513124,-1.0255491,-0.072650096,0.61668106,1.0829933,1.1032678,0.98162108,0.73832773,0.39366216,0.33283882,0.4544855,0.51530884,0.83969996,1.2857378,1.1843656,0.61668106,0.27201548,-0.19429677,-0.64033459,1 +-0.60919748,-1.1016855,-1.4710516,-1.6249541,-1.6557346,-1.4710516,-1.1016855,-0.17827043,0.25265663,0.99138872,1.2068523,1.1760718,1.0221692,0.37577864,0.22187612,-0.30139244,-0.024367908,0.89904721,1.2376328,1.3299743,0.8374862,0.49890066,-0.085928916,-0.42451446,1 +-0.78041664,-1.3014562,-1.4385719,-1.5756875,-1.6305338,-1.465995,-1.2740331,-0.67072411,0.70043251,1.2214721,1.3037415,1.1940489,1.0843564,0.70043251,0.67300938,0.81012505,0.81012505,0.56331685,0.42620119,0.28908553,0.097123596,0.097123596,0.31650866,-0.1496846,2 +-0.35788607,-0.83711548,-1.3163449,-1.3900725,-1.5006639,-1.3532087,-1.1688897,-0.68966028,-0.76338788,0.010751939,0.60057276,0.71116416,0.67430036,0.15820715,-0.099839463,-0.13670326,-0.24729467,0.96921076,1.4484402,1.7433506,1.5590316,1.2641212,0.67430036,0.04761574,1 +-0.75455421,-1.1771045,-1.3581975,-1.448744,-1.5091084,-1.3280154,-1.267651,-0.66400771,0.63382552,1.086558,1.3280154,1.267651,1.3280154,0.81491853,0.72437202,0.96582938,0.99601154,0.75455419,0.54327902,0.06036433,-0.30182169,-0.36218602,-0.030182174,-0.30182169,2 +0.050084569,-0.55093018,-1.031742,-1.1519449,-1.2721479,-0.91153903,-0.43072723,-1.8731626,-1.1519449,0.29049047,0.53089637,0.89150522,0.65109932,0.29049047,-1.031742,0.41069342,0.53089637,0.050084569,0.41069342,0.050084569,0.050084569,2.2137376,1.7329258,1.252114,2 +-0.71029345,-1.2259513,-1.5292795,-1.6809436,-1.6202779,-1.4686139,-1.1956185,-0.2553012,0.44235357,1.2310068,1.3826709,1.1400083,1.0186771,0.62435047,0.59401765,0.77601455,0.74568173,0.44235357,-0.10363712,-0.042971488,0.80634736,0.80634736,0.19969104,-0.37663247,2 +-1.0686693,-1.2622396,-1.5042024,-1.6251838,-1.6251838,-1.552595,-1.2380433,-0.028228993,0.60087443,1.2299778,1.157389,1.2299778,0.91542614,0.67346328,0.67346328,0.55248186,0.62507071,0.26212643,0.14114501,0.310519,0.93962242,0.649267,0.21373386,-0.27019184,2 +-0.25090847,-0.9283613,-1.2294515,-1.3799965,-1.5305416,-1.304724,-1.0036338,-1.3799965,-0.025090858,1.1792698,1.4050874,1.5556325,1.5556325,0.87817959,0.72763452,0.35127183,0.42654436,0.35127183,-0.025090858,-0.17563593,-0.7025437,0.95345213,0.57708944,-0.025090858,2 +-0.94885127,-1.4753815,-1.659667,-1.607014,-1.607014,-1.554361,-1.0541573,-0.1853825,0.60441278,1.1046165,1.2099225,1.0519634,0.84135136,0.57808627,0.52543325,0.6570658,0.76237183,0.36747419,0.18318863,0.42012721,1.0519634,0.68339231,0.15686212,-0.10640298,2 +0.29155834,-0.52795699,-1.0322741,-1.4735516,-1.410512,-1.1583534,-1.9778687,-1.1583534,0.039399773,1.4262719,1.930589,1.5523511,1.1110737,0.48067726,0.2285187,0.16547906,0.16547906,0.16547906,0.039399773,0.16547906,0.039399773,-0.27579843,0.92195472,0.29155834,2 +-0.98888442,-1.2951196,-1.5794809,-1.513859,-1.5794809,-1.4919851,-1.163876,-0.24517042,0.65166117,1.2641315,1.1547618,1.0453921,0.89227453,0.58603935,0.38917388,0.65166117,0.76103088,0.56416541,0.52041752,1.0235182,0.73915694,0.36729994,-0.17954859,-0.57327953,1 +-0.76694875,-1.1731671,-1.4270536,-1.3762763,-1.5793855,-1.4778309,-1.5793855,-0.71617145,0.37554042,0.88331338,1.1118112,1.3656977,1.0610339,0.78175879,0.75637014,0.88331338,1.0356453,0.78175879,0.6294269,0.37554042,0.17243124,-0.13223254,0.14704259,-0.13223254,2 +-0.91447083,-1.1895762,-1.4646817,-1.4952489,-1.5869507,-1.4952489,-0.9450381,-0.91447083,0.33878723,1.102969,1.2558053,1.2252381,1.0112672,0.82786354,0.91956536,1.0112672,1.0418344,0.73616173,0.46105631,0.12481634,-0.02802001,-0.05858728,0.15538361,-0.11972182,2 +-1.0283851,-1.1060805,-1.5981514,-1.5981514,-1.6499484,-1.4427606,-1.131979,-0.43272026,0.47372619,0.68091395,0.93989865,0.83630477,0.78450783,0.47372619,0.24063996,0.42192925,0.37013231,1.1988833,1.3801726,1.3024772,0.83630477,0.21474149,0.085249138,-0.25143097,1 +-0.0058191939,-0.65756846,-1.0765501,-1.1231036,-1.0765501,-1.1696571,-0.93688957,-0.47135438,-0.79722901,0.087287843,0.7390371,0.92525118,0.92525118,0.2269484,-0.28514031,-0.61101494,-0.70412197,-0.84378253,-0.47135438,1.623554,2.0425356,1.716661,1.1114652,0.83214414,1 +-0.92025113,-1.278254,-1.5261022,-1.636257,-1.6913343,-1.3333314,-1.0304059,-0.56224819,0.62191535,1.4480759,1.3929986,1.0349956,1.0349956,0.48422192,0.67699273,0.70453141,0.59437667,0.31898979,0.18129635,0.23637373,0.071141608,0.86976353,0.59437667,-0.28686132,2 +-0.81772966,-1.1448215,-1.3827065,-1.4421777,-1.4124421,-1.3232352,-1.4719133,-0.69878716,0.37169529,1.1448215,1.263764,1.2934996,1.1150859,0.75825839,0.90693651,0.84746526,1.025879,0.87720089,0.66905152,0.2527528,-0.28248843,-0.19328156,-0.044603443,-0.31222405,2 +-1.1411425,-1.4225803,-1.5281195,-1.5632992,-1.5281195,-1.4225803,-1.070783,-0.26164924,0.47712508,1.1103602,1.1279501,1.1103602,0.98723115,0.5650744,0.58266427,0.72338318,0.72338318,0.67061359,0.93446156,0.89928183,0.47712508,0.24845684,-0.2792391,-0.41995802,1 +-0.81554657,-1.25913,-1.5086456,-1.6472654,-1.6749894,-1.4809217,-1.0927862,-0.011551649,0.5429276,1.4300944,1.4855423,1.2637506,1.014235,0.43203175,0.57065156,0.5429276,0.51520364,0.34885986,0.23796401,0.26568797,0.73699534,0.5429276,0.043896278,-0.48285902,2 +-0.82567084,-1.244668,-1.5897245,-1.688312,-1.5897245,-1.5157838,-1.1707273,0.012323447,0.89961152,1.022846,1.244668,1.2200211,0.85031774,0.43132059,0.4066737,0.4066737,0.4066737,0.20949857,0.25879235,1.1460804,0.89961152,0.60384883,0.1355579,-0.52990815,1 +-0.32721977,-0.75460886,-1.181998,-1.4491161,-1.3956925,-1.2354216,-0.91487977,-0.32721977,0.15359295,1.8631493,1.4891839,1.6494548,1.0083711,0.26044023,-0.38064341,-0.2203725,-0.38064341,-0.54091432,-0.43406704,-0.32721977,1.4891839,1.168642,0.58098204,0.20701659,2 +-0.9038307,-1.2475054,-1.3890185,-1.6316124,-1.6922608,-1.3485862,-1.1666407,-0.27712982,0.9964881,1.2188658,1.2188658,0.9964881,0.77411037,0.43043569,0.36978722,0.39000338,0.43043569,0.59216495,1.117785,1.117785,0.59216495,0.26870644,-0.25691367,-0.60058834,1 +-1.0005715,-1.207141,-1.4911742,-1.4911742,-1.4911742,-1.3878894,-1.336247,-0.58743229,0.29048849,1.0909456,1.2458728,1.271694,0.96183967,0.80691248,0.83273368,0.96183967,1.0393033,0.88437608,0.47123688,0.21302489,-0.071008306,-0.071008306,0.16138249,-0.096829504,2 +-0.15342527,-0.76712637,-1.2392041,-1.3336197,-1.5696586,-1.3336197,-0.95595748,-0.9087497,0.60189916,1.5460547,1.687678,1.6404702,0.97956138,0.27144472,0.035405834,-0.24784083,-0.43667194,-0.34225638,-0.29504861,0.035405834,0.88514582,1.5460547,0.36586027,-0.011801943,2 +-1.0616414,-1.3878356,-1.5328108,-1.6052984,-1.4784451,-1.4603232,-1.0616414,-0.24615585,0.69618305,1.0223773,1.1311087,0.98613348,0.98613348,0.49684213,0.62369545,0.53308593,0.73242686,1.076743,1.0042554,0.78679256,0.47872022,-0.02869303,-0.19179015,-0.49986248,1 +0.57648629,-0.17924362,-0.76057433,-0.93497354,-1.0512397,-1.2256389,-1.1093728,-1.9232358,-0.87684047,0.1695548,0.69275243,1.0415508,0.92528472,0.40208708,-0.29550977,-0.29550977,-0.52804205,-0.64430819,-0.41177591,0.75088551,1.2159501,2.029813,1.4484823,0.98341779,2 +-0.34867646,-1.0734842,-1.3699965,-1.5017797,-1.6335629,-1.5347255,-1.0405384,-0.15100161,0.37613129,1.1997765,1.4962887,1.0679932,0.67264356,0.24434807,-0.18394742,-0.24983904,-0.11805581,-0.052164192,1.2656681,1.4962887,1.2656681,0.50791452,0.079619035,-0.41456807,1 +-0.77112208,-1.1307485,-1.4073842,-1.4627114,-1.5733657,-1.4350478,-1.6563564,-0.74345851,0.50140225,1.2483187,1.1376644,1.165328,1.0546737,0.72271083,0.72271083,0.91635583,0.9440194,0.69504725,0.4460751,0.28009367,0.031121517,0.11411224,0.22476652,-0.024205628,2 +-0.75044786,-1.0592036,-1.2993469,-1.6081026,-1.676715,-1.5394902,-1.1278159,-0.68183549,0.0042882816,0.0042882816,0.65610585,0.69041204,0.69041204,0.34735016,0.0042882816,0.10720684,0.38165635,1.1020863,1.1706987,1.6852915,1.2736172,1.0334739,0.58749348,0.0042882816,1 +-1.1518389,-1.4171696,-1.5830012,-1.5166686,-1.5332517,-1.4005864,-1.0357568,-0.32268074,0.4401448,0.9044734,1.0205556,1.0039724,0.97080606,0.62255961,0.55622695,0.78839125,0.85472391,1.0703051,0.92105656,0.85472391,0.50647746,0.17481419,-0.22318175,-0.50509554,1 +-0.68230884,-1.1271418,-1.4329644,-1.5441726,-1.5163706,-1.4329644,-1.6275788,-0.71011091,0.56878377,1.3472414,1.2638352,1.2360332,0.93021053,0.70779406,0.70779406,0.87460641,0.87460641,0.45757554,0.40197142,0.17955496,-0.070663568,0.37416937,0.31856525,-0.098465628,2 +-0.73552071,-0.9331233,-1.394196,-1.5259311,-1.5259311,-1.394196,-0.99899082,-1.1307259,-0.4720506,0.64769735,1.5698427,1.5039752,1.4381077,0.64769735,0.45009477,0.45009477,0.77943241,0.71356488,0.38422725,-0.010977912,0.2524922,0.97703499,0.45009477,-0.14271297,2 +-1.1095608,-1.335757,-1.5002633,-1.6030797,-1.5825164,-1.5208266,-1.1506874,-0.12252293,0.67944534,0.9467681,1.1112744,1.0907111,0.88507823,0.61775547,0.47381245,0.65888205,0.63831876,0.61775547,0.57662889,1.1112744,0.78226178,0.370996,-0.10195964,-0.53378871,1 +-0.83518872,-1.2801023,-1.4440179,-1.7250159,-1.6547664,-1.6079334,-1.1864363,-0.085860527,0.61663466,1.1552143,1.1552143,1.1317978,0.82738321,0.4058861,0.42930261,0.45271911,0.56980164,0.3824696,0.61663466,1.2488803,0.8039667,0.3824696,-0.062444021,-0.29660908,1 +-1.0760003,-1.3437133,-1.5496464,-1.6114263,-1.6526129,-1.4878664,-1.0965936,-0.10811486,0.55087097,1.1686702,1.1686702,1.086297,0.46849774,0.46849774,0.50968435,0.57146427,0.59205758,0.57146427,0.71561742,1.2716367,0.75680404,0.3655312,0.015444976,-0.35523455,1 +-0.91482103,-1.3162968,-1.5421269,-1.5672191,-1.6174036,-1.4668502,-1.0402822,-0.51334529,0.69108195,1.2932956,1.2682033,1.3183878,1.1678344,0.66598971,0.61580524,0.69108195,0.69108195,0.46525184,0.23942173,0.31469844,0.18923727,0.59071301,0.063776095,-0.28751518,2 +-0.74071078,-1.1198424,-1.5621625,-1.6674769,-1.6674769,-1.5200368,-1.2040938,-0.19307627,0.41774684,1.0917585,1.2391986,1.17601,1.0706957,0.54412403,0.52306117,0.62837549,0.5651869,0.37562111,0.5019983,1.2602615,0.64943836,0.24924391,-0.19307627,-0.42476779,1 +-0.9732068,-1.375913,-1.5369955,-1.6175368,-1.6443839,-1.5101484,-1.1879834,-0.060405943,0.79870073,1.2819482,1.1208657,1.0403245,0.74500657,0.47653573,0.50338282,0.61077115,0.6913124,0.3691474,0.26175906,0.55707698,1.0940187,0.63761823,0.10067656,-0.38257095,1 +-1.0527313,-1.3426273,-1.5210248,-1.6325232,-1.5656242,-1.4987251,-1.1196303,-0.58443775,0.44134807,1.1103388,1.2664366,1.0657394,1.02114,0.64204529,0.66434499,0.66434499,0.82044283,0.6197456,0.44134807,0.50824715,0.55284653,0.66434499,0.062253311,-0.22764268,2 +-0.29671594,-0.79984296,-0.95465128,-1.2642679,-1.4190762,-1.4964804,-1.0320554,-0.64503465,-0.99335336,-0.14190762,0.32251732,0.3612194,0.59343188,0.24511317,-0.33541802,-0.29671594,-0.33541802,0.94175059,1.4448776,1.7931963,1.8318984,1.3287714,0.78694227,0.3612194,1 +-0.84284933,-1.1722124,-1.5839163,-1.693704,-1.7485979,-1.5564694,-1.1173186,0.28247461,0.74907234,1.3254578,1.3803516,1.243117,0.88630696,0.52949693,0.44715616,0.74907234,0.63928463,0.25502768,0.20013383,0.062899202,0.36481538,0.63928463,0.1726869,-0.21157005,1 +-1.0916509,-1.0542763,-1.5401466,-1.6148959,-1.6335832,-1.4653973,-1.1103382,-0.23203421,0.85183031,1.0947655,1.0573908,1.0760781,0.83314299,0.47808392,0.38464733,0.47808392,0.49677124,0.57152052,1.1882021,1.1508274,0.59020784,0.27252341,-0.19465957,-0.58709327,1 +-1.0025835,-1.1982095,-1.4916486,-1.5405551,-1.7117279,-1.4182888,-1.149303,-0.36679886,0.56242489,1.0025835,1.3204758,0.90477049,0.88031723,0.24453256,0.31789233,0.46461186,0.53797163,0.70914442,1.2471161,1.1982095,0.66023791,0.36679884,-0.14671956,-0.39125212,1 +-0.67615274,-1.0994831,-1.2123712,-1.2970373,-1.2970373,-1.4381474,-1.2405932,-0.90192895,0.39628429,1.186501,1.4122772,1.3276112,1.186501,0.76317064,0.79139267,0.98894685,0.96072483,1.0453909,0.48095037,0.33984024,-0.36571044,-0.45037652,-0.28104435,-0.61970868,2 +0.38587292,-0.085022848,-1.0268144,-1.2361014,-1.2884231,-1.1837796,-0.97449262,-1.3930666,-0.60824036,0.17658591,0.38587292,0.75212517,0.54283817,0.019620655,-0.1373446,-0.55591861,-0.55591861,-0.55591861,0.071942406,1.7985602,2.1124907,1.5892732,1.1706992,0.59515992,2 +-0.18635031,-0.52389046,-0.98800818,-1.2411633,-1.2411633,-1.3677408,-0.94581566,-1.1567782,-0.90362314,0.024612298,0.36215245,0.40434497,0.48873001,0.31995993,-0.35512038,-0.52389046,-0.31292786,-0.14415779,1.3325804,1.8388907,1.8388907,1.543543,1.1216178,0.61530757,1 +-0.050946326,-0.89743907,-1.1796033,-1.0855485,-1.1796033,-0.99149383,-1.4617675,-1.0855485,0.32527267,1.2658201,1.1717654,1.1717654,2.0182581,0.98365593,0.23121792,-0.050946326,0.32527267,-0.14500107,-0.42716532,-0.61527483,-0.99149383,1.3598749,0.70149168,0.60743693,2 +-0.80967144,-1.4768685,-1.5602682,-1.7826672,-1.5324683,-1.4490687,-1.2266696,-0.0034749855,0.63592221,1.2197197,1.3587191,1.1641199,0.94172087,0.49692281,0.66372208,0.63592221,0.69152196,0.41352318,0.10772453,0.24672392,0.49692281,0.71932184,0.16332428,-0.1146745,1 +-1.070605,-1.4154979,-1.5663885,-1.6526117,-1.6526117,-1.5232769,-0.96282593,-0.10059375,0.65385941,1.1280871,1.1280871,1.0634197,0.78319424,0.35207816,0.37363396,0.65385941,0.5676362,0.41674557,0.63230361,1.0634197,0.89097327,0.5460804,0.071852693,-0.38081921,1 +-0.71251409,-1.0615006,-1.4686515,-1.3523227,-1.7013091,-1.4104871,-0.94517175,-1.1778294,0.39260981,1.2069116,1.3232404,1.265076,1.2069116,0.97425397,0.62526748,0.79976072,0.62526748,0.45077423,-0.13086992,0.10178774,-0.3635276,0.97425397,0.3344454,0.04362332,2 +-0.89036856,-1.2705972,-1.5367572,-1.4987343,-1.6128029,-1.5177457,-1.30862,-0.33903715,0.83967144,1.1628657,0.95374001,0.80164858,0.68758001,0.30735143,0.40240858,0.53548858,0.80164858,1.08682,1.1248429,0.99176287,0.49746572,0.28834,-0.034854281,-0.47211714,1 +-0.8887014,-1.2778249,-1.4480665,-1.6426283,-1.5453474,-1.5210271,-1.1562238,-0.47525765,0.54619162,0.95963537,0.93531515,0.86235449,0.66779272,0.37595008,0.61915228,0.2786692,0.57051184,0.49755119,1.3973994,1.3244387,0.91099493,0.5218714,-0.013173457,-0.49957787,1 +-0.506963,-1.1074179,-1.4550496,-1.5182554,-1.5498583,-1.4234467,-1.2022265,-0.19093412,0.50432941,1.1679901,1.3260045,1.1363872,0.85196118,0.21990342,-0.19093412,-0.2541399,-0.15933124,0.59913807,1.2627987,1.4524161,1.1363872,0.37791786,-0.19093412,-0.28574279,1 +-0.87002909,-1.1860043,-1.6073046,-1.6073046,-1.6336359,-1.5809734,-1.159673,-0.63304765,0.57819082,1.0521537,1.2364726,1.0521537,0.89416606,0.39387192,0.47286573,0.63085336,0.94682861,0.81517225,0.65718463,0.6835159,0.44653446,0.63085336,-0.0010971484,-0.21174732,2 +-0.79708701,-1.303315,-1.5697507,-1.6763251,-1.5431072,-1.5164636,-1.2233842,-0.21092832,0.61502258,1.3343991,1.4942606,1.2278248,0.98803266,0.53509185,0.48180469,0.64166616,0.61502258,0.50844827,0.13543819,0.2420125,0.21536892,0.72159689,0.2420125,-0.15764116,2 +-0.45333752,-0.93824449,-1.2110046,-1.5746849,-1.4837648,-1.4231514,-1.5746849,-0.81701775,0.39524968,1.3044503,1.3044503,1.3044503,1.0923035,0.66800985,0.7589299,1.0013834,1.0013834,0.84984996,0.33463631,0.1527962,-0.2714974,-0.42303083,-0.029043918,0.031569453,2 +-0.20468052,-0.83852989,-1.4327636,-1.4327636,-1.5119948,-1.4723792,-1.3931481,-0.12544935,0.46878442,1.2610961,1.4987896,1.3403273,0.86494027,-0.0066025993,-0.48198961,-0.046218184,-0.046218184,-0.16506494,0.27070649,1.6572519,1.0234026,0.86494027,0.31032208,-0.40275844,1 +-0.77650741,-1.384463,-1.6182921,-1.5481434,-1.4078459,-1.5247605,-1.127251,-0.54267833,0.60308416,1.1175082,1.0005936,1.164274,0.81353034,0.88367906,0.41602091,0.57970126,0.60308416,0.55631835,0.64984998,1.2344227,0.74338161,0.36925509,-0.26208343,-0.54267833,1 +-0.86003056,-1.1956523,-1.6511389,-1.6990848,-1.531274,-1.507301,-1.0757874,-0.47646292,0.69821298,1.2735644,1.0817806,0.96191574,0.77013191,0.48245619,0.29067237,0.48245619,0.60232108,0.55437512,0.50642917,1.3454834,0.8899968,0.45848321,-0.04494932,-0.35659803,1 +-0.67079839,-1.1687106,-1.5559756,-1.5006521,-1.6112992,-1.4453285,-1.0027399,-1.113387,0.3803496,0.82293823,1.2655269,1.3208504,1.0995561,0.71229107,0.93358538,0.98890896,0.65696749,0.26970244,0.26970244,0.10373171,-0.28353334,0.98890896,0.43567318,0.10373171,2 +-0.84848886,-1.359114,-1.522514,-1.522514,-1.522514,-1.522514,-1.1957139,-0.27658865,0.64253667,1.2348619,1.2144369,1.0714618,0.80593672,0.51998663,0.51998663,0.56083664,0.56083664,0.56083664,1.0918868,1.0714618,0.56083664,0.091061474,-0.25616365,-0.48083872,1 +0.19842461,-0.30285862,-1.0547835,-1.0547835,-1.3054251,-1.2051684,-0.85427017,-0.60362856,-1.0046551,-0.15247365,0.44906623,0.95034946,0.90022113,0.3989379,-0.25273029,-0.15247365,-0.50337191,-0.55350023,-0.60362856,-0.15247365,1.8526593,2.1033009,1.7524026,1.1508627,1 +-0.84912405,-1.3155443,-1.5666937,-1.6025722,-1.6384506,-1.4231797,-1.1361519,-0.59797468,0.40662278,1.0524354,1.2677063,1.3035848,1.1959494,0.65777215,0.65777215,0.65777215,0.87304304,0.62189367,0.3707443,0.11959494,0.011959498,0.72952911,0.15547342,0.047837979,2 +-0.98032599,-1.2850342,-1.5026829,-1.6332721,-1.655037,-1.3938585,-1.1109152,-0.52326374,0.71733383,1.2396907,1.3702799,1.2396907,1.0655717,0.60850948,0.69556896,0.80439331,0.71733383,0.41262565,0.2385067,0.2385067,0.21674183,0.54321487,0.10791748,-0.13149609,2 +-0.78938848,-1.2900299,-1.4481271,-1.632574,-1.6589235,-1.5008262,-1.1846317,-0.6839903,0.42269064,1.0550797,1.3449247,1.213177,1.1341284,0.6861861,0.50173928,0.6861861,0.79158429,0.52808883,0.44904019,0.50173928,0.44904019,0.58078792,0.15919518,-0.31509664,2 +-1.1004187,-1.3755234,-1.55059,-1.6506281,-1.6256186,-1.5755995,-1.2004568,-0.20007613,0.47518081,1.0003807,1.1504377,1.0754092,0.65024742,0.50019033,0.67525694,0.72527597,0.77529501,0.60022839,0.42516178,0.47518081,0.97537114,0.67525694,0.1500571,-0.050019031,2 +-1.1038085,-1.3687225,-1.5957917,-1.6147141,-1.5957917,-1.3687225,-1.1605758,-0.19553177,0.95873649,1.0533487,1.0155038,0.88304676,0.76951218,0.42890843,0.35321871,0.39106357,0.54244302,0.93981406,1.0911935,1.0155038,0.67490003,0.25860656,-0.0063074697,-0.36583364,1 +-1.0140271,-1.364593,-1.5491013,-1.6413555,-1.6413555,-1.475298,-1.1247321,-0.27599374,0.49894132,0.96021219,0.99711386,0.96021219,0.83105634,0.646548,0.62809716,0.75725301,0.86795801,0.7019005,0.97866302,0.90485968,0.59119549,0.29598214,-0.12838706,-0.40514958,1 +-1.0244926,-1.3517484,-1.5262849,-1.6571872,-1.5917361,-1.4826508,-1.0463096,-0.21726152,0.65542073,1.135396,1.0699448,0.98267657,0.76450601,0.30634783,0.34998194,0.43725017,0.45906722,0.54633545,1.3535665,1.157213,0.69905484,0.32816489,-0.086359182,-0.26089563,1 +-0.47338035,-0.55173296,-1.0610249,-1.4136117,-1.452788,-1.1393775,-1.1785538,-0.63008557,-0.94349601,-0.042440995,0.34932205,0.7802614,0.7802614,0.27096944,-0.12079361,-0.15996991,-0.43420404,-0.39502774,0.7802614,1.7988453,1.7204927,1.5637875,1.367906,0.58437988,1 +-0.82161442,-1.2135398,-1.6054652,-1.5319792,-1.8014279,-1.4584932,-1.2380351,-0.18473566,0.55012444,1.2849845,1.1625079,0.94204983,0.77058247,0.67260112,0.35416174,0.42764775,0.5256291,0.28067573,0.42764775,1.3829659,0.79507781,0.55012444,-0.037763646,-0.23372634,1 +-0.84128246,-1.1827756,-1.5029254,-1.609642,-1.609642,-1.5242687,-1.2468055,-0.15829626,0.6100632,1.1436462,1.0155862,0.99424293,0.80215307,0.3752867,0.50334661,0.46065997,0.58871988,0.80215307,1.2290194,1.1223028,0.63140652,0.24722679,-0.32904281,-0.52113268,1 +-0.84755793,-1.3371221,-1.4350349,-1.7287734,-1.6553388,-1.6308606,-1.214731,-0.064255293,0.5966563,1.1351769,1.1351769,0.91487299,0.74352555,0.40083065,0.35187423,0.49874348,0.54769989,0.5721781,0.74352555,1.2820461,0.79248195,0.44978706,-0.015298881,-0.23560275,1 +-0.15475765,-0.9450095,-1.3401354,-1.6562361,-1.577211,-1.4191606,-0.86598431,-1.2611102,-0.075732468,0.71451938,1.425746,1.5047712,1.3467208,1.1096453,0.79354457,0.55646901,0.6354942,0.47744382,0.16134308,-0.23378284,-0.54988357,0.16134308,0.87256975,0.31939345,2 +-0.76097695,-1.2408511,-1.4949021,-1.5513579,-1.5795858,-1.52313,-1.1279395,-0.11173541,0.67864558,1.610166,1.4407987,1.2714313,1.0738361,0.62218979,0.50927822,0.65041768,0.65041768,0.50927822,-0.33755855,0.05763194,0.19877141,0.56573401,0.0011761543,-0.11173541,2 +-0.81717002,-1.3186902,-1.5826483,-1.6882315,-1.6882315,-1.3186902,-1.1339196,-0.4740246,0.37064104,1.3208899,1.0305361,1.0305361,0.81936966,0.47622425,0.39703685,0.55541165,0.50262005,0.42343265,0.29145364,1.2944941,0.97774447,0.74018225,0.053891424,-0.26285819,1 +0.0044605012,-0.26316947,-1.0125334,-1.1731114,-1.4942673,-1.5477933,-1.3336894,-0.049065493,0.64677243,1.7172923,1.6637663,1.5567143,1.1285064,0.27209047,-0.42374746,-0.47727345,-0.47727345,-0.69137743,-0.47727345,-0.049065493,1.3961364,0.9144024,0.27209047,-0.10259149,2 +1.1030012,0.41640678,-0.27018761,-0.42276414,-0.80420546,-0.7279172,-1.9485294,-1.6433764,-0.7279172,-0.19389934,0.18754199,0.34011852,0.56898331,0.26383025,-0.11761108,-0.34647587,-0.4990524,-0.27018761,-0.34647587,-0.19389934,0.26383025,0.56898331,2.2473251,2.5524782,2 +-0.61583907,-1.044727,-1.3746408,-1.5395977,-1.6715632,-1.5395977,-1.1766925,-0.35190804,0.17595402,0.63783332,1.0337299,0.90176434,0.5058678,0.10997126,-0.021994255,-0.18695115,0.14296264,0.96774709,1.4956092,1.6935575,1.132704,0.76979882,0.10997126,-0.15395977,1 +-0.74074285,-1.2762196,-1.5707319,-1.7313749,-1.6510534,-1.5171842,-1.1691243,-0.68719518,0.59794906,1.1869735,1.1601997,1.1334258,0.73181825,0.59794906,0.73181825,0.73181825,0.86568745,0.59794906,0.35698451,0.19634148,0.089246135,0.81213977,0.41053219,0.14279381,2 +-0.68362293,-1.1988825,-1.3344772,-1.6056664,-1.6599043,-1.5243097,-1.3073582,-0.059887633,0.40113411,1.3774155,1.4858912,1.3231776,1.2689398,0.53672874,0.50960981,0.75368015,0.50960981,0.31977733,0.26553948,0.048588072,0.6994423,0.37401518,-0.16836333,-0.33107689,2 +-0.019618175,-0.76510886,-1.3144178,-1.7067813,-1.7460177,-1.3536541,-1.2359451,-0.84358156,-0.29427264,0.37274534,1.1574724,1.3144178,0.76510886,0.21579993,-0.25503629,-0.058854527,-0.019618175,0.92205426,1.2359451,1.4321268,1.0789997,0.92205426,0.41198169,-0.21579993,1 +-0.98144494,-0.9519278,-1.3946849,-1.2470992,-1.6013049,-1.5127535,-1.2766164,-0.62723925,0.34682641,1.1733064,1.2913749,1.4389606,1.2028235,0.81910067,0.90765209,0.90765209,0.93716923,0.73054924,0.40586069,0.081172142,-0.27303356,-0.3025507,-0.0073792818,-0.066413565,2 +-0.36838216,-0.87248405,-1.1439235,-1.415363,-1.4929172,-1.4541401,-1.2214777,-0.79492992,-0.98881526,0.019388537,0.44593629,0.75615285,0.95003819,0.36838216,-0.058165602,-0.13571974,-0.058165602,0.83370699,1.3378089,1.5704713,1.5704713,1.2602547,0.67859871,0.21327388,1 +-0.85572706,-1.3823283,-1.4613185,-1.5403087,-1.5666388,-1.4086584,-1.1190277,-0.64508656,0.48710618,1.4349885,1.1190277,1.1190277,0.90838719,0.27646567,0.2501356,0.5397663,0.56609637,0.32912579,0.2501356,1.4613185,0.90838719,0.46077611,0.013165027,-0.14481535,2 +-0.60581453,-0.98910669,-1.3468461,-1.5001629,-1.5257157,-1.6023742,-1.6023742,-0.63136734,0.74848439,1.4128575,1.3617519,1.3617519,1.1062238,0.59516752,0.74848439,0.69737877,0.64627315,0.49295628,0.262981,0.18632257,-0.14586396,0.08411133,0.21187538,0.033005711,2 +-0.69290644,-1.2430638,-1.5181424,-1.5931639,-1.6431782,-1.4181138,-1.2930781,-0.36781349,0.55745106,1.0325869,1.1826298,1.3076656,1.1326155,0.60746536,0.73250111,0.73250111,0.78251541,0.63247251,0.38240101,0.45742246,0.68248681,0.35739386,-0.16775629,-0.64289214,2 +-0.99314533,-1.2684349,-1.5437245,-1.6813692,-1.6354876,-1.4519613,-1.1307901,-0.16727664,0.63565125,1.1403488,1.0944672,1.0944672,1.002704,0.61271045,0.65859204,0.63565125,0.72741443,0.68153284,0.68153284,1.0485856,0.19977611,0.19977611,-0.23609903,-0.30492143,1 +-0.86589896,-1.3291155,-1.6028343,-1.5396684,-1.6238896,-1.5396684,-1.1817284,-0.15001897,0.6921928,1.1132987,0.98696692,0.86063515,0.75535869,0.35530809,0.52375045,0.46058457,0.56586104,0.83957985,1.1975199,1.1132987,0.67113751,0.3131975,-0.12896368,-0.48690368,1 +-0.48952153,-0.86131003,-0.93566774,-1.2702774,-1.6420659,-1.4189928,-1.0100254,-0.67541578,0.58866515,1.369421,1.5924941,1.4065998,0.7002017,0.14251894,-0.26644843,-0.22926958,-0.41516383,-0.30362728,0.068161233,1.7040306,1.3322421,0.8489171,0.25405549,-0.48952153,1 +-0.77320257,-1.2252577,-1.4964907,-1.5416962,-1.6321073,-1.3834769,-1.2704632,-0.72799706,0.17611313,1.0350178,1.0576206,1.1254288,0.94460679,0.53775721,0.44734619,0.60556547,0.71857925,0.67337374,1.0350178,1.1932371,0.67337374,0.42474343,-0.14032544,-0.456764,1 +-0.39086085,-0.94266441,-1.1934842,-1.2938121,-1.3439761,-1.3439761,-0.99282837,-0.89250045,0.26127062,1.2645498,1.6658615,1.7160255,1.4652057,0.91340209,0.61241833,0.71274625,0.81307417,0.66258229,0.11077874,-0.19020501,-0.79217253,-0.29053293,0.060614779,-0.59151669,2 +-0.20559864,-0.6384379,-1.2444128,-1.5474003,-1.6339682,-1.4175485,-1.0279932,-0.89814145,-0.8115736,-0.11903079,0.48694415,1.0063513,1.0929191,0.44366023,0.22724061,0.010820973,0.010820973,-0.16231472,0.27052453,1.2660548,1.742178,1.4824744,1.2660548,0.4003763,1 +-0.97336582,-1.2421181,-1.5315437,-1.5315437,-1.6142367,-1.552217,-1.2007716,-0.2291286,0.7631877,1.1146331,1.0732865,0.94924701,0.68049468,0.26702956,0.32904933,0.43241561,0.55645514,0.63914817,1.1973261,1.2179993,0.84588073,0.30837607,-0.12576232,-0.3738414,1 +-0.47718369,-0.9079953,-1.4106088,-1.5183117,-1.5901137,-1.4465098,-1.1593021,-0.83619336,0.27673662,1.2819637,1.7845772,1.3896666,1.3896666,0.67164727,0.16903372,-0.010471113,-0.010471113,0.20493469,0.34853856,0.6357463,0.67164727,0.70754824,0.24083565,-0.40538175,2 +-0.18081492,-1.0907223,-1.3356974,-1.5806724,-1.6856617,-1.4756831,-1.3007009,-0.70576148,0.4841174,0.79908533,1.0090639,1.0090639,0.62410315,0.13415302,-0.14581848,-0.11082204,-0.11082204,1.1840461,1.3590283,1.3940247,0.97406752,0.7640889,0.3091352,-0.32080067,1 +-0.99565142,-1.2429788,-1.4522559,-1.566407,-1.5854322,-1.4522559,-1.2049285,-0.27269434,1.0210183,1.1161443,1.1351695,1.0019932,0.84979166,0.50733831,0.46928793,0.54538868,0.67856498,0.98296797,1.0210183,0.84979166,0.33611163,0.06975901,-0.27269434,-0.53904695,1 +-0.91589142,-1.3272391,-1.6357499,-1.6871684,-1.6614592,-1.4300761,-1.2501114,-0.067486737,0.65237178,1.2179749,1.2951026,1.1665564,0.88375488,0.54953485,0.54953485,0.60095332,0.57524408,0.39527945,0.18960559,0.44669792,0.85804564,0.57524408,0.11247789,-0.093195971,1 +-0.92632743,-1.3997836,-1.523294,-1.6262192,-1.5850491,-1.3791986,-1.173348,-0.22643559,1.0910078,1.173348,1.0292527,0.88515731,0.59696655,0.32936086,0.39111602,0.41170107,0.53521139,0.92632742,1.1939331,0.94691247,0.67930676,0.24702064,-0.22643559,-0.37053096,1 +-0.91017258,-1.285033,-1.4213459,-1.5576588,-1.5235806,-1.5576588,-1.1487201,-0.73978146,0.31664351,1.1004426,1.2367555,1.2026773,1.0663644,0.62334753,0.7255822,0.89597332,0.93005155,0.7255822,0.14625238,-0.024138742,0.11217415,0.89597332,0.28256527,-0.092295192,2 +-0.78542678,-1.2277229,-1.5647105,-1.6700191,-1.6278957,-1.375155,-1.1645378,-0.23782196,0.85738765,1.0048197,1.0890666,1.0680049,0.87844937,0.52040008,0.28872112,0.43615318,0.47827663,0.52040008,1.2154369,1.1522518,0.66783214,0.33084457,-0.23782196,-0.61693298,1 +-0.31543361,-1.0196575,-1.2661358,-1.3717694,-1.5478254,-1.4421918,-1.0900799,-0.59712314,0.49442384,1.4803373,1.5155484,1.4099149,0.98738054,0.84653577,0.81132458,0.98738054,0.88174696,0.705691,0.35357907,-0.13937764,-0.66754553,-0.59712314,-0.20980003,-0.20980003,2 +-0.84819419,-0.95793359,-1.3420216,-1.2322822,-1.5066307,-1.451761,-1.5066307,-1.5066307,0.4412439,1.2368546,1.2368546,1.1819849,0.9625061,0.60585302,0.55098331,0.77046213,0.98994095,0.82533184,0.60585302,0.41380904,0.11202566,0.22176507,0.13946051,0.057155958,2 +-1.1510784,-1.4005733,-1.51398,-1.6500681,-1.582024,-1.445936,-1.0376717,-0.47063798,0.5500227,1.026331,1.026331,1.1397378,0.70879214,0.4592973,0.50466,0.64074809,0.57270405,0.43661596,0.36857191,1.2758258,1.0036497,0.59538539,0.16443978,-0.22114315,1 +-1.1170122,-1.4017408,-1.5988606,-1.7083715,-1.6645672,-1.4674474,-1.0075012,-0.37233737,0.56945717,1.0732078,1.1170122,0.85418575,0.65706597,0.45994619,0.41614179,0.50375059,0.54755498,0.50375059,0.41614179,1.2922298,0.94179455,0.59135937,0.19711979,0.19711979,1 +-0.75545674,-1.2874165,-1.5090664,-1.6863863,-1.5755614,-1.5312314,-1.2652515,-0.13483702,0.77392757,1.2172274,1.0399074,0.97341248,0.66310262,0.33062777,0.2641328,0.35279276,0.41928773,0.44145272,1.2393924,1.2837223,0.77392757,0.33062777,-0.068342054,-0.28999195,1 +-0.49762499,-1.0563618,-1.4404934,-1.5452565,-1.6150987,-1.4055723,-1.1262039,-0.46270394,0.13095394,0.41032236,0.96905919,0.75953288,0.82937498,0.13095394,-0.28809868,-0.11349342,0.026190787,0.37540131,1.5976381,1.7373223,1.3531908,0.89921709,0.48016446,-0.14841447,1 +-0.80508384,-1.3192551,-1.5086866,-1.4275016,-1.5357482,-1.6169331,-1.3192551,-0.61565234,0.49387497,0.71036811,1.0080462,0.84567632,0.68330647,0.27738183,0.41269004,0.54799825,0.65624482,0.43975169,1.251601,1.4951557,0.8997996,0.65624482,-0.020296227,-0.20972773,1 +-0.6373796,-1.1752527,-1.5194914,-1.7346407,-1.5194914,-1.5625213,-1.2182825,-0.25011098,0.67503071,1.2129038,1.1698739,1.0622993,0.84715012,0.41685164,0.2877621,0.39533671,0.45988148,0.5674561,1.2344187,1.0192695,0.52442625,0.37382179,0.09412779,-0.7234393,1 +-0.8274066,-1.3117422,-1.5012648,-1.6697293,-1.564439,-1.5223228,-1.1222196,-0.069316139,0.75194852,1.215226,1.194168,1.0678195,0.77300659,0.33078715,0.37290329,0.4360775,0.5624259,0.70983238,1.1099357,1.0467615,0.58348397,0.22549681,-0.27989682,-0.51153557,1 +-0.88857408,-1.1998993,-1.5556996,-1.6001746,-1.6224121,-1.533462,-1.3777994,-0.68843643,0.3344893,0.97937728,1.2239899,1.0238523,1.0238523,0.69028956,0.66805204,0.62357701,0.66805204,0.71252708,0.71252708,0.62357701,0.44567688,0.62357701,0.13435166,-0.021310952,2 +-0.76232109,-1.3505079,-1.5052939,-1.6291227,-1.5981655,-1.6600799,-1.1647647,-0.32892026,0.75458178,1.2808542,1.095111,1.1570254,1.0022394,0.59979577,0.53788137,0.66171018,0.72362458,0.38309537,0.16639496,0.13543776,0.94032499,0.66171018,0.042566145,-0.14317706,2 +-0.87537342,-1.2046675,-1.5120086,-1.5778674,-1.5559145,-1.4241969,-1.1827145,-0.26069115,1.0784381,1.2540616,1.3418734,1.0784381,0.81500283,0.55156757,0.37594407,0.5076617,0.41984994,1.0345322,0.83695577,0.74914402,0.37594407,0.024697048,-0.3485029,-0.50217347,1 +-1.0977121,-1.403036,-1.5993156,-1.6647421,-1.6647421,-1.4902714,-1.0322855,-0.15993156,0.73423126,1.0395551,1.061364,1.0831728,0.66880471,0.49433392,0.40709853,0.62518702,0.51614277,0.58156932,0.45071622,1.1704082,0.77784896,0.64699586,0.058156937,-0.20354926,1 +-0.33616015,-0.87658987,-1.2626111,-1.4556217,-1.4942238,-1.5714281,-1.1854069,-0.027343163,0.47448444,1.3623332,1.6325481,1.3237311,1.0149141,0.12706533,-0.4133644,-0.25895591,-0.065945286,-0.065945286,0.32007594,1.5553439,1.285129,0.39728019,-0.065945286,-0.4133644,1 +0.54115991,0.15755289,-0.66446217,-0.88366619,-1.1028702,-1.1028702,-0.77406418,-1.8152833,-0.88366619,0.10275188,0.59596092,0.70556294,0.48635891,0.3219559,-0.11645213,-0.33565615,-0.50005916,-0.50005916,-0.50005916,-0.28085515,0.76036394,2.349593,2.020787,1.417976,2 +-0.35452,-0.8801404,-1.1100994,-1.5043147,-1.5043147,-1.6357198,-1.3729096,-0.15741234,0.53246444,1.1894899,1.550854,1.2551925,0.86097718,0.26965423,-0.091709795,-0.32166872,-0.25596617,-0.05885852,1.2223412,1.4523001,0.99238229,0.49961316,-0.091709795,-0.4859251,1 +-0.83853908,-1.2545584,-1.5405717,-1.5405717,-1.5665729,-1.4625681,-1.4625681,-0.50052333,0.7215336,1.1895554,1.3195614,1.0595493,1.0855506,0.74753481,0.66953118,0.85153966,0.85153966,0.51352391,0.35751665,0.14950696,0.071503323,0.20150938,0.30551423,0.071503323,2 +-0.33907546,-0.79970627,-1.0684076,-1.3371089,-1.5290384,-1.4138807,-1.0684076,-0.76132037,-0.79970627,-0.14714595,0.77411567,0.69734387,0.77411567,0.42864256,-0.22391776,-0.41584726,-0.33907546,0.12155535,1.2347465,1.7337632,1.6186055,1.4650619,0.92765928,0.46702846,1 +-0.094248018,-0.65973612,-1.5079683,-1.3060082,-1.3464002,-1.5483603,-1.2656162,-0.90208816,0.35006406,1.3598642,1.1579042,0.91555216,0.67320012,0.067320009,-0.29620805,-0.25581604,-0.25581604,-0.25581604,1.1579042,1.7233923,1.4406483,0.75398413,0.26928005,-0.17503203,1 +-0.33966915,-0.78271587,-1.1371532,-1.5802,-1.5802,-1.4915906,-1.0485439,-0.78271587,-0.11814579,0.0590729,0.67933831,0.72364299,0.76794766,0.19198691,0.014768226,-0.20675514,-0.20675514,0.45781494,1.8755644,1.9198691,1.4768224,0.81225233,0.28059626,0.014768226,1 +-0.95293793,-1.3820282,-1.5107553,-1.5536643,-1.6394824,-1.3820282,-1.2103921,-0.26639354,0.74196856,1.2568769,1.385604,1.0852408,0.8277866,0.37724184,0.39869635,0.33433282,0.50596892,0.37724184,0.93505917,1.0423318,0.634696,0.39869635,-0.094757434,-0.30930256,1 +-0.58749977,-0.90978534,-1.3126423,-1.232071,-1.3932137,-1.232071,-0.74864255,-1.0709282,0.62107116,1.7490708,1.6684994,1.5073566,1.2656424,1.185071,0.54049977,0.45992837,0.45992837,0.13764278,-0.18464279,-0.34578558,-0.90978534,0.37935698,0.13764278,-0.18464279,2 +-1.0511278,-1.4594796,-1.6182831,-1.5729107,-1.5729107,-1.4141072,-1.1418727,-0.098306913,0.67302428,1.1494347,1.2174934,1.0360037,0.69571049,0.40078974,0.3327311,0.49153459,0.60496564,0.46884837,0.67302428,1.285552,0.78645534,0.42347595,-0.052934491,-0.2571104,1 +-0.68167678,-1.2489115,-1.3086204,-1.4578927,-1.6967283,-1.6370194,-1.3384748,-0.80109461,0.6617738,1.0498817,1.3185719,1.4081352,1.0200273,0.4527926,0.63191935,0.90060946,0.75133718,0.42293815,0.39308369,0.18410249,-0.11444209,0.57221043,0.36322923,0.15424803,2 +-0.8107111,-1.1778256,-1.566535,-1.7608897,-1.6313199,-1.523345,-1.2642054,-0.076482181,0.5497719,0.98167125,1.1112411,0.96007628,0.72253163,0.44179706,0.48498699,0.57136687,0.91688635,0.65774673,1.1112411,1.0248612,0.50658196,0.24744234,0.0098976914,-0.48678657,1 +-0.82797369,-1.1786449,-1.5585387,-1.7338743,-1.5877613,-1.5000935,-1.1494223,-0.27274427,0.89615975,1.3344988,1.3637214,1.1883858,0.92538235,0.28248513,0.51626594,0.66237894,0.72082414,0.54548854,0.077926928,0.077926928,0.31170773,0.89615975,0.22403993,-0.21429908,2 +-0.69176574,-1.201225,-1.3810342,-1.4709388,-1.2311932,-1.4409706,-1.7706207,-0.63182936,0.62683468,1.3161031,1.3760395,1.3161031,1.1662621,0.65680287,0.65680287,0.71673926,0.95648479,0.47699372,0.20727999,0.14734361,-0.18230649,-0.12237011,0.32715276,0.1773118,2 +-0.73427081,-1.2807049,-1.4173134,-1.6905305,-1.57669,-1.4856177,-1.1896326,-0.16506863,0.60904633,1.2920889,1.4286975,1.2693209,0.85949529,0.35859737,0.33582929,0.4952059,0.51797398,0.35859737,0.51797398,1.1782485,0.63181442,0.35859737,-0.11953246,-0.55212611,1 +0.83015174,0.10418908,-0.54111104,-0.94442362,-0.86376111,-0.78309859,-0.54111104,-0.2991235,-0.13779847,0.74948922,1.3947894,1.2334643,0.10418908,-0.057135946,-0.78309859,-1.0250862,-1.1864112,-1.1057487,-0.94442362,-0.54111104,0.1848516,2.3627396,1.7981019,0.99147675,2 +-0.86165254,-1.2849823,-1.6024797,-1.6659792,-1.5813132,-1.3696483,-1.1579834,-0.26899081,0.59883528,1.191497,0.91633263,1.0433316,0.85283316,0.51416932,0.34483739,0.53533581,0.51416932,0.72583422,1.2973295,1.0856646,0.62000177,0.26017143,-0.26899081,-0.43832274,1 +0.86222239,-0.1910313,-0.43885569,-0.8725484,-0.99646059,-0.93450449,-1.9877581,-1.8638459,-0.93450449,-0.0051629999,0.86222239,1.1100467,1.1100467,0.5524419,-0.0671191,-0.1910313,-0.37689959,-0.37689959,-0.624724,0.3046175,0.86222239,1.2339589,1.2339589,1.7296077,2 +0.31423806,-0.4517172,-0.27495829,-1.2176725,-1.2765921,-1.2176725,-2.101467,-1.0409136,0.37315769,1.6693897,1.9639878,1.7283093,1.3158719,0.5499166,-0.098199385,-0.33387792,0.19639878,-0.039279751,-0.039279751,-0.039279751,-0.27495829,-0.4517172,0.37315769,0.37315769,2 +-1.0085051,-1.2646334,-1.6061378,-1.6274818,-1.4780736,-1.4353856,-1.1152252,-0.13340015,0.76304883,1.3606815,1.2539614,1.0405211,0.86976895,0.29348032,0.37885641,0.46423251,0.44288848,0.33616837,1.0832092,1.1045532,0.57095262,0.33616837,-0.21877623,-0.41087243,1 +-0.76714746,-1.1722913,-1.5324193,-1.6224512,-1.5099113,-1.5999432,-1.1497834,-0.22695561,1.0334921,1.16854,1.056,1.0109841,0.65085616,0.22320427,0.1331723,0.42577622,0.53831619,0.65085616,1.28108,1.146032,0.67336415,0.22320427,0.020632328,-0.65460749,1 +-0.99683472,-1.2450094,-1.5924539,-1.5676364,-1.5924539,-1.493184,-1.1209221,-0.42603309,0.59148286,1.1622845,1.137467,0.98856226,0.79002256,0.34330824,0.24403839,0.49221301,0.49221301,0.46739555,0.41776063,1.3608242,1.0381972,0.7652051,0.045498695,-0.30194578,1 +-1.1452991,-1.4374939,-1.5418491,-1.5835912,-1.6044623,-1.4374939,-1.0409438,-0.22697271,0.50351418,1.1296458,0.98354843,0.8583221,0.69135367,0.29480364,0.39915891,0.46177207,0.54525629,0.60786945,1.3174853,1.1713879,0.83745105,0.46177207,0.065222048,-0.31045693,1 +-0.93629871,-1.3781476,-1.4412688,-1.5254305,-1.5885518,-1.4623093,-1.1677434,-0.24196483,0.49444989,1.0204604,1.0835817,0.95733915,0.78901578,0.32612652,0.45236905,0.49444989,0.78901578,1.2308646,1.1256625,1.0625413,0.53653073,0.15780316,-0.26300525,-0.5154903,1 +-0.75456296,-1.3532244,-1.6226221,-1.6226221,-1.592689,-1.592689,-1.3232914,-0.12596837,0.68222467,1.3407523,1.2509531,1.1312208,0.95162235,0.6522916,0.59242545,0.59242545,0.62235852,0.38289392,0.20329547,0.26316162,0.38289392,0.71215775,0.23322854,-0.0062360649,1 +-0.78228177,-1.2562589,-1.5459116,-1.5985757,-1.6249078,-1.5722437,-1.1509306,-0.28197252,0.45532528,0.69231386,1.0082986,0.98196658,0.79764212,0.61331767,0.16567257,0.27100083,0.50798941,1.0872948,1.3242834,1.1926231,0.79764212,0.37632909,-0.044983948,-0.41363285,1 +-0.79104981,-1.333484,-1.333484,-1.6475248,-1.7046231,-1.6189756,-1.333484,-0.16296816,0.40801517,1.2073918,1.2644902,1.1788427,0.95044931,0.43656433,0.49366267,0.77915432,0.86480182,0.550761,0.60785933,0.35091683,0.66495766,0.43656433,-0.10586982,-0.16296816,2 +-0.19222592,-0.69621319,-0.92882271,-1.1614322,-1.3165052,-1.3165052,-1.0451275,-0.69621319,-0.92882271,-0.15345766,0.38929786,0.54437087,0.46683437,0.0016153435,-0.34729892,-0.42483543,-0.50237193,-0.075921161,1.3585042,1.9012597,1.9400279,1.5523454,1.0871264,0.54437087,1 +-0.49489131,-1.0307135,-1.2688567,-1.2986246,-1.477232,-1.5367677,-1.6856072,-0.88187398,0.57675303,1.1423431,1.3209505,1.4400221,1.0530394,0.69582462,0.63628883,0.93396781,0.90419991,0.84466411,0.45768144,0.070698758,-0.28651602,-0.22698022,0.16000245,-0.048372834,2 +0.35239265,-0.17291316,-0.75074955,-1.1709942,-1.1709942,-1.0134025,-1.6963,-1.1709942,0.45745381,2.0333712,2.0859018,1.560596,1.0878208,0.87769845,-0.015321414,0.037209166,-0.015321414,0.037209166,-0.17291316,-0.067851995,-0.75074955,-0.69821897,0.29986206,0.037209166,2 +-0.56861853,-1.0818848,-1.353614,-1.6253432,-1.6857275,-1.564959,-1.2328455,-0.74977135,0.48810617,1.3032938,1.3636781,1.2731017,0.94098819,0.54849044,0.85041179,0.85041179,0.85041179,0.72964325,0.27676123,0.095608419,-0.14592865,0.48810617,0.03522415,-0.085544388,2 +-0.89011503,-1.2232957,-1.4976798,-1.5760752,-1.615273,-1.4976798,-1.2428946,-0.43934118,0.83458491,1.0501724,1.0697713,1.0305736,0.81498605,0.42300879,0.57979969,0.57979969,0.67779401,0.65819514,1.1285679,0.91298036,0.71699173,0.24661903,-0.26295141,-0.47853891,1 +0.20964707,-0.57508693,-1.1751776,-1.4521426,-1.6829467,-1.4983034,-0.99053434,0.2558079,0.76357696,1.7791151,1.7791151,1.5021501,0.90205943,0.2558079,-0.20580034,-0.25196116,-0.34428281,-0.43660446,-0.5289261,-0.29812199,1.0405419,0.99438108,0.20964707,-0.25196116,2 +0.13000026,-0.78764868,-1.2923556,-1.4300029,-1.6135327,-1.4300029,-1.1547082,0.13000026,0.72647206,1.644121,1.9194157,1.5064737,1.0017668,0.1758827,-0.65000134,-0.14529442,-0.099411978,-0.19117687,-0.32882421,-0.14529442,0.72647206,1.0476492,0.40529494,-0.14529442,2 +-0.18615959,-0.59232597,-1.1203423,-1.485892,-1.4452754,-1.4046587,-1.1203423,-0.8360258,-0.67355925,-0.22677623,0.58555652,0.74802308,0.6667898,0.057540235,-0.18615959,-0.10492632,-0.5110927,0.26062343,1.4385059,1.6822058,1.885289,1.1541895,0.95110627,0.46370662,1 +-0.84073644,-1.1955608,-1.5503851,-1.6450049,-1.7159697,-1.5503851,-1.1482509,0.15277157,0.6968355,1.2882093,1.2172445,1.0989697,0.88607513,0.38932111,0.41297606,0.29470129,0.43663101,0.38932111,0.62587064,1.2172445,0.72049045,0.36566615,-0.17839776,-0.36763738,1 +-1.0997906,-1.3029709,-1.5615641,-1.6169769,-1.6169769,-1.4507384,-1.1552034,-0.23165638,0.82118722,1.0797804,0.96895474,0.91354192,0.74730346,0.43329747,0.45176841,0.54412312,0.74730346,0.82118722,1.1536641,1.0058966,0.56259406,0.24858807,-0.15777261,-0.30554014,1 +0.14516143,-0.64662817,-1.1217019,-1.2800598,-1.2800598,-1.4384178,-1.8607056,-1.1744879,0.46187726,1.5703827,1.9398845,1.5703827,0.989737,0.51466324,0.09237545,-0.065982469,-0.065982469,-0.065982469,0.039589477,0.1979474,0.1979474,0.40909129,0.83137908,0.039589477,2 +-0.93077246,-1.3855691,-1.5460855,-1.706602,-1.599591,-1.5728382,-0.9575252,-0.23520118,0.2731009,1.2094468,1.3432106,1.1559414,0.96867217,0.64763928,0.62088654,0.7278975,0.78140299,0.56738106,0.19284268,0.2731009,0.78140299,0.51387557,0.059078968,-0.1816957,2 +-0.84409689,-1.3437417,-1.6162752,-1.4800085,-1.5481418,-1.5254307,-1.1620527,-0.18547421,0.47314847,1.2226157,1.1999046,1.0409267,0.72297086,0.29145946,0.40501509,0.45043735,0.4958596,0.60941524,1.2226157,1.1544823,0.72297086,0.33688171,-0.14005195,-0.50342999,1 +-0.48475508,-0.96951016,-1.3850145,-1.4542652,-1.3850145,-1.2465131,-0.83100871,-1.2465131,-0.20775218,1.3157638,1.1080116,1.3157638,1.4542652,1.1080116,1.2465131,0.90025944,0.96951016,0.20775218,0.20775218,0.069250728,-0.69250726,-0.20775218,0.2770029,-0.069250726,2 +0.16252767,-0.56616783,-0.9519478,-1.2091344,-1.3377278,-1.2519989,-0.86621892,-1.2091344,-0.48043895,0.16252767,0.76262985,0.89122317,0.63403653,0.16252767,-0.2232523,-0.52330339,-0.52330339,-0.60903227,-0.13752342,1.6627831,2.0485631,1.8342409,1.0198165,0.54830764,1 +0.92671992,0.057919997,-0.98463991,-0.98463991,-1.0425599,-0.92671992,-1.5059199,-1.7375998,-0.81087993,0.11583999,0.98463991,0.92671992,0.81087993,0.28959997,-0.23167998,-0.11583999,-0.11583999,-0.40543996,-0.46335996,0.057919997,0.11583999,0.98463991,2.2009598,1.8534398,2 +-0.79638467,-1.3600456,-1.5393923,-1.5650133,-1.693118,-1.5393923,-1.0782151,-0.41207036,0.71525163,1.2789126,1.2789126,0.99708215,0.81773546,0.40780018,0.43342114,0.58714686,0.79211449,0.89459832,0.71525163,0.61276782,0.33093732,0.58714686,-0.0021350877,-0.46331227,2 +-0.2935372,-0.48602062,-1.0634709,-1.3714443,-1.4869344,-1.3329476,-1.1404642,-0.71700071,-0.56301398,-0.5245173,0.20691967,0.20691967,0.66887985,-0.024060432,-0.13955047,-0.13955047,-0.25504052,0.28391303,1.4388135,2.0162638,1.746787,1.4388135,1.01535,0.51489313,1 +-0.77556409,-1.166253,-1.3895038,-1.5290356,-1.5848483,-1.3895038,-1.6964737,-0.4127815,0.48022183,1.2615997,1.4011315,1.4011315,1.0383489,0.59184724,0.53603454,0.70347266,0.78719172,0.53603454,0.42440912,0.36859642,0.0058138123,-0.022092542,0.256971,0.17325194,2 +0.97306642,0.20485609,-0.25607011,-0.56335424,-0.79381734,-0.71699631,-0.56335424,-1.6388487,-1.3315646,-0.56335424,-0.025607005,0.66578228,0.28167712,-0.025607005,-0.33289114,-0.40971218,-0.48653321,-0.40971218,-0.56335424,-0.17924908,0.35849815,2.355845,2.2022029,1.8180978,2 +-0.38212754,-1.2068632,-1.4707786,-1.5037681,-1.6027364,-1.4377892,-1.0749055,0.3766293,0.54157643,1.1023967,1.5642487,1.3003333,0.83848128,0.21168216,-0.25016983,0.04673502,-0.2171804,-0.18419097,1.2343544,1.201365,1.0034284,0.47559758,-0.019243835,-0.54707467,1 +-1.0997477,-1.4332854,-1.5222287,-1.5667004,-1.5667004,-1.4555212,-1.1886911,-0.6105592,0.41228959,0.92371397,0.96818566,0.79029891,0.65688386,0.43452543,0.5234688,0.72359138,0.6791197,0.63464801,0.6791197,1.3017233,1.0348932,0.65688386,0.212167,-0.18807819,1 +-0.907775,-1.2777361,-1.4216099,-1.586037,-1.688804,-1.5449303,-1.1955225,-0.085639151,0.6542831,1.0242442,1.0447976,0.88037047,0.69538989,0.40764235,0.53096273,0.7159433,0.77760349,1.168118,1.1064578,0.96258405,0.42819575,-0.065085755,-0.16785273,-0.45560028,1 +-0.92834935,-1.095871,-1.4029941,-1.6542767,-1.6542767,-1.6263564,-1.291313,-0.17450176,0.57934584,1.4169543,1.4169543,1.193592,0.97022976,0.57934584,0.57934584,0.52350527,0.57934584,0.49558499,0.21638218,0.16054162,0.71894724,0.55142555,-0.034900353,-0.1186612,2 +-0.92708764,-1.2814693,-1.4080341,-1.6864768,-1.534599,-1.4586601,-1.2814693,-0.62333196,0.46512588,1.0473243,1.0979502,0.89544642,0.79419453,0.38918696,0.5410648,0.51575183,0.51575183,0.51575183,0.79419453,1.4523318,0.9207594,0.56637777,-0.091759525,-0.21832439,1 +-0.10666823,-0.54139155,-0.97611488,-1.2659304,-1.2176278,-1.1693252,-1.1210226,-1.6040485,-0.73460192,0.086542133,0.85938359,1.1975017,1.052594,0.85938359,-0.01006305,-0.10666823,-0.2998786,-0.2998786,-0.25157601,0.23144991,0.811081,2.1635536,1.5839225,0.85938359,2 +-0.71676689,-1.4536079,-1.6236482,-1.5669681,-1.5953081,-1.5669681,-1.2552276,-0.20664614,0.7852553,1.238696,1.3520561,1.1536758,0.89861547,0.50185489,0.55853497,0.50185489,0.58687502,0.50185489,0.19011444,0.1617744,0.36015469,0.89861547,0.36015469,-0.064945934,2 +-0.47845857,-1.1814997,-1.4451402,-1.5916071,-1.5037269,-1.5330203,-1.2986733,-0.9178593,0.40034289,1.1033841,1.3084377,1.4549046,1.1326774,0.60539656,0.869037,0.869037,0.72257009,0.40034289,0.19528921,0.19528921,-0.068351225,0.63468994,0.25387598,-0.12693799,2 +0.54147636,-0.13950701,-0.70699314,-0.99073622,-1.2177307,-1.1609821,-0.76374176,-0.59349593,-1.2744793,-0.30975285,0.42797913,0.76847082,0.54147636,0.087487449,-0.30975285,-0.42325008,-0.4799987,-0.70699314,-0.59349593,0.20098468,2.1304376,2.1304376,1.6764486,1.1657111,2 +-0.30062385,-0.94997139,-1.2024954,-1.4910943,-1.6714686,-1.4910943,-1.1303457,-0.80567194,-0.48099817,0.31264881,0.70947229,0.63732257,0.63732257,0.38479853,-0.12024954,0.060124772,0.096199634,1.3588198,1.4670444,1.6834936,1.4309695,0.78162203,0.24049908,-0.1563244,1 +0.90937687,-0.11367211,-0.68203265,-0.79570476,-1.1367211,-0.56836054,-0.56836054,-1.4777374,-0.79570476,0.34101633,0.79570476,0.34101633,0.34101633,-3.1944443E-9,-0.45468844,-0.79570476,-0.34101633,-0.56836054,-0.11367211,-0.45468844,-3.1944443E-9,2.6144585,2.3871143,1.1367211,2 +-0.75799038,-1.0281652,-1.0281652,-1.2082817,-1.4784565,-1.3583788,-1.6885924,-0.99814575,0.3527282,1.2232914,1.3433691,1.2833302,1.2833302,0.71296126,0.7730001,1.0731943,1.0131555,0.7730001,0.3527282,0.082553414,-0.2176408,-0.42777675,0.022514572,-0.097563112,2 +-1.0086585,-1.4348522,-1.5414006,-1.6692587,-1.6266394,-1.4987813,-1.0299682,-0.028412906,0.50432924,1.0370714,0.97314233,0.88790359,0.69611641,0.37647112,0.35516143,0.33385175,0.52563892,0.61087767,1.3140973,1.2714779,0.73873578,0.52563892,-0.071032278,-0.24150977,1 +-0.79933901,-1.1796936,-1.5362761,-1.6789091,-1.4649596,-1.5838204,-1.2747823,-0.56161737,0.53190217,1.0786619,1.0786619,1.0311176,0.67453515,0.53190217,0.38926918,0.43681351,0.50813,0.34172485,1.1737506,1.2450671,0.81716813,0.55567433,0.080231057,-0.39521222,1 +-0.60520039,-1.1512458,-1.5334776,-1.6426867,-1.6972913,-1.4242685,-0.82361857,-0.93282766,0.2138678,0.97833143,1.2513542,1.3605632,1.3059587,0.8145178,0.8145178,0.8145178,0.75991325,0.15926326,0.15926326,-0.059154934,-0.11375948,0.92372689,0.43228598,-0.0045503881,2 +0.45180969,-0.46571155,-0.96617768,-1.3832328,-1.4666438,-1.2164107,-0.88276666,-1.6334658,-0.2988895,0.8688648,1.452742,1.2025089,1.0356869,0.034754586,-0.13206746,-0.2988895,-0.13206746,-0.21547848,-0.13206746,-0.048656435,0.034754586,2.1200301,1.452742,0.61863173,2 +-0.7699491,-1.2019206,-1.3699095,-1.7298857,-1.5858952,-1.5618968,-1.1059269,-0.50596655,0.50196682,1.1259256,1.0539304,0.88594143,0.54996365,0.30997951,0.33397792,0.35797633,0.45396999,0.54996365,1.4139066,1.4139066,0.8379446,0.4779684,-0.025998282,-0.4099729,1 +-0.91943843,-1.3099964,-1.6224427,-1.4662195,-1.563859,-1.4271637,-1.1537732,-0.27501787,0.89665589,1.1505185,1.0528791,0.95523958,0.8185443,0.48657007,0.40845849,0.54515376,0.52562587,1.1700464,1.0333512,0.97476747,0.44751428,0.11554005,-0.33360156,-0.50935262,1 +-0.7869407,-1.2839558,-1.4579112,-1.5324634,-1.5324634,-1.4082096,-1.5076127,-0.73723918,0.30649269,1.0271647,1.1265677,1.1514185,1.0023139,0.70410482,0.85320937,0.97746316,1.0271647,0.75380634,0.40589572,0.23194041,-0.066268699,-0.041417941,0.50529875,0.28164193,2 +-0.80758584,-1.157022,-1.2735007,-1.6695284,-1.6462327,-1.436571,-1.1337263,-0.83088158,0.47368016,1.1492568,1.1725525,1.0793695,0.7532291,0.28731419,0.42708866,0.45038441,0.47368016,0.40379292,1.2424398,1.2890312,0.82311634,0.47368016,-0.062121988,-0.4814454,1 +1.7829162,0.56302617,0.46918848,-0.093837695,0.18767539,0.18767539,0.18767539,-1.5014031,-0.84453926,-0.65686387,-0.46918848,-0.093837695,-0.65686387,-0.56302617,-0.56302617,-0.75070156,-0.84453926,-0.56302617,-0.37535078,-0.46918848,-0.84453926,2.2521047,1.9705916,1.6890785,2 +0.19868755,-0.72723501,-0.81982726,-1.097604,-1.6068614,-1.6068614,-1.2364924,-1.097604,0.56905656,1.4949791,1.9579404,1.819052,1.2634985,0.47646431,0.013503031,-0.17168147,-0.12538534,-0.26427374,-0.40316212,0.10609529,0.013503031,0.75424107,0.52276044,-0.032793096,2 +-0.19803807,-0.8257814,-1.3638471,-1.2741695,-1.63288,-1.2741695,-1.0051366,-1.0948143,-0.018682831,1.2368038,1.5955143,1.8645471,0.96777096,0.96777096,0.25035002,0.25035002,0.1606724,0.34002764,-0.018682831,-0.018682831,-0.91545902,1.0574486,0.78841573,0.1606724,2 +0.4209822,-0.46775803,-0.98229184,-1.0758434,-1.0758434,-1.4968257,-1.9645837,-1.0290676,0.5613096,1.5436015,2.0113595,1.7307047,1.3097225,0.467758,-0.28065482,-1.1315972E-8,-0.046775813,0.1871032,-0.28065482,-0.14032742,0.093551592,0.04677579,0.5145338,-0.046775813,2 +-0.3385207,-0.91066836,-1.1776706,-1.4065297,-1.4446728,-1.5209592,-1.1776706,-0.87252519,-1.0632411,-0.10966164,0.57691556,0.92020416,0.88206098,0.46248603,-0.071518461,0.0047678942,-0.033375283,0.99649051,1.3779223,1.4923518,1.4160655,1.0346337,0.76763145,0.19548378,1 +1.0925835,0.51273575,-0.0026844804,-0.45367718,-0.51810471,-0.58253224,-1.7422278,-1.6133727,-0.7113873,0.061743049,0.57716328,0.8348734,0.38388069,-0.067112009,-0.51810471,-0.64695977,-0.64695977,-0.77581483,-0.38924966,-0.32482213,0.25502564,0.57716328,2.3811341,2.3167066,2 +-1.009503,-1.3546937,-1.527289,-1.5488634,-1.6135867,-1.527289,-1.0958007,-0.10337742,0.75959933,1.1479388,1.2342365,0.9537691,0.73802491,0.2633877,0.43598305,0.41440863,0.39283421,0.22023886,1.2558109,1.1479388,0.80274817,0.37125979,-0.081803003,-0.27597277,1 +-0.73961511,-1.0966707,-1.4027184,-1.6577581,-1.6067501,-1.5557422,-1.0456628,-0.99465481,0.025503978,0.84163101,1.0456628,1.3517104,1.2496945,0.89263895,1.0456628,0.99465483,0.63759925,0.53558337,0.28054367,0.076511917,0.076511917,0.63759925,0.43356749,-0.025503961,2 +-0.74769628,-1.2071241,-1.34225,-1.3692752,-1.504401,-1.4233255,-1.6125017,-0.66662078,0.27926006,1.1710906,1.1981158,1.1981158,1.0359648,0.79273823,0.95488923,0.90083889,1.1440654,0.73868789,0.41438589,0.30628523,-0.18016778,-0.23421812,0.14413423,0.0090083878,2 +-0.80854647,-1.0910081,-1.5711929,-1.6276852,-1.7124237,-1.5711929,-1.3452236,-0.41310017,0.9709619,1.0839466,1.2534236,1.2251774,0.91446957,0.4907771,0.60376176,0.68850025,0.54726943,0.43428477,0.29305395,0.29305395,0.40603861,0.82973108,0.18006929,-0.074146192,2 +-0.90129652,-1.1301972,-1.5021608,-1.7310615,-1.6452238,-1.4735482,-1.3018727,-0.12875664,0.61517063,1.3018727,1.3018727,1.2446475,0.90129651,0.41488251,0.50072028,0.61517063,0.64378322,0.35765734,0.12875664,0.35765734,0.98713427,0.64378322,0.042918881,-0.24320699,2 +-0.61863745,-0.97916788,-1.3724738,-1.5363513,-1.5363513,-1.4052493,-1.2741473,0.56128033,0.62683132,1.1840147,1.4789942,1.0856882,0.79070879,0.069647931,-0.22533152,-0.19255603,-0.22533152,0.0040969422,1.0856882,1.3806677,1.1840147,0.62683132,-0.15978053,-0.55308646,1 +-0.82229569,-1.2812514,-1.6204796,-1.6404342,-1.600525,-1.4608428,-1.2413422,-0.20370318,0.77407208,1.1532094,1.1133002,0.87384506,0.6144353,0.27520715,0.45479853,0.43484393,0.59448071,0.97361805,1.2529824,0.93370886,0.57452611,0.31511635,-0.12388479,-0.34338536,1 +0.58212124,-0.12457848,-0.88563971,-1.2661703,-1.4292549,-0.94000123,-1.1030858,-0.55947061,-0.66819364,0.092867594,0.79956731,1.2344594,1.1800979,0.69084427,0.20159062,-0.72255516,-0.66819364,-0.88563971,-0.77691668,-0.34202454,1.0170134,2.1042437,1.6149901,0.85392883,2 +-1.0463002,-1.2716251,-1.5470222,-1.4468778,-1.5470222,-1.246589,-1.2716251,-0.54557831,0.53097391,1.3822012,1.2570207,1.2570207,0.85644319,0.45586562,0.35572123,0.38075733,0.53097391,0.38075733,0.43082952,1.2820568,0.85644319,0.43082952,-0.019820247,-0.44543392,1 +-0.50098702,-0.93297583,-1.3649646,-1.580959,-1.580959,-1.5089609,-0.93297583,-1.4369628,0.0029999206,1.1549701,1.2989663,1.3709645,1.2269682,1.0829719,0.43498873,0.21899433,0.65098313,0.50698686,0.72298127,0.43498873,-0.14099635,0.65098313,0.36299059,-0.14099635,2 +-1.212196,-1.3759009,-1.5396058,-1.6097651,-1.6331515,-1.3525145,-1.0484911,-0.37028495,0.2143755,0.75226311,0.91596802,0.96274086,0.91596802,0.40146684,0.54178535,0.49501251,0.51839893,0.75226311,1.3369236,1.2433779,0.72887669,0.51839893,0.074056983,-0.22996644,1 +-0.63647601,-1.0320548,-1.3363461,-1.4276335,-1.4884918,-1.6406374,-1.5797792,-0.81905081,0.70240582,1.2197011,1.432705,1.3414176,0.97626802,0.70240582,0.76326409,0.70240582,0.85455149,0.55026016,0.24596883,0.30682709,0.032964902,0.093823167,0.21553969,-0.18003903,2 +0.18375622,-0.28320076,-1.2171147,-1.4246511,-1.0614624,-1.6840717,-1.2689988,-1.1652306,0.85824964,1.8959318,1.9478159,1.532743,1.0139019,0.33940854,-0.23131665,-0.17943254,-0.23131665,-0.23131665,-0.12754843,0.079988004,-0.023780213,0.44317676,0.59882908,0.23564033,2 +-1.1496812,-1.4485827,-1.5606708,-1.5046268,-1.6353962,-1.4299014,-1.0189118,-0.1969325,0.83054151,1.1481244,1.1294431,1.073399,0.77449748,0.40087055,0.47559594,0.53163998,0.60636536,0.60636536,1.073399,0.94262959,0.56900267,0.32614517,-0.15956981,-0.38374597,1 +-0.88380102,-1.3252636,-1.5354839,-1.4724178,-1.59855,-1.5354839,-1.2411755,-0.042919964,0.69285097,1.1553356,1.2184016,1.1132915,0.77693907,0.46160867,0.41956462,0.46160867,0.56671881,0.54569678,0.94511529,1.1132915,0.73489502,0.23036638,-0.21109618,-0.58949265,1 +-0.40284561,-1.0808052,-1.3166173,-1.5524293,-1.4934763,-1.4639998,-1.5819058,-0.8449932,0.65830864,1.3362683,1.3657448,1.2773153,1.0120267,0.59935563,0.74673816,0.86464419,0.95307371,0.59935563,0.21616105,-0.019651016,-0.13755705,-0.019651016,0.42249659,-0.13755705,2 +-1.0101776,-1.1284423,-1.4832364,-1.6724599,-1.648807,-1.3413188,-1.1284423,-0.34789532,0.40899874,1.1658928,1.0476281,1.0003222,0.59822226,0.10151053,0.45630462,0.45630462,0.5036105,0.52726344,1.4497281,1.3314634,0.81109871,0.40899874,-0.13501886,-0.37154826,1 +-0.94843065,-1.2693498,-1.475655,-1.6590373,-1.5673462,-1.5673462,-1.2235042,-0.0085960432,0.56447384,1.0916981,1.0458526,0.88539298,0.74785621,0.2664775,0.31232309,0.49570546,0.44985986,0.65616503,1.2750805,1.3209261,0.72493341,0.35816868,-0.14613282,-0.32951519,1 +-0.93670299,-1.229677,-1.424993,-1.6398406,-1.5812458,-1.5031194,-1.2882718,-0.27262858,0.66488823,1.0555202,1.1336466,1.1727098,0.84067263,0.37191423,0.37191423,0.62582503,0.60629343,0.78207783,1.0945834,0.97739383,0.56723023,0.29378783,-0.21403377,-0.46794458,1 +-0.62537539,-1.1953378,-1.2496199,-1.4396073,-1.7924412,-1.6295948,-1.4396073,-0.27254154,0.48740829,1.3016403,1.4644867,1.3830635,1.0573707,0.56883149,0.62311362,0.51454936,0.3245619,0.27027977,0.18885657,0.37884403,0.92166534,0.40598509,0.026010176,-0.27254154,2 +0.34972127,-0.35664644,-0.93836103,-1.1045652,-0.97991208,-1.1045652,-1.0214631,-0.89680999,-0.85525895,-0.14889123,0.51592543,0.51592543,0.26661919,-0.19044228,-0.56440165,-0.64750374,-0.73060582,-0.39819749,2.2195182,1.8040077,1.7209057,1.3469463,0.84833377,0.34972127,1 +-0.65912631,-1.3157654,-1.4650015,-1.6440849,-1.4948487,-1.6142376,-1.3157654,-0.30095956,0.4750684,1.3704853,1.2510964,1.1615547,1.0123185,0.53476286,0.65415177,0.65415177,0.80338791,0.4750684,0.11690165,-0.062181731,0.8929296,0.56461009,0.20644334,-0.30095956,2 +-0.99164739,-1.2592893,-1.4651676,-1.6092825,-1.5475189,-1.3828163,-1.2387014,-0.22989749,0.61420375,1.1288996,0.94360911,1.211251,0.7583186,0.51126457,0.4083254,0.53185241,0.67596726,1.1288996,1.1083118,0.86125777,0.53185241,0.22303488,-0.291661,-0.62106636,1 +1.2030304,0.42502271,0.07924152,-0.18009437,-0.18009437,0.07924152,0.07924152,-1.5632191,-0.95810205,-0.43943026,-0.52587555,-0.0072037775,-0.18009437,-0.69876616,-0.87165675,-1.0445473,-0.35298496,-0.26653966,-0.52587555,-0.35298496,-0.18009437,2.1539286,2.6726004,1.6352569,2 +-1.154312,-1.4552188,-1.4953397,-1.5755815,-1.5154001,-1.4150979,-1.154312,-0.63274014,0.53076618,0.81161254,1.0723984,1.1325798,0.99215663,0.73137072,0.51070573,0.71131027,0.65112891,0.59094755,0.67118936,1.052338,0.75143118,0.45052437,-0.071047431,-0.19141016,2 +-0.89160751,-1.2869623,-1.5340591,-1.5093494,-1.5834785,-1.4599301,-1.4846398,-0.81747848,0.29445698,1.208715,1.208715,0.98632795,0.9369086,0.51684408,0.7145215,0.76394086,0.81336021,0.51684408,0.46742472,0.51684408,0.36858602,0.56626343,0.54155375,0.14619892,2 +-0.58060799,-1.1742341,-1.3929384,-1.3929384,-1.4866688,-1.6428862,-1.2054775,-0.20568623,0.41918333,1.1690268,1.575192,1.3252442,0.82534857,0.41918333,-0.018225366,-0.049468846,0.044261591,0.45042681,1.2002703,1.2002703,0.88783553,0.35669638,-0.14319928,-0.58060799,1 +-0.6321951,-1.1869991,-1.3558525,-1.5970716,-1.6211935,-1.5005839,-1.1628772,-0.55982936,0.52565666,1.3940455,1.4664112,1.3216798,1.1769483,0.83924152,0.76687578,0.74275387,0.52565666,0.42916902,0.21207181,0.16382798,0.019096515,0.45329093,-0.0050253963,-0.4150979,2 +-0.20481136,-0.65167251,-0.89541494,-1.3016524,-1.4235236,-1.3422761,-1.1797812,-0.81416746,-1.0172862,-0.0016926557,0.60766345,0.68891094,0.48579224,0.24204979,-0.042316397,-0.36730633,-0.36730633,-0.2454351,1.2982671,1.9076232,1.785752,1.460762,0.85140589,0.52641598,1 +-0.76070666,-1.112417,-1.6559692,-1.5600482,-1.4961009,-1.5920219,-1.2722853,-0.76070666,0.55021341,1.4135023,1.061792,1.2216603,0.96587098,0.39034511,0.77402903,0.74205537,0.86995001,0.67810806,0.32639779,0.19850314,0.32639779,0.61416074,0.16652948,-0.089259792,2 +-1.0798552,-1.3906463,-1.5115095,-1.563308,-1.5115095,-1.459711,-1.1143875,-0.35467596,0.47410031,1.043884,1.1820134,1.0784163,0.8539561,0.62949586,0.57769735,0.68129438,0.76762524,0.95755314,0.95755314,0.81942376,0.47410031,0.14604304,-0.19928041,-0.45827299,1 +-0.41836986,-1.0698771,-1.2998209,-1.3381449,-1.4147928,-1.2998209,-0.80160944,-0.57166569,0.92296866,1.6894478,1.459504,1.1912363,1.0379405,0.30978534,-0.26507403,-0.45669382,-0.3800459,-0.3800459,-0.07345424,1.497828,1.1912363,0.80799679,0.11816555,-0.45669382,1 +-0.80092285,-1.2008288,-1.3341308,-1.4940932,-1.5207536,-1.4940932,-1.547414,-0.77426245,0.55875754,1.1986071,1.2519279,1.3319091,1.0919655,0.61207835,0.66539915,0.85202195,0.93200315,0.58541795,0.45211594,0.18551195,0.025549545,0.13219115,0.26549314,0.025549545,2 +-0.41978867,-0.87042444,-1.2888719,-1.7395077,-1.5785664,-1.6429429,-1.2244954,-0.25884733,0.61023593,1.09306,0.93211862,1.3505661,1.0286834,0.38491805,-0.13009425,-0.097905981,-0.033529445,0.063035362,1.3827544,1.3505661,0.89993035,0.61023593,0.030847093,-0.45197694,1 +-0.85784952,-1.135321,-1.3572983,-1.496034,-1.5515283,-1.3295511,-1.6070227,-0.88559668,0.50176103,1.1954399,1.2786813,1.1399456,0.94571549,0.72373826,0.86247403,0.89022118,1.0012098,0.72373826,0.19654234,0.2797838,0.030059411,0.0023122563,0.36302526,0.085553718,2 +-0.83433063,-1.173309,-1.5607128,-1.7544147,-1.7059893,-1.4638619,-1.173309,-0.059522975,0.5457955,1.1269012,1.054263,0.95741206,0.57000824,0.23102989,0.37630632,0.37630632,0.40051906,0.49737002,1.3448159,1.2963904,0.73949741,0.27945537,0.27945537,-0.35007584,1 +-0.4778666,-0.95573317,-1.4898193,-1.6022585,-1.4898193,-1.6584781,-1.7146977,-0.67463519,0.56219599,1.1806115,1.3492703,1.1806115,1.1243919,0.61841559,0.5059764,0.70274499,0.70274499,0.5059764,0.36542739,0.33731759,0.33731759,0.4778666,0.1967686,-0.084329399,2 +-0.90853352,-1.2624192,-1.534639,-1.561861,-1.6435269,-1.534639,-1.1263093,-0.44575989,0.67034121,1.3236687,1.3508907,1.2420027,1.0242269,0.56145329,0.64311923,0.72478516,0.72478516,0.45256538,0.31645549,0.50700934,0.1803456,0.47978736,0.017013731,-0.20076209,2 +-0.5860394,-1.2367308,-1.6371563,-1.6121297,-1.53705,-1.4619702,-1.3118106,-0.68614577,0.51513073,1.1908487,1.3410083,1.2409019,1.1658221,0.64026369,0.66529029,0.74037007,0.81544985,0.51513073,0.33994457,0.46507754,0.16475841,0.28989139,-0.035454339,0.01459885,2 +-0.58635944,-1.4079252,-1.354921,-1.5139337,-1.5139337,-1.5404358,-1.4079252,-0.74537218,0.50022755,1.03027,1.1362785,1.0567721,0.81825301,0.4472233,0.47372543,0.50022755,0.55323179,0.52672967,0.34121482,1.3217933,1.0567721,0.65924028,0.15569997,-0.50685308,2 +-0.28246322,-1.0118619,-1.3551084,-1.44092,-1.3980142,-1.5696374,-1.1405793,-1.0118619,-0.025028392,1.0476168,1.6053922,1.3479574,1.21924,0.87599353,0.79018193,1.004711,0.96180514,0.53274709,0.27531225,-0.025028392,-0.58280386,-0.32536903,0.23240645,0.27531225,2 +-0.79589475,-1.1791345,-1.5220332,-1.6027152,-1.6632267,-1.4816921,-1.1387934,-0.31180248,0.49501796,1.0396218,1.1808153,1.0396218,0.87825766,0.27314234,0.43450643,0.3941654,0.53535898,0.85808715,1.2211564,1.1404743,0.69672306,0.23280132,-0.11009737,-0.61436015,1 +0.15033169,-0.32783176,-0.84946461,-1.0233422,-0.97987282,-1.0233422,-0.84946461,-1.4145669,-1.0233422,-0.11048474,0.10686229,0.49808693,0.41114812,-0.023545933,-0.32783176,-0.54517878,-0.63211759,-0.67558699,1.367475,1.8891079,1.8891079,1.6717608,1.1935974,0.62849514,1 +-0.70155479,-1.0333245,-1.3927417,-1.4203892,-1.4756842,-1.5033316,-1.6692165,-0.70155479,0.65317168,1.3167112,1.2614162,1.2890637,0.95729395,0.73611412,0.7637616,0.98494142,0.81905655,0.59787672,0.40434437,0.12786959,-0.038015292,-0.2868426,0.12786959,0.18316455,2 +-0.67511085,-1.1707945,-1.4186364,-1.2017748,-1.5735375,-1.5115771,-1.0468736,-0.70609108,0.40919721,1.1217425,1.4005646,1.4315448,1.3386041,0.84292043,0.8119402,0.99782158,0.99782158,0.68801928,0.16135537,0.099394907,-0.27236786,-0.33432832,-0.17942717,-0.2104074,2 +-0.77791351,-1.2288779,-1.5671011,-1.5445529,-1.5896494,-1.4994565,-1.1837814,-0.23675629,0.82300995,1.2288779,1.138685,0.98084747,0.64262421,0.43969025,0.41714203,0.39459381,0.43969025,0.46223846,1.1612332,1.3190707,0.71026886,0.2593045,-0.23675629,-0.55243133,1 +-0.86967889,-1.1785167,-1.4358816,-1.5130911,-1.4873546,-1.4616181,-1.5388276,-0.50936804,0.44288209,1.0348213,0.98334837,1.1635038,0.98334837,0.85466593,0.9061389,1.0862943,0.98334837,0.93187539,0.52009155,0.31419964,-0.071847704,-0.12332068,0.082571234,-0.097584194,2 +0.89930603,-0.25400247,-0.47368027,-1.5171499,-1.2425526,-0.91303589,-2.1212638,-1.1876332,0.2402726,1.5583395,1.7230978,1.8329367,1.1739033,0.51486986,0.2402726,0.020594797,-0.089244108,-0.30892192,-0.25400247,-0.14416356,-0.25400247,-0.25400247,0.67962822,0.1304337,2 +-0.38531557,-0.80886858,-1.4794941,-1.4794941,-1.5500863,-1.4794941,-1.2677176,-0.032354743,0.39119825,1.0265277,1.2030081,1.0265277,0.60297474,0.17942175,-0.3147234,-0.24413124,-0.35001948,0.0029413401,1.555969,1.6618572,1.3088964,0.53238258,0.10882959,-0.20883515,1 +-0.28216198,-0.73362116,-1.3731883,-1.4860531,-1.5989179,-1.2979451,-0.99697236,-0.43264837,0.43264839,1.3731883,1.2979451,1.0345939,0.65837798,0.018810804,-0.39502678,-0.47026997,-0.31978358,-0.24454039,1.4484315,1.6741611,1.2227019,0.69599958,0.16929719,-0.39502678,1 +-0.49148107,-1.022812,-1.3416105,-1.4744432,-1.4744432,-1.5010097,-1.5275763,-0.70401342,0.3852149,1.3150439,1.2884774,1.2884774,1.075945,0.83684615,0.78371306,0.83684615,0.96967887,0.81027961,0.43834799,0.25238217,0.039849821,-0.43834798,-0.11954945,-0.22581563,2 +-0.83116338,-1.3237046,-1.5699752,-1.487885,-1.4605216,-1.5426118,-1.2416144,-0.55752934,0.56437018,1.166365,1.1937284,0.97482123,0.94745783,0.45491657,0.42755317,0.50964337,0.48227997,0.37282636,0.48227997,1.4399991,0.92009442,0.48227997,-0.010261279,-0.39334891,2 +-0.81304464,-1.0906696,-1.2493125,-1.5269375,-1.5269375,-1.5665982,-1.1303303,-0.77338392,0.25779464,1.1303303,1.2493125,1.2493125,1.2096518,1.0113482,0.97168749,0.97168749,1.0113482,0.57508035,0.37677678,0.019830357,-0.33711607,-0.21813393,0.29745535,-0.099151787,2 +-0.86144591,-1.3194957,-1.4444184,-1.5693411,-1.5693411,-1.5693411,-1.2570344,-0.17437123,0.90829193,1.1373168,1.1164964,1.0748555,0.78336926,0.32531946,0.36696035,0.47106258,0.51270347,0.47106258,1.1164964,1.0956759,0.72090792,0.3461399,-0.21601212,-0.46585745,1 +-0.088967941,-0.72953716,-1.0284695,-1.2419925,-1.5836295,-1.2846972,-0.94306023,-0.98576484,-0.857651,0.039145902,0.59430589,0.80782896,0.72241973,0.3380782,-0.088967941,-0.2597864,-0.30249101,-0.38790024,0.12455513,1.7900351,1.8327397,1.6192166,1.1921705,0.72241973,1 +-0.73591229,-1.0517733,-1.078095,-1.3676343,-1.5518866,-1.499243,-1.499243,-0.97280806,0.71178401,1.132932,1.238219,1.3171843,1.2908625,0.71178401,0.76442751,0.97500152,0.94867976,0.63281876,0.47488825,0.21167075,-0.13051201,-0.26212077,-0.051546765,-0.20947727,2 +-0.32859526,-0.94077274,-1.3368876,-1.4089085,-1.5529502,-1.372898,-1.1928458,-0.9047623,-0.50864746,-0.14854306,0.39161353,0.71570749,1.0398015,0.31959265,0.24757177,-0.11253262,-0.1845535,0.35560309,1.2558641,1.5439476,1.6159685,1.3999058,0.85974925,0.24757177,1 +0.4766838,-0.48671925,-1.0888462,-1.2694842,-1.510335,-1.1490589,-0.90820807,-0.96842076,0.23583304,1.7411503,1.9820011,1.801363,1.018598,0.11540766,-0.54693194,-0.30608118,-0.36629387,-0.48671925,-0.42650656,-0.0050177212,0.29604573,1.3196615,0.53689649,-0.0050177212,2 +-0.73124782,-1.063827,-1.4731552,-1.5754873,-1.7034024,-1.4731552,-1.3708232,-0.68008179,0.44557083,1.4944744,1.3409763,1.1618952,0.9316481,0.49673686,0.5734859,0.70140097,0.26648973,0.77815001,0.52231987,0.59906891,0.36882179,0.49673686,0.11299165,-0.21958754,2 +-1.0055433,-1.1924401,-1.6129577,-1.6129577,-1.5195093,-1.4961473,-1.1924401,-0.094421781,0.67652722,1.1904932,1.0035965,0.88678604,0.67652722,0.37282004,0.30273376,0.48963049,0.58307886,0.72325141,1.3073037,1.1904932,0.65316513,0.27937167,-0.07105969,-0.53830152,1 +0.55440989,-0.17467709,-0.72149233,-1.1467931,-1.2075504,-1.2683076,-1.0252786,-1.5720939,-0.72149233,0.25062366,0.79743889,1.1619824,1.2834969,0.31138091,-0.11391984,-0.053162593,0.0075946563,-0.59997783,-0.72149233,-0.41770609,0.37213816,1.2227397,2.0733412,1.7087977,2 +0.1047259,-0.50966607,-0.95649659,-1.3474733,-1.5150347,-1.3474733,-1.1799119,-1.4591809,-0.90064277,0.4398488,0.77497169,0.94253314,0.66326406,0.4398488,-0.34210462,0.16057972,-0.23039699,-0.062835542,0.048872089,0.77497169,1.3335098,2.1154633,1.2218022,0.8308255,2 +-0.44323823,-1.1644394,-1.4949899,-1.3747897,-1.4348898,-1.4048398,-1.7654404,0.0676126,0.72871368,1.3297147,1.4499149,1.3297147,0.99916412,0.54841338,0.78881377,0.84891387,0.93906402,0.39816314,0.24791289,0.1277127,-0.23288789,-0.41318818,0.037562551,-0.11268769,2 +-1.1695954,-1.4291358,-1.528959,-1.5688883,-1.6088176,-1.5089944,-1.0897369,-0.13143391,0.54736401,0.9865862,0.9865862,1.1063741,0.7669751,0.44754079,0.56732865,0.52739936,0.62722259,0.54736401,1.1862326,1.0464801,0.62722259,0.42757614,-0.071539983,-0.29115107,1 +-0.98662972,-1.3528016,-1.5236818,-1.6457391,-1.7189735,-1.4504474,-1.0598641,-0.083405808,0.50246916,1.3812816,1.3568702,1.1615785,0.9418754,0.52688062,0.60011499,0.60011499,0.67334936,0.40482333,0.1362973,0.18512022,0.72217228,0.72217228,0.063062935,-0.15664018,1 +-0.33417379,-1.0580159,-1.4344138,-1.3765065,-1.4923212,-1.5791823,-1.5212749,-0.79743275,0.50548309,1.1714179,1.4030473,1.2582789,1.1135105,0.70815889,0.82397363,0.96874206,0.76606626,0.73711257,0.41862203,0.24489992,-0.1025443,-0.47894221,0.013270441,0.042224126,2 +-0.44710017,-1.0118583,-1.3199082,-1.5509456,-1.4996039,-1.4739331,-1.5766164,-0.75515005,0.34869535,1.2471742,1.2985158,1.1958325,1.0161368,0.78509935,0.81077017,0.96479511,1.0674784,0.81077017,0.400037,0.16899959,-0.24173359,-0.19039194,0.11765794,-0.16472112,2 +-0.64251105,-0.95489211,-1.6364508,-1.4376628,-1.4944594,-1.6648491,-1.2104766,-0.67090933,0.91939426,1.5157581,1.402165,1.3737667,0.86259771,0.69220804,0.80580115,0.63541148,0.6070132,0.3514287,0.09584419,-0.017748924,-0.10294376,0.46502181,0.09584419,0.010649354,2 +-0.56673137,-1.0661404,-1.3599105,-1.5067955,-1.5655495,-1.4480415,-1.6536805,-0.59610837,0.7258568,1.2546429,1.3133969,1.2840199,1.1077579,0.69647979,0.7552338,0.96087283,0.78461081,0.54959477,0.31457874,-0.0085682986,-0.15545331,-0.12607631,0.16769372,0.13831672,2 +-0.92930619,-1.2588109,-1.6089096,-1.5471275,-1.5677215,-1.4235632,-1.2794049,-0.29089086,0.67702916,1.1300981,1.0271279,1.0477219,0.84178151,0.57405895,0.49168277,0.61524703,0.71821726,0.80059343,1.1918802,0.8829696,0.34752447,0.22396022,-0.14673256,-0.51742533,1 +-0.86758006,-1.1713481,-1.5303468,-1.5855773,-1.6960384,-1.4198856,-1.3094245,-0.64665782,0.7341062,1.2587965,1.2035659,1.0931048,0.67887564,0.43033811,0.56841452,0.51318396,0.48556868,0.26464643,0.34749227,1.1207201,0.95502845,0.62364508,0.043724191,-0.09435221,2 +-1.019922,-1.3105299,-1.4223021,-1.4446566,-1.5340744,-1.5340744,-1.3552388,-0.23751608,0.50018091,1.0590423,1.0813967,0.90256109,0.701371,0.23192746,0.43311755,0.43311755,0.65666209,0.88020663,1.3272957,1.1484601,0.701371,0.43311755,-0.10338935,-0.52812398,1 +-0.83966127,-1.3369153,-1.3892578,-1.4416003,-1.310744,-1.415429,-1.4677716,-0.63029118,0.52124428,1.2016971,1.2016971,1.2016971,1.097012,0.88764194,0.80912815,0.99232698,1.0184982,0.67827185,0.57358681,0.023990328,-0.23772229,-0.29006481,0.15484663,-0.002180934,2 +0.11869993,-0.73168768,-0.94428459,-0.94428459,-0.90176521,-1.1143621,-1.0718427,-1.4970365,-0.73168768,-0.0088582164,0.33129682,0.28877744,0.54389373,0.16121931,-0.093896977,-0.34901326,-0.56161017,-0.60412955,0.076180545,1.8194752,1.8194752,1.8619946,1.4368008,1.0966457,1 +-0.73167617,-1.1712925,-1.5132163,-1.7086013,-1.659755,-1.3422544,-1.3666775,-0.2187905,0.41621079,1.2465971,1.1977509,0.97794272,0.68486519,0.5139033,0.48948017,0.5139033,0.46505705,0.5139033,0.73371145,1.3442896,0.85582708,0.39178767,-0.047828615,-0.5851374,1 +-0.95302723,-1.1540564,-1.5561148,-1.6454611,-1.5337782,-1.4667685,-1.2434027,-0.10423735,0.7668891,1.1019377,1.1689475,1.1466109,0.92324513,0.32015759,0.32015759,0.43184046,0.49885019,0.40950389,1.2136206,1.0572646,0.72221595,0.25314786,-0.23825681,-0.43928599,1 +-0.59244345,-0.94717051,-1.2132158,-1.5088217,-1.4792611,-1.4201399,-1.5383823,-0.7106858,0.61954066,1.5359189,1.4767977,1.240313,1.240313,0.7673436,0.7673436,0.82646477,0.85602536,0.47173772,0.057889489,-0.0012316875,-0.20815581,-0.2377164,0.057889489,-0.060352863,2 +-0.75959786,-1.058456,-1.4116521,-1.438821,-1.6018345,-1.4931588,-1.5203278,-0.97694926,0.082638815,0.97921333,1.0607201,1.0063823,0.92487548,0.43583484,0.87053763,0.89770656,1.1693958,1.087889,0.54451054,0.32715914,0.29999021,0.59884839,0.16414559,-0.18905044,2 +-0.63729418,-0.9437526,-1.3337906,-1.5845293,-1.3895103,-1.4173701,-1.5009497,-0.86017303,0.36566061,1.062157,1.3407555,1.3686154,1.0342971,0.83927815,0.75569858,1.0342971,1.1457365,0.69997887,0.36566061,0.17064162,-0.13581678,-0.38655548,0.0034824906,0.0034824906,2 +-0.91190859,-1.2326701,-1.5040837,-1.5534317,-1.6521275,-1.4547358,-1.1339743,-0.41842931,0.59320322,0.91396475,1.1360304,0.96331268,0.83994286,0.34646358,0.22309376,0.22309376,0.4698334,1.1607044,1.3334221,1.1853784,0.56852926,0.34646358,-0.072993806,-0.36908138,1 +-0.85092255,-1.2251503,-1.3320725,-1.7330308,-1.599378,-1.4657253,-1.2518809,-0.5568865,0.61925779,1.2875216,1.3944438,1.2340605,0.99348551,0.80637165,0.85983276,0.67271889,0.64598834,0.51233558,0.32522172,0.27176061,0.1648384,0.40541337,-0.022275459,-0.15592822,2 +0.45465814,-0.067715041,-0.88029555,-1.1124614,-1.2865858,-1.1705029,-0.82225409,-1.1124614,-0.067715041,0.28053375,0.57074107,0.57074107,0.62878254,-0.067715041,-0.2998809,-0.35792237,-0.64812969,-0.76421262,-0.41596383,-0.24183944,0.80290693,2.311985,2.311985,1.3833216,2 +2.020761,-0.17042563,-0.68170251,-1.0469003,-1.2660189,-1.1929794,-0.90082118,-1.4120981,0.34085127,1.363405,1.7286028,1.6555632,1.2173259,0.7790886,-0.24346518,-0.31650474,-0.024346512,-0.097386067,-0.097386067,-0.24346518,-0.97386073,-0.60866296,0.34085127,-0.17042563,2 +-0.79600314,-0.94205876,-1.1757478,-1.4386479,-1.4094368,-1.467859,-1.5847035,-0.82521426,0.46007521,1.1903533,1.2779867,1.336409,1.1319311,0.81060871,0.83981983,0.95666433,0.98587546,0.86903096,0.34323071,0.021908344,-0.35783628,-0.32862515,0.051119469,0.051119469,2 +-0.93839001,-1.1355135,-1.6283223,-1.6036818,-1.6776032,-1.4558392,-1.1108731,-0.44558125,0.73715977,1.2299685,1.2299685,1.0574855,0.86036196,0.44147451,0.51539583,0.41683408,0.51539583,0.31827232,0.26899145,1.3285303,0.81108108,0.51539583,-0.026693806,-0.22381731,1 +0.73517838,-0.44110703,-1.0012429,-1.1132701,-1.0572565,-1.3933381,-1.8974604,-0.94522937,0.34308325,1.3513279,1.6874094,1.9114638,1.743423,0.45511043,0.17504247,-0.049011895,0.11902888,0.007001696,-0.16103907,-0.049011895,-0.44110703,-0.49712062,0.51112402,0.007001696,2 +-0.87162707,-1.2423444,-1.3482636,-1.5601021,-1.4541829,-1.3217838,-1.4277031,-0.79218764,0.37292398,1.1143587,1.1673183,1.1673183,1.1408385,0.77012112,0.84956055,1.0349192,1.0084394,0.84956055,0.47884321,0.31996436,0.0022066437,-0.18315202,0.055166263,-0.1301924,2 +-0.19642556,-0.71542152,-1.0181691,-1.2776671,-1.3641664,-1.4506658,-1.0614188,-0.71542152,-0.93166983,-0.023426907,0.45231939,0.66856771,0.62531804,0.23607108,-0.28292489,-0.19642556,-0.54242287,-0.10992624,1.4470616,1.8363086,1.66331,1.6200603,0.79831669,0.53881872,1 +-1.0672417,-1.3645006,-1.51313,-1.5874447,-1.5874447,-1.51313,-1.0672417,-0.42318095,0.44382393,1.0631131,0.9392553,0.98879844,0.81539746,0.3942808,0.54291021,0.64199648,0.49336707,0.41905237,0.91448374,1.4346867,0.88971217,0.44382393,-0.15069371,-0.15069371,1 +-1.0328703,-1.2617612,-1.5593194,-1.6737649,-1.5822085,-1.467763,-1.1473157,-0.1173066,0.56936616,1.0500371,0.95848072,0.86692435,0.63803343,0.29469706,0.31758615,0.36336434,0.56936616,0.66092252,1.4620408,1.1415935,0.84403526,0.47780979,0.020027953,-0.3919757,1 +0.70787592,-0.64224504,-0.75475512,-0.75475512,-0.97977528,-1.4298156,-1.0922854,-1.8798559,-0.19220472,1.3829364,1.8329767,1.9454868,1.1579162,0.37034568,-0.19220472,-0.3047148,0.70787592,0.2578356,-0.3047148,-0.64224504,-0.41722488,-0.19220472,1.0454062,0.37034568,2 +-0.43482661,-0.9751016,-1.4585055,-1.486941,-1.3731989,-1.2310213,-1.6575542,-0.88979502,0.33293262,1.0722563,1.3566116,1.4419181,1.0153852,0.70259447,0.87320763,0.95851421,1.0153852,0.84477211,0.50354577,0.16231946,-0.1220358,-0.23577791,-0.1220358,-0.29264898,2 +0.062451477,-0.96306758,-1.1208397,-1.2786119,-1.5152702,-1.1997258,-0.96306758,-1.8308145,-0.41086501,0.53576797,1.1668566,1.0090845,1.6401731,0.53576797,0.8513123,0.69354013,0.53576797,0.22022364,-0.41086501,-0.17420676,-0.48975109,1.0090845,0.77242622,1.3246288,2 +-0.97934557,-1.4245026,-1.5580498,-1.6915969,-1.6470812,-1.3577291,-1.0906348,-0.11128927,0.71225132,1.0906348,1.068377,0.97934557,0.75676703,0.2893521,0.46741493,0.37838351,0.40064137,0.35612566,1.3132134,1.2019241,0.71225132,0.37838351,-0.044515708,-0.20032068,1 +-0.98463039,-1.4533063,-1.5273077,-1.4779734,-1.6506435,-1.5026406,-1.0586319,-0.44195308,0.54473291,1.3587488,1.1614116,0.9887416,0.76673725,0.52006576,0.34739571,0.47073146,0.54473291,0.19939281,0.32272856,1.3340817,0.890073,0.61873436,0.15005851,-0.12128014,1 +-0.41297403,-1.1731387,-1.2900871,-1.5239839,-1.4070355,-1.5824581,-1.7286436,-0.79305634,0.37642767,1.2535407,1.2827778,1.2827778,0.90269549,0.75650998,0.87345839,0.78574708,0.93193259,0.66879868,0.34719057,0.11329377,-0.032891728,0.37642767,0.025582472,-0.032891728,2 +1.2373196,0.75706614,0.19677049,-0.52360963,-0.28348292,-0.44356739,-1.4040742,-1.9643699,-1.1639475,-0.76373634,0.11672825,0.4368972,0.59698167,-0.12339845,-0.12339845,-0.20344068,-0.84377857,-0.60365187,-0.36352516,-0.043356216,0.27681272,0.75706614,2.1177842,2.3579109,2 +-1.005977,-1.3970696,-1.5274338,-1.6056523,-1.6317251,-1.4231424,-1.0581227,-0.51059311,0.58446614,1.2102143,1.3405784,1.3405784,1.0537772,0.45410194,0.63661182,0.63661182,0.76697601,0.50624761,0.21944639,0.24551923,0.11515504,0.66268466,0.34981058,0.036936519,2 +-0.010691989,-0.86605121,-1.2937309,-1.0371231,-1.2937309,-1.5075707,-1.2081949,-0.99435509,0.41698762,1.1868109,1.4006508,1.144043,0.67359538,0.20314782,-0.39560364,-0.4383716,-0.4383716,-0.48113956,0.1176119,1.8283304,1.4861867,1.144043,0.33145171,0.032075972,2 +-0.763112,-1.0624605,-1.5523036,-1.5250901,-1.5250901,-1.5795171,-1.3345956,-0.817539,0.40706866,1.0057657,1.2506873,1.1962603,1.0601927,0.7608442,0.7608442,0.89691172,1.0329792,0.57034968,0.51592267,0.40706866,0.18936063,0.35264165,-0.055560899,-0.19162842,2 +-1.2598921,-1.1702998,-1.5510672,-1.5286691,-1.5734652,-1.3270863,-1.1479017,-0.25197842,0.86792567,1.226295,1.1591007,1.0471103,0.75593526,0.28557554,0.30797362,0.4647602,0.55435252,0.50955636,1.1814988,1.1814988,0.55435252,0.33037171,-0.13998801,-0.47595924,1 +-0.75747271,-1.2441091,-1.3831481,-1.522187,-1.661226,-1.4526676,-1.1398299,-0.72271297,0.35483903,1.1890728,1.4671508,1.3628716,1.2238326,0.66767671,0.63291697,0.63291697,0.77195594,0.45911826,0.28531955,-0.027518127,-0.027518127,0.80671568,0.28531955,-0.20131684,2 +0.91295034,0.59654878,0.042846036,-0.58995708,-0.74815786,-0.66905747,-1.7764629,-1.9346637,-0.98545903,-0.19445513,0.28014722,0.67564917,0.51744839,0.12194644,0.12194644,-0.58995708,-0.51085669,-0.51085669,-0.27355552,0.042846036,0.438348,0.51744839,2.4949582,2.0203558,2 +-0.9521658,-1.408192,-1.5348659,-1.6362051,-1.5602007,-1.408192,-1.053505,-0.54680919,0.5932563,1.1759564,1.0746173,0.74526503,0.89727376,0.41591278,0.61859109,0.64392587,0.61859109,0.3652432,0.31457362,1.3279652,1.0239477,0.66926066,0.01055616,-0.39480045,1 +-0.6390164,-1.3784071,-1.6407715,-1.6407715,-1.6407715,-1.4976636,-1.1875966,-0.18584147,0.55354919,1.1021294,1.149832,1.1736833,0.88746755,0.43429264,0.43429264,0.43429264,0.52969787,0.3627387,0.72050837,1.2690886,0.79206231,0.33888739,-0.18584147,-0.18584147,1 +-0.47668336,-1.0047018,-1.3127126,-1.4447173,-1.6207234,-1.3127126,-1.1367065,-0.65268952,-0.21267411,-0.5206849,0.31534438,0.75535978,0.97536749,0.35934592,0.051335125,-0.12467103,-0.25667565,0.57935362,1.3713814,1.4593844,1.5473875,1.3713814,1.019369,0.27134283,1 +0.27403158,-0.15622361,-0.83233891,-0.95526896,-1.016734,-1.2011291,-0.83233891,-1.3855242,-0.77087388,0.33549661,1.134542,1.0730769,1.0730769,0.27403158,0.089636502,-0.46354875,-0.64794382,-0.77087388,-0.77087388,-0.094758582,0.33549661,2.2409125,1.8106573,1.257472,2 +0.45157748,-0.48441948,-0.97704946,-1.6174684,-1.7159944,-1.3218905,-1.2233645,-0.28736749,0.69789248,1.5353634,1.8309414,1.6338894,1.1412595,0.35305149,-0.23810449,-0.23810449,-0.33663049,-0.38589349,-0.53368248,-0.13957849,0.15599949,1.1905225,0.55010349,-0.041052496,2 +-0.32666971,-0.81262465,-1.2661826,-1.6225495,-1.6225495,-1.5577556,-1.1365946,-0.16468473,0.61284316,1.2283861,1.4875621,1.1635921,0.83962213,0.22407921,-0.16468473,-0.29427271,-0.13228773,-0.067493749,1.2931801,1.4875621,0.90441613,0.51565217,-0.035096754,-0.55344868,1 +-0.87793799,-1.1166973,-1.4449914,-1.4748363,-1.6837508,-1.3554567,-1.1166973,-0.78840323,0.37554854,1.3305859,1.5096554,1.4499656,1.0321367,0.49492821,0.55461805,0.73368755,0.85306722,0.49492821,0.1367892,0.10694429,0.07709937,0.8232223,0.07709937,-0.19150489,2 +-0.90556361,-1.2817764,-1.513292,-1.6001104,-1.6869287,-1.513292,-0.99238196,-0.76086636,0.19413547,1.1780767,1.2359556,1.2070162,0.88868226,0.30989327,0.94656116,0.91762171,0.83080336,0.54140886,0.39671161,0.19413547,0.30989327,0.77292446,0.28095382,0.049438224,2 +-0.048721308,-1.1814914,-1.5469012,-1.5834421,-1.729606,-1.4372782,-0.96224563,0.46285231,0.71863912,1.0840488,1.3032947,1.1936718,0.68209815,0.024360638,-0.1948852,-0.30450811,-0.30450811,-0.085262281,0.53593426,1.5956225,1.1571308,0.7551801,0.28014745,-0.41413103,1 +0.23076381,-0.34882903,-0.73522427,-1.3148171,-1.5080147,-0.92842188,-1.1860187,-1.1860187,-0.091232217,1.7119456,1.7763448,1.840744,1.3899495,0.23076381,-0.026833011,-0.41322824,-0.47762744,-0.60642585,-0.54202665,-0.28442984,0.35956222,1.1967519,0.55275983,0.35956222,2 +-0.46179411,-0.87119468,-1.2805952,-1.3683239,-1.4560526,-1.1928665,-1.4852955,-0.6372515,0.62019311,1.1758082,1.4974801,1.2635369,1.0588366,0.94186499,0.8248934,0.64943601,1.0880795,0.70792181,0.47397863,-1.2805952,-0.14012224,-0.25709383,0.064578048,0.064578048,2 +-1.097752,-1.414697,-1.5731695,-1.5731695,-1.5335514,-1.4345061,-1.097752,-0.067680942,0.70487237,1.0614354,1.0812445,0.96239014,0.7841086,0.54639989,0.40773647,0.42754553,0.46716365,0.40773647,1.1208626,1.2199079,0.80391766,0.38792741,-0.028062823,-0.56290742,1 +-0.48817267,-0.94290884,-1.3708958,-1.5046417,-1.5313909,-1.5046417,-1.4511434,-0.6219186,0.44804886,1.2505245,1.464518,1.4912672,1.2505245,0.7690391,0.90278503,0.7690391,0.68879154,0.44804886,0.3678013,0.046811061,-0.14043324,-0.27417917,0.073560247,-0.14043324,2 +-0.90043525,-1.2615353,-1.4281968,-1.6226353,-1.5948584,-1.5393045,-1.6226353,0.15508782,0.65507244,1.0161725,1.2661648,1.0439494,0.90506475,0.59951859,0.82173398,0.87728783,0.82173398,0.51618782,0.34952628,0.3773032,0.071757051,0.51618782,0.21064167,-0.23378911,2 +-0.67695063,-1.0953235,-1.478832,-1.6880185,-1.6880185,-1.5485608,-0.99073032,-0.46776416,0.26438844,0.61303255,1.0314054,1.0314054,0.7873546,0.33411727,0.055201985,0.055201985,0.1249308,1.1011343,1.4149139,1.3800495,0.96167664,0.61303255,0.15979521,-0.29344211,1 +-1.0932485,-1.0672188,-1.5357539,-1.5357539,-1.5878134,-1.4836944,-1.2494269,-0.70280263,0.39044591,1.0411891,0.98912963,0.98912963,0.85898099,0.46853509,0.46853509,0.52059454,0.572654,0.46853509,0.98912963,1.3535458,0.93707017,0.49456481,-0.078089185,-0.20823782,1 +-0.34210586,-0.85957692,-1.2045576,-1.4805422,-1.7220287,-1.4805422,-1.2390557,-0.92857306,-0.27310972,-0.13511744,0.69283625,0.83082853,0.72733432,0.34785554,-0.13511744,-0.066121297,-0.066121297,0.83082853,1.3138015,1.6242841,1.4172957,1.1413112,0.76183239,0.24436133,1 +-0.6165858,-1.1680662,-1.4744442,-1.5663576,-1.5663576,-1.5357198,-1.2906174,-0.67786141,0.3944617,1.4667848,1.4055092,1.3135958,1.129769,0.4863751,0.63956412,0.63956412,0.79275313,0.4557373,0.11872146,0.057445861,0.27191049,0.57828851,0.27191049,-0.12638096,2 +-0.26682499,-1.1112822,-1.3575822,-1.3223965,-1.5335108,-1.5335108,-1.3223965,-0.26682499,0.22577501,1.1054179,1.210975,0.96467503,0.75356074,0.12021787,-0.23163928,-0.3020107,-0.12608214,0.36651787,1.5276465,1.5980179,1.2813465,0.57763216,0.049846439,-0.40756785,1 +0.43102458,-0.51847884,-1.1181652,-1.218113,-1.3680346,-1.6678778,-1.8177994,-1.0182175,0.48099845,1.4804758,1.5804235,1.6303974,1.1806326,0.33107686,0.1311814,-0.11868793,-0.21863566,-0.31858339,-0.11868793,0.1311814,0.53097231,0.6808939,0.88078936,0.031233665,2 +-0.61221533,-1.0498842,-1.3625047,-1.4250289,-1.2374565,-1.5500771,-1.2999806,-0.67473944,0.32564645,1.169722,1.2947703,1.2322462,0.95088763,0.38817057,-0.20580856,-0.08076032,0.23186027,0.63826704,1.3572944,1.5136047,0.8258394,0.29438439,-0.08076032,-0.64347739,1 +-1.2627064,-1.4497741,-1.5199244,-1.6602251,-1.706992,-1.4030071,-1.0990223,-0.16368418,0.65473667,1.0522554,1.0522554,1.0288719,0.91195465,0.65473667,0.70150357,0.70150357,0.74827048,0.4910525,0.30398487,0.4442856,0.56120286,0.81842084,0.28060142,-0.14030072,2 +0.71432123,0.62902914,0.11727662,-0.30918381,-0.30918381,-0.30918381,0.031984528,-1.6738572,-1.5885651,-0.22389173,-0.13859964,0.28786079,-0.13859964,-0.47976799,-0.47976799,-0.56506007,-0.56506007,-0.82093633,-0.47976799,-0.30918381,0.11727662,2.420163,2.1642867,1.9084104,2 +-0.58214415,-1.1312408,-1.4973052,-1.6803374,-1.6803374,-1.4667998,-1.1922515,-0.70416563,0.57705992,1.3701995,1.4617156,1.248178,1.0346404,0.51604918,0.60756529,0.66857603,0.63807066,0.51604918,0.27200621,0.1804901,-0.094058228,0.72958677,0.21099547,-0.0025421181,2 diff --git a/src/main/java/experiments/data/tsc/ItalyPowerDemand/ItalyPowerDemand_TRAIN.arff b/src/main/java/experiments/data/tsc/ItalyPowerDemand/ItalyPowerDemand_TRAIN.arff new file mode 100644 index 000000000..498eba65f --- /dev/null +++ b/src/main/java/experiments/data/tsc/ItalyPowerDemand/ItalyPowerDemand_TRAIN.arff @@ -0,0 +1,100 @@ +%The data was derived from twelve monthly electrical power demand +%time series from Italy and first used in the paper "Intelligent +%Icons: Integrating Lite-Weight Data Mining and Visualization into +%GUI Operating Systems". The classification task is to distinguish +%days from Oct to March (inclusive) from April to September. +@Relation ItalyPowerDemand +@attribute att1 numeric +@attribute att2 numeric +@attribute att3 numeric +@attribute att4 numeric +@attribute att5 numeric +@attribute att6 numeric +@attribute att7 numeric +@attribute att8 numeric +@attribute att9 numeric +@attribute att10 numeric +@attribute att11 numeric +@attribute att12 numeric +@attribute att13 numeric +@attribute att14 numeric +@attribute att15 numeric +@attribute att16 numeric +@attribute att17 numeric +@attribute att18 numeric +@attribute att19 numeric +@attribute att20 numeric +@attribute att21 numeric +@attribute att22 numeric +@attribute att23 numeric +@attribute att24 numeric +@attribute target {1,2} + +@data +-0.71051757,-1.1833204,-1.3724416,-1.5930829,-1.4670021,-1.3724416,-1.0887599,0.045966947,0.92853223,1.0861332,1.2752543,0.96005242,0.61333034,0.014446758,-0.6474772,-0.26923494,-0.20619456,0.61333034,1.3698149,1.4643754,1.054613,0.58181015,0.1720477,-0.26923494,1 +-0.99300935,-1.4267865,-1.5798843,-1.6054006,-1.6309169,-1.3757539,-1.0185257,-0.35510183,0.71658276,1.2013925,1.1248436,1.0482947,0.79313166,0.46141977,0.48693607,0.56348497,0.61451757,0.30832197,0.25728936,1.0993273,1.0482947,0.69106647,-0.048906237,-0.38061813,1 +1.3190669,0.56977448,0.19512825,-0.085856424,-0.17951799,-0.27317954,-0.085856424,-1.3971182,-1.1161336,-0.74148733,0.0078051347,-0.085856424,0.0078051347,-0.46050266,-0.55416422,-0.74148733,-0.74148733,-0.74148733,-1.1161336,-0.46050266,0.47611292,2.3493441,2.2556825,1.6000516,2 +-0.81244429,-1.1575534,-1.4163852,-1.5314215,-1.5026624,-1.4163852,-1.6464579,-0.46733521,0.6542693,1.0568965,1.3444874,1.200692,0.99937838,0.6542693,0.74054657,0.88434202,0.88434202,0.68302839,0.62551021,0.42419658,-0.0071897655,-0.035948855,0.1078466,-0.26602157,2 +-0.97284033,-1.3905178,-1.5367049,-1.6202404,-1.6202404,-1.4531694,-0.9937242,0.050469368,0.63521776,1.0320113,0.80228873,0.8231726,0.65610163,0.3846113,0.32195969,0.48903066,0.61433389,1.3035016,1.24085,1.0737791,0.55168227,0.42637904,-0.17925321,-0.63869838,1 +0.36742384,-0.27780827,-0.76173234,-0.86927102,-1.1381178,-1.0843484,-1.1381178,-0.60042432,-1.0843484,-0.27780827,0.36742384,0.47496251,0.52873185,0.098577125,-0.27780827,-0.38534696,-0.60042432,-0.54665497,-0.49288564,0.36742384,2.3031202,2.0880428,1.7654268,1.173964,1 +0.087212802,-0.5764553,-1.0869692,-1.3932776,-1.3932776,-1.2911748,-1.7506373,-0.72960947,0.34246976,1.7208573,1.8229601,1.7719087,1.159292,0.80193229,0.18931559,-0.014889982,-0.065941374,-0.065941374,-0.014889982,0.087212802,-0.32119833,-0.21909555,0.7508809,0.18931559,2 +-1.0990687,-1.375564,-1.5230281,-1.5598942,-1.5967602,-1.430863,-1.1359347,-0.23271685,0.652068,0.94699629,1.0022954,0.91013026,0.79953215,0.43087179,0.55990291,0.63363499,0.83639818,0.78109913,1.2050586,0.98386233,0.59676895,0.30184066,-0.12211874,-0.56451118,1 +-1.1498699,-1.5492459,-1.4893395,-1.5692147,-1.5692147,-1.4494019,-1.0899635,0.088195523,0.3477899,1.0666666,1.1066042,1.0466978,0.64732186,0.50754028,0.60738427,0.62735306,0.68725946,0.72719705,1.0666666,0.96682264,0.58741547,0.36775869,-0.071554863,-0.51086841,1 +-0.75623962,-1.1883766,-1.3154757,-1.4425748,-1.4425748,-1.2900559,-1.5442541,-0.88333872,0.41307207,1.2010865,1.277346,1.2519261,0.99772791,0.845209,0.89604864,0.97230809,1.0231478,0.7181099,0.31139279,0.48933153,-0.14616395,-0.19700358,0.057194601,-0.24784322,2 +-0.50951707,-1.2395714,-1.2395714,-1.6045985,-1.6045985,-1.1483146,-0.78328746,-1.2395714,-0.14448992,0.95059156,1.3156187,1.4981323,1.2243619,0.85933478,0.49430761,0.76807799,0.49430761,0.49430761,0.12928045,-0.32700349,-0.69203065,1.0418483,0.85933478,0.40305082,2 +-1.0048172,-1.3816236,-1.5574667,-1.6077075,-1.6579484,-1.4318645,-1.0801785,0.22608387,0.9294559,1.1806602,1.1052989,0.87921505,0.72849247,0.52752903,0.55264946,0.65313118,0.57776989,0.27632473,0.22608387,1.2057806,0.77873333,0.52752903,0.025120436,-0.67825161,1 +-0.97486577,-1.2824483,-1.5490198,-1.6105364,-1.6310419,-1.4875033,-1.0158768,-0.13414016,0.68607994,1.0346735,1.014168,0.89113497,0.52203592,0.44001391,0.39900291,0.41950841,0.54254143,1.301245,1.219223,0.91164047,0.58355243,0.52203592,-0.19565667,-0.60576673,1 +-0.8749153,-1.2653157,-1.4884017,-1.6836019,-1.6836019,-1.5162874,-1.2653157,-0.31720038,0.51937202,1.1328584,1.1886299,1.1886299,0.88188674,0.57514352,0.60302927,0.63091502,0.88188674,0.49148628,0.26840031,0.35205754,0.88188674,0.63091502,0.15685732,-0.28931464,2 +-0.96432326,-1.4332951,-1.5270895,-1.6208838,-1.667781,-1.4332951,-0.96432326,-0.23741698,0.65362945,1.1460499,1.1460499,1.0053583,0.7708724,0.37224636,0.37224636,0.55983509,0.5363865,0.39569495,0.46604073,1.4039844,0.88811534,0.55983509,0.067414695,-0.49535147,1 +0.83967029,-0.36945493,-0.42703232,-0.83007406,-0.94522885,-0.88765145,-1.8088897,-1.5210028,-1.117961,-0.42703232,0.37905116,0.66693812,0.83967029,0.1487416,-0.081567973,-0.31187754,-0.5421871,-0.25430015,-0.023990582,0.37905116,0.95482508,2.1639503,1.7033312,1.4730216,2 +-0.5855154,-0.81972157,-1.1877598,-1.455424,-1.7900042,-1.388508,-1.0539277,-0.41822529,-0.45168331,0.11710308,0.51859936,0.65243145,0.55205738,0.21747715,-0.11710308,-0.48514133,0.016729013,1.1543018,1.421966,1.6227141,1.52234,1.3215919,0.68588947,-0.050187035,1 +-0.25805705,-0.73143556,-1.1259177,-1.362607,-1.4809516,-1.4415034,-1.0864695,-0.77088377,-0.81033198,0.018080433,0.33366612,0.64925181,0.68870002,-0.1002642,-0.21860884,-0.29750526,-0.25805705,0.88594105,1.5171125,1.7143535,1.6354571,1.3593196,0.84649285,0.29421791,1 +-0.8695845,-1.2261027,-1.4180741,-1.527772,-1.527772,-1.472923,-1.5551964,-0.65018867,0.50163941,1.1872514,1.2146758,1.2969493,1.0227045,0.69361076,0.69361076,0.80330867,0.80330867,0.66618628,0.3919415,0.33709254,0.090272243,0.11769672,0.44679046,-0.01942567,2 +-1.07068,-1.3139809,-1.48242,-1.5572818,-1.5572818,-1.48242,-1.0519645,-0.17233815,0.46398732,0.96930461,0.9318737,0.91315825,0.68857278,0.63242641,0.48270278,0.52013369,0.65114187,1.2874673,1.0815973,1.0628819,0.66985732,0.31426368,-0.26591542,-0.71508634,1 +-1.0419662,-1.3488029,-1.5213985,-1.617285,-1.6364623,-1.2145619,-1.0994981,-0.25569723,0.77987657,1.1442451,1.1634224,0.9716495,0.85658575,0.49221718,0.45386259,0.53057176,0.70316739,0.6839901,1.1058905,1.0100041,0.51139447,0.24291237,-0.21734265,-0.69677498,1 +-0.81286761,-1.1727142,-1.5068574,-1.558264,-1.6096707,-1.3783408,-1.1213075,-0.63294435,0.62651852,1.3205083,1.3976183,1.3976183,1.1662883,0.75503514,0.65222184,0.70362849,0.67792517,0.42089193,0.29237531,0.086748719,0.0096387477,0.52370523,0.18956202,-0.42731777,2 +-1.0944947,-1.3613994,-1.606062,-1.6505462,-1.6505462,-1.4726097,-1.1167367,0.26227095,0.84056449,1.1297113,1.1074692,1.018501,0.77383832,0.37348125,0.37348125,0.59590184,0.55141772,0.35123919,0.50693361,1.1741954,0.75159626,0.46244949,0.017608295,-0.33826465,1 +-0.83894258,-1.1511073,-1.4632719,-1.5881378,-1.7130037,-1.4320555,-1.0262414,-0.4331285,0.22241734,0.44093261,0.97161257,1.0340455,0.81553023,0.44093261,0.097551463,0.097551463,0.12876793,1.0340455,1.3774267,1.4710761,1.0964784,0.69066436,0.066334995,-0.33947909,1 +-0.96550567,-1.344988,-1.5584468,-1.6533173,-1.6295997,-1.4635762,-1.0603763,0.078070577,0.62357635,1.2639527,1.1927998,0.95562332,0.78959982,0.36268228,0.41011757,0.33896464,0.50498814,0.33896464,0.52870578,1.4299762,0.81331747,0.50498814,-0.016799991,-0.44371754,1 +-0.40497694,-1.0099218,-1.332559,-1.4535479,-1.4938776,-1.2922293,-0.84860314,-0.5259659,0.80491268,1.4098575,1.4098575,1.2082092,0.76458302,0.11930856,-0.32431763,-0.24365833,-0.16299902,-0.4453066,-0.16299902,1.7324947,1.4098575,0.92590164,0.15963821,-0.24365833,1 +-0.92024696,-1.3825106,-1.5365984,-1.6136424,-1.6393237,-1.4338732,-0.99729089,-0.3038955,0.6719943,1.1342579,1.2113018,1.2113018,0.77471954,0.36381857,0.38949988,0.33813726,0.46654381,0.38949988,0.38949988,1.391071,0.9031261,0.62063168,-0.098445017,-0.32957681,1 +-0.64846556,-1.0947214,-1.3736314,-1.4851953,-1.6525413,-1.4294133,-0.81581151,-0.8715935,0.13248221,1.0807759,1.3596859,1.3596859,1.3039039,0.85764799,0.80186601,0.91342997,1.0807759,0.57873808,0.35561015,-0.034863743,-0.70424755,0.1882642,0.29982816,-0.20220969,2 +-0.97386362,-1.2951382,-1.562867,-1.6431857,-1.5093212,-1.5093212,-1.0809551,-0.3848602,0.47187205,1.3821501,1.3286043,1.2750585,0.90023817,0.65928223,0.712828,0.712828,0.63250935,0.36478052,0.28446188,0.12382458,0.31123476,0.84669241,0.23091611,-0.27776867,2 +-0.88821875,-1.3608299,-1.5846983,-1.6095726,-1.5846983,-1.460327,-0.98771583,-0.51510469,0.50474041,1.1017229,1.1763457,1.0271001,0.6788603,0.33062051,0.45499187,0.45499187,0.57936322,0.4301176,0.45499187,1.4499627,0.95247728,0.75348312,0.057003537,-0.41560761,1 +-1.0434107,-1.3483344,-1.5007963,-1.5770272,-1.6342004,-1.4626808,-1.0815262,-0.28110152,0.84330456,0.97670867,0.97670867,0.86236229,0.70990045,0.38591904,0.53838088,0.51932315,0.74801591,1.0148241,1.167286,1.0338819,0.51932315,0.30968812,-0.10958195,-0.56696746,1 +0.33926348,-0.32541599,-0.71314569,-0.93470552,-1.1008754,-1.1008754,-0.87931556,-0.54697582,-0.99009547,-0.32541599,0.28387353,0.61621327,0.50543335,0.11770366,-0.38080595,-0.54697582,-0.71314569,-0.71314569,-0.38080595,0.4500434,2.3886919,2.0563521,1.7240124,1.1701128,2 +-0.75212665,-1.0692752,-1.3599948,-1.49214,-1.518569,-1.3864238,-1.49214,-0.59355236,0.41075145,1.1507648,1.3093391,1.28291,1.0714776,0.86004526,0.93933241,0.91290336,0.9921905,0.72790002,0.46360955,0.27860621,-0.1706876,-0.19711665,-0.1178295,-0.24997474,2 +-0.35731046,-0.852048,-1.3055574,-1.4704699,-1.511698,-1.4704699,-1.0169605,-0.72836361,-0.43976671,0.013742692,0.67339274,0.75584899,0.75584899,0.1786552,-0.39853859,-0.2748542,-0.027485436,1.0856741,1.5391835,1.6628679,1.5391835,1.0856741,0.59093648,-0.027485436,1 +0.065389251,-0.52987845,-1.1251461,-1.3957223,-1.4498376,-1.2874918,-1.99099,-0.74633943,0.55242645,1.4723856,1.8511923,1.7429618,1.2559246,0.49831121,-0.096956484,0.17361974,0.1195045,0.065389251,0.065389251,0.28185023,0.011274006,-0.096956484,0.55242645,0.011274006,2 +-0.89604071,-1.2312502,-1.4117476,-1.4891037,-1.4891037,-1.437533,-1.4891037,-0.74132864,0.47058254,1.2183575,1.1925722,1.1410015,1.1152162,0.75422134,0.72843599,0.85736271,0.83157737,0.96050409,0.29008513,0.36744116,0.0064463443,0.058017034,0.26429978,-0.070909689,2 +-1.114926,-1.3384192,-1.5212772,-1.6025474,-1.6025474,-1.5009596,-1.0336558,-0.078730541,0.4901611,0.7339718,0.69333668,0.93714738,0.9777825,0.55111377,0.55111377,0.7339718,0.81524203,1.0996878,1.0387352,1.0793703,0.61206645,0.2463504,-0.16000077,-0.60698706,1 +0.20810137,-0.56484656,-1.0405068,-1.278337,-1.3377945,-1.0999644,-1.8134548,-0.74321916,0.32701643,1.6945397,2.2296575,1.8134548,1.0405068,0.20810137,-0.029728762,0.029728771,0.029728771,0.029728771,-0.14864383,0.029728771,-0.20810137,-0.2675589,0.74321917,0.14864383,2 +-1.1454914,-1.3887816,-1.6077428,-1.6320718,-1.5834138,-1.3401236,-0.90220116,-0.48860781,0.53321104,1.1657656,1.0927785,0.97113341,0.70351418,0.46022397,0.38723691,0.58186908,0.55754006,0.38723691,0.31424985,1.3360687,1.1171075,0.70351418,0.070959654,-0.29397565,1 +-0.88008476,-1.258303,-1.461959,-1.5492401,-1.6074275,-1.5201464,-1.0255533,-0.79280362,0.3418511,0.77825678,1.2437561,1.2437561,1.156475,0.66188192,0.72006936,0.80735049,1.0691939,0.86553791,0.48731966,0.42913224,0.22547626,0.51641337,-0.094554558,-0.35639796,2 +-0.41137184,-0.67348487,-1.1103399,-1.2413964,-1.4161385,-1.3287674,-0.84822689,-0.58611386,-0.80454138,0.069168714,0.68076578,0.76813679,0.63708028,0.069168714,-0.36768633,-0.49874285,-0.36768633,-0.018202296,1.7729034,2.0350164,1.5544759,1.4234194,0.63708028,0.025483209,1 +-0.98673689,-1.3844143,-1.5037175,-1.5832529,-1.6230207,-1.3446465,-0.98673689,-0.091962883,0.92211434,1.120953,1.120953,1.0016498,0.80281114,0.32559833,0.34548219,0.38524993,0.524437,0.74315954,1.2203724,1.1408369,0.54432087,0.26594672,-0.27091769,-0.68847889,1 +-0.88996175,-1.2677414,-1.4421013,-1.5292812,-1.5292812,-1.4711613,-1.1805615,-0.7156019,0.2433773,1.0570566,1.2604764,1.3185964,1.0861166,0.73739688,0.82457681,0.88269676,0.96987669,0.62115698,0.44679712,0.18525734,0.098077418,0.592097,0.098077418,-0.39594217,2 +-0.026952283,-0.6276032,-1.1820502,-1.5978855,-1.4592737,-1.2282541,-1.7827011,-1.2282541,0.34267905,1.3591652,1.6825926,1.5439809,0.89712605,0.43508688,0.065455552,0.15786338,-0.026952283,0.15786338,-0.026952283,0.11165947,0.15786338,1.0819417,0.89712605,0.29647513,2 +-1.06441,-1.3237586,-1.5614948,-1.6047196,-1.5831072,-1.4318205,-0.91312324,-0.07024024,0.64296846,0.90231707,0.90231707,0.8590923,0.66458084,0.36200746,0.36200746,0.51329415,0.59974369,0.64296846,1.3561771,1.3777895,0.83747992,0.36200746,-0.048627855,-0.78344893,1 +-0.7804595,-1.1359389,-1.38204,-1.4640737,-1.4640737,-1.38204,-1.4914182,-0.67108123,0.23128946,1.2430384,1.461795,1.4071058,1.2977276,0.69614709,0.69614709,0.83286993,0.8602145,0.45004599,0.36801229,0.25863403,-0.014811635,0.039877498,0.20394489,-0.26091274,2 +0.3221985,-0.084789069,-0.54991772,-0.84062312,-0.95690528,-1.0150464,-0.72434096,-1.480175,-1.1313285,-0.37549448,0.26405742,0.49662174,0.49662174,0.14777526,-0.25921232,-0.25921232,-0.66619988,-0.43363556,-0.49177664,0.20591634,2.182713,2.2408541,1.7175844,1.1943147,2 +-0.76022146,-1.2361862,-1.3948411,-1.5799385,-1.6857084,-1.3948411,-1.4741686,-0.60156654,0.5883453,1.117195,1.3022924,1.2494074,0.93209762,0.72055773,0.74700021,0.82632767,0.85277016,0.61478779,0.50901784,0.4032479,0.19170802,0.085938081,0.19170802,-0.20492926,2 +0.50632137,-0.34943306,-0.86288571,-1.2622378,-1.3763384,-1.2051875,-0.86288571,-1.6045395,-0.9769863,-0.064181578,0.73452256,0.79157285,0.79157285,0.1640196,-0.34943306,-0.23533247,-0.23533247,-0.29238276,-0.064181578,1.019774,1.019774,2.3319308,1.4761764,0.90567344,2 +-0.46880101,-0.89853527,-1.3673363,-1.4454698,-1.4845365,-1.250136,-0.74226826,-0.50786776,0.50786776,1.4454698,1.4845365,1.2110693,0.82040177,0.19533375,-0.31253401,-0.31253401,-0.42973426,-0.42973426,-0.11720025,1.718937,1.4845365,0.93760203,0.19533375,-0.2344005,1 +-1.0667555,-1.3887949,-1.5498146,-1.6418258,-1.618823,-1.4348005,-0.97474423,-0.35366826,0.63545273,1.2335259,1.0495034,0.79647241,0.5894471,0.38242178,0.47443303,0.54344147,0.54344147,0.35941896,0.45143022,1.4175484,1.0265006,0.7734696,0.083385197,-0.33066545,1 +-0.19934463,-0.70591453,-1.2124844,-1.5501976,-1.5501976,-1.4939121,-1.0999133,-0.9310567,-0.25563017,1.1515084,1.7143638,1.4892216,1.1515084,1.0952228,0.082083086,-0.19934463,-0.030488,-0.030488,-0.086773544,0.025797542,0.4760819,1.4892216,0.53236744,0.13836862,2 +-0.98161424,-1.3422072,-1.5345235,-1.6547212,-1.6066421,-1.4383654,-0.98161424,-0.45274453,0.7492321,1.3021413,1.3742599,1.2300228,0.98962743,0.77327163,0.65307397,0.41267864,0.6771135,0.48479724,0.24440191,0.19632285,0.14824378,0.7492321,0.24440191,-0.23638874,2 +0.29828413,-0.51807244,-1.0832424,-1.334429,-1.2716324,-1.2088357,-1.9623956,-0.76925908,0.4866741,1.617014,1.993794,1.6798107,1.240234,0.54947076,-0.20408914,-0.015699168,0.10989415,-0.078495827,-0.015699168,-0.015699168,-0.015699168,-0.2668858,0.73786074,0.047097491,2 +-0.45950334,-0.93109887,-1.438971,-1.5115242,-1.6203539,-1.4026944,-0.89482229,0.012092188,0.48368771,1.3180491,1.3543256,1.1003896,0.51996429,0.19347509,-0.31439702,-0.20556728,-0.31439702,-0.24184386,0.30230482,1.6808149,1.6808149,0.84645351,0.12092193,-0.27812044,1 +-0.95323748,-1.6211995,-1.3707138,-1.454209,-1.454209,-1.565536,-1.1480597,-0.2574437,0.66100409,1.1898074,1.2176391,1.2454709,0.99498511,0.60534059,0.66100409,0.7166676,0.91148986,0.52184534,0.46618183,0.27135958,0.74449935,0.29919133,-0.17394845,-0.50792946,2 +-0.82903973,-1.1943792,-1.5035127,-1.6440279,-1.5878218,-1.4754097,-1.4473066,-0.21077281,0.68852451,1.2786884,1.2505853,1.2505853,0.99765796,0.66042147,0.63231843,0.85714275,0.77283363,0.60421538,0.29508193,0.15456673,0.12646369,0.21077281,0.32318497,-0.21077281,2 +-1.1189816,-1.4020974,-1.5436553,-1.604323,-1.5436553,-1.3818749,-1.0583139,-0.20896646,0.45837801,0.96394199,1.0043871,0.6606036,0.72127128,0.5594908,0.59993592,0.88305175,0.80216151,1.0650548,1.1054999,1.0043871,0.57971336,0.27637497,-0.24941158,-0.57297253,1 +-0.052620727,-0.57519896,-1.0977772,-1.3590663,-1.4461627,-1.4026145,-0.96713263,-0.61874714,-0.83648807,-0.1397171,0.55705388,0.60060207,0.55705388,0.12157202,-0.35745803,-0.31390984,-0.53165077,-0.052620727,1.4715658,1.5586622,1.9070476,1.5586622,1.1231803,0.29576476,1 +1.2090065,0.57028611,-0.25092589,-0.34217166,-0.70715477,-0.615909,-0.34217166,-1.3458752,-0.9808921,-0.43341744,0.11405722,0.38779455,0.29654878,-0.15968011,-0.43341744,-0.70715477,-0.52466322,-0.88964633,-0.70715477,-0.43341744,-0.25092589,2.2127101,2.2127101,2.1214643,2 +-0.81595401,-1.0805877,-1.3452215,-1.4334327,-1.521644,-1.4334327,-1.521644,-0.66893527,0.15436968,1.1835009,1.3305196,1.3011158,1.2423084,0.80125213,0.80125213,0.86005963,0.91886712,0.65423339,0.47781091,0.36019591,-0.1396678,-0.16907155,0.15436968,-0.11026406,2 +-1.2385691,-1.3335393,-1.5044856,-1.5614677,-1.5424736,-1.4854915,-1.0106408,-0.13691531,0.60385192,1.0027266,1.0027266,0.90775642,0.75580417,0.52787579,0.50888176,0.64183998,0.71781611,1.0976967,1.1356848,0.92675045,0.52787579,0.29994741,-0.26987353,-0.57377803,1 +-1.0379296,-1.3016576,-1.4694845,-1.5893609,-1.6133362,-1.5174351,-1.0619049,-0.0069927812,1.2157462,1.1438204,1.1198451,1.0958698,0.97599346,0.35263633,0.42456215,0.44853743,0.44853743,0.30468578,0.44853743,1.2157462,0.6643149,0.35263633,-0.10289389,-0.51047355,1 +-0.37357907,-0.98663192,-1.4464215,-1.6763164,-1.752948,-1.3697899,-0.91000031,-0.98663192,-0.22031586,0.85252662,1.0057898,1.3123162,1.2356846,0.77589501,0.46936859,0.77589501,0.92915822,0.39273699,0.16284217,0.0095789557,-0.37357907,1.3123162,0.92915822,-0.06705265,2 +-1.159152,-1.3014,-1.5249326,-1.5655749,-1.6062172,-1.443648,-1.0778674,0.019474433,0.73071451,1.1777797,1.1777797,1.0964951,1.0355317,0.79167795,0.71039337,0.48686077,0.44621848,0.48686077,0.26332817,0.89328367,0.66975108,0.46653962,-0.12277359,-0.65112336,1 +-0.6949193,-1.2358295,-1.4161329,-1.5062846,-1.5062846,-1.5062846,-1.0555261,-1.0104502,-0.063857444,1.1081146,1.3785697,1.3334938,1.1081146,0.74750781,0.61228026,1.0630387,0.9278112,0.61228026,0.25167348,0.16152179,0.026294249,0.65735611,0.20659763,-0.19908499,2 +0.98403309,0.16966088,-0.51942331,-0.83264339,-0.8952874,-0.70735536,-0.70735536,-1.7723037,-0.8952874,0.48288096,0.67081301,0.73345703,0.73345703,0.42023694,-0.51942331,-0.64471135,-0.70735536,-0.76999938,-0.70735536,-0.26884724,0.2323049,2.4248455,1.9236934,1.1719652,2 diff --git a/src/main/java/experiments/data/uci/iris/iris.arff b/src/main/java/experiments/data/uci/iris/iris.arff new file mode 100644 index 000000000..9f91135de --- /dev/null +++ b/src/main/java/experiments/data/uci/iris/iris.arff @@ -0,0 +1,159 @@ +@relation iris + +@attribute f1 numeric +@attribute f2 numeric +@attribute f3 numeric +@attribute f4 numeric +@attribute clase {0,1,2} + +@data +-0.897674,1.02861,-1.33679,-1.30859,0 +-1.1392,-0.12454,-1.33679,-1.30859,0 +-1.38073,0.33672,-1.39347,-1.30859,0 +-1.50149,0.10609,-1.28012,-1.30859,0 +-1.01844,1.25924,-1.33679,-1.30859,0 +-0.535384,1.95113,-1.16677,-1.04652,0 +-1.50149,0.797981,-1.33679,-1.17756,0 +-1.01844,0.797981,-1.28012,-1.30859,0 +-1.74302,-0.355171,-1.33679,-1.30859,0 +-1.1392,0.10609,-1.28012,-1.43963,0 +-0.535384,1.48987,-1.28012,-1.30859,0 +-1.25996,0.797981,-1.22344,-1.30859,0 +-1.25996,-0.12454,-1.33679,-1.43963,0 +-1.86378,-0.12454,-1.50682,-1.43963,0 +-0.052331,2.18176,-1.45015,-1.30859,0 +-0.173094,3.10428,-1.28012,-1.04652,0 +-0.535384,1.95113,-1.39347,-1.04652,0 +-0.897674,1.02861,-1.33679,-1.17756,0 +-0.173094,1.7205,-1.16677,-1.17756,0 +-0.897674,1.7205,-1.28012,-1.17756,0 +-0.535384,0.797981,-1.16677,-1.30859,0 +-0.897674,1.48987,-1.28012,-1.04652,0 +-1.50149,1.25924,-1.5635,-1.30859,0 +-0.897674,0.567351,-1.16677,-0.915491,0 +-1.25996,0.797981,-1.05341,-1.30859,0 +-1.01844,-0.12454,-1.22344,-1.30859,0 +-1.01844,0.797981,-1.22344,-1.04652,0 +-0.776911,1.02861,-1.28012,-1.30859,0 +-0.776911,0.797981,-1.33679,-1.30859,0 +-1.38073,0.33672,-1.22344,-1.30859,0 +-1.25996,0.10609,-1.22344,-1.30859,0 +-0.535384,0.797981,-1.28012,-1.04652,0 +-0.776911,2.41239,-1.28012,-1.43963,0 +-0.414621,2.64302,-1.33679,-1.30859,0 +-1.1392,0.10609,-1.28012,-1.43963,0 +-1.01844,0.33672,-1.45015,-1.30859,0 +-0.414621,1.02861,-1.39347,-1.30859,0 +-1.1392,0.10609,-1.28012,-1.43963,0 +-1.74302,-0.12454,-1.39347,-1.30859,0 +-0.897674,0.797981,-1.28012,-1.30859,0 +-1.01844,1.02861,-1.39347,-1.17756,0 +-1.62225,-1.73895,-1.39347,-1.17756,0 +-1.74302,0.33672,-1.39347,-1.30859,0 +-1.01844,1.02861,-1.22344,-0.784457,0 +-0.897674,1.7205,-1.05341,-1.04652,0 +-1.25996,-0.12454,-1.33679,-1.17756,0 +-0.897674,1.7205,-1.22344,-1.30859,0 +-1.50149,0.33672,-1.33679,-1.30859,0 +-0.656147,1.48987,-1.28012,-1.30859,0 +-1.01844,0.567351,-1.33679,-1.30859,0 +1.39683,0.33672,0.533509,0.263815,1 +0.672249,0.33672,0.420157,0.394849,1 +1.27607,0.10609,0.64686,0.394849,1 +-0.414621,-1.73895,0.136778,0.132781,1 +0.793012,-0.585801,0.476833,0.394849,1 +-0.173094,-0.585801,0.420157,0.132781,1 +0.551486,0.567351,0.533509,0.525883,1 +-1.1392,-1.50832,-0.259953,-0.260321,1 +0.913776,-0.355171,0.476833,0.132781,1 +-0.776911,-0.816431,0.080102,0.263815,1 +-1.01844,-2.43084,-0.146601,-0.260321,1 +0.068433,-0.12454,0.250129,0.394849,1 +0.189196,-1.96958,0.136778,-0.260321,1 +0.309959,-0.355171,0.533509,0.263815,1 +-0.293857,-0.355171,-0.089926,0.132781,1 +1.03454,0.10609,0.363481,0.263815,1 +-0.293857,-0.12454,0.420157,0.394849,1 +-0.052331,-0.816431,0.193454,-0.260321,1 +0.430722,-1.96958,0.420157,0.394849,1 +-0.293857,-1.27769,0.080102,-0.129287,1 +0.068433,0.33672,0.590184,0.787951,1 +0.309959,-0.585801,0.136778,0.132781,1 +0.551486,-1.27769,0.64686,0.394849,1 +0.309959,-0.585801,0.533509,0.001747,1 +0.672249,-0.355171,0.306805,0.132781,1 +0.913776,-0.12454,0.363481,0.263815,1 +1.1553,-0.585801,0.590184,0.263815,1 +1.03454,-0.12454,0.703536,0.656917,1 +0.189196,-0.355171,0.420157,0.394849,1 +-0.173094,-1.04706,-0.146601,-0.260321,1 +-0.414621,-1.50832,0.023426,-0.129287,1 +-0.414621,-1.50832,-0.03325,-0.260321,1 +-0.052331,-0.816431,0.080102,0.001747,1 +0.189196,-0.816431,0.760212,0.525883,1 +-0.535384,-0.12454,0.420157,0.394849,1 +0.189196,0.797981,0.420157,0.525883,1 +1.03454,0.10609,0.533509,0.394849,1 +0.551486,-1.73895,0.363481,0.132781,1 +-0.293857,-0.12454,0.193454,0.132781,1 +-0.414621,-1.27769,0.136778,0.132781,1 +-0.414621,-1.04706,0.363481,0.001747,1 +0.309959,-0.12454,0.476833,0.263815,1 +-0.052331,-1.04706,0.136778,0.001747,1 +-1.01844,-1.73895,-0.259953,-0.260321,1 +-0.293857,-0.816431,0.250129,0.132781,1 +-0.173094,-0.12454,0.250129,0.001747,1 +-0.173094,-0.355171,0.250129,0.132781,1 +0.430722,-0.355171,0.306805,0.132781,1 +-0.897674,-1.27769,-0.429981,-0.129287,1 +-0.173094,-0.585801,0.193454,0.132781,1 +0.551486,0.567351,1.27029,1.70519,2 +-0.052331,-0.816431,0.760212,0.918985,2 +1.51759,-0.12454,1.21362,1.18105,2 +0.551486,-0.355171,1.04359,0.787951,2 +0.793012,-0.12454,1.15694,1.31209,2 +2.12141,-0.12454,1.61035,1.18105,2 +-1.1392,-1.27769,0.420157,0.656917,2 +1.75912,-0.355171,1.44032,0.787951,2 +1.03454,-1.27769,1.15694,0.787951,2 +1.63836,1.25924,1.32697,1.70519,2 +0.793012,0.33672,0.760212,1.05002,2 +0.672249,-0.816431,0.873564,0.918985,2 +1.1553,-0.12454,0.986915,1.18105,2 +-0.173094,-1.27769,0.703536,1.05002,2 +-0.052331,-0.585801,0.760212,1.57416,2 +0.672249,0.33672,0.873564,1.44312,2 +0.793012,-0.12454,0.986915,0.787951,2 +2.24217,1.7205,1.66703,1.31209,2 +2.24217,-1.04706,1.78038,1.44312,2 +0.189196,-1.96958,0.703536,0.394849,2 +1.27607,0.33672,1.10027,1.44312,2 +-0.293857,-0.585801,0.64686,1.05002,2 +2.24217,-0.585801,1.66703,1.05002,2 +0.551486,-0.816431,0.64686,0.787951,2 +1.03454,0.567351,1.10027,1.18105,2 +1.63836,0.33672,1.27029,0.787951,2 +0.430722,-0.585801,0.590184,0.787951,2 +0.309959,-0.12454,0.64686,0.787951,2 +0.672249,-0.585801,1.04359,1.18105,2 +1.63836,-0.12454,1.15694,0.525883,2 +1.87988,-0.585801,1.32697,0.918985,2 +2.4837,1.7205,1.497,1.05002,2 +0.672249,-0.585801,1.04359,1.31209,2 +0.551486,-0.585801,0.760212,0.394849,2 +0.309959,-1.04706,1.04359,0.263815,2 +2.24217,-0.12454,1.32697,1.44312,2 +0.551486,0.797981,1.04359,1.57416,2 +0.672249,0.10609,0.986915,0.787951,2 +0.189196,-0.12454,0.590184,0.787951,2 +1.27607,0.10609,0.930239,1.18105,2 +1.03454,0.10609,1.04359,1.57416,2 +1.27607,0.10609,0.760212,1.44312,2 +-0.052331,-0.816431,0.760212,0.918985,2 +1.1553,0.33672,1.21362,1.44312,2 +1.03454,0.567351,1.10027,1.70519,2 +1.03454,-0.12454,0.816888,1.44312,2 +0.551486,-1.27769,0.703536,0.918985,2 +0.793012,-0.12454,0.816888,1.05002,2 +0.430722,0.797981,0.930239,1.44312,2 +0.068433,-0.12454,0.760212,0.787951,2 \ No newline at end of file diff --git a/src/main/java/multivariate_timeseriesweka/ConcatenationClassifiers.java b/src/main/java/multivariate_timeseriesweka/ConcatenationClassifiers.java index f547afb19..20ff6bf54 100644 --- a/src/main/java/multivariate_timeseriesweka/ConcatenationClassifiers.java +++ b/src/main/java/multivariate_timeseriesweka/ConcatenationClassifiers.java @@ -19,10 +19,10 @@ import java.util.Map; import java.util.function.Supplier; import multivariate_timeseriesweka.classifiers.ConcatenateClassifier; -import timeseriesweka.classifiers.BOSS; -import timeseriesweka.classifiers.ElasticEnsemble; -import timeseriesweka.classifiers.LearnShapelets; -import timeseriesweka.classifiers.ShapeletTransformClassifier; +import timeseriesweka.classifiers.dictionary_based.BOSS; +import timeseriesweka.classifiers.distance_based.ElasticEnsemble; +import timeseriesweka.classifiers.shapelet_based.LearnShapelets; +import timeseriesweka.classifiers.shapelet_based.ShapeletTransformClassifier; /** * diff --git a/src/main/java/multivariate_timeseriesweka/DataSets.java b/src/main/java/multivariate_timeseriesweka/DataSets.java index 999e3141a..64fd5bba7 100644 --- a/src/main/java/multivariate_timeseriesweka/DataSets.java +++ b/src/main/java/multivariate_timeseriesweka/DataSets.java @@ -14,6 +14,7 @@ */ package multivariate_timeseriesweka; +import experiments.data.DatasetLoading; import fileIO.OutFile; import java.io.File; import java.io.IOException; @@ -71,8 +72,8 @@ public static void createAndWriteSummaryStats(boolean findStats) throws Exceptio Instances train; Instances test; try { - train = utilities.ClassifierTools.loadData(new File(multivariate_timeseriesweka.DataSets.dropboxPath + dataset + "/" + dataset +"_TRAIN.arff")); - test = utilities.ClassifierTools.loadData(new File(multivariate_timeseriesweka.DataSets.dropboxPath + dataset + "/" + dataset +"_TEST.arff")); + train = DatasetLoading.loadDataThrowable(new File(multivariate_timeseriesweka.DataSets.dropboxPath + dataset + "/" + dataset +"_TRAIN.arff")); + test = DatasetLoading.loadDataThrowable(new File(multivariate_timeseriesweka.DataSets.dropboxPath + dataset + "/" + dataset +"_TEST.arff")); } catch (IOException ex) { continue; //if dataset doesn't exist move on. } diff --git a/src/main/java/multivariate_timeseriesweka/DefaultClassifiers.java b/src/main/java/multivariate_timeseriesweka/DefaultClassifiers.java index ef3ea1c2a..73f57d113 100644 --- a/src/main/java/multivariate_timeseriesweka/DefaultClassifiers.java +++ b/src/main/java/multivariate_timeseriesweka/DefaultClassifiers.java @@ -25,8 +25,8 @@ import multivariate_timeseriesweka.classifiers.NN_ED_D; import multivariate_timeseriesweka.classifiers.NN_ED_I; import multivariate_timeseriesweka.ensembles.IndependentDimensionEnsemble; -import timeseriesweka.classifiers.ShapeletTransformClassifier; -import timeseriesweka.classifiers.ensembles.elastic_ensemble.DTW1NN; +import timeseriesweka.classifiers.shapelet_based.ShapeletTransformClassifier; +import timeseriesweka.classifiers.distance_based.elastic_ensemble.DTW1NN; import weka.classifiers.Classifier; import weka.classifiers.functions.MultilayerPerceptron; import weka.classifiers.functions.SMO; diff --git a/src/main/java/multivariate_timeseriesweka/classifiers/MultivariateShapeletTransformClassifier.java b/src/main/java/multivariate_timeseriesweka/classifiers/MultivariateShapeletTransformClassifier.java index 737e58112..0bb09f7a6 100644 --- a/src/main/java/multivariate_timeseriesweka/classifiers/MultivariateShapeletTransformClassifier.java +++ b/src/main/java/multivariate_timeseriesweka/classifiers/MultivariateShapeletTransformClassifier.java @@ -15,7 +15,6 @@ package multivariate_timeseriesweka.classifiers; import timeseriesweka.classifiers.*; -import timeseriesweka.classifiers.contract_interfaces.TrainTimeContractClassifier; import timeseriesweka.filters.shapelet_transforms.ShapeletTransformFactory; import timeseriesweka.filters.shapelet_transforms.ShapeletTransform; import timeseriesweka.filters.shapelet_transforms.ShapeletTransformFactoryOptions; @@ -28,17 +27,16 @@ import utilities.InstanceTools; import timeseriesweka.classifiers.SaveParameterInfo; import weka.classifiers.AbstractClassifier; -import vector_classifiers.CAWPE; +import weka_uea.classifiers.ensembles.CAWPE; import weka.core.Instance; import weka.core.Instances; import timeseriesweka.filters.shapelet_transforms.search_functions.ShapeletSearch; import timeseriesweka.filters.shapelet_transforms.search_functions.ShapeletSearch.SearchType; -import timeseriesweka.classifiers.cote.HiveCoteModule; -import timeseriesweka.classifiers.ensembles.voting.MajorityConfidence; -import timeseriesweka.classifiers.ensembles.weightings.TrainAcc; +import weka_uea.classifiers.ensembles.voting.MajorityConfidence; +import weka_uea.classifiers.ensembles.weightings.TrainAcc; import timeseriesweka.filters.shapelet_transforms.DefaultShapeletOptions; import evaluation.storage.ClassifierResults; -import utilities.TrainAccuracyEstimate; +import experiments.data.DatasetLoading; import weka.classifiers.Classifier; import weka.classifiers.bayes.NaiveBayes; import weka.classifiers.functions.SMO; @@ -47,6 +45,8 @@ import weka.classifiers.meta.RotationForest; import weka.classifiers.trees.J48; import weka.classifiers.trees.RandomForest; +import timeseriesweka.classifiers.TrainTimeContractable; +import timeseriesweka.classifiers.TrainAccuracyEstimator; /** * @@ -56,7 +56,7 @@ * If can be contracted to a maximum run time for shapelets, and can be configured for a different * */ -public class MultivariateShapeletTransformClassifier extends AbstractClassifier implements HiveCoteModule, SaveParameterInfo, TrainAccuracyEstimate, TrainTimeContractClassifier, CheckpointClassifier{ +public class MultivariateShapeletTransformClassifier extends AbstractClassifier implements SaveParameterInfo, TrainAccuracyEstimator, TrainTimeContractable, Checkpointable{ //Minimum number of instances per class in the train set public static final int minimumRepresentation = 25; @@ -117,8 +117,8 @@ public void setSearchType(ShapeletSearch.SearchType type) { } @Override - public void writeCVTrainToFile(String train) { - ensemble.writeCVTrainToFile(train); + public void writeTrainEstimatesToFile(String train) { + ensemble.writeTrainEstimatesToFile(train); } @Override public void setFindTrainAccuracyEstimate(boolean setCV){ @@ -144,13 +144,13 @@ public String getParameters(){ } @Override - public double getEnsembleCvAcc() { - return ensemble.getEnsembleCvAcc(); + public double getTrainAcc() { + return ensemble.getTrainAcc(); } @Override - public double[] getEnsembleCvPreds() { - return ensemble.getEnsembleCvPreds(); + public double[] getTrainPreds() { + return ensemble.getTrainPreds(); } public void doSTransform(boolean b){ @@ -399,8 +399,8 @@ public static void main(String[] args) throws Exception { String datasetName = "ERing"; int fold = 0; - Instances train= ClassifierTools.loadData(dataLocation+datasetName+File.separator+datasetName+"_TRAIN"); - Instances test= ClassifierTools.loadData(dataLocation+datasetName+File.separator+datasetName+"_TEST"); + Instances train= DatasetLoading.loadDataNullable(dataLocation+datasetName+File.separator+datasetName+"_TRAIN"); + Instances test= DatasetLoading.loadDataNullable(dataLocation+datasetName+File.separator+datasetName+"_TEST"); String trainS= saveLocation+datasetName+File.separator+"TrainCV.csv"; String testS=saveLocation+datasetName+File.separator+"TestPreds.csv"; String preds=saveLocation+datasetName; diff --git a/src/main/java/multivariate_timeseriesweka/ensembles/IndependentDimensionEnsemble.java b/src/main/java/multivariate_timeseriesweka/ensembles/IndependentDimensionEnsemble.java index 267ca0664..158405e39 100644 --- a/src/main/java/multivariate_timeseriesweka/ensembles/IndependentDimensionEnsemble.java +++ b/src/main/java/multivariate_timeseriesweka/ensembles/IndependentDimensionEnsemble.java @@ -18,11 +18,11 @@ import java.lang.reflect.Method; import java.util.logging.Level; import java.util.logging.Logger; -import timeseriesweka.classifiers.ensembles.EnsembleModule; -import timeseriesweka.classifiers.ensembles.voting.MajorityVote; -import timeseriesweka.classifiers.ensembles.voting.ModuleVotingScheme; -import timeseriesweka.classifiers.ensembles.weightings.EqualWeighting; -import timeseriesweka.classifiers.ensembles.weightings.ModuleWeightingScheme; +import weka_uea.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.voting.MajorityVote; +import weka_uea.classifiers.ensembles.voting.ModuleVotingScheme; +import weka_uea.classifiers.ensembles.weightings.EqualWeighting; +import weka_uea.classifiers.ensembles.weightings.ModuleWeightingScheme; import static utilities.GenericTools.indexOfMax; import static utilities.multivariate_tools.MultivariateInstanceTools.splitMultivariateInstanceWithClassVal; import static utilities.multivariate_tools.MultivariateInstanceTools.splitMultivariateInstances; diff --git a/src/main/java/statistics/simulators/SimulateMatrixProfileData.java b/src/main/java/statistics/simulators/SimulateMatrixProfileData.java index 3618c5935..7814af74d 100644 --- a/src/main/java/statistics/simulators/SimulateMatrixProfileData.java +++ b/src/main/java/statistics/simulators/SimulateMatrixProfileData.java @@ -7,7 +7,7 @@ import timeseriesweka.filters.MatrixProfile; import utilities.ClassifierTools; import utilities.InstanceTools; -import weka.classifiers.lazy.kNN; +import weka_uea.classifiers.kNN; import weka.core.Instances; import timeseriesweka.filters.NormalizeCase; diff --git a/src/main/java/statistics/simulators/SimulateSpectralData.java b/src/main/java/statistics/simulators/SimulateSpectralData.java index fbda5f29a..627a00d1e 100644 --- a/src/main/java/statistics/simulators/SimulateSpectralData.java +++ b/src/main/java/statistics/simulators/SimulateSpectralData.java @@ -16,7 +16,7 @@ import fileIO.*; import utilities.ClassifierTools; import weka.classifiers.Classifier; -import timeseriesweka.classifiers.FastDTW_1NN; +import timeseriesweka.classifiers.distance_based.FastDTW_1NN; import weka.filters.*; diff --git a/src/main/java/timeseriesweka/classifiers/AbstractClassifierWithTrainingInfo.java b/src/main/java/timeseriesweka/classifiers/AbstractClassifierWithTrainingInfo.java index cd0c7ae85..61ac92afd 100644 --- a/src/main/java/timeseriesweka/classifiers/AbstractClassifierWithTrainingInfo.java +++ b/src/main/java/timeseriesweka/classifiers/AbstractClassifierWithTrainingInfo.java @@ -22,8 +22,8 @@ * Extends the AbstractClassifier to store information about the training phase of the classifier. The minimium any classifier that extends this should store -is the build time in buildClassifier, through calls to System.currentTimeMillis() -at the start and end. +is the build time in buildClassifier, through calls to System.currentTimeMillis() +or nanoTime() at the start and end. the method getParameters() can be enhanced to include any parameter info for the final classifier. getParameters() is called to store information on the second line diff --git a/src/main/java/timeseriesweka/classifiers/BOSS.java b/src/main/java/timeseriesweka/classifiers/BOSS.java deleted file mode 100644 index cd2f02621..000000000 --- a/src/main/java/timeseriesweka/classifiers/BOSS.java +++ /dev/null @@ -1,1878 +0,0 @@ -/* - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package timeseriesweka.classifiers; - -import fileIO.OutFile; - -import java.security.InvalidParameterException; -import java.util.*; - -import timeseriesweka.classifiers.contract_interfaces.TrainTimeContractClassifier; -import timeseriesweka.classifiers.cote.HiveCoteModule; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serializable; -import java.util.Map.Entry; -import java.util.concurrent.TimeUnit; - -import utilities.*; -import utilities.samplers.RandomRoundRobinIndexSampler; -import utilities.samplers.RandomStratifiedSampler; -import vector_classifiers.HomogeneousContractCAWPE; -import weka.classifiers.AbstractClassifier; -import weka.core.*; -import weka.classifiers.Classifier; -import evaluation.storage.ClassifierResults; - -import static utilities.InstanceTools.resample; -import static utilities.InstanceTools.resampleTrainAndTestInstances; -import static utilities.Utilities.argMax; -import static utilities.multivariate_tools.MultivariateInstanceTools.*; -import static weka.core.Utils.sum; - -/** - * BOSS classifier with parameter search and ensembling for univariate and - * multivariate time series classification. - * If parameters are known, use the nested class BOSSIndividual and directly provide them. - * - * Options to change the method of ensembling to randomly select parameters instead of searching. - * Has the capability to contract train time and checkpoint when using a random ensemble. - * - * Alphabetsize fixed to four and maximum wordLength of 16. - * - * @author James Large, updated by Matthew Middlehurst - * - * Implementation based on the algorithm described in getTechnicalInformation() - */ -public class BOSS extends AbstractClassifierWithTrainingInfo implements HiveCoteModule, TrainAccuracyEstimate, TrainTimeContractClassifier, CheckpointClassifier, TechnicalInformationHandler { - - private int ensembleSize = 50; - private int seed = 0; - private int ensembleSizePerChannel = -1; - private Random rand; - private boolean randomEnsembleSelection = false; - private boolean randomCVAccEnsemble = false; - private boolean useCAWPE = false; - - private boolean useFastTrainEstimate = false; - private int maxEvalPerClass = -1; - private int maxEval = 500; - - private double maxWinLenProportion = 1; - private double maxWinSearchProportion = 0.25; - - private boolean reduceTrainInstances = false; - private double trainProportion = -1; - private int maxTrainInstances = 1000; - - private boolean cutoff = false; - public boolean loadAndFinish = false; - - private transient LinkedList[] classifiers; - private HomogeneousContractCAWPE[] cawpe; - private int numSeries; - private int numClassifiers[]; - private int currentSeries = 0; - private boolean isMultivariate = false; - - private final Integer[] wordLengths = { 16, 14, 12, 10, 8 }; - private final int alphabetSize = 4; - private final double correctThreshold = 0.92; - private int maxEnsembleSize = 500; - - private String checkpointPath; - private String serPath; - private boolean checkpoint = false; - private long checkpointTime = 0; - private long checkpointTimeDiff = 0; - private boolean cleanupCheckpointFiles = true; - - private long contractTime = 0; - private boolean contract = false; - - private String trainCVPath; - private boolean trainCV = false; - - private transient Instances train; - private double ensembleCvAcc = -1; - private double[] ensembleCvPreds = null; - - protected static final long serialVersionUID = 22554L; - - public BOSS() {} - - @Override - public TechnicalInformation getTechnicalInformation() { - TechnicalInformation result; - result = new TechnicalInformation(TechnicalInformation.Type.ARTICLE); - result.setValue(TechnicalInformation.Field.AUTHOR, "P. Schafer"); - result.setValue(TechnicalInformation.Field.TITLE, "The BOSS is concerned with time series classification in the presence of noise"); - result.setValue(TechnicalInformation.Field.JOURNAL, "Data Mining and Knowledge Discovery"); - result.setValue(TechnicalInformation.Field.VOLUME, "29"); - result.setValue(TechnicalInformation.Field.NUMBER,"6"); - result.setValue(TechnicalInformation.Field.PAGES, "1505-1530"); - result.setValue(TechnicalInformation.Field.YEAR, "2015"); - - return result; - } - - @Override - public Capabilities getCapabilities(){ - Capabilities result = super.getCapabilities(); - result.disableAll(); - - // attributes - result.enable(Capabilities.Capability.RELATIONAL_ATTRIBUTES); - result.enable(Capabilities.Capability.NUMERIC_ATTRIBUTES); - - // class - result.enable(Capabilities.Capability.NOMINAL_CLASS); - - return result; - } - - @Override - public String getParameters() { - StringBuilder sb = new StringBuilder(); - sb.append(super.getParameters()); - - //could be improved for different boss versions, seems low prio though - - sb.append(",numSeries,").append(numSeries); - - for (int n = 0; n < numSeries; n++) { - sb.append(",numclassifiers").append(n).append(",").append(numClassifiers[n]); - - for (int i = 0; i < numClassifiers[n]; ++i) { - BOSSIndividual boss = classifiers[n].get(i); - sb.append(",windowSize,").append(boss.getWindowSize()).append(",wordLength,").append(boss.getWordLength()); - sb.append(",alphabetSize,").append(boss.getAlphabetSize()).append(",norm,").append(boss.isNorm()); - } - } - - return sb.toString(); - } - - //pass in an enum of hour, minute, day, and the amount of them. - @Override - public void setTrainTimeLimit(TimeUnit time, long amount){ - switch (time){ - case DAYS: - contractTime = (long)(8.64e+13)*amount; - break; - case HOURS: - contractTime = (long)(3.6e+12)*amount; - break; - case MINUTES: - contractTime = (long)(6e+10)*amount; - break; - case SECONDS: - contractTime = (long)(1e+9)*amount; - break; - case NANOSECONDS: - contractTime = amount; - break; - default: - throw new InvalidParameterException("Invalid time unit"); - } - contract = true; - } - - //Set the path where checkpointed versions will be stored - @Override - public void setSavePath(String path){ - checkpointPath = path; - checkpoint = true; - } - - //Define how to copy from a loaded object to this object - @Override - public void copyFromSerObject(Object obj) throws Exception{ - if(!(obj instanceof BOSS)) - throw new Exception("The SER file is not an instance of BOSS"); - BOSS saved = ((BOSS)obj); - System.out.println("Loading BOSS.ser"); - - //copy over variables from serialised object - ensembleSize = saved.ensembleSize; - seed = saved.seed; - ensembleSizePerChannel = saved.ensembleSizePerChannel; - rand = saved.rand; - randomEnsembleSelection = saved.randomEnsembleSelection; - useCAWPE = saved.useCAWPE; - cawpe = saved.cawpe; - numSeries = saved.numSeries; - numClassifiers = saved.numClassifiers; - currentSeries = saved.currentSeries; - isMultivariate = saved.isMultivariate; - checkpointTime = saved.checkpointTime; - cleanupCheckpointFiles = saved.cleanupCheckpointFiles; - contractTime = saved.contractTime; - contract = saved.contract; - trainCVPath = saved.trainCVPath; - trainCV = saved.trainCV; - trainResults = saved.trainResults; - ensembleCvAcc = saved.ensembleCvAcc; - ensembleCvPreds = saved.ensembleCvPreds; - - //load in each serisalised classifier - classifiers = new LinkedList[numSeries]; - for (int n = 0; n < numSeries; n++) { - classifiers[n] = new LinkedList(); - for (int i = 0; i < saved.numClassifiers[n]; i++) { - System.out.println("Loading BOSSIndividual" + n + "-" + i + ".ser"); - - FileInputStream fis = new FileInputStream(serPath + "BOSSIndividual" + n + "-" + i + ".ser"); - try (ObjectInputStream in = new ObjectInputStream(fis)) { - Object indv = in.readObject(); - - if (!(indv instanceof BOSSIndividual)) - throw new Exception("The SER file " + n + "-" + i + " is not an instance of BOSSIndividual"); - BOSSIndividual ser = ((BOSSIndividual) indv); - classifiers[n].add(ser); - } - } - } - - checkpointTimeDiff = saved.checkpointTimeDiff + (System.nanoTime() - checkpointTime); - } - - @Override - public void writeCVTrainToFile(String outputPathAndName){ - trainCVPath=outputPathAndName; - trainCV=true; - } - - @Override - public void setFindTrainAccuracyEstimate(boolean setCV){ - trainCV=setCV; - } - - @Override - public boolean findsTrainAccuracyEstimate(){ return trainCV;} - - @Override - public ClassifierResults getTrainResults(){ -//Temporary : copy stuff into trainResults.acc here - trainResults.setAcc(ensembleCvAcc); -//TO DO: Write the other stats - return trainResults; - } - - public void setEnsembleSize(int size) { - ensembleSize = size; - } - - public void setMaxEnsembleSize(int size) { - maxEnsembleSize = size; - } - - public void setSeed(int i) { - seed = i; - } - - public void setRandomEnsembleSelection(boolean b){ - randomEnsembleSelection = b; - } - - public void setRandomCVAccEnsemble(boolean b){ - randomCVAccEnsemble = b; - } - - public void useCAWPE(boolean b) { - useCAWPE = b; - } - - public void setFastTrainEstimate(boolean b){ - useFastTrainEstimate = b; - } - - public void setReduceTrainInstances(boolean b){ - reduceTrainInstances = b; - } - - public void setTrainProportion(double d){ - trainProportion = d; - } - - public void setCleanupCheckpointFiles(boolean b) { - cleanupCheckpointFiles = b; - } - - public void setCutoff(boolean b) { - cutoff = b; - } - - public void setMaxTrainInstances(int i){ - maxTrainInstances = i; - } - - public void setMaxEval(int i) { - maxEval = i; - } - - public void setMaxEvalPerClass(int i) { - maxEvalPerClass = i; - } - - public void setMaxWinLenProportion(double d){ - maxWinLenProportion = d; - } - - public void setMaxWinSearchProportion(double d){ - maxWinSearchProportion = d; - } - - @Override - public void buildClassifier(final Instances data) throws Exception { - trainResults.setBuildTime(System.nanoTime()); - - // can classifier handle the data? - getCapabilities().testWithFail(data); - - if(data.checkForAttributeType(Attribute.RELATIONAL)){ - isMultivariate = true; - } - - serPath = checkpointPath + "/" + data.relationName() + seed + checkpointName() + "BOSSser/"; - File f = new File(serPath + "BOSS.ser"); - - //if checkpointing and serialised files exist load said files - if (checkpoint && f.exists()){ - long time = System.nanoTime(); - loadFromFile(serPath + "BOSS.ser"); - System.out.println("Spent " + (System.nanoTime() - time) + "nanoseconds loading files."); - } - //initialise variables - else { - if (data.classIndex() != data.numAttributes()-1) - throw new Exception("BOSSEnsemble_BuildClassifier: Class attribute not set as last attribute in dataset"); - - //Multivariate - if (isMultivariate) { - numSeries = numChannels(data); - classifiers = new LinkedList[numSeries]; - - for (int n = 0; n < numSeries; n++){ - classifiers[n] = new LinkedList<>(); - } - - numClassifiers = new int[numSeries]; - - if (ensembleSizePerChannel > 0){ - ensembleSize = ensembleSizePerChannel*numSeries; - } - } - //Univariate - else{ - numSeries = 1; - classifiers = new LinkedList[1]; - classifiers[0] = new LinkedList<>(); - numClassifiers = new int[1]; - } - - if (maxEvalPerClass > 0){ - maxEval = data.numClasses()*maxEvalPerClass; - } - - rand = new Random(seed); - } - - this.train = data; - - //required to deal with multivariate datasets, each channel is split into its own instances - Instances[] series; - - //Multivariate - if (isMultivariate) { - series = splitMultivariateInstances(data); - } - //Univariate - else{ - series = new Instances[1]; - series[0] = data; - } - - //If checkpointing and flag is set stop building. - if (!checkpoint || (checkpoint && !loadAndFinish)){ - if (randomCVAccEnsemble && useCAWPE){ - buildWeightedRandomCVAccBOSS(series); - } - //Contracted - else if (contract) { - buildContractedBOSS(series); - } - //Randomly selected ensemble with CAWPE weighting - else if (useCAWPE){ - buildRandomCAWPEBOSS(series); - } - //Randomly selected ensemble - else if (randomEnsembleSelection){ - buildRandomBOSS(series); - } - else if (randomCVAccEnsemble){ - buildRandomCVAccBOSS(series); - } - //Original BOSS/Accuracy cutoff ensemble - else{ - buildBOSS(series); - } - } - - //end train time, converted to milliseconds currently for compatability - trainResults.setBuildTime((System.nanoTime()/1000000) - (trainResults.getBuildTime()/1000000) - (checkpointTimeDiff/1000000)); - - //Estimate train accuracy - if (trainCV) { - OutFile of=new OutFile(trainCVPath); - of.writeLine(data.relationName()+",BOSSEnsemble,train"); - - double[][] results = findEnsembleTrainAcc(data); - of.writeLine(getParameters()); - of.writeLine(results[0][0]+""); - ensembleCvAcc = results[0][0]; - for(int i=1;i 0){ - return "RandomCAWPE" + (ensembleSizePerChannel*numSeries); - } - else { - return "RandomCAWPE" + ensembleSize; - } - } - else if (randomEnsembleSelection){ - if (isMultivariate && ensembleSizePerChannel > 0){ - return "Random" + (ensembleSizePerChannel*numSeries); - } - else { - return "Random" + ensembleSize; - } - } - - return ""; - } - - //[0] = index, [1] = acc - private double[] findMinEnsembleAcc() { - double minAcc = Double.MAX_VALUE; - int minAccInd = 0; - for (int i = 0; i < classifiers[currentSeries].size(); ++i) { - double curacc = classifiers[currentSeries].get(i).accuracy; - if (curacc < minAcc) { - minAcc = curacc; - minAccInd = i; - } - } - - return new double[] { minAccInd, minAcc }; - } - - private ArrayList[] uniqueParameters(int minWindow, int maxWindow, int winInc){ - ArrayList[] possibleParameters = new ArrayList[numSeries]; - - for (int n = 0; n < numSeries; n++) { - possibleParameters[n] = new ArrayList<>(); - - for (int normalise = 0; normalise < 2; normalise++) { - for (int winSize = minWindow; winSize <= maxWindow; winSize += winInc) { - for (Integer wordLen : wordLengths) { - int[] parameters = {wordLen, winSize, normalise}; - possibleParameters[n].add(parameters); - } - } - } - } - - return possibleParameters; - } - - private Instances resampleData(Instances series){ - Instances data; - - if (reduceTrainInstances && trainProportion > 0){ - data = resample(series, trainProportion, rand); - } - else if (reduceTrainInstances && series.numInstances() > maxTrainInstances) { - RandomStratifiedSampler sampler = new RandomStratifiedSampler(rand); - sampler.setInstances(series); - data = new Instances(series, 0); - - for (int i = 0; i < maxTrainInstances; i++){ - data.add(sampler.next()); - } - - //System.out.println(data.numInstances() + " " + Arrays.toString(classDistribution(data)) + " " + Arrays.toString(classDistribution(series))); - } - else{ - data = series; - } - - return data; - } - - private double individualTrainAcc(BOSSIndividual boss, Instances series, double lowestAcc) throws Exception { - if (useFastTrainEstimate && maxEval < series.numInstances()){ - RandomRoundRobinIndexSampler sampler = new RandomRoundRobinIndexSampler(rand); - sampler.setInstances(series); - - int correct = 0; - int requiredCorrect = (int)lowestAcc*maxEval; - - for (int i = 0; i < maxEval; ++i) { - if (correct + maxEval - i < requiredCorrect){ - return -1; - } - - int subsampleIndex = sampler.next(); - double c = boss.classifyInstance(subsampleIndex); //classify series subsampleIndex, while ignoring its corresponding histogram subsampleIndex - if (c == series.get(subsampleIndex).classValue()) - ++correct; - } - - return (double) correct / (double) maxEval; - } - else { - int correct = 0; - int numInst = series.numInstances(); - int requiredCorrect = (int)lowestAcc*numInst; - - for (int i = 0; i < numInst; ++i) { - if (correct + numInst - i < requiredCorrect){ - return -1; - } - - double c = boss.classifyInstance(i); //classify series i, while ignoring its corresponding histogram i - if (c == series.get(i).classValue()) - ++correct; - } - - return (double) correct / (double) numInst; - } - } - - private double[][] individualTrainPreds(BOSSIndividual boss, Instances series) throws Exception { - int subsampleSize = series.numClasses()* maxEvalPerClass; - double[][] preds; - - if (useFastTrainEstimate && subsampleSize < series.numInstances()){ - RandomRoundRobinIndexSampler sampler = new RandomRoundRobinIndexSampler(rand); - sampler.setInstances(series); - preds = new double[subsampleSize][series.numClasses()]; - - for (int i = 0; i < subsampleSize; ++i) { - int subsampleIndex = sampler.next(); - double c = boss.classifyInstance(subsampleIndex); //classify series subsampleIndex, while ignoring its corresponding histogram subsampleIndex - preds[i][(int)c] = 1.0; - } - } - else { - int numInst = series.numInstances(); - preds = new double[numInst][series.numClasses()]; - - for (int i = 0; i < numInst; ++i) { - double c = boss.classifyInstance(i); //classify series i, while ignoring its corresponding histogram i - preds[i][(int)c] = 1.0; - } - } - - return preds; - } - - public double accuracy(double[][] probs, double[] classVals){ - double correct = 0; - for (int i = 0; i < classVals.length; i++){ - if (argMax(probs[i], rand) == classVals[i]){ - correct++; - } - } - return correct/classVals.length; - } - - private boolean makesItIntoEnsemble(double acc, double maxAcc, double minMaxAcc, int curEnsembleSize) { - if (acc >= maxAcc * correctThreshold) { - if (curEnsembleSize >= maxEnsembleSize) - return acc > minMaxAcc; - else - return true; - } - - return false; - } - - public void nextSeries(){ - if (currentSeries == numSeries-1){ - currentSeries = 0; - } - else{ - currentSeries++; - } - } - - private double[][] findEnsembleTrainAcc(Instances data) throws Exception { - if (useCAWPE || (reduceTrainInstances && (data.numInstances() > maxTrainInstances || trainProportion > 0))){ - throw new Exception("Unable to create ensemble train estimate for these settings"); - } - else { - double[][] results = new double[2 + data.numClasses()][data.numInstances() + 1]; - - this.ensembleCvPreds = new double[data.numInstances()]; - - double correct = 0; - for (int i = 0; i < data.numInstances(); ++i) { - double[] probs = distributionForInstance(i, data.numClasses()); - - - double c = 0; - for (int j = 1; j < probs.length; j++) - if (probs[j] > probs[(int) c]) - c = j; - //No need to do it againclassifyInstance(i, data.numClasses()); //classify series i, while ignoring its corresponding histogram i - if (c == data.get(i).classValue()) - ++correct; - results[0][i + 1] = data.get(i).classValue(); - results[1][i + 1] = c; - for (int j = 0; j < probs.length; j++) - results[2 + j][i + 1] = probs[j]; - this.ensembleCvPreds[i] = c; - } - - results[0][0] = correct / data.numInstances(); - //TODO fill results[1][0] - - return results; - } - } - - public double getEnsembleCvAcc(){ - if(ensembleCvAcc>=0){ - return this.ensembleCvAcc; - } - - try{ - return this.findEnsembleTrainAcc(train)[0][0]; - }catch(Exception e){ - e.printStackTrace(); - } - return -1; - } - - public double[] getEnsembleCvPreds(){ - if(this.ensembleCvPreds==null){ - try{ - this.findEnsembleTrainAcc(train); - }catch(Exception e){ - e.printStackTrace(); - } - } - - return this.ensembleCvPreds; - } - - private double[] distributionForInstance(int test, int numclasses) throws Exception { - double[][] classHist = new double[numSeries][numclasses]; - - //get sum of all channels, votes from each are weighted the same. - double sum[] = new double[numSeries]; - - for (int n = 0; n < numSeries; n++) { - for (BOSSIndividual classifier : classifiers[n]) { - double classification = classifier.classifyInstance(test); - classHist[n][(int) classification]++; - sum[n]++; - } - } - - double[] distributions = new double[numclasses]; - - for (int n = 0; n < numSeries; n++){ - if (sum[n] != 0) - for (int i = 0; i < classHist[n].length; ++i) - distributions[i] += (classHist[n][i] / sum[n]) / numSeries; - } - - return distributions; - } - - @Override - public double classifyInstance(Instance instance) throws Exception { - double[] dist = distributionForInstance(instance); - - double maxFreq=dist[0], maxClass=0; - for (int i = 1; i < dist.length; ++i) - if (dist[i] > maxFreq) { - maxFreq = dist[i]; - maxClass = i; - } - - return maxClass; - } - - @Override - public double[] distributionForInstance(Instance instance) throws Exception { - double[][] classHist = new double[numSeries][instance.numClasses()]; - - //get sum of all channels, votes from each are weighted the same. - double sum[] = new double[numSeries]; - - Instance[] series; - - //Multivariate - if (isMultivariate) { - series = splitMultivariateInstanceWithClassVal(instance); - } - //Univariate - else { - series = new Instance[1]; - series[0] = instance; - } - - if (cawpe == null) { - for (int n = 0; n < numSeries; n++) { - for (BOSSIndividual classifier : classifiers[n]) { - double classification = classifier.classifyInstance(series[n]); - classHist[n][(int) classification]++; - sum[n]++; - } - } - } - //Special case for CAWPE - else { - for (int n = 0; n < numSeries; n++) { - double[] dist = cawpe[n].distributionForInstance(series[n]); - - for (int i = 0; i < dist.length; i++) { - classHist[n][i] += dist[i]; - } - - sum[n]++; - } - } - - double[] distributions = new double[instance.numClasses()]; - - for (int n = 0; n < numSeries; n++){ - if (sum[n] != 0) - for (int i = 0; i < classHist[n].length; ++i) - distributions[i] += (classHist[n][i] / sum[n]) / numSeries; - } - - return distributions; - } - - public static void main(String[] args) throws Exception{ - int fold = 1; - - //Minimum working example - String dataset = "SonyAIBORobotSurface1"; - Instances train = ClassifierTools.loadData("Z:\\Data\\TSCProblems2018\\"+dataset+"\\"+dataset+"_TRAIN.arff"); - Instances test = ClassifierTools.loadData("Z:\\Data\\TSCProblems2018\\"+dataset+"\\"+dataset+"_TEST.arff"); - Instances[] data = resampleTrainAndTestInstances(train, test, fold); - train = data[0]; - test = data[1]; - - String dataset2 = "PenDigits"; - Instances train2 = ClassifierTools.loadData("Z:\\Data\\MultivariateTSCProblems\\"+dataset2+"\\"+dataset2+"_TRAIN.arff"); - Instances test2 = ClassifierTools.loadData("Z:\\Data\\MultivariateTSCProblems\\"+dataset2+"\\"+dataset2+"_TEST.arff"); - - Classifier c; - double accuracy; - -// c = new BOSS(); -// c.buildClassifier(train); -// accuracy = ClassifierTools.accuracy(test, c); -// -// System.out.println("BOSS accuracy on " + dataset + " fold 0 = " + accuracy); - -// c = new BOSS(); -// ((BOSS) c).setEnsembleSize(250); -// ((BOSS) c).setMaxEnsembleSize(50); -// ((BOSS) c).setRandomCVAccEnsemble(true); -// ((BOSS) c).useCAWPE(true); -// ((BOSS) c).setSeed(fold); -// ((BOSS) c).setReduceTrainInstances(true); -// ((BOSS) c).setTrainProportion(0.7); -// c.buildClassifier(train); -// accuracy = ClassifierTools.accuracy(test, c); -// -// System.out.println("CAWPE BOSS accuracy on " + dataset + " fold 0 = " + accuracy); - -// c = new BOSS(); -// -// ((BOSS) c).ensembleSize = 250; -// ((BOSS) c).setMaxEnsembleSize(50); -// ((BOSS) c).setRandomCVAccEnsemble(true); -// ((BOSS) c).setSeed(0); -// ((BOSS) c).useFastTrainEstimate = true; -// ((BOSS) c).setMaxEvalPerClass(50); -// //((BOSS) c).reduceTrainInstances = true; -// //((BOSS) c).cutoff = true; -// c.buildClassifier(train); -// accuracy = ClassifierTools.accuracy(test, c); -// -// System.out.println("Random CV Acc BOSS accuracy on " + dataset + " fold 0 = " + accuracy); - -//// c = new BOSS(); -//// ((BOSS) c).ensembleSize = 250; -//// ((BOSS) c).randomEnsembleSelection = true; -//// ((BOSS) c).setSavePath("C:\\UEAMachineLearning"); -//// c.buildClassifier(train2); -//// accuracy = ClassifierTools.accuracy(test2, c); -//// -//// System.out.println(((BOSS) c).numSeries); -//// System.out.println(Arrays.toString(((BOSS) c).numClassifiers)); -//// -//// System.out.println("Random BOSS MV accuracy on " + dataset2 + " fold 0 = " + accuracy); -//// -// c = new BOSS(); -// ((BOSS) c).ensembleSize = 100; -// ((BOSS) c).randomEnsembleSelection = true; -// ((BOSS) c).setSeed(0); -// ((BOSS) c).setReduceTrainInstances(true); -// ((BOSS) c).setTrainProportion(0.7); -// c.buildClassifier(train); -// accuracy = ClassifierTools.accuracy(test, c); -// -// System.out.println("Random BOSS accuracy on " + dataset + " fold 0 = " + accuracy); -//// -//// c = new BOSS(); -//// ((BOSS) c).ensembleSize = 250; -//// ((BOSS) c).useCAWPE = true; -//// ((BOSS) c).setSavePath("C:\\UEAMachineLearning"); -//// c.buildClassifier(train2); -//// accuracy = ClassifierTools.accuracy(test2, c); -//// -//// System.out.println(((BOSS) c).numSeries); -//// System.out.println(Arrays.toString(((BOSS) c).numClassifiers)); -//// -//// System.out.println("CAWPE BOSS MV accuracy on " + dataset2 + " fold 0 = " + accuracy); -//// -// c = new BOSS(); -// ((BOSS) c).ensembleSize = 250; -// ((BOSS) c).useCAWPE = true; -// ((BOSS) c).setSeed(0); -// c.buildClassifier(train); -// accuracy = ClassifierTools.accuracy(test, c); -// -// System.out.println("CAWPE BOSS accuracy on " + dataset + " fold 0 = " + accuracy); -//// -// c = new BOSS(); -// ((BOSS) c).setTrainTimeLimit(TimeUnit.MINUTES, 2); -// c.buildClassifier(train2); -// accuracy = ClassifierTools.accuracy(test2, c); -// -// System.out.println(((BOSS) c).numSeries); -// System.out.println(Arrays.toString(((BOSS) c).numClassifiers)); -//// -//// System.out.println("Contract BOSS MV accuracy on " + dataset2 + " fold 0 = " + accuracy); -//// - c = new BOSS(); - ((BOSS) c).setTrainTimeLimit(TimeUnit.MINUTES, 2); - c.buildClassifier(train); - accuracy = ClassifierTools.accuracy(test, c); - - System.out.println("Contract BOSS accuracy on " + dataset + " fold 0 = " + accuracy); -//// -//// c = new BOSS(); -//// c.buildClassifier(train2); -//// accuracy = ClassifierTools.accuracy(test2, c); -//// -//// System.out.println(((BOSS) c).numSeries); -//// System.out.println(Arrays.toString(((BOSS) c).numClassifiers)); -//// -//// System.out.println("BOSS MV accuracy on " + dataset2 + " fold 0 = " + accuracy); -// - } - - /** - * BOSS classifier to be used with known parameters, for boss with parameter search, use BOSSEnsemble. - * - * Current implementation of BitWord as of 07/11/2016 only supports alphabetsize of 4, which is the expected value - * as defined in the paper - * - * Params: wordLength, alphabetSize, windowLength, normalise? - * - * @author James Large. Enhanced by original author Patrick Schaefer - * - * Implementation based on the algorithm described in getTechnicalInformation() - */ - public static class BOSSIndividual extends AbstractClassifier implements Serializable, Comparable { - - //all sfa words found in original buildClassifier(), no numerosity reduction/shortening applied - protected BitWord [/*instance*/][/*windowindex*/] SFAwords; - - //histograms of words of the current wordlength with numerosity reduction applied (if selected) - protected ArrayList bags; - - //breakpoints to be found by MCB - protected double[/*letterindex*/][/*breakpointsforletter*/] breakpoints; - - protected double inverseSqrtWindowSize; - protected int windowSize; - protected int wordLength; - protected int alphabetSize; - protected boolean norm; - - protected boolean numerosityReduction = true; - protected boolean cleanAfterBuild = false; - - protected double accuracy = -1; - - protected static final long serialVersionUID = 22551L; - - public BOSSIndividual(int wordLength, int alphabetSize, int windowSize, boolean normalise) { - this.wordLength = wordLength; - this.alphabetSize = alphabetSize; - this.windowSize = windowSize; - this.inverseSqrtWindowSize = 1.0 / Math.sqrt(windowSize); - this.norm = normalise; - } - - /** - * Used when shortening histograms, copies 'meta' data over, but with shorter - * word length, actual shortening happens separately - */ - public BOSSIndividual(BOSSIndividual boss, int wordLength) { - this.wordLength = wordLength; - - this.windowSize = boss.windowSize; - this.inverseSqrtWindowSize = boss.inverseSqrtWindowSize; - this.alphabetSize = boss.alphabetSize; - this.norm = boss.norm; - this.numerosityReduction = boss.numerosityReduction; - - this.SFAwords = boss.SFAwords; - this.breakpoints = boss.breakpoints; - - this.bags = new ArrayList<>(boss.bags.size()); - } - - @Override - public int compareTo(BOSSIndividual o) { - return Double.compare(this.accuracy, o.accuracy); - } - - public static class Bag extends HashMap { - double classVal; - protected static final long serialVersionUID = 22552L; - - public Bag() { - super(); - } - - public Bag(int classValue) { - super(); - classVal = classValue; - } - - public double getClassVal() { return classVal; } - public void setClassVal(double classVal) { this.classVal = classVal; } - } - - public int getWindowSize() { return windowSize; } - public int getWordLength() { return wordLength; } - public int getAlphabetSize() { return alphabetSize; } - public boolean isNorm() { return norm; } - - /** - * @return { numIntervals(word length), alphabetSize, slidingWindowSize, normalise? } - */ - public int[] getParameters() { - return new int[] { wordLength, alphabetSize, windowSize }; - } - - public void clean() { - SFAwords = null; - } - - protected double[][] performDFT(double[][] windows) { - double[][] dfts = new double[windows.length][wordLength]; - for (int i = 0; i < windows.length; ++i) { - dfts[i] = DFT(windows[i]); - } - return dfts; - } - - protected double stdDev(double[] series) { - double sum = 0.0; - double squareSum = 0.0; - for (int i = 0; i < windowSize; i++) { - sum += series[i]; - squareSum += series[i]*series[i]; - } - - double mean = sum / series.length; - double variance = squareSum / series.length - mean*mean; - return variance > 0 ? Math.sqrt(variance) : 1.0; - } - - protected double[] DFT(double[] series) { - //taken from FFT.java but - //return just a double[] size n, { real1, imag1, ... realn/2, imagn/2 } - //instead of Complex[] size n/2 - - //only calculating first wordlength/2 coefficients (output values), - //and skipping first coefficient if the data is to be normalised - int n=series.length; - int outputLength = wordLength/2; - int start = (norm ? 1 : 0); - - //normalize the disjoint windows and sliding windows by dividing them by their standard deviation - //all Fourier coefficients are divided by sqrt(windowSize) - - double normalisingFactor = inverseSqrtWindowSize / stdDev(series); - - double[] dft=new double[outputLength*2]; - - for (int k = start; k < start + outputLength; k++) { // For each output element - float sumreal = 0; - float sumimag = 0; - for (int t = 0; t < n; t++) { // For each input element - sumreal += series[t]*Math.cos(2*Math.PI * t * k / n); - sumimag += -series[t]*Math.sin(2*Math.PI * t * k / n); - } - dft[(k-start)*2] = sumreal * normalisingFactor; - dft[(k-start)*2+1] = sumimag * normalisingFactor; - } - return dft; - } - - private double[] DFTunnormed(double[] series) { - //taken from FFT.java but - //return just a double[] size n, { real1, imag1, ... realn/2, imagn/2 } - //instead of Complex[] size n/2 - - //only calculating first wordlength/2 coefficients (output values), - //and skipping first coefficient if the data is to be normalised - int n=series.length; - int outputLength = wordLength/2; - int start = (norm ? 1 : 0); - - double[] dft = new double[outputLength*2]; - double twoPi = 2*Math.PI / n; - - for (int k = start; k < start + outputLength; k++) { // For each output element - float sumreal = 0; - float sumimag = 0; - for (int t = 0; t < n; t++) { // For each input element - sumreal += series[t]*Math.cos(twoPi * t * k); - sumimag += -series[t]*Math.sin(twoPi * t * k); - } - dft[(k-start)*2] = sumreal; - dft[(k-start)*2+1] = sumimag; - } - return dft; - } - - private double[] normalizeDFT(double[] dft, double std) { - double normalisingFactor = (std > 0? 1.0 / std : 1.0) * inverseSqrtWindowSize; - for (int i = 0; i < dft.length; i++) - dft[i] *= normalisingFactor; - - return dft; - } - - private double[][] performMFT(double[] series) { - // ignore DC value? - int startOffset = norm ? 2 : 0; - int l = wordLength; - l = l + l % 2; // make it even - double[] phis = new double[l]; - for (int u = 0; u < phis.length; u += 2) { - double uHalve = -(u + startOffset) / 2; - phis[u] = realephi(uHalve, windowSize); - phis[u + 1] = complexephi(uHalve, windowSize); - } - - // means and stddev for each sliding window - int end = Math.max(1, series.length - windowSize + 1); - double[] means = new double[end]; - double[] stds = new double[end]; - calcIncrementalMeanStddev(windowSize, series, means, stds); - // holds the DFT of each sliding window - double[][] transformed = new double[end][]; - double[] mftData = null; - - for (int t = 0; t < end; t++) { - // use the MFT - if (t > 0) { - for (int k = 0; k < l; k += 2) { - double real1 = (mftData[k] + series[t + windowSize - 1] - series[t - 1]); - double imag1 = (mftData[k + 1]); - double real = complexMulReal(real1, imag1, phis[k], phis[k + 1]); - double imag = complexMulImag(real1, imag1, phis[k], phis[k + 1]); - mftData[k] = real; - mftData[k + 1] = imag; - } - } // use the DFT for the first offset - else { - mftData = Arrays.copyOf(series, windowSize); - mftData = DFTunnormed(mftData); - } - // normalization for lower bounding - transformed[t] = normalizeDFT(Arrays.copyOf(mftData, l), stds[t]); - } - return transformed; - } - - private void calcIncrementalMeanStddev(int windowLength, double[] series, double[] means, double[] stds) { - double sum = 0; - double squareSum = 0; - // it is faster to multiply than to divide - double rWindowLength = 1.0 / (double) windowLength; - double[] tsData = series; - for (int ww = 0; ww < windowLength; ww++) { - sum += tsData[ww]; - squareSum += tsData[ww] * tsData[ww]; - } - means[0] = sum * rWindowLength; - double buf = squareSum * rWindowLength - means[0] * means[0]; - stds[0] = buf > 0 ? Math.sqrt(buf) : 0; - for (int w = 1, end = tsData.length - windowLength + 1; w < end; w++) { - sum += tsData[w + windowLength - 1] - tsData[w - 1]; - means[w] = sum * rWindowLength; - squareSum += tsData[w + windowLength - 1] * tsData[w + windowLength - 1] - tsData[w - 1] * tsData[w - 1]; - buf = squareSum * rWindowLength - means[w] * means[w]; - stds[w] = buf > 0 ? Math.sqrt(buf) : 0; - } - } - - private static double complexMulReal(double r1, double im1, double r2, double im2) { - return r1 * r2 - im1 * im2; - } - - private static double complexMulImag(double r1, double im1, double r2, double im2) { - return r1 * im2 + r2 * im1; - } - - private static double realephi(double u, double M) { - return Math.cos(2 * Math.PI * u / M); - } - - private static double complexephi(double u, double M) { - return -Math.sin(2 * Math.PI * u / M); - } - - protected double[][] disjointWindows(double [] data) { - int amount = (int)Math.ceil(data.length/(double)windowSize); - double[][] subSequences = new double[amount][windowSize]; - - for (int win = 0; win < amount; ++win) { - int offset = Math.min(win*windowSize, data.length-windowSize); - - //copy the elements windowStart to windowStart+windowSize from data into - //the subsequence matrix at position windowStart - System.arraycopy(data,offset,subSequences[win],0,windowSize); - } - - return subSequences; - } - - protected double[][] MCB(Instances data) { - double[][][] dfts = new double[data.numInstances()][][]; - - int sample = 0; - for (Instance inst : data) - dfts[sample++] = performDFT(disjointWindows(toArrayNoClass(inst))); //approximation - - int numInsts = dfts.length; - int numWindowsPerInst = dfts[0].length; - int totalNumWindows = numInsts*numWindowsPerInst; - - breakpoints = new double[wordLength][alphabetSize]; - - for (int letter = 0; letter < wordLength; ++letter) { //for each dft coeff - - //extract this column from all windows in all instances - double[] column = new double[totalNumWindows]; - for (int inst = 0; inst < numInsts; ++inst) - for (int window = 0; window < numWindowsPerInst; ++window) { - //rounding dft coefficients to reduce noise - column[(inst * numWindowsPerInst) + window] = Math.round(dfts[inst][window][letter]*100.0)/100.0; - } - - //sort, and run through to find breakpoints for equi-depth bins - Arrays.sort(column); - - double binIndex = 0; - double targetBinDepth = (double)totalNumWindows / (double)alphabetSize; - - for (int bp = 0; bp < alphabetSize-1; ++bp) { - binIndex += targetBinDepth; - breakpoints[letter][bp] = column[(int)binIndex]; - } - - breakpoints[letter][alphabetSize-1] = Double.MAX_VALUE; //last one can always = infinity - } - - return breakpoints; - } - - /** - * Builds a brand new boss bag from the passed fourier transformed data, rather than from - * looking up existing transforms from earlier builds (i.e. SFAWords). - * - * to be used e.g to transform new test instances - */ - protected Bag createBagSingle(double[][] dfts) { - Bag bag = new Bag(); - BitWord lastWord = new BitWord(); - - for (double[] d : dfts) { - BitWord word = createWord(d); - //add to bag, unless num reduction applies - if (numerosityReduction && word.equals(lastWord)) - continue; - - Integer val = bag.get(word); - if (val == null) - val = 0; - bag.put(word, ++val); - - lastWord = word; - } - - return bag; - } - - protected BitWord createWord(double[] dft) { - BitWord word = new BitWord(wordLength); - for (int l = 0; l < wordLength; ++l) //for each letter - for (int bp = 0; bp < alphabetSize; ++bp) //run through breakpoints until right one found - if (dft[l] <= breakpoints[l][bp]) { - word.push(bp); //add corresponding letter to word - break; - } - - return word; - } - - /** - * @return data of passed instance in a double array with the class value removed if present - */ - protected static double[] toArrayNoClass(Instance inst) { - int length = inst.numAttributes(); - if (inst.classIndex() >= 0) - --length; - - double[] data = new double[length]; - - for (int i=0, j=0; i < inst.numAttributes(); ++i) - if (inst.classIndex() != i) - data[j++] = inst.value(i); - - return data; - } - - /** - * @return BOSSTransform-ed bag, built using current parameters - */ - public Bag BOSSTransform(Instance inst) { - double[][] mfts = performMFT(toArrayNoClass(inst)); //approximation - Bag bag = createBagSingle(mfts); //discretisation/bagging - bag.setClassVal(inst.classValue()); - - return bag; - } - - /** - * Shortens all bags in this BOSS instance (histograms) to the newWordLength, if wordlengths - * are same, instance is UNCHANGED - * - * @param newWordLength wordLength to shorten it to - * @return new boss classifier with newWordLength, or passed in classifier if wordlengths are same - */ - public BOSSIndividual buildShortenedBags(int newWordLength) throws Exception { - if (newWordLength == wordLength) //case of first iteration of word length search in ensemble - return this; - if (newWordLength > wordLength) - throw new Exception("Cannot incrementally INCREASE word length, current:"+wordLength+", requested:"+newWordLength); - if (newWordLength < 2) - throw new Exception("Invalid wordlength requested, current:"+wordLength+", requested:"+newWordLength); - - BOSSIndividual newBoss = new BOSSIndividual(this, newWordLength); - - //build hists with new word length from SFA words, and copy over the class values of original insts - for (int i = 0; i < bags.size(); ++i) { - Bag newBag = createBagFromWords(newWordLength, SFAwords[i]); - newBag.setClassVal(bags.get(i).getClassVal()); - newBoss.bags.add(newBag); - } - - return newBoss; - } - - /** - * Builds a bag from the set of words for a pre-transformed series of a given wordlength. - */ - protected Bag createBagFromWords(int thisWordLength, BitWord[] words) { - Bag bag = new Bag(); - BitWord lastWord = new BitWord(); - - for (BitWord w : words) { - BitWord word = new BitWord(w); - if (wordLength != thisWordLength) - word.shorten(16-thisWordLength); - //TODO hack, word.length=16=maxwordlength, wordLength of 'this' BOSS instance unreliable, length of SFAwords = maxlength - - //add to bag, unless num reduction applies - if (numerosityReduction && word.equals(lastWord)) - continue; - - Integer val = bag.get(word); - if (val == null) - val = 0; - bag.put(word, ++val); - - lastWord = word; - } - - return bag; - } - - protected BitWord[] createSFAwords(Instance inst) { - double[][] dfts = performMFT(toArrayNoClass(inst)); //approximation - BitWord[] words = new BitWord[dfts.length]; - for (int window = 0; window < dfts.length; ++window) - words[window] = createWord(dfts[window]);//discretisation - - return words; - } - - @Override - public void buildClassifier(Instances data) throws Exception { - if (data.classIndex() != data.numAttributes()-1) - throw new Exception("BOSS_BuildClassifier: Class attribute not set as last attribute in dataset"); - - breakpoints = MCB(data); //breakpoints to be used for making sfa words for train AND test data - SFAwords = new BitWord[data.numInstances()][]; - bags = new ArrayList<>(data.numInstances()); - - //1NN BOSS distance - for (int inst = 0; inst < data.numInstances(); ++inst) { - SFAwords[inst] = createSFAwords(data.get(inst)); - - Bag bag = createBagFromWords(wordLength, SFAwords[inst]); - bag.setClassVal(data.get(inst).classValue()); - bags.add(bag); - } - - if (cleanAfterBuild) { - clean(); - } - } - - /** - * Computes BOSS distance between two bags d(test, train), is NON-SYMETRIC operation, ie d(a,b) != d(b,a). - * - * Quits early if the dist-so-far is greater than bestDist (assumed dist is still the squared distance), and returns Double.MAX_VALUE - * - * @return distance FROM instA TO instB, or Double.MAX_VALUE if it would be greater than bestDist - */ - public double BOSSdistance(Bag instA, Bag instB, double bestDist) { - double dist = 0.0; - - //find dist only from values in instA - for (Entry entry : instA.entrySet()) { - Integer valA = entry.getValue(); - Integer valB = instB.get(entry.getKey()); - if (valB == null) - valB = 0; - dist += (valA-valB)*(valA-valB); - - if (dist > bestDist) - return Double.MAX_VALUE; - } - - return dist; - } - - @Override - public double classifyInstance(Instance instance) throws Exception { - Bag testBag = BOSSTransform(instance); - - double bestDist = Double.MAX_VALUE; - - //1NN BOSS distance - double nn = -1.0; - - //find dist FROM testBag TO all trainBags - for (int i = 0; i < bags.size(); ++i) { - double dist = BOSSdistance(testBag, bags.get(i), bestDist); - - if (dist < bestDist) { - bestDist = dist; - nn = bags.get(i).getClassVal(); - } - } - - return nn; - } - - /** - * Used within BOSSEnsemble as part of a leave-one-out crossvalidation, to skip having to rebuild - * the classifier every time (since the n histograms would be identical each time anyway), therefore this classifies - * the instance at the index passed while ignoring its own corresponding histogram - * - * @param testIndex index of instance to classify - * @return classification - */ - public double classifyInstance(int testIndex) throws Exception { - double bestDist = Double.MAX_VALUE; - Bag testBag = bags.get(testIndex); - - //1NN BOSS distance - double nn = -1.0; - - for (int i = 0; i < bags.size(); ++i) { - if (i == testIndex) //skip 'this' one, leave-one-out - continue; - - double dist = BOSSdistance(testBag, bags.get(i), bestDist); - - if (dist < bestDist) { - bestDist = dist; - nn = bags.get(i).getClassVal(); - } - } - - return nn; - } - } -} \ No newline at end of file diff --git a/src/main/java/timeseriesweka/classifiers/CheckpointClassifier.java b/src/main/java/timeseriesweka/classifiers/Checkpointable.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/CheckpointClassifier.java rename to src/main/java/timeseriesweka/classifiers/Checkpointable.java index f4f6efb1e..035d820e6 100644 --- a/src/main/java/timeseriesweka/classifiers/CheckpointClassifier.java +++ b/src/main/java/timeseriesweka/classifiers/Checkpointable.java @@ -35,7 +35,7 @@ * @author Tony Bagnall 2018 */ -public interface CheckpointClassifier extends Serializable{ +public interface Checkpointable extends Serializable{ //Set the path where checkpointed versions will be stored public void setSavePath(String path); diff --git a/src/main/java/timeseriesweka/classifiers/DTW_kNN.java b/src/main/java/timeseriesweka/classifiers/DTW_kNN.java deleted file mode 100644 index 7c1f1887d..000000000 --- a/src/main/java/timeseriesweka/classifiers/DTW_kNN.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package timeseriesweka.classifiers; -import java.io.FileReader; -import weka.classifiers.lazy.kNN; - -import weka.core.*; - -import weka.core.EuclideanDistance; -import timeseriesweka.elastic_distance_measures.DTW; - -/* This class is a specialisation of kNN that can only be used with the efficient DTW distance - * - * The reason for specialising is this class has the option of searching for the optimal window length - * through a grid search of values. - * - * By default this class does a search. - * To search for the window size call - * optimiseWindow(true); - * By default, this does a leave one out cross validation on every possible window size, then sets the - * proportion to the one with the largest accuracy. This will be slow. Speed it up by - * - * 1. Set the max window size to consider by calling - * setMaxWindowSize(double r) where r is on range 0..1, with 1 being a full warp. - * - * 2. Set the increment size - * setIncrementSize(int s) where s is on range 1...trainSetSize - * - * This is a basic brute force implementation, not optimised! There are probably ways of - * incrementally doing this. It could further be speeded up by using PAA to reduce the dimensionality first. - * - */ - -public class DTW_kNN extends kNN { - private boolean optimiseWindow=false; - private double windowSize=0.1; - private double maxWindowSize=1; - private int incrementSize=10; - private Instances train; - private int trainSize; - private int bestWarp; - DTW dtw=new DTW(); - -// DTW_DistanceEfficient dtw=new DTW_DistanceEfficient(); - public DTW_kNN(){ - super(); - dtw.setR(windowSize); - setDistanceFunction(dtw); - super.setKNN(1); - } - - public void optimiseWindow(boolean b){ optimiseWindow=b;} - public void setMaxR(double r){ maxWindowSize=r;} - - - public DTW_kNN(int k){ - super(k); - dtw.setR(windowSize); - optimiseWindow=true; - setDistanceFunction(dtw); - } - public void buildClassifier(Instances d){ - dist.setInstances(d); - train=d; - trainSize=d.numInstances(); - if(optimiseWindow){ - - - double maxR=0; - double maxAcc=0; -/*Set the maximum warping window: Not this is all a bit mixed up. -The window size in the r value is range 0..1, but the increments should be set by the -data*/ - int dataLength=train.numAttributes()-1; - int max=(int)(dataLength*maxWindowSize); -// System.out.println(" MAX ="+max+" increment size ="+incrementSize); - for(double i=0;i. */ -package timeseriesweka.classifiers.contract_interfaces; +package timeseriesweka.classifiers; /** * Interface that allows the user to impose a memory contract of a classifier that @@ -21,7 +21,7 @@ known classifiers: None * @author pfm15hbu */ -public interface MemoryContractClassifier { +public interface MemoryContractable { enum DataUnit {BYTES, MEGABYTE, GIGABYTE} default void setSixGigabyteLimit(){ setMemoryLimit(DataUnit.GIGABYTE, 6); } diff --git a/src/main/java/timeseriesweka/classifiers/cote/HiveCoteModule.java b/src/main/java/timeseriesweka/classifiers/MultiThreadable.java similarity index 69% rename from src/main/java/timeseriesweka/classifiers/cote/HiveCoteModule.java rename to src/main/java/timeseriesweka/classifiers/MultiThreadable.java index 6404c3873..42f03f76f 100644 --- a/src/main/java/timeseriesweka/classifiers/cote/HiveCoteModule.java +++ b/src/main/java/timeseriesweka/classifiers/MultiThreadable.java @@ -12,18 +12,15 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.cote; - +package timeseriesweka.classifiers; /** - * - * @author sjx07ngu + * Interface that allows the user to allow a classifier to use multiple threads, how this happens is determined by the + * classifier. + +known classifiers: none + * @author pfm15hbu */ -public interface HiveCoteModule{ - - public double getEnsembleCvAcc(); - public double[] getEnsembleCvPreds(); - public String getParameters(); - - +public interface MultiThreadable { + void setThreadAllowance(int numThreads); } diff --git a/src/main/java/timeseriesweka/classifiers/SaveParameterInfo.java b/src/main/java/timeseriesweka/classifiers/SaveParameterInfo.java index 34a6cf953..67ba17d70 100644 --- a/src/main/java/timeseriesweka/classifiers/SaveParameterInfo.java +++ b/src/main/java/timeseriesweka/classifiers/SaveParameterInfo.java @@ -17,7 +17,9 @@ * * @author ajb * Interface used for checkpointing a classifier. The getParameters is used in -* the Experiments class. This could be overlapping with another interface and +* the Experiments class. +* TO BE REMOVED: +* This could be overlapping with another interface and * could possibly be depreciated. * */ diff --git a/src/main/java/timeseriesweka/classifiers/SubSampleTrain.java b/src/main/java/timeseriesweka/classifiers/SubSampleTrainer.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/SubSampleTrain.java rename to src/main/java/timeseriesweka/classifiers/SubSampleTrainer.java index 966bf775d..67cf60171 100644 --- a/src/main/java/timeseriesweka/classifiers/SubSampleTrain.java +++ b/src/main/java/timeseriesweka/classifiers/SubSampleTrainer.java @@ -1,31 +1,31 @@ -/* - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package timeseriesweka.classifiers; - -import utilities.InstanceTools; -import weka.core.Instances; - -/** - * Indicates that the class can subsample the train set if the option is set - * - * @author ajb - */ -public interface SubSampleTrain { - - public void subSampleTrain(double prop, int seed); - default Instances subSample(Instances full, double proportion, int seed){ - return InstanceTools.subSampleFixedProportion(full, proportion, seed); - } -} +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package timeseriesweka.classifiers; + +import utilities.InstanceTools; +import weka.core.Instances; + +/** + * Indicates that the class can subsample the train set if the option is set + * + * @author ajb + */ +public interface SubSampleTrainer { + + public void subSampleTrain(double prop, int seed); + default Instances subSample(Instances full, double proportion, int seed){ + return InstanceTools.subSampleFixedProportion(full, proportion, seed); + } +} diff --git a/src/main/java/timeseriesweka/classifiers/contract_interfaces/TestTimeContractClassifier.java b/src/main/java/timeseriesweka/classifiers/TestTimeContractable.java similarity index 93% rename from src/main/java/timeseriesweka/classifiers/contract_interfaces/TestTimeContractClassifier.java rename to src/main/java/timeseriesweka/classifiers/TestTimeContractable.java index ed84d30a8..36782b629 100644 --- a/src/main/java/timeseriesweka/classifiers/contract_interfaces/TestTimeContractClassifier.java +++ b/src/main/java/timeseriesweka/classifiers/TestTimeContractable.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.contract_interfaces; +package timeseriesweka.classifiers; import java.util.concurrent.TimeUnit; @@ -23,7 +23,7 @@ known classifiers: None * @author pfm15hbu */ -public interface TestTimeContractClassifier { +public interface TestTimeContractable { default void setOneSecondLimit(){ setTestTimeLimit(TimeUnit.SECONDS, 1); } default void setOneMillisecondLimit(){ setTestTimeLimit(TimeUnit.MILLISECONDS, 1); } diff --git a/src/main/java/utilities/TrainAccuracyEstimate.java b/src/main/java/timeseriesweka/classifiers/TrainAccuracyEstimator.java similarity index 73% rename from src/main/java/utilities/TrainAccuracyEstimate.java rename to src/main/java/timeseriesweka/classifiers/TrainAccuracyEstimator.java index 39a6d9a3c..3d4f5e74e 100644 --- a/src/main/java/utilities/TrainAccuracyEstimate.java +++ b/src/main/java/timeseriesweka/classifiers/TrainAccuracyEstimator.java @@ -1,71 +1,78 @@ -/* - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package utilities; - -import evaluation.storage.ClassifierResults; -import weka.core.Instances; - -/** -* Classifiers implementing this interface will perform a CV on the train data -* and implement a means of storing train predictions and probabilities. -* -* there are two use cases - - 1. Just get it to write the train results to file - c.writeCVTrainToFile("c:\temp\TrainFold1.csv"); - whether it writes predictions is classifier specific, see below. - - 2. Recover the train results in a ClassifierResults object. James to sort this out -* - * @author ajb - */ -public interface TrainAccuracyEstimate { - - - void setFindTrainAccuracyEstimate(boolean setCV); - - /** - * classifiers implementing this interface can perform a CV - * on the train data and store that data in a ClassifierResults object - * @return true if this classifier actually finds the estimate - */ - default boolean findsTrainAccuracyEstimate(){ return false;} -/** - * TrainCV results are not by default written to file. If this method is called - * they will be written in standard format, as defined in the ClassifierResults class - * The minimum requirements for the train results are - * - * ProblemName,ClassifierName,train -* Parameter info, if available -* TrainAccuracy -* If available, the preds and probs will also be written -* Case1TrueClass,Case1PredictedClass,,ProbClass1,ProbClass2, ... -* Case2TrueClass,Case2PredictedClass,,ProbClass1,ProbClass2, ... -* - * @param train: Full file name for the TrainCV results - */ - void writeCVTrainToFile(String train); -/** - * - * @return All the data from the train CV - */ - ClassifierResults getTrainResults(); - default int setNumberOfFolds(Instances data){ - return data.numInstances()<10?data.numInstances():10; - } - - - -} +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package timeseriesweka.classifiers; + +import evaluation.storage.ClassifierResults; +import weka.core.Instances; + +/** +* Classifiers implementing this interface will perform a CV on the train data +* and implement a means of storing train predictions and probabilities. +* +* there are two use cases + + 1. Just get it to write the train results to file + c.writeTrainEstimatesToFile("c:\temp\TrainFold1.csv"); + whether it writes predictions is classifier specific, see below. + * This should be depreciated for method 2: + 2. Recover the train results in a ClassifierResults object. +* + * @author ajb + */ +public interface TrainAccuracyEstimator extends SaveParameterInfo{ + + + void setFindTrainAccuracyEstimate(boolean setCV); + + /** + * classifiers implementing this interface can estimate probabilities and classes + * on the train data and store that data in a ClassifierResults object. + * @return true if this classifier actually finds the estimate + */ + default boolean findsTrainAccuracyEstimate(){ return false;} +/** + * TrainCV results are not by default written to file. If this method is called + * they will be written in standard format, as defined in the ClassifierResults class + * The minimum requirements for the train results are + * + * ProblemName,ClassifierName,train +* Parameter info, if available +* TrainAccuracy +* If available, the preds and probs will also be written +* Case1TrueClass,Case1PredictedClass,,ProbClass1,ProbClass2, ... +* Case2TrueClass,Case2PredictedClass,,ProbClass1,ProbClass2, ... +* + * @param train: Full file name for the TrainCV results + */ + void writeTrainEstimatesToFile(String train); +/** + * + * @return All the data from the train CV + */ + ClassifierResults getTrainResults(); + + + default int setNumberOfFolds(Instances data){ + return data.numInstances()<10?data.numInstances():10; + } +//Temp comment: porting these from + default public double getTrainAcc(){ + throw new UnsupportedOperationException("getTrainAcc not implemented in class "+this.getClass().getName()); + } + + default public double[] getTrainPreds(){ + throw new UnsupportedOperationException("getTrainPreds not implemented in class "+this.getClass().getName()); + } +} diff --git a/src/main/java/timeseriesweka/classifiers/contract_interfaces/TrainTimeContractClassifier.java b/src/main/java/timeseriesweka/classifiers/TrainTimeContractable.java similarity index 89% rename from src/main/java/timeseriesweka/classifiers/contract_interfaces/TrainTimeContractClassifier.java rename to src/main/java/timeseriesweka/classifiers/TrainTimeContractable.java index 4127b623d..6068636aa 100644 --- a/src/main/java/timeseriesweka/classifiers/contract_interfaces/TrainTimeContractClassifier.java +++ b/src/main/java/timeseriesweka/classifiers/TrainTimeContractable.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.contract_interfaces; +package timeseriesweka.classifiers; import java.util.concurrent.TimeUnit; @@ -20,10 +20,11 @@ * Interface that allows the user to impose a train time contract of a classifier that implements this interface - known classifiers: ShapeletTransformClassifier, RISE (not tested) HiveCote (partial) +known classifiers: ShapeletTransformClassifier, RISE (not tested) HiveCote (partial), +* BOSS (check), TSF (check) * @author raj09hxu */ -public interface TrainTimeContractClassifier { +public interface TrainTimeContractable { default void setOneDayLimit(){ setTrainTimeLimit(TimeUnit.DAYS, 1); } default void setOneHourLimit(){ setTrainTimeLimit(TimeUnit.HOURS, 1); } diff --git a/src/main/java/timeseriesweka/classifiers/dictionary_based/BOSS.java b/src/main/java/timeseriesweka/classifiers/dictionary_based/BOSS.java new file mode 100644 index 000000000..3ab2f2e31 --- /dev/null +++ b/src/main/java/timeseriesweka/classifiers/dictionary_based/BOSS.java @@ -0,0 +1,594 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package timeseriesweka.classifiers.dictionary_based; + +import java.security.InvalidParameterException; +import java.util.*; + +import net.sourceforge.sizeof.SizeOf; +import timeseriesweka.classifiers.*; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import utilities.*; +import utilities.samplers.*; +import weka.classifiers.functions.GaussianProcesses; +import weka.core.*; +import evaluation.storage.ClassifierResults; +import experiments.data.DatasetLoading; + +import static utilities.InstanceTools.resampleTrainAndTestInstances; +import static utilities.multivariate_tools.MultivariateInstanceTools.*; +import static weka.core.Utils.sum; + +/** + * BOSS classifier with parameter search and ensembling for univariate and + * multivariate time series classification. + * If parameters are known, use the nested class BOSSIndividual and directly provide them. + * + * Options to change the method of ensembling to randomly select parameters instead of searching. + * Has the capability to contract train time and checkpoint when using a random ensemble. + * + * Alphabetsize fixed to four and maximum wordLength of 16. + * + * @author James Large, updated by Matthew Middlehurst + * + * Implementation based on the algorithm described in getTechnicalInformation() + */ +public class BOSS extends AbstractClassifierWithTrainingInfo implements TrainAccuracyEstimator, + TechnicalInformationHandler, MultiThreadable { + + private int seed = 0; + private Random rand; + + private transient LinkedList[] classifiers; + private int numSeries; + private int[] numClassifiers; + private int currentSeries = 0; + private boolean isMultivariate = false; + + private final int[] wordLengths = { 16, 14, 12, 10, 8 }; + private final int[] alphabetSize = { 4 }; + private final boolean[] normOptions = { true, false }; + private final double correctThreshold = 0.92; + private int maxEnsembleSize = 500; + + private String trainCVPath; + private boolean trainCV = false; + + private transient Instances train; + private double ensembleCvAcc = -1; + private double[] ensembleCvPreds = null; + + private int numThreads = 1; + private boolean multiThread = false; + private ExecutorService ex; + + protected static final long serialVersionUID = 22554L; + + public BOSS() {} + + @Override + public TechnicalInformation getTechnicalInformation() { + TechnicalInformation result; + result = new TechnicalInformation(TechnicalInformation.Type.ARTICLE); + result.setValue(TechnicalInformation.Field.AUTHOR, "P. Schafer"); + result.setValue(TechnicalInformation.Field.TITLE, "The BOSS is concerned with time series classification in the presence of noise"); + result.setValue(TechnicalInformation.Field.JOURNAL, "Data Mining and Knowledge Discovery"); + result.setValue(TechnicalInformation.Field.VOLUME, "29"); + result.setValue(TechnicalInformation.Field.NUMBER,"6"); + result.setValue(TechnicalInformation.Field.PAGES, "1505-1530"); + result.setValue(TechnicalInformation.Field.YEAR, "2015"); + return result; + } + + @Override + public Capabilities getCapabilities(){ + Capabilities result = super.getCapabilities(); + result.disableAll(); + + result.setMinimumNumberInstances(2); + + // attributes + result.enable(Capabilities.Capability.RELATIONAL_ATTRIBUTES); + result.enable(Capabilities.Capability.NUMERIC_ATTRIBUTES); + + // class + result.enable(Capabilities.Capability.NOMINAL_CLASS); + + return result; + } + + @Override + public String getParameters() { + StringBuilder sb = new StringBuilder(); + sb.append(super.getParameters()); + + sb.append(",numSeries,").append(numSeries); + + for (int n = 0; n < numSeries; n++) { + sb.append(",numclassifiers,").append(n).append(",").append(numClassifiers[n]); + + for (int i = 0; i < numClassifiers[n]; ++i) { + BOSSIndividual boss = classifiers[n].get(i); + sb.append(",windowSize,").append(boss.getWindowSize()).append(",wordLength,").append(boss.getWordLength()); + sb.append(",alphabetSize,").append(boss.getAlphabetSize()).append(",norm,").append(boss.isNorm()); + } + } + + return sb.toString(); + } + + @Override + public void setThreadAllowance(int numThreads) { + if (numThreads > 1) { + this.numThreads = numThreads; + multiThread = true; + } + else{ + this.numThreads = 1; + multiThread = false; + } + } + + @Override + public void writeTrainEstimatesToFile(String outputPathAndName){ + trainCVPath = outputPathAndName; + trainCV = true; + } + + @Override + public void setFindTrainAccuracyEstimate(boolean setCV){ + trainCV = setCV; + } + + @Override + public boolean findsTrainAccuracyEstimate(){ return trainCV; } + + @Override + public ClassifierResults getTrainResults(){ + trainResults.setAcc(ensembleCvAcc); + return trainResults; + } + + public void setMaxEnsembleSize(int size) { + maxEnsembleSize = size; + } + + public void setSeed(int i) { + seed = i; + } + + @Override + public void buildClassifier(final Instances data) throws Exception { + trainResults.setBuildTime(System.nanoTime()); + + // can classifier handle the data? + getCapabilities().testWithFail(data); + + if(data.checkForAttributeType(Attribute.RELATIONAL)){ + isMultivariate = true; + } + + //Window length settings + int seriesLength = isMultivariate ? channelLength(data)-1 : data.numAttributes()-1; //minus class attribute + int minWindow = 10; + double maxWinLenProportion = 1; + int maxWindow = (int)(seriesLength* maxWinLenProportion); + if (maxWindow < minWindow) minWindow = maxWindow/2; + //whats the max number of window sizes that should be searched through + double maxWinSearchProportion = 0.25; + double maxWindowSearches = seriesLength* maxWinSearchProportion; + int winInc = (int)((maxWindow - minWindow) / maxWindowSearches); + if (winInc < 1) winInc = 1; + + //initialise variables + if (data.classIndex() != data.numAttributes()-1) + throw new Exception("BOSS_BuildClassifier: Class attribute not set as last attribute in dataset"); + + //Multivariate + if (isMultivariate) { + numSeries = numChannels(data); + classifiers = new LinkedList[numSeries]; + + for (int n = 0; n < numSeries; n++){ + classifiers[n] = new LinkedList<>(); + } + + numClassifiers = new int[numSeries]; + } + //Univariate + else{ + numSeries = 1; + classifiers = new LinkedList[1]; + classifiers[0] = new LinkedList<>(); + numClassifiers = new int[1]; + } + + rand = new Random(seed); + + this.train = data; + + if (multiThread && numThreads == 1){ + numThreads = Runtime.getRuntime().availableProcessors(); + } + + //required to deal with multivariate datasets, each channel is split into its own instances + Instances[] series; + + //Multivariate + if (isMultivariate) { + series = splitMultivariateInstances(data); + } + //Univariate + else{ + series = new Instances[1]; + series[0] = data; + } + + for (int n = 0; n < numSeries; n++) { + currentSeries = n; + double maxAcc = -1.0; + + //the acc of the worst member to make it into the final ensemble as it stands + double minMaxAcc = -1.0; + + for (boolean normalise : normOptions) { + for (int winSize = minWindow; winSize <= maxWindow; winSize += winInc) { + BOSSIndividual boss = new BOSSIndividual(wordLengths[0], alphabetSize[0], winSize, normalise, multiThread, numThreads, ex); + boss.seed = seed; + boss.buildClassifier(series[n]); //initial setup for this windowsize, with max word length + + BOSSIndividual bestClassifierForWinSize = null; + double bestAccForWinSize = -1.0; + + //find best word length for this window size + for (Integer wordLen : wordLengths) { + boss = boss.buildShortenedBags(wordLen); //in first iteration, same lengths (wordLengths[0]), will do nothing + + double acc = individualTrainAcc(boss, series[n], bestAccForWinSize); + + if (acc >= bestAccForWinSize) { + bestAccForWinSize = acc; + bestClassifierForWinSize = boss; + } + } + + //if this window size's accuracy is not good enough to make it into the ensemble, dont bother storing at all + if (makesItIntoEnsemble(bestAccForWinSize, maxAcc, minMaxAcc, classifiers[n].size())) { + bestClassifierForWinSize.clean(); + bestClassifierForWinSize.accuracy = bestAccForWinSize; + classifiers[n].add(bestClassifierForWinSize); + + if (bestAccForWinSize > maxAcc) { + maxAcc = bestAccForWinSize; + //get rid of any extras that dont fall within the new max threshold + Iterator it = classifiers[n].iterator(); + while (it.hasNext()) { + BOSSIndividual b = it.next(); + if (b.accuracy < maxAcc * correctThreshold) { + it.remove(); + } + } + } + + while (classifiers[n].size() > maxEnsembleSize) { + //cull the 'worst of the best' until back under the max size + int minAccInd = (int) findMinEnsembleAcc()[0]; + + classifiers[n].remove(minAccInd); + } + + minMaxAcc = findMinEnsembleAcc()[1]; //new 'worst of the best' acc + } + + numClassifiers[n] = classifiers[n].size(); + } + } + } + + //end train time in nanoseconds + trainResults.setBuildTime(System.nanoTime() - trainResults.getBuildTime()); + + //Estimate train accuracy + if (trainCV) { + trainResults.setTimeUnit(TimeUnit.NANOSECONDS); + trainResults.setClassifierName("BOSS"); + trainResults.setDatasetName(data.relationName()); + trainResults.setFoldID(seed); + trainResults.setSplit("train"); + trainResults.setParas(getParameters()); + double result = findEnsembleTrainAcc(data); + trainResults.finaliseResults(); + trainResults.writeFullResultsToFile(trainCVPath); + + System.out.println("CV acc ="+result); + + trainCV = false; + } + } + + //[0] = index, [1] = acc + private double[] findMinEnsembleAcc() { + double minAcc = Double.MAX_VALUE; + int minAccInd = 0; + for (int i = 0; i < classifiers[currentSeries].size(); ++i) { + double curacc = classifiers[currentSeries].get(i).accuracy; + if (curacc < minAcc) { + minAcc = curacc; + minAccInd = i; + } + } + + return new double[] { minAccInd, minAcc }; + } + + private double individualTrainAcc(BOSSIndividual boss, Instances series, double lowestAcc) throws Exception { + int correct = 0; + int numInst = series.numInstances(); + int requiredCorrect = (int)(lowestAcc*numInst); + + if (multiThread){ + ex = Executors.newFixedThreadPool(numThreads); + ArrayList threads = new ArrayList<>(sum(numClassifiers)); + + for (int i = 0; i < numInst; ++i) { + BOSSIndividual.TrainNearestNeighbourThread t = boss.new TrainNearestNeighbourThread(i); + threads.add(t); + ex.execute(t); + } + + ex.shutdown(); + while (!ex.isTerminated()); + + for (BOSSIndividual.TrainNearestNeighbourThread t: threads){ + if (t.nn == series.get(t.testIndex).classValue()) { + ++correct; + } + } + } + else { + for (int i = 0; i < numInst; ++i) { + if (correct + numInst - i < requiredCorrect) { + return -1; + } + + double c = boss.classifyInstance(i); //classify series i, while ignoring its corresponding histogram i + if (c == series.get(i).classValue()) { + ++correct; + } + } + } + + return (double) correct / (double) numInst; + } + + private boolean makesItIntoEnsemble(double acc, double maxAcc, double minMaxAcc, int curEnsembleSize) { + if (acc >= maxAcc * correctThreshold) { + if (curEnsembleSize >= maxEnsembleSize) + return acc > minMaxAcc; + else + return true; + } + + return false; + } + + private double findEnsembleTrainAcc(Instances data) throws Exception { + this.ensembleCvPreds = new double[data.numInstances()]; + + double correct = 0; + for (int i = 0; i < data.numInstances(); ++i) { + long predTime = System.nanoTime(); + double[] probs = distributionForInstance(i, data.numClasses()); + predTime = System.nanoTime() - predTime; + + double c = 0; + for (int j = 1; j < probs.length; j++) + if (probs[j] > probs[(int) c]) + c = j; + + //No need to do it againclassifyInstance(i, data.numClasses()); //classify series i, while ignoring its corresponding histogram i + if (c == data.get(i).classValue()) + ++correct; + + this.ensembleCvPreds[i] = c; + + trainResults.addPrediction(data.get(i).classValue(), probs, c, predTime, ""); + } + + double result = correct / data.numInstances(); + + return result; + } + + public double getTrainAcc(){ + if(ensembleCvAcc>=0){ + return this.ensembleCvAcc; + } + + try{ + return this.findEnsembleTrainAcc(train); + }catch(Exception e){ + e.printStackTrace(); + } + return -1; + } + + public double[] getTrainPreds(){ + if(this.ensembleCvPreds==null){ + try{ + this.findEnsembleTrainAcc(train); + }catch(Exception e){ + e.printStackTrace(); + } + } + + return this.ensembleCvPreds; + } + + private double[] distributionForInstance(int test, int numclasses) throws Exception { + double[][] classHist = new double[numSeries][numclasses]; + + //get sum of all channels, votes from each are weighted the same. + double sum[] = new double[numSeries]; + + for (int n = 0; n < numSeries; n++) { + for (BOSSIndividual classifier : classifiers[n]) { + double classification = classifier.classifyInstance(test); + + classHist[n][(int) classification] += classifier.weight; + sum[n] += classifier.weight; + } + } + + double[] distributions = new double[numclasses]; + + for (int n = 0; n < numSeries; n++){ + if (sum[n] != 0) + for (int i = 0; i < classHist[n].length; ++i) + distributions[i] += (classHist[n][i] / sum[n]) / numSeries; + } + + return distributions; + } + + @Override + public double classifyInstance(Instance instance) throws Exception { + double[] dist = distributionForInstance(instance); + + double maxFreq=dist[0], maxClass=0; + for (int i = 1; i < dist.length; ++i) { + if (dist[i] > maxFreq) { + maxFreq = dist[i]; + maxClass = i; + } + else if (dist[i] == maxFreq){ + if (rand.nextBoolean()){ + maxClass = i; + } + } + } + + return maxClass; + } + + @Override + public double[] distributionForInstance(Instance instance) throws Exception { + double[][] classHist = new double[numSeries][instance.numClasses()]; + + //get sum of all channels, votes from each are weighted the same. + double sum[] = new double[numSeries]; + + Instance[] series; + + //Multivariate + if (isMultivariate) { + series = splitMultivariateInstanceWithClassVal(instance); + } + //Univariate + else { + series = new Instance[1]; + series[0] = instance; + } + + if (multiThread){ + ex = Executors.newFixedThreadPool(numThreads); + ArrayList threads = new ArrayList<>(sum(numClassifiers)); + + for (int n = 0; n < numSeries; n++) { + for (BOSSIndividual classifier : classifiers[n]) { + BOSSIndividual.TestNearestNeighbourThread t = classifier.new TestNearestNeighbourThread(instance, classifier.weight, n); + threads.add(t); + ex.execute(t); + } + } + + ex.shutdown(); + while (!ex.isTerminated()); + + for (BOSSIndividual.TestNearestNeighbourThread t: threads){ + classHist[t.series][(int)t.nn] += t.weight; + sum[t.series] += t.weight; + } + } + else { + for (int n = 0; n < numSeries; n++) { + for (BOSSIndividual classifier : classifiers[n]) { + double classification = classifier.classifyInstance(series[n]); + classHist[n][(int) classification] += classifier.weight; + sum[n] += classifier.weight; + } + } + } + + double[] distributions = new double[instance.numClasses()]; + + for (int n = 0; n < numSeries; n++){ + if (sum[n] != 0) + for (int i = 0; i < classHist[n].length; ++i) + distributions[i] += (classHist[n][i] / sum[n]) / numSeries; + } + + return distributions; + } + + public static void main(String[] args) throws Exception{ + int fold = 0; + + //Minimum working example + String dataset = "ItalyPowerDemand"; + Instances train = DatasetLoading.loadDataNullable("Z:\\Data\\TSCProblems2018\\"+dataset+"\\"+dataset+"_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("Z:\\Data\\TSCProblems2018\\"+dataset+"\\"+dataset+"_TEST.arff"); + Instances[] data = resampleTrainAndTestInstances(train, test, fold); + train = data[0]; + test = data[1]; + + String dataset2 = "ERing"; + Instances train2 = DatasetLoading.loadDataNullable("Z:\\Data\\MultivariateTSCProblems\\"+dataset2+"\\"+dataset2+"_TRAIN.arff"); + Instances test2 = DatasetLoading.loadDataNullable("Z:\\Data\\MultivariateTSCProblems\\"+dataset2+"\\"+dataset2+"_TEST.arff"); + Instances[] data2 = resampleMultivariateTrainAndTestInstances(train2, test2, fold); + train2 = data2[0]; + test2 = data2[1]; + + BOSS c; + double accuracy; + + c = new BOSS(); + c.buildClassifier(train); + accuracy = ClassifierTools.accuracy(test, c); + + System.out.println("BOSS accuracy on " + dataset + " fold " + fold + " = " + accuracy + " numClassifiers = " + Arrays.toString(c.numClassifiers)); + + c = new BOSS(); + c.buildClassifier(train2); + accuracy = ClassifierTools.accuracy(test2, c); + + System.out.println("BOSS accuracy on " + dataset2 + " fold " + fold + " = " + accuracy + " numClassifiers = " + Arrays.toString(c.numClassifiers)); + + //Output 22/07/19 + /* + BOSS accuracy on ItalyPowerDemand fold 0 = 0.9271137026239067 numClassifiers = [4] + BOSS accuracy on ERing fold 0 = 0.7925925925925926 numClassifiers = [4, 1, 3, 6] + */ + } +} \ No newline at end of file diff --git a/src/main/java/timeseriesweka/classifiers/dictionary_based/BOSSIndividual.java b/src/main/java/timeseriesweka/classifiers/dictionary_based/BOSSIndividual.java new file mode 100644 index 000000000..cb4709f7e --- /dev/null +++ b/src/main/java/timeseriesweka/classifiers/dictionary_based/BOSSIndividual.java @@ -0,0 +1,693 @@ +package timeseriesweka.classifiers.dictionary_based; + +import weka.classifiers.AbstractClassifier; +import weka.core.Instance; +import weka.core.Instances; + +import java.io.Serializable; +import java.util.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +/** + * BOSS classifier to be used with known parameters, for boss with parameter search, use BOSSEnsemble. + * + * Current implementation of BitWord as of 07/11/2016 only supports alphabetsize of 4, which is the expected value + * as defined in the paper + * + * Params: wordLength, alphabetSize, windowLength, normalise? + * + * @author James Large. Enhanced by original author Patrick Schaefer + * + * Implementation based on the algorithm described in getTechnicalInformation() + */ +public class BOSSIndividual extends AbstractClassifier implements Serializable, Comparable { + + //all sfa words found in original buildClassifier(), no numerosity reduction/shortening applied + protected BitWord [/*instance*/][/*windowindex*/] SFAwords; + + //histograms of words of the current wordlength with numerosity reduction applied (if selected) + protected ArrayList bags; + + //breakpoints to be found by MCB + protected double[/*letterindex*/][/*breakpointsforletter*/] breakpoints; + + protected int numClasses; + + protected double inverseSqrtWindowSize; + protected int windowSize; + protected int wordLength; + protected int alphabetSize; + protected boolean norm; + protected boolean numerosityReduction = true; + protected boolean cleanAfterBuild = false; + + protected double accuracy = -1; + protected double weight = 1; + protected ArrayList subsampleIndices; + + protected boolean multiThread = false; + protected int numThreads = 1; + protected ExecutorService ex; + + protected int seed = 0; + protected Random rand; + + protected static final long serialVersionUID = 22551L; + + public BOSSIndividual(int wordLength, int alphabetSize, int windowSize, boolean normalise, boolean multiThread, int numThreads, ExecutorService ex) { + this.wordLength = wordLength; + this.alphabetSize = alphabetSize; + this.windowSize = windowSize; + this.inverseSqrtWindowSize = 1.0 / Math.sqrt(windowSize); + this.norm = normalise; + this.multiThread = multiThread; + this.numThreads = numThreads; + this.ex = ex; + } + + public BOSSIndividual(int wordLength, int alphabetSize, int windowSize, boolean normalise) { + this.wordLength = wordLength; + this.alphabetSize = alphabetSize; + this.windowSize = windowSize; + this.inverseSqrtWindowSize = 1.0 / Math.sqrt(windowSize); + this.norm = normalise; + } + + /** + * Used when shortening histograms, copies 'meta' data over, but with shorter + * word length, actual shortening happens separately + */ + public BOSSIndividual(BOSSIndividual boss, int wordLength) { + this.wordLength = wordLength; + + this.windowSize = boss.windowSize; + this.inverseSqrtWindowSize = boss.inverseSqrtWindowSize; + this.alphabetSize = boss.alphabetSize; + this.norm = boss.norm; + this.numerosityReduction = boss.numerosityReduction; + + this.SFAwords = boss.SFAwords; + this.breakpoints = boss.breakpoints; + + this.multiThread = boss.multiThread; + this.numThreads = boss.numThreads; + this.ex = boss.ex; + + this.seed = boss.seed; + this.rand = boss.rand; + + this.bags = new ArrayList<>(boss.bags.size()); + this.numClasses = boss.numClasses; + } + + @Override + public int compareTo(BOSSIndividual o) { + return Double.compare(this.accuracy, o.accuracy); + } + + public static class Bag extends HashMap { + double classVal; + protected static final long serialVersionUID = 22552L; + + public Bag() { + super(); + } + + public Bag(int classValue) { + super(); + classVal = classValue; + } + + public double getClassVal() { return classVal; } + public void setClassVal(double classVal) { this.classVal = classVal; } + } + + public int getWindowSize() { return windowSize; } + public int getWordLength() { return wordLength; } + public int getAlphabetSize() { return alphabetSize; } + public boolean isNorm() { return norm; } + + /** + * @return { numIntervals(word length), alphabetSize, slidingWindowSize, normalise? } + */ + public int[] getParameters() { + return new int[] { wordLength, alphabetSize, windowSize }; + } + + public void setSeed(int i){ seed = i; } + + public void clean() { + SFAwords = null; + } + + protected double[][] performDFT(double[][] windows) { + double[][] dfts = new double[windows.length][wordLength]; + for (int i = 0; i < windows.length; ++i) { + dfts[i] = DFT(windows[i]); + } + return dfts; + } + + protected double stdDev(double[] series) { + double sum = 0.0; + double squareSum = 0.0; + for (int i = 0; i < windowSize; i++) { + sum += series[i]; + squareSum += series[i]*series[i]; + } + + double mean = sum / series.length; + double variance = squareSum / series.length - mean*mean; + return variance > 0 ? Math.sqrt(variance) : 1.0; + } + + protected double[] DFT(double[] series) { + //taken from FFT.java but + //return just a double[] size n, { real1, imag1, ... realn/2, imagn/2 } + //instead of Complex[] size n/2 + + //only calculating first wordlength/2 coefficients (output values), + //and skipping first coefficient if the data is to be normalised + int n=series.length; + int outputLength = wordLength/2; + int start = (norm ? 1 : 0); + + //normalize the disjoint windows and sliding windows by dividing them by their standard deviation + //all Fourier coefficients are divided by sqrt(windowSize) + + double normalisingFactor = inverseSqrtWindowSize / stdDev(series); + + double[] dft=new double[outputLength*2]; + + for (int k = start; k < start + outputLength; k++) { // For each output element + float sumreal = 0; + float sumimag = 0; + for (int t = 0; t < n; t++) { // For each input element + sumreal += series[t]*Math.cos(2*Math.PI * t * k / n); + sumimag += -series[t]*Math.sin(2*Math.PI * t * k / n); + } + dft[(k-start)*2] = sumreal * normalisingFactor; + dft[(k-start)*2+1] = sumimag * normalisingFactor; + } + return dft; + } + + private double[] DFTunnormed(double[] series) { + //taken from FFT.java but + //return just a double[] size n, { real1, imag1, ... realn/2, imagn/2 } + //instead of Complex[] size n/2 + + //only calculating first wordlength/2 coefficients (output values), + //and skipping first coefficient if the data is to be normalised + int n=series.length; + int outputLength = wordLength/2; + int start = (norm ? 1 : 0); + + double[] dft = new double[outputLength*2]; + double twoPi = 2*Math.PI / n; + + for (int k = start; k < start + outputLength; k++) { // For each output element + float sumreal = 0; + float sumimag = 0; + for (int t = 0; t < n; t++) { // For each input element + sumreal += series[t]*Math.cos(twoPi * t * k); + sumimag += -series[t]*Math.sin(twoPi * t * k); + } + dft[(k-start)*2] = sumreal; + dft[(k-start)*2+1] = sumimag; + } + return dft; + } + + private double[] normalizeDFT(double[] dft, double std) { + double normalisingFactor = (std > 0? 1.0 / std : 1.0) * inverseSqrtWindowSize; + for (int i = 0; i < dft.length; i++) + dft[i] *= normalisingFactor; + + return dft; + } + + private double[][] performMFT(double[] series) { + // ignore DC value? + int startOffset = norm ? 2 : 0; + int l = wordLength; + l = l + l % 2; // make it even + double[] phis = new double[l]; + for (int u = 0; u < phis.length; u += 2) { + double uHalve = -(u + startOffset) / 2; + phis[u] = realephi(uHalve, windowSize); + phis[u + 1] = complexephi(uHalve, windowSize); + } + + // means and stddev for each sliding window + int end = Math.max(1, series.length - windowSize + 1); + double[] means = new double[end]; + double[] stds = new double[end]; + calcIncrementalMeanStddev(windowSize, series, means, stds); + // holds the DFT of each sliding window + double[][] transformed = new double[end][]; + double[] mftData = null; + + for (int t = 0; t < end; t++) { + // use the MFT + if (t > 0) { + for (int k = 0; k < l; k += 2) { + double real1 = (mftData[k] + series[t + windowSize - 1] - series[t - 1]); + double imag1 = (mftData[k + 1]); + double real = complexMulReal(real1, imag1, phis[k], phis[k + 1]); + double imag = complexMulImag(real1, imag1, phis[k], phis[k + 1]); + mftData[k] = real; + mftData[k + 1] = imag; + } + } // use the DFT for the first offset + else { + mftData = Arrays.copyOf(series, windowSize); + mftData = DFTunnormed(mftData); + } + // normalization for lower bounding + transformed[t] = normalizeDFT(Arrays.copyOf(mftData, l), stds[t]); + } + return transformed; + } + + private void calcIncrementalMeanStddev(int windowLength, double[] series, double[] means, double[] stds) { + double sum = 0; + double squareSum = 0; + // it is faster to multiply than to divide + double rWindowLength = 1.0 / (double) windowLength; + double[] tsData = series; + for (int ww = 0; ww < windowLength; ww++) { + sum += tsData[ww]; + squareSum += tsData[ww] * tsData[ww]; + } + means[0] = sum * rWindowLength; + double buf = squareSum * rWindowLength - means[0] * means[0]; + stds[0] = buf > 0 ? Math.sqrt(buf) : 0; + for (int w = 1, end = tsData.length - windowLength + 1; w < end; w++) { + sum += tsData[w + windowLength - 1] - tsData[w - 1]; + means[w] = sum * rWindowLength; + squareSum += tsData[w + windowLength - 1] * tsData[w + windowLength - 1] - tsData[w - 1] * tsData[w - 1]; + buf = squareSum * rWindowLength - means[w] * means[w]; + stds[w] = buf > 0 ? Math.sqrt(buf) : 0; + } + } + + private static double complexMulReal(double r1, double im1, double r2, double im2) { + return r1 * r2 - im1 * im2; + } + + private static double complexMulImag(double r1, double im1, double r2, double im2) { + return r1 * im2 + r2 * im1; + } + + private static double realephi(double u, double M) { + return Math.cos(2 * Math.PI * u / M); + } + + private static double complexephi(double u, double M) { + return -Math.sin(2 * Math.PI * u / M); + } + + protected double[][] disjointWindows(double [] data) { + int amount = (int)Math.ceil(data.length/(double)windowSize); + double[][] subSequences = new double[amount][windowSize]; + + for (int win = 0; win < amount; ++win) { + int offset = Math.min(win*windowSize, data.length-windowSize); + + //copy the elements windowStart to windowStart+windowSize from data into + //the subsequence matrix at position windowStart + System.arraycopy(data,offset,subSequences[win],0,windowSize); + } + + return subSequences; + } + + protected double[][] MCB(Instances data) { + double[][][] dfts = new double[data.numInstances()][][]; + + int sample = 0; + for (Instance inst : data) + dfts[sample++] = performDFT(disjointWindows(toArrayNoClass(inst))); //approximation + + int numInsts = dfts.length; + int numWindowsPerInst = dfts[0].length; + int totalNumWindows = numInsts*numWindowsPerInst; + + breakpoints = new double[wordLength][alphabetSize]; + + for (int letter = 0; letter < wordLength; ++letter) { //for each dft coeff + + //extract this column from all windows in all instances + double[] column = new double[totalNumWindows]; + for (int inst = 0; inst < numInsts; ++inst) + for (int window = 0; window < numWindowsPerInst; ++window) { + //rounding dft coefficients to reduce noise + column[(inst * numWindowsPerInst) + window] = Math.round(dfts[inst][window][letter]*100.0)/100.0; + } + + //sort, and run through to find breakpoints for equi-depth bins + Arrays.sort(column); + + double binIndex = 0; + double targetBinDepth = (double)totalNumWindows / (double)alphabetSize; + + for (int bp = 0; bp < alphabetSize-1; ++bp) { + binIndex += targetBinDepth; + breakpoints[letter][bp] = column[(int)binIndex]; + } + + breakpoints[letter][alphabetSize-1] = Double.MAX_VALUE; //last one can always = infinity + } + + return breakpoints; + } + + /** + * Builds a brand new boss bag from the passed fourier transformed data, rather than from + * looking up existing transforms from earlier builds (i.e. SFAWords). + * + * to be used e.g to transform new test instances + */ + protected Bag createBagSingle(double[][] dfts) { + Bag bag = new Bag(); + BitWord lastWord = new BitWord(); + + for (double[] d : dfts) { + BitWord word = createWord(d); + //add to bag, unless num reduction applies + if (numerosityReduction && word.equals(lastWord)) + continue; + + Integer val = bag.get(word); + if (val == null) + val = 0; + bag.put(word, ++val); + + lastWord = word; + } + + return bag; + } + + protected BitWord createWord(double[] dft) { + BitWord word = new BitWord(wordLength); + for (int l = 0; l < wordLength; ++l) //for each letter + for (int bp = 0; bp < alphabetSize; ++bp) //run through breakpoints until right one found + if (dft[l] <= breakpoints[l][bp]) { + word.push(bp); //add corresponding letter to word + break; + } + + return word; + } + + /** + * @return data of passed instance in a double array with the class value removed if present + */ + protected static double[] toArrayNoClass(Instance inst) { + int length = inst.numAttributes(); + if (inst.classIndex() >= 0) + --length; + + double[] data = new double[length]; + + for (int i=0, j=0; i < inst.numAttributes(); ++i) + if (inst.classIndex() != i) + data[j++] = inst.value(i); + + return data; + } + + /** + * @return BOSSTransform-ed bag, built using current parameters + */ + public Bag BOSSTransform(Instance inst) { + double[][] mfts = performMFT(toArrayNoClass(inst)); //approximation + Bag bag = createBagSingle(mfts); //discretisation/bagging + bag.setClassVal(inst.classValue()); + + return bag; + } + + /** + * Shortens all bags in this BOSS instance (histograms) to the newWordLength, if wordlengths + * are same, instance is UNCHANGED + * + * @param newWordLength wordLength to shorten it to + * @return new boss classifier with newWordLength, or passed in classifier if wordlengths are same + */ + public BOSSIndividual buildShortenedBags(int newWordLength) throws Exception { + if (newWordLength == wordLength) //case of first iteration of word length search in ensemble + return this; + if (newWordLength > wordLength) + throw new Exception("Cannot incrementally INCREASE word length, current:"+wordLength+", requested:"+newWordLength); + if (newWordLength < 2) + throw new Exception("Invalid wordlength requested, current:"+wordLength+", requested:"+newWordLength); + + BOSSIndividual newBoss = new BOSSIndividual(this, newWordLength); + + //build hists with new word length from SFA words, and copy over the class values of original insts + for (int i = 0; i < bags.size(); ++i) { + Bag newBag = createBagFromWords(newWordLength, SFAwords[i]); + newBag.setClassVal(bags.get(i).getClassVal()); + newBoss.bags.add(newBag); + } + + return newBoss; + } + + /** + * Builds a bag from the set of words for a pre-transformed series of a given wordlength. + */ + protected Bag createBagFromWords(int thisWordLength, BitWord[] words) { + Bag bag = new Bag(); + BitWord lastWord = new BitWord(); + + for (BitWord w : words) { + BitWord word = new BitWord(w); + if (wordLength != thisWordLength) + word.shorten(BitWord.MAX_LENGTH-thisWordLength); + + //add to bag, unless num reduction applies + if (numerosityReduction && word.equals(lastWord)) + continue; + + Integer val = bag.get(word); + if (val == null) + val = 0; + bag.put(word, ++val); + + lastWord = word; + } + + return bag; + } + + protected BitWord[] createSFAwords(Instance inst) { + double[][] dfts = performMFT(toArrayNoClass(inst)); //approximation + BitWord[] words = new BitWord[dfts.length]; + for (int window = 0; window < dfts.length; ++window) + words[window] = createWord(dfts[window]);//discretisation + + return words; + } + + @Override + public void buildClassifier(Instances data) throws Exception { + if (data.classIndex() != data.numAttributes()-1) + throw new Exception("BOSS_BuildClassifier: Class attribute not set as last attribute in dataset"); + + breakpoints = MCB(data); //breakpoints to be used for making sfa words for train AND test data + SFAwords = new BitWord[data.numInstances()][]; + bags = new ArrayList<>(data.numInstances()); + rand = new Random(seed); + numClasses = data.numClasses(); + + if (multiThread){ + ex = Executors.newFixedThreadPool(numThreads); + ArrayList threads = new ArrayList<>(data.numInstances()); + + for (int inst = 0; inst < data.numInstances(); ++inst) { + TransformThread t = new TransformThread(inst, data.get(inst)); + threads.add(t); + bags.add(null); + ex.execute(t); + } + + ex.shutdown(); + while (!ex.isTerminated()); + + for (TransformThread t: threads){ + bags.set(t.i, t.bag); + } + } + else { + for (int inst = 0; inst < data.numInstances(); ++inst) { + SFAwords[inst] = createSFAwords(data.get(inst)); + + Bag bag = createBagFromWords(wordLength, SFAwords[inst]); + bag.setClassVal(data.get(inst).classValue()); + bags.add(bag); + } + } + + if (cleanAfterBuild) { + clean(); + } + } + + /** + * Computes BOSS distance between two bags d(test, train), is NON-SYMETRIC operation, ie d(a,b) != d(b,a). + * + * Quits early if the dist-so-far is greater than bestDist (assumed dist is still the squared distance), and returns Double.MAX_VALUE + * + * @return distance FROM instA TO instB, or Double.MAX_VALUE if it would be greater than bestDist + */ + public double BOSSdistance(Bag instA, Bag instB, double bestDist) { + double dist = 0.0; + + //find dist only from values in instA + for (Map.Entry entry : instA.entrySet()) { + Integer valA = entry.getValue(); + Integer valB = instB.get(entry.getKey()); + if (valB == null) + valB = 0; + dist += (valA-valB)*(valA-valB); + + if (dist > bestDist) + return Double.MAX_VALUE; + } + + return dist; + } + + @Override + public double classifyInstance(Instance instance) throws Exception{ + BOSSIndividual.Bag testBag = BOSSTransform(instance); + + //1NN BOSS distance + double bestDist = Double.MAX_VALUE; + double nn = -1; + + for (int i = 0; i < bags.size(); ++i) { + double dist = BOSSdistance(testBag, bags.get(i), bestDist); + + if (dist < bestDist) { + bestDist = dist; + nn = bags.get(i).getClassVal(); + } + } + + return nn; + } + + /** + * Used within BOSSEnsemble as part of a leave-one-out crossvalidation, to skip having to rebuild + * the classifier every time (since the n histograms would be identical each time anyway), therefore this classifies + * the instance at the index passed while ignoring its own corresponding histogram + * + * @param testIndex index of instance to classify + * @return classification + */ + public double classifyInstance(int testIndex) throws Exception{ + BOSSIndividual.Bag testBag = bags.get(testIndex); + + //1NN BOSS distance + double bestDist = Double.MAX_VALUE; + double nn = 0; + + for (int i = 0; i < bags.size(); ++i) { + if (i == testIndex) //skip 'this' one, leave-one-out + continue; + + double dist = BOSSdistance(testBag, bags.get(i), bestDist); + + if (dist < bestDist) { + bestDist = dist; + nn = bags.get(i).getClassVal(); + } + } + + return nn; + } + + public class TestNearestNeighbourThread implements Runnable{ + Instance inst; + double weight; + int series; + double nn = -1.0; + + public TestNearestNeighbourThread(Instance inst, double weight, int series){ + this.inst = inst; + this.series = series; + this.weight = weight; + } + + @Override + public void run() { + BOSSIndividual.Bag testBag = BOSSTransform(inst); + + //1NN BOSS distance + double bestDist = Double.MAX_VALUE; + + for (int i = 0; i < bags.size(); ++i) { + double dist = BOSSdistance(testBag, bags.get(i), bestDist); + + if (dist < bestDist) { + bestDist = dist; + nn = bags.get(i).getClassVal(); + } + } + } + } + + public class TrainNearestNeighbourThread implements Runnable{ + int testIndex; + double nn = -1.0; + + public TrainNearestNeighbourThread(int testIndex){ + this.testIndex = testIndex; + } + + @Override + public void run() { + BOSSIndividual.Bag testBag = bags.get(testIndex); + + //1NN BOSS distance + double bestDist = Double.MAX_VALUE; + + for (int i = 0; i < bags.size(); ++i) { + if (i == testIndex) //skip 'this' one, leave-one-out + continue; + + double dist = BOSSdistance(testBag, bags.get(i), bestDist); + + if (dist < bestDist) { + bestDist = dist; + nn = bags.get(i).getClassVal(); + } + } + } + } + + private class TransformThread implements Runnable{ + int i; + Instance inst; + BOSSIndividual.Bag bag; + + public TransformThread(int i, Instance inst){ + this.i = i; + this.inst = inst; + } + + @Override + public void run() { + SFAwords[i] = createSFAwords(inst); + + bag = createBagFromWords(wordLength, SFAwords[i]); + bag.setClassVal(inst.classValue()); + } + } +} diff --git a/src/main/java/timeseriesweka/classifiers/BagOfPatterns.java b/src/main/java/timeseriesweka/classifiers/dictionary_based/BagOfPatterns.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/BagOfPatterns.java rename to src/main/java/timeseriesweka/classifiers/dictionary_based/BagOfPatterns.java index 749d1013e..b81f116be 100644 --- a/src/main/java/timeseriesweka/classifiers/BagOfPatterns.java +++ b/src/main/java/timeseriesweka/classifiers/dictionary_based/BagOfPatterns.java @@ -12,11 +12,13 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers; +package timeseriesweka.classifiers.dictionary_based; +import experiments.data.DatasetLoading; +import timeseriesweka.classifiers.AbstractClassifierWithTrainingInfo; import utilities.ClassifierTools; import weka.classifiers.Classifier; -import weka.classifiers.lazy.kNN; +import weka_uea.classifiers.kNN; import weka.core.Capabilities; import weka.core.FastVector; import weka.core.Instance; @@ -282,10 +284,10 @@ public static void main(String[] args){ public static void basicTest() { System.out.println("BOPBasicTest\n"); try { - Instances train = ClassifierTools.loadData("C:\\tempbakeoff\\TSC Problems\\Car\\Car_TRAIN.arff"); - Instances test = ClassifierTools.loadData("C:\\tempbakeoff\\TSC Problems\\Car\\Car_TEST.arff"); -// Instances train = ClassifierTools.loadData("C:\\tempbakeoff\\TSC Problems\\BeetleFly\\BeetleFly_TRAIN.arff"); -// Instances test = ClassifierTools.loadData("C:\\tempbakeoff\\TSC Problems\\BeetleFly\\BeetleFly_TEST.arff"); + Instances train = DatasetLoading.loadDataNullable("C:\\tempbakeoff\\TSC Problems\\Car\\Car_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("C:\\tempbakeoff\\TSC Problems\\Car\\Car_TEST.arff"); +// Instances train = ClassifierTools.loadDataThrowable("C:\\tempbakeoff\\TSC Problems\\BeetleFly\\BeetleFly_TRAIN.arff"); +// Instances test = ClassifierTools.loadDataThrowable("C:\\tempbakeoff\\TSC Problems\\BeetleFly\\BeetleFly_TEST.arff"); System.out.println(train.relationName()); diff --git a/src/main/java/utilities/BitWord.java b/src/main/java/timeseriesweka/classifiers/dictionary_based/BitWord.java similarity index 95% rename from src/main/java/utilities/BitWord.java rename to src/main/java/timeseriesweka/classifiers/dictionary_based/BitWord.java index 99b894bfe..a06cccdb8 100644 --- a/src/main/java/utilities/BitWord.java +++ b/src/main/java/timeseriesweka/classifiers/dictionary_based/BitWord.java @@ -1,244 +1,244 @@ -/* - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package utilities; - -import java.io.Serializable; -import java.util.Arrays; - - -/** - * Provides a simple skeleton implementation for bit packed words, as a replacement for Java Strings. - * - * Currently only supports alphabet size <= 4, wordlength <= 16 - * - * As of 2016/03/05 only incorporated into SFA/BOSS, TODO implement into SAX - * - * @author James Large - */ -public class BitWord implements Comparable, Serializable { - - protected static final long serialVersionUID = 22553L; - - public enum PrintFormat { - RAW, //simple decimal integer value - BINARY, //as 32 bit binary string - LETTERS, //as char string, has unpacking cost - STRING; //as string of actual characters - } - - private static final String[] alphabet = { "a","b","c","d","e","f","g","h","i","j" }; - - private static String[] alphabetSymbols = { "a","b","c","d" }; - - private int word; - private byte length; - - //ALPHABETSIZE CURRENTLY ASSUMED TO BE 4, THEREFORE 2 BITS PER LETTER, AND MAX WORD LENGTH 16 - public static final int WORD_SPACE = 32; //length of int - public static final int BITS_PER_LETTER = 2; - public static final int MAX_LENGTH = WORD_SPACE/BITS_PER_LETTER; - - //masks - private static final int POP_MASK = 0b11; - private static final int [] LETTER_MASKS = { //again, assumes alphabetsize = 4 still - 0b00000000000000000000000000000011, - 0b00000000000000000000000000001100, - 0b00000000000000000000000000110000, - 0b00000000000000000000000011000000, - 0b00000000000000000000001100000000, - 0b00000000000000000000110000000000, - 0b00000000000000000011000000000000, - 0b00000000000000001100000000000000, - 0b00000000000000110000000000000000, - 0b00000000000011000000000000000000, - 0b00000000001100000000000000000000, - 0b00000000110000000000000000000000, - 0b00000011000000000000000000000000, - 0b00001100000000000000000000000000, - 0b00110000000000000000000000000000, - 0b11000000000000000000000000000000 - }; - - public BitWord() { - word = 0; - length = 32; - } - - public BitWord(BitWord bw) { - this.word = bw.word; - this.length = bw.length; - } - - public BitWord(int length) {//throws Exception { -// if (length > MAX_LENGTH) -// throw new Exception("requested word length exceeds max(" + MAX_LENGTH + "): " + length); - - word = 0; - length = length; - } - - - public BitWord(int [] letters) throws Exception { - setWord(letters); - } - - public int getWord() { return word; } - public int getLength() { return length; } - - public void setWord(int [] letters) {// throws Exception { -// if (letters.length > MAX_LENGTH) -// throw new Exception("requested word length exceeds max(" + MAX_LENGTH + "): " + letters.length); - - word = 0; - length = (byte)letters.length; - - packAll(letters); - } - - public void push(int letter) { - word = (word << BITS_PER_LETTER) | letter; - ++length; - } - - public int pop() { - int letter = word & POP_MASK; - shorten(1); - return letter; - } - - public void packAll(int [] letters) { - for (int i = 0; i < letters.length; ++i) - push(letters[i]); - } - - public int[] unpackAll() { - int [] letters = new int[length]; - - int shift = WORD_SPACE-(length*BITS_PER_LETTER); //first shift, increment latter - for (int i = length-1; i > -1; --i) { - //left shift to left end to remove earlier letters, right shift to right end to remove latter - letters[length-1-i] = (int)(word << shift) >>> (WORD_SPACE-BITS_PER_LETTER); - - shift += BITS_PER_LETTER; - } - - - - return letters; - } - - public void shortenByFourierCoefficient() { - shorten(2); //1 real/imag pair - } - - public void shorten(int amount) { - length -= amount; - word >>>= amount*BITS_PER_LETTER; - } - - @Override - public int compareTo(BitWord o) { - return Integer.compare(word, o.word); - } - - @Override - public boolean equals(Object other) { - if (other instanceof BitWord) - return compareTo((BitWord)other) == 0; - return false; - } - - @Override - public int hashCode() { - int hash = 7; - hash = 29 * hash + this.word; - hash = 29 * hash + this.length; - return hash; - } - - public String buildString() { - int [] letters = unpackAll(); - StringBuilder word = new StringBuilder(); - for (int i = 0; i < letters.length; ++i) - word.append(alphabet[letters[i]]); - return word.toString(); - } - - @Override - public String toString() { - return Arrays.toString(unpackAll()); - } - public String toString(PrintFormat format) { - switch (format) { - case RAW: - return String.valueOf(Integer.toString(word)); - case BINARY: - return String.format("%"+WORD_SPACE+"s", Integer.toBinaryString(word)).replace(' ', '0'); - case LETTERS: { - return Arrays.toString(unpackAll()); - } - case STRING: { - return buildString(); - } - default: - return "err"; //impossible with enum, but must have return - } - } - - public static void main(String [] args) throws Exception { - quickTest(); - //buildMasks(); - - - } - - private static void buildMasks() { - for (int i = 0; i < 16; ++i) { - System.out.print("0b"); - for (int j = 15; j > i; --j) - System.out.print("00"); - System.out.print("11"); - for (int j = 0; j < i; ++ j) - System.out.print("00"); - System.out.println(","); - } - } - - private static void quickTest() throws Exception { - int [] letters = {0,1,2,3,2,1,2,0,1}; - BitWord w = new BitWord(letters); - System.out.println(Arrays.toString(letters)); -// System.out.println(w); -// System.out.println(w.toString(PrintFormat.RAW)); -// System.out.println(w.toString(PrintFormat.BINARY)); - System.out.println(w.toString(PrintFormat.LETTERS)); - w.shortenByFourierCoefficient(); - System.out.println(w.toString(PrintFormat.LETTERS)); - - - System.out.println(" "); - - - int [] letters2 = {0,1,2,3,2,1,2,0}; - BitWord w2 = new BitWord(letters2); - System.out.println(Arrays.toString(letters2)); -// System.out.println(w2); -// System.out.println(w2.toString(PrintFormat.RAW)); -// System.out.println(w2.toString(PrintFormat.BINARY)); - System.out.println(w2.toString(PrintFormat.LETTERS)); - w2.shortenByFourierCoefficient(); - System.out.println(w2.toString(PrintFormat.LETTERS)); - } -} +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package timeseriesweka.classifiers.dictionary_based; + +import java.io.Serializable; +import java.util.Arrays; + + +/** + * Provides a simple skeleton implementation for bit packed words, as a replacement for Java Strings. + * + * Currently only supports alphabet size <= 4, wordlength <= 16 + * + * As of 2016/03/05 only incorporated into SFA/BOSS, TODO implement into SAX + * + * @author James Large + */ +public class BitWord implements Comparable, Serializable { + + protected static final long serialVersionUID = 22553L; + + public enum PrintFormat { + RAW, //simple decimal integer value + BINARY, //as 32 bit binary string + LETTERS, //as char string, has unpacking cost + STRING; //as string of actual characters + } + + private static final String[] alphabet = { "a","b","c","d","e","f","g","h","i","j" }; + + private static String[] alphabetSymbols = { "a","b","c","d" }; + + private int word; + private byte length; + + //ALPHABETSIZE CURRENTLY ASSUMED TO BE 4, THEREFORE 2 BITS PER LETTER, AND MAX WORD LENGTH 16 + public static final int WORD_SPACE = 32; //length of int + public static final int BITS_PER_LETTER = 2; + public static final int MAX_LENGTH = 16; //WORD_SPACE/BITS_PER_LETTER; + + //masks + private static final int POP_MASK = 0b11; + private static final int [] LETTER_MASKS = { //again, assumes alphabetsize = 4 still + 0b00000000000000000000000000000011, + 0b00000000000000000000000000001100, + 0b00000000000000000000000000110000, + 0b00000000000000000000000011000000, + 0b00000000000000000000001100000000, + 0b00000000000000000000110000000000, + 0b00000000000000000011000000000000, + 0b00000000000000001100000000000000, + 0b00000000000000110000000000000000, + 0b00000000000011000000000000000000, + 0b00000000001100000000000000000000, + 0b00000000110000000000000000000000, + 0b00000011000000000000000000000000, + 0b00001100000000000000000000000000, + 0b00110000000000000000000000000000, + 0b11000000000000000000000000000000 + }; + + public BitWord() { + word = 0; + length = 32; + } + + public BitWord(BitWord bw) { + this.word = bw.word; + this.length = bw.length; + } + + public BitWord(int length) {//throws Exception { +// if (length > MAX_LENGTH) +// throw new Exception("requested word length exceeds max(" + MAX_LENGTH + "): " + length); + + word = 0; + length = length; + } + + + public BitWord(int [] letters) throws Exception { + setWord(letters); + } + + public int getWord() { return word; } + public int getLength() { return length; } + + public void setWord(int [] letters) {// throws Exception { +// if (letters.length > MAX_LENGTH) +// throw new Exception("requested word length exceeds max(" + MAX_LENGTH + "): " + letters.length); + + word = 0; + length = (byte)letters.length; + + packAll(letters); + } + + public void push(int letter) { + word = (word << BITS_PER_LETTER) | letter; + ++length; + } + + public int pop() { + int letter = word & POP_MASK; + shorten(1); + return letter; + } + + public void packAll(int [] letters) { + for (int i = 0; i < letters.length; ++i) + push(letters[i]); + } + + public int[] unpackAll() { + int [] letters = new int[length]; + + int shift = WORD_SPACE-(length*BITS_PER_LETTER); //first shift, increment latter + for (int i = length-1; i > -1; --i) { + //left shift to left end to remove earlier letters, right shift to right end to remove latter + letters[length-1-i] = (int)(word << shift) >>> (WORD_SPACE-BITS_PER_LETTER); + + shift += BITS_PER_LETTER; + } + + + + return letters; + } + + public void shortenByFourierCoefficient() { + shorten(2); //1 real/imag pair + } + + public void shorten(int amount) { + length -= amount; + word >>>= amount*BITS_PER_LETTER; + } + + @Override + public int compareTo(BitWord o) { + return Integer.compare(word, o.word); + } + + @Override + public boolean equals(Object other) { + if (other instanceof BitWord) + return compareTo((BitWord)other) == 0; + return false; + } + + @Override + public int hashCode() { + int hash = 7; + hash = 29 * hash + this.word; + hash = 29 * hash + this.length; + return hash; + } + + public String buildString() { + int [] letters = unpackAll(); + StringBuilder word = new StringBuilder(); + for (int i = 0; i < letters.length; ++i) + word.append(alphabet[letters[i]]); + return word.toString(); + } + + @Override + public String toString() { + return Arrays.toString(unpackAll()); + } + public String toString(PrintFormat format) { + switch (format) { + case RAW: + return String.valueOf(Integer.toString(word)); + case BINARY: + return String.format("%"+WORD_SPACE+"s", Integer.toBinaryString(word)).replace(' ', '0'); + case LETTERS: { + return Arrays.toString(unpackAll()); + } + case STRING: { + return buildString(); + } + default: + return "err"; //impossible with enum, but must have return + } + } + + public static void main(String [] args) throws Exception { + quickTest(); + //buildMasks(); + + + } + + private static void buildMasks() { + for (int i = 0; i < 16; ++i) { + System.out.print("0b"); + for (int j = 15; j > i; --j) + System.out.print("00"); + System.out.print("11"); + for (int j = 0; j < i; ++ j) + System.out.print("00"); + System.out.println(","); + } + } + + private static void quickTest() throws Exception { + int [] letters = {0,1,2,3,2,1,2,0,1}; + BitWord w = new BitWord(letters); + System.out.println(Arrays.toString(letters)); +// System.out.println(w); +// System.out.println(w.toString(PrintFormat.RAW)); +// System.out.println(w.toString(PrintFormat.BINARY)); + System.out.println(w.toString(PrintFormat.LETTERS)); + w.shortenByFourierCoefficient(); + System.out.println(w.toString(PrintFormat.LETTERS)); + + + System.out.println(" "); + + + int [] letters2 = {0,1,2,3,2,1,2,0}; + BitWord w2 = new BitWord(letters2); + System.out.println(Arrays.toString(letters2)); +// System.out.println(w2); +// System.out.println(w2.toString(PrintFormat.RAW)); +// System.out.println(w2.toString(PrintFormat.BINARY)); + System.out.println(w2.toString(PrintFormat.LETTERS)); + w2.shortenByFourierCoefficient(); + System.out.println(w2.toString(PrintFormat.LETTERS)); + } +} diff --git a/src/main/java/timeseriesweka/classifiers/dictionary_based/RBOSS.java b/src/main/java/timeseriesweka/classifiers/dictionary_based/RBOSS.java new file mode 100644 index 000000000..b5fbc30ea --- /dev/null +++ b/src/main/java/timeseriesweka/classifiers/dictionary_based/RBOSS.java @@ -0,0 +1,1394 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package timeseriesweka.classifiers.dictionary_based; + +import java.security.InvalidParameterException; +import java.util.*; + +import net.sourceforge.sizeof.SizeOf; +import timeseriesweka.classifiers.*; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import utilities.*; +import utilities.samplers.*; +import weka.classifiers.functions.GaussianProcesses; +import weka.core.*; +import evaluation.storage.ClassifierResults; +import experiments.data.DatasetLoading; + +import static utilities.InstanceTools.resampleTrainAndTestInstances; +import static utilities.multivariate_tools.MultivariateInstanceTools.*; +import static weka.core.Utils.sum; + +/** + * BOSS classifier with parameter search and ensembling for univariate and + * multivariate time series classification. + * If parameters are known, use the nested class BOSSIndividual and directly provide them. + * + * Options to change the method of ensembling to randomly select parameters instead of searching. + * Has the capability to contract train time and checkpoint when using a random ensemble. + * + * Alphabetsize fixed to four and maximum wordLength of 16. + * + * @author James Large, updated by Matthew Middlehurst + * + * Implementation based on the algorithm described in getTechnicalInformation() + */ +public class RBOSS extends AbstractClassifierWithTrainingInfo implements TrainAccuracyEstimator, TrainTimeContractable, + MemoryContractable, Checkpointable, TechnicalInformationHandler, MultiThreadable { + + private ArrayList[] paramAccuracy; + private ArrayList[] paramTime; + private ArrayList[] paramMemory; + + private int ensembleSize = 50; + private int ensembleSizePerChannel = -1; + private int seed = 0; + private Random rand; + private boolean randomCVAccEnsemble = false; + private boolean useWeights = false; + + private boolean useFastTrainEstimate = false; + private int maxEvalPerClass = -1; + private int maxEval = 500; + + private double maxWinLenProportion = 1; + private double maxWinSearchProportion = 0.25; + + private boolean reduceTrainInstances = false; + private double trainProportion = -1; + private int maxTrainInstances = 1000; + private boolean stratifiedSubsample = false; + + private boolean cutoff = false; + + private transient LinkedList[] classifiers; + private int numSeries; + private int[] numClassifiers; + private int currentSeries = 0; + private boolean isMultivariate = false; + + private final int[] wordLengths = { 16, 14, 12, 10, 8 }; + private final int[] alphabetSize = { 4 }; + private final boolean[] normOptions = { true, false }; + private final double correctThreshold = 0.92; + private int maxEnsembleSize = 500; + + private boolean bayesianParameterSelection = false; + private int initialRandomParameters = 20; + private int[] initialParameterCount; + private Instances[] parameterPool; + private Instances[] prevParameters; + + private String checkpointPath; + private String serPath; + private boolean checkpoint = false; + private long checkpointTime = 0; + private long checkpointTimeDiff = 0; + private boolean cleanupCheckpointFiles = true; + private boolean loadAndFinish = false; + + private long contractTime = 0; + private boolean trainTimeContract = false; + private boolean underContractTime = false; + + private long memoryLimit = 0; + private long bytesUsed = 0; + private boolean memoryContract = false; + private boolean underMemoryLimit = true; + + //RBOSS CV acc variables, stored as field for checkpointing. + private int[] classifiersBuilt; + private int[] lowestAccIdx; + private double[] lowestAcc; + + private String trainCVPath; + private boolean trainCV = false; + + private transient Instances train; + private double ensembleCvAcc = -1; + private double[] ensembleCvPreds = null; + + private int numThreads = 1; + private boolean multiThread = false; + private ExecutorService ex; + + protected static final long serialVersionUID = 22554L; + + public RBOSS() {} + + @Override + public TechnicalInformation getTechnicalInformation() { + TechnicalInformation result; + result = new TechnicalInformation(TechnicalInformation.Type.ARTICLE); + result.setValue(TechnicalInformation.Field.AUTHOR, "P. Schafer"); + result.setValue(TechnicalInformation.Field.TITLE, "The BOSS is concerned with time series classification in the presence of noise"); + result.setValue(TechnicalInformation.Field.JOURNAL, "Data Mining and Knowledge Discovery"); + result.setValue(TechnicalInformation.Field.VOLUME, "29"); + result.setValue(TechnicalInformation.Field.NUMBER,"6"); + result.setValue(TechnicalInformation.Field.PAGES, "1505-1530"); + result.setValue(TechnicalInformation.Field.YEAR, "2015"); + return result; + } + + @Override + public Capabilities getCapabilities(){ + Capabilities result = super.getCapabilities(); + result.disableAll(); + + result.setMinimumNumberInstances(2); + + // attributes + result.enable(Capabilities.Capability.RELATIONAL_ATTRIBUTES); + result.enable(Capabilities.Capability.NUMERIC_ATTRIBUTES); + + // class + result.enable(Capabilities.Capability.NOMINAL_CLASS); + + return result; + } + + @Override + public String getParameters() { + StringBuilder sb = new StringBuilder(); + sb.append(super.getParameters()); + + sb.append(",numSeries,").append(numSeries); + + for (int n = 0; n < numSeries; n++) { + sb.append(",numclassifiers,").append(n).append(",").append(numClassifiers[n]); + + for (int i = 0; i < numClassifiers[n]; ++i) { + BOSSIndividual boss = classifiers[n].get(i); + sb.append(",windowSize,").append(boss.getWindowSize()).append(",wordLength,").append(boss.getWordLength()); + sb.append(",alphabetSize,").append(boss.getAlphabetSize()).append(",norm,").append(boss.isNorm()); + } + } + + return sb.toString(); + } + + public void useRecommendedSettingsRBOSS(){ + ensembleSize = 250; + maxEnsembleSize = 50; + randomCVAccEnsemble = true; + useWeights = true; + reduceTrainInstances = true; + trainProportion = 0.7; + bayesianParameterSelection = true; + } + + //pass in an enum of hour, minute, day, and the amount of them. + @Override + public void setTrainTimeLimit(TimeUnit time, long amount){ + switch (time){ + case DAYS: + contractTime = (long)(8.64e+13)*amount; + break; + case HOURS: + contractTime = (long)(3.6e+12)*amount; + break; + case MINUTES: + contractTime = (long)(6e+10)*amount; + break; + case SECONDS: + contractTime = (long)(1e+9)*amount; + break; + case NANOSECONDS: + contractTime = amount; + break; + default: + throw new InvalidParameterException("Invalid time unit"); + } + trainTimeContract = true; + } + + @Override + public void setMemoryLimit(DataUnit unit, long amount){ + switch (unit){ + case GIGABYTE: + memoryLimit = amount*1073741824; + break; + case MEGABYTE: + memoryLimit = amount*1048576; + break; + case BYTES: + memoryLimit = amount; + break; + default: + throw new InvalidParameterException("Invalid data unit"); + } + memoryContract = true; + } + + @Override + public void setThreadAllowance(int numThreads) { + if (numThreads > 1) { + this.numThreads = numThreads; + multiThread = true; + } + else{ + this.numThreads = 1; + multiThread = false; + } + } + + //Set the path where checkpointed versions will be stored + @Override + public void setSavePath(String path){ + checkpointPath = path; + checkpoint = true; + } + + //Define how to copy from a loaded object to this object + @Override + public void copyFromSerObject(Object obj) throws Exception{ + if(!(obj instanceof RBOSS)) + throw new Exception("The SER file is not an instance of BOSS"); + RBOSS saved = ((RBOSS)obj); + System.out.println("Loading BOSS.ser"); + + //copy over variables from serialised object + paramAccuracy = saved.paramAccuracy; + paramTime = saved.paramTime; + paramMemory = saved.paramMemory; + ensembleSize = saved.ensembleSize; + seed = saved.seed; + ensembleSizePerChannel = saved.ensembleSizePerChannel; + rand = saved.rand; + randomCVAccEnsemble = saved.randomCVAccEnsemble; + useWeights = saved.useWeights; + useFastTrainEstimate = saved.useFastTrainEstimate; + maxEvalPerClass = saved.maxEvalPerClass; + maxEval = saved.maxEval; + maxWinLenProportion = saved.maxWinLenProportion; + maxWinSearchProportion = saved.maxWinSearchProportion; + reduceTrainInstances = saved.reduceTrainInstances; + trainProportion = saved.trainProportion; + maxTrainInstances = saved.maxTrainInstances; + stratifiedSubsample = saved.stratifiedSubsample; + cutoff = saved.cutoff; +// loadAndFinish = saved.loadAndFinish; + numSeries = saved.numSeries; + numClassifiers = saved.numClassifiers; + currentSeries = saved.currentSeries; + isMultivariate = saved.isMultivariate; +// wordLengths = saved.wordLengths; +// alphabetSize = saved.alphabetSize; +// correctThreshold = saved.correctThreshold; + maxEnsembleSize = saved.maxEnsembleSize; + bayesianParameterSelection = saved.bayesianParameterSelection; + initialRandomParameters = saved.initialRandomParameters; + initialParameterCount = saved.initialParameterCount; + parameterPool = saved.parameterPool; + prevParameters = saved.prevParameters; +// checkpointPath = saved.checkpointPath; +// serPath = saved.serPath; +// checkpoint = saved.checkpoint; + checkpointTime = saved.checkpointTime; +// checkpointTimeDiff = checkpointTimeDiff; + cleanupCheckpointFiles = saved.cleanupCheckpointFiles; + contractTime = saved.contractTime; + trainTimeContract = saved.trainTimeContract; + underContractTime = saved.underContractTime; + memoryLimit = saved.memoryLimit; + bytesUsed = saved.bytesUsed; + memoryContract = saved.memoryContract; + underMemoryLimit = saved.underMemoryLimit; + classifiersBuilt = saved.classifiersBuilt; + lowestAccIdx = saved.lowestAccIdx; + lowestAcc = saved.lowestAcc; + trainCVPath = saved.trainCVPath; + trainCV = saved.trainCV; + trainResults = saved.trainResults; + ensembleCvAcc = saved.ensembleCvAcc; + ensembleCvPreds = saved.ensembleCvPreds; + numThreads = saved.numThreads; + multiThread = saved.multiThread; + + //load in each serisalised classifier + classifiers = new LinkedList[numSeries]; + for (int n = 0; n < numSeries; n++) { + classifiers[n] = new LinkedList(); + for (int i = 0; i < saved.numClassifiers[n]; i++) { + System.out.println("Loading BOSSIndividual" + n + "-" + i + ".ser"); + + FileInputStream fis = new FileInputStream(serPath + "BOSSIndividual" + n + "-" + i + ".ser"); + try (ObjectInputStream in = new ObjectInputStream(fis)) { + Object indv = in.readObject(); + + if (!(indv instanceof BOSSIndividual)) + throw new Exception("The SER file " + n + "-" + i + " is not an instance of BOSSIndividual"); + BOSSIndividual ser = ((BOSSIndividual) indv); + classifiers[n].add(ser); + } + } + } + + checkpointTimeDiff = saved.checkpointTimeDiff + (System.nanoTime() - checkpointTime); + } + + @Override + public void writeTrainEstimatesToFile(String outputPathAndName){ + trainCVPath = outputPathAndName; + trainCV = true; + } + + @Override + public void setFindTrainAccuracyEstimate(boolean setCV){ + trainCV = setCV; + } + + @Override + public boolean findsTrainAccuracyEstimate(){ return trainCV; } + + @Override + public ClassifierResults getTrainResults(){ + trainResults.setAcc(ensembleCvAcc); + return trainResults; + } + + public void setEnsembleSize(int size) { + ensembleSize = size; + } + + public void setMaxEnsembleSize(int size) { + maxEnsembleSize = size; + } + + public void setSeed(int i) { + seed = i; + } + + public void setRandomCVAccEnsemble(boolean b){ + randomCVAccEnsemble = b; + } + + public void useWeights(boolean b) { + useWeights = b; + } + + public void setFastTrainEstimate(boolean b){ + useFastTrainEstimate = b; + } + + public void setMaxEval(int i) { + maxEval = i; + } + + public void setMaxEvalPerClass(int i) { + maxEvalPerClass = i; + } + + public void setReduceTrainInstances(boolean b){ + reduceTrainInstances = b; + } + + public void setTrainProportion(double d){ + trainProportion = d; + } + + public void setMaxTrainInstances(int i){ + maxTrainInstances = i; + } + + public void setCleanupCheckpointFiles(boolean b) { + cleanupCheckpointFiles = b; + } + + public void setCutoff(boolean b) { + cutoff = b; + } + + public void cleanupCheckpointFiles(boolean b){ + cleanupCheckpointFiles = b; + } + + public void loadAndFinish(boolean b) { + loadAndFinish = b; + } + + public void setMaxWinLenProportion(double d){ + maxWinLenProportion = d; + } + + public void setMaxWinSearchProportion(double d){ + maxWinSearchProportion = d; + } + + public void setBayesianParameterSelection(boolean b) { + bayesianParameterSelection = b; + } + + @Override + public void buildClassifier(final Instances data) throws Exception { + trainResults.setBuildTime(System.nanoTime()); + + // can classifier handle the data? + getCapabilities().testWithFail(data); + + if(data.checkForAttributeType(Attribute.RELATIONAL)){ + isMultivariate = true; + } + + //path checkpoint files will be saved to + serPath = checkpointPath + "/" + checkpointName(data.relationName()) + "/"; + File f = new File(serPath + "BOSS.ser"); + + //Window length settings + int seriesLength = isMultivariate ? channelLength(data)-1 : data.numAttributes()-1; //minus class attribute + int minWindow = 10; + int maxWindow = (int)(seriesLength*maxWinLenProportion); + if (maxWindow < minWindow) minWindow = maxWindow/2; + //whats the max number of window sizes that should be searched through + double maxWindowSearches = seriesLength*maxWinSearchProportion; + int winInc = (int)((maxWindow - minWindow) / maxWindowSearches); + if (winInc < 1) winInc = 1; + + //if checkpointing and serialised files exist load said files + if (checkpoint && f.exists()){ + long time = System.nanoTime(); + loadFromFile(serPath + "BOSS.ser"); + System.out.println("Spent " + (System.nanoTime() - time) + "nanoseconds loading files"); + } + //initialise variables + else { + if (data.classIndex() != data.numAttributes()-1) + throw new Exception("BOSS_BuildClassifier: Class attribute not set as last attribute in dataset"); + + //Multivariate + if (isMultivariate) { + numSeries = numChannels(data); + classifiers = new LinkedList[numSeries]; + + for (int n = 0; n < numSeries; n++){ + classifiers[n] = new LinkedList<>(); + } + + numClassifiers = new int[numSeries]; + + if (ensembleSizePerChannel > 0){ + ensembleSize = ensembleSizePerChannel*numSeries; + } + } + //Univariate + else{ + numSeries = 1; + classifiers = new LinkedList[1]; + classifiers[0] = new LinkedList<>(); + numClassifiers = new int[1]; + } + + if (maxEvalPerClass > 0){ + maxEval = data.numClasses()*maxEvalPerClass; + } + + rand = new Random(seed); + + parameterPool = uniqueParameters(minWindow, maxWindow, winInc); + } + + try{ + SizeOf.deepSizeOf("test"); + } + catch (IllegalStateException e){ + if (memoryContract) { + throw new Exception("Unable to contract memory with SizeOf unavailable, " + + "enable by linking to SizeOf.jar in VM options i.e. -javaagent:lib/SizeOf.jar"); + } + } + + this.train = data; + + if (multiThread && numThreads == 1){ + numThreads = Runtime.getRuntime().availableProcessors(); + } + + //required to deal with multivariate datasets, each channel is split into its own instances + Instances[] series; + + //Multivariate + if (isMultivariate) { + series = splitMultivariateInstances(data); + } + //Univariate + else{ + series = new Instances[1]; + series[0] = data; + } + + //Contracting + if (trainTimeContract){ + ensembleSize = 0; + underContractTime = true; + } + + //If checkpointing and flag is set stop building. + if (!(checkpoint && loadAndFinish)){ + //Randomly selected ensemble with accuracy filter + if (randomCVAccEnsemble){ + buildRandomCVAccBOSS(series); + } + //Randomly selected ensemble + else { + buildRandomBOSS(series); + } + } + + //end train time in nanoseconds + trainResults.setBuildTime(System.nanoTime() - trainResults.getBuildTime() - checkpointTimeDiff); + + //Estimate train accuracy + if (trainCV) { + trainResults.setTimeUnit(TimeUnit.NANOSECONDS); + trainResults.setClassifierName("RBOSS"); + trainResults.setDatasetName(data.relationName()); + trainResults.setFoldID(seed); + trainResults.setSplit("train"); + trainResults.setParas(getParameters()); + double result = findEnsembleTrainAcc(data); + trainResults.finaliseResults(); + trainResults.writeFullResultsToFile(trainCVPath); + + System.out.println("CV acc ="+result); + + trainCV = false; + } + + //delete any serialised files and holding folder for checkpointing on completion + if (checkpoint && cleanupCheckpointFiles){ + checkpointCleanup(); + } + } + + private void buildRandomCVAccBOSS(Instances[] series) throws Exception { + classifiersBuilt = new int[numSeries]; + lowestAccIdx = new int[numSeries]; + lowestAcc = new double[numSeries]; + for (int i = 0; i < numSeries; i++) lowestAcc[i] = Double.MAX_VALUE; + + //build classifiers up to a set size + while (((underContractTime || sum(classifiersBuilt) < ensembleSize) && underMemoryLimit) && parameterPool[numSeries-1].size() > 0) { + long indivBuildTime = System.nanoTime(); + boolean checkpointChange = false; + double[] parameters = selectParameters(); + if (parameters == null) continue; + + BOSSIndividual boss = new BOSSIndividual((int)parameters[0], (int)parameters[1], (int)parameters[2], parameters[3] == 1, multiThread, numThreads, ex); + Instances data = resampleData(series[currentSeries], boss); + boss.cleanAfterBuild = true; + boss.seed = seed; + boss.buildClassifier(data); + boss.accuracy = individualTrainAcc(boss, data, numClassifiers[currentSeries] < maxEnsembleSize ? Double.MIN_VALUE : lowestAcc[currentSeries]); + + if (useWeights){ + boss.weight = Math.pow(boss.accuracy, 4); + if (boss.weight == 0) boss.weight = 1; + } + + if (bayesianParameterSelection) paramAccuracy[currentSeries].add(boss.accuracy); + if (trainTimeContract) paramTime[currentSeries].add((double)(System.nanoTime() - indivBuildTime)); + if (memoryContract) paramMemory[currentSeries].add((double)SizeOf.deepSizeOf(boss)); + + if (numClassifiers[currentSeries] < maxEnsembleSize){ + if (boss.accuracy < lowestAcc[currentSeries]){ + lowestAccIdx[currentSeries] = classifiersBuilt[currentSeries]; + lowestAcc[currentSeries] = boss.accuracy; + } + classifiers[currentSeries].add(boss); + numClassifiers[currentSeries]++; + } + else if (boss.accuracy > lowestAcc[currentSeries]) { + double[] newLowestAcc = findMinEnsembleAcc(); + lowestAccIdx[currentSeries] = (int)newLowestAcc[0]; + lowestAcc[currentSeries] = newLowestAcc[1]; + + classifiers[currentSeries].remove(lowestAccIdx[currentSeries]); + classifiers[currentSeries].add(lowestAccIdx[currentSeries], boss); + checkpointChange = true; + } + + classifiersBuilt[currentSeries]++; + + int prev = currentSeries; + if (isMultivariate) { + nextSeries(); + } + + if (checkpoint) { + if (numClassifiers[currentSeries] < maxEnsembleSize) { + checkpoint(prev, -1); + } + else if (checkpointChange){ + checkpoint(prev, lowestAccIdx[prev]); + } + } + + checkContracts(); + } + + if (cutoff){ + for (int n = 0; n < numSeries; n++) { + double maxAcc = 0; + for (int i = 0; i < classifiers[n].size(); i++){ + if (classifiers[n].get(i).accuracy > maxAcc){ + maxAcc = classifiers[n].get(i).accuracy; + } + } + + for (int i = 0; i < classifiers[n].size(); i++){ + BOSSIndividual b = classifiers[n].get(i); + if (b.accuracy < maxAcc * correctThreshold) { + classifiers[currentSeries].remove(i); + numClassifiers[n]--; + i--; + } + } + } + } + } + + private void buildRandomBOSS(Instances[] series) throws Exception { + //build classifiers up to a set size + while ((((underContractTime && numClassifiers[numSeries-1] < maxEnsembleSize) + || sum(numClassifiers) < ensembleSize) && underMemoryLimit) && parameterPool[numSeries-1].size() > 0) { + long indivBuildTime = System.nanoTime(); + double[] parameters = selectParameters(); + if (parameters == null) continue; + + BOSSIndividual boss = new BOSSIndividual((int)parameters[0], (int)parameters[1], (int)parameters[2], parameters[3] == 1, multiThread, numThreads, ex); + Instances data = resampleData(series[currentSeries], boss); + boss.cleanAfterBuild = true; + boss.seed = seed; + boss.buildClassifier(data); + classifiers[currentSeries].add(boss); + numClassifiers[currentSeries]++; + + if (useWeights){ + if (boss.accuracy == -1) boss.accuracy = individualTrainAcc(boss, data, Double.MIN_VALUE); + boss.weight = Math.pow(boss.accuracy, 4); + if (boss.weight == 0) boss.weight = 1; + } + + if (bayesianParameterSelection) { + if (boss.accuracy == -1) boss.accuracy = individualTrainAcc(boss, data, Double.MIN_VALUE); + paramAccuracy[currentSeries].add(boss.accuracy); + } + if (trainTimeContract) paramTime[currentSeries].add((double)(System.nanoTime() - indivBuildTime)); + if (memoryContract) paramMemory[currentSeries].add((double)SizeOf.deepSizeOf(boss)); + + int prev = currentSeries; + if (isMultivariate){ + nextSeries(); + } + + if (checkpoint) { + checkpoint(prev, -1); + } + + checkContracts(); + } + } + + private void checkpoint(int seriesNo, int classifierNo){ + if(checkpointPath!=null){ + try{ + File f = new File(serPath); + if(!f.isDirectory()) + f.mkdirs(); + //time the checkpoint occured + checkpointTime = System.nanoTime(); + + if (seriesNo >= 0) { + if (classifierNo < 0) classifierNo = classifiers[seriesNo].size() - 1; + + //save the last build individual classifier + BOSSIndividual indiv = classifiers[seriesNo].get(classifierNo); + + FileOutputStream fos = new FileOutputStream(serPath + "BOSSIndividual" + seriesNo + "-" + classifierNo + ".ser"); + try (ObjectOutputStream out = new ObjectOutputStream(fos)) { + out.writeObject(indiv); + out.close(); + fos.close(); + } + } + + //dont take into account time spent serialising into build time + checkpointTimeDiff += System.nanoTime() - checkpointTime; + checkpointTime = System.nanoTime(); + + //save this, classifiers and train data not included + saveToFile(serPath + "RandomBOSStemp.ser"); + + File file = new File(serPath + "RandomBOSStemp.ser"); + File file2 = new File(serPath + "BOSS.ser"); + file2.delete(); + file.renameTo(file2); + + checkpointTimeDiff += System.nanoTime() - checkpointTime; + } + catch(Exception e){ + e.printStackTrace(); + System.out.println("Serialisation to "+serPath+" FAILED"); + } + } + } + + private void checkpointCleanup(){ + File f = new File(serPath); + String[] files = f.list(); + + for (String file: files){ + File f2 = new File(f.getPath() + "\\" + file); + boolean b = f2.delete(); + } + + f.delete(); + } + + private String checkpointName(String datasetName){ + String name = datasetName + seed + "BOSS"; + + if (trainTimeContract){ + name += ("TTC" + contractTime); + } + else if (isMultivariate && ensembleSizePerChannel > 0){ + name += ("PC" + (ensembleSizePerChannel*numSeries)); + } + else{ + name += ("S" + ensembleSize); + } + + if (memoryContract){ + name += ("MC" + memoryLimit); + } + + if (randomCVAccEnsemble) { + name += ("M" + maxEnsembleSize); + } + + if (useWeights){ + name += "W"; + } + + return name; + } + + public void checkContracts(){ + underContractTime = System.nanoTime() - trainResults.getBuildTime() - checkpointTimeDiff < contractTime; + underMemoryLimit = !memoryContract || bytesUsed < memoryLimit; + } + + //[0] = index, [1] = acc + private double[] findMinEnsembleAcc() { + double minAcc = Double.MAX_VALUE; + int minAccInd = 0; + for (int i = 0; i < classifiers[currentSeries].size(); ++i) { + double curacc = classifiers[currentSeries].get(i).accuracy; + if (curacc < minAcc) { + minAcc = curacc; + minAccInd = i; + } + } + + return new double[] { minAccInd, minAcc }; + } + + private Instances[] uniqueParameters(int minWindow, int maxWindow, int winInc){ + Instances[] parameterPool = new Instances[numSeries]; + ArrayList possibleParameters = new ArrayList(); + + for (Boolean normalise: normOptions) { + for (Integer alphSize : alphabetSize) { + for (int winSize = minWindow; winSize <= maxWindow; winSize += winInc) { + for (Integer wordLen : wordLengths) { + double[] parameters = {wordLen, alphSize, winSize, normalise ? 1 : 0}; + possibleParameters.add(parameters); + } + } + } + } + + int numAtts = possibleParameters.get(0).length+1; + ArrayList atts = new ArrayList<>(numAtts); + for (int i = 0; i < numAtts; i++){ + atts.add(new Attribute("att" + i)); + } + + prevParameters = new Instances[numSeries]; + initialParameterCount = new int[numSeries]; + + for (int n = 0; n < numSeries; n++) { + parameterPool[n] = new Instances("params", atts, possibleParameters.size()); + parameterPool[n].setClassIndex(numAtts-1); + prevParameters[n] = new Instances(parameterPool[n], 0); + prevParameters[n].setClassIndex(numAtts-1); + + for (int i = 0; i < possibleParameters.size(); i++) { + DenseInstance inst = new DenseInstance(1, possibleParameters.get(i)); + inst.insertAttributeAt(numAtts-1); + parameterPool[n].add(inst); + } + } + + if (bayesianParameterSelection){ + paramAccuracy = new ArrayList[numSeries]; + for (int i = 0; i < numSeries; i++){ + paramAccuracy[i] = new ArrayList<>(); + } + } + if (trainTimeContract){ + paramTime = new ArrayList[numSeries]; + for (int i = 0; i < numSeries; i++){ + paramTime[i] = new ArrayList<>(); + } + } + if (memoryContract){ + paramMemory = new ArrayList[numSeries]; + for (int i = 0; i < numSeries; i++){ + paramMemory[i] = new ArrayList<>(); + } + } + + return parameterPool; + } + + private double[] selectParameters() throws Exception { + Instance params; + + if (trainTimeContract) { + if (prevParameters[currentSeries].size() > 0) { + for (int i = 0; i < paramTime[currentSeries].size(); i++) { + prevParameters[currentSeries].get(i).setClassValue(paramTime[currentSeries].get(i)); + } + + GaussianProcesses gp = new GaussianProcesses(); + gp.buildClassifier(prevParameters[currentSeries]); + long remainingTime = contractTime - (System.nanoTime() - trainResults.getBuildTime() - checkpointTimeDiff); + + for (int i = 0; i < parameterPool[currentSeries].size(); i++) { + double pred = gp.classifyInstance(parameterPool[currentSeries].get(i)); + if (pred > remainingTime) { + parameterPool[currentSeries].remove(i); + i--; + } + } + } + } + + if (memoryContract) { + if (prevParameters[currentSeries].size() > 0) { + for (int i = 0; i < paramMemory[currentSeries].size(); i++) { + prevParameters[currentSeries].get(i).setClassValue(paramMemory[currentSeries].get(i)); + } + + GaussianProcesses gp = new GaussianProcesses(); + gp.buildClassifier(prevParameters[currentSeries]); + long remainingMemory = memoryLimit - bytesUsed; + + for (int i = 0; i < parameterPool[currentSeries].size(); i++) { + double pred = gp.classifyInstance(parameterPool[currentSeries].get(i)); + if (pred > remainingMemory) { + parameterPool[currentSeries].remove(i); + i--; + } + } + } + } + + if (parameterPool[currentSeries].size() == 0){ + return null; + } + + if (bayesianParameterSelection) { + if (initialParameterCount[currentSeries] < initialRandomParameters) { + initialParameterCount[currentSeries]++; + params = parameterPool[currentSeries].remove(rand.nextInt(parameterPool[currentSeries].size())); + } else { + for (int i = 0; i < paramAccuracy[currentSeries].size(); i++){ + prevParameters[currentSeries].get(i).setClassValue(paramAccuracy[currentSeries].get(i)); + } + + GaussianProcesses gp = new GaussianProcesses(); + gp.buildClassifier(prevParameters[currentSeries]); + int bestIndex = 0; + double bestAcc = -1; + + for (int i = 0; i < parameterPool[currentSeries].numInstances(); i++) { + double pred = gp.classifyInstance(parameterPool[currentSeries].get(i)); + + if (pred > bestAcc){ + bestIndex = i; + bestAcc = pred; + } + } + + params = parameterPool[currentSeries].remove(bestIndex); + } + } + else { + params = parameterPool[currentSeries].remove(rand.nextInt(parameterPool[currentSeries].size())); + } + + prevParameters[currentSeries].add(params); + return params.toDoubleArray(); + } + + private Instances resampleData(Instances series, BOSSIndividual boss){ + Instances data; + int newSize; + + if (trainProportion > 0){ + newSize = (int)(series.numInstances()*trainProportion); + } + else{ + newSize = maxTrainInstances; + } + + if (reduceTrainInstances && series.numInstances() > newSize){ + Sampler sampler; + + if (stratifiedSubsample){ + sampler = new RandomStratifiedIndexSampler(rand); + } + else{ + sampler = new RandomIndexSampler(rand); + } + + sampler.setInstances(series); + data = new Instances(series, newSize); + boss.subsampleIndices = new ArrayList<>(newSize); + + for (int i = 0; i < newSize; i++){ + int n = (Integer)sampler.next(); + data.add(series.get(n)); + boss.subsampleIndices.add(n); + } + } + else{ + data = series; + } + + return data; + } + + private double individualTrainAcc(BOSSIndividual boss, Instances series, double lowestAcc) throws Exception { + int[] indicies; + + if (useFastTrainEstimate && maxEval < series.numInstances()){ + RandomRoundRobinIndexSampler sampler = new RandomRoundRobinIndexSampler(rand); + sampler.setInstances(series); + indicies = new int[maxEval]; + + for (int i = 0; i < maxEval; ++i) { + int subsampleIndex = sampler.next(); + indicies[i] = subsampleIndex; + } + } + else { + indicies = new int[series.numInstances()]; + + for (int i = 0; i < series.numInstances(); ++i) { + indicies[i] = i; + } + } + + int correct = 0; + int numInst = indicies.length; + int requiredCorrect = (int)(lowestAcc*numInst); + + if (multiThread){ + ex = Executors.newFixedThreadPool(numThreads); + ArrayList threads = new ArrayList<>(sum(numClassifiers)); + + for (int i = 0; i < numInst; ++i) { + BOSSIndividual.TrainNearestNeighbourThread t = boss.new TrainNearestNeighbourThread(indicies[i]); + threads.add(t); + ex.execute(t); + } + + ex.shutdown(); + while (!ex.isTerminated()); + + for (BOSSIndividual.TrainNearestNeighbourThread t: threads){ + if (t.nn == series.get(t.testIndex).classValue()) { + ++correct; + } + } + } + else { + for (int i = 0; i < numInst; ++i) { + if (correct + numInst - i < requiredCorrect) { + return -1; + } + + double c = boss.classifyInstance(indicies[i]); //classify series i, while ignoring its corresponding histogram i + if (c == series.get(indicies[i]).classValue()) { + ++correct; + } + } + } + + return (double) correct / (double) numInst; + } + + public void nextSeries(){ + if (currentSeries == numSeries-1){ + currentSeries = 0; + } + else{ + currentSeries++; + } + } + + private double findEnsembleTrainAcc(Instances data) throws Exception { + this.ensembleCvPreds = new double[data.numInstances()]; + + double correct = 0; + for (int i = 0; i < data.numInstances(); ++i) { + long predTime = System.nanoTime(); + double[] probs = distributionForInstance(i, data.numClasses()); + predTime = System.nanoTime() - predTime; + + double c = 0; + for (int j = 1; j < probs.length; j++) + if (probs[j] > probs[(int) c]) + c = j; + + //No need to do it againclassifyInstance(i, data.numClasses()); //classify series i, while ignoring its corresponding histogram i + if (c == data.get(i).classValue()) + ++correct; + + this.ensembleCvPreds[i] = c; + + trainResults.addPrediction(data.get(i).classValue(), probs, c, predTime, ""); + } + + double result = correct / data.numInstances(); + + return result; + } + + public double getTrainAcc(){ + if(ensembleCvAcc>=0){ + return this.ensembleCvAcc; + } + + try{ + return this.findEnsembleTrainAcc(train); + }catch(Exception e){ + e.printStackTrace(); + } + return -1; + } + + public double[] getTrainPreds(){ + if(this.ensembleCvPreds==null){ + try{ + this.findEnsembleTrainAcc(train); + }catch(Exception e){ + e.printStackTrace(); + } + } + + return this.ensembleCvPreds; + } + + //potentially scuffed when train set is subsampled, will have to revisit and discuss if this is a viable option + //for estimation anyway. + private double[] distributionForInstance(int test, int numclasses) throws Exception { + double[][] classHist = new double[numSeries][numclasses]; + + //get sum of all channels, votes from each are weighted the same. + double sum[] = new double[numSeries]; + + for (int n = 0; n < numSeries; n++) { + for (BOSSIndividual classifier : classifiers[n]) { + double classification; + + if (classifier.subsampleIndices == null){ + classification = classifier.classifyInstance(test); + } + else if (classifier.subsampleIndices.contains(test)){ + classification = classifier.classifyInstance(classifier.subsampleIndices.indexOf(test)); + } + else{ + classification = classifier.classifyInstance(train.get(test)); + } + + classHist[n][(int) classification] += classifier.weight; + sum[n] += classifier.weight; + } + } + + double[] distributions = new double[numclasses]; + + for (int n = 0; n < numSeries; n++){ + if (sum[n] != 0) + for (int i = 0; i < classHist[n].length; ++i) + distributions[i] += (classHist[n][i] / sum[n]) / numSeries; + } + + return distributions; + } + + @Override + public double classifyInstance(Instance instance) throws Exception { + double[] dist = distributionForInstance(instance); + + double maxFreq=dist[0], maxClass=0; + for (int i = 1; i < dist.length; ++i) { + if (dist[i] > maxFreq) { + maxFreq = dist[i]; + maxClass = i; + } + else if (dist[i] == maxFreq){ + if (rand.nextBoolean()){ + maxClass = i; + } + } + } + + return maxClass; + } + + @Override + public double[] distributionForInstance(Instance instance) throws Exception { + double[][] classHist = new double[numSeries][instance.numClasses()]; + + //get sum of all channels, votes from each are weighted the same. + double sum[] = new double[numSeries]; + + Instance[] series; + + //Multivariate + if (isMultivariate) { + series = splitMultivariateInstanceWithClassVal(instance); + } + //Univariate + else { + series = new Instance[1]; + series[0] = instance; + } + + if (multiThread){ + ex = Executors.newFixedThreadPool(numThreads); + ArrayList threads = new ArrayList<>(sum(numClassifiers)); + + for (int n = 0; n < numSeries; n++) { + for (BOSSIndividual classifier : classifiers[n]) { + BOSSIndividual.TestNearestNeighbourThread t = classifier.new TestNearestNeighbourThread(instance, classifier.weight, n); + threads.add(t); + ex.execute(t); + } + } + + ex.shutdown(); + while (!ex.isTerminated()); + + for (BOSSIndividual.TestNearestNeighbourThread t: threads){ + classHist[t.series][(int)t.nn] += t.weight; + sum[t.series] += t.weight; + } + } + else { + for (int n = 0; n < numSeries; n++) { + for (BOSSIndividual classifier : classifiers[n]) { + double classification = classifier.classifyInstance(series[n]); + classHist[n][(int) classification] += classifier.weight; + sum[n] += classifier.weight; + } + } + } + + double[] distributions = new double[instance.numClasses()]; + + for (int n = 0; n < numSeries; n++){ + if (sum[n] != 0) + for (int i = 0; i < classHist[n].length; ++i) + distributions[i] += (classHist[n][i] / sum[n]) / numSeries; + } + + return distributions; + } + + public static void main(String[] args) throws Exception{ + int fold = 0; + + //Minimum working example + String dataset = "ItalyPowerDemand"; + Instances train = DatasetLoading.loadDataNullable("Z:\\Data\\TSCProblems2018\\"+dataset+"\\"+dataset+"_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("Z:\\Data\\TSCProblems2018\\"+dataset+"\\"+dataset+"_TEST.arff"); + Instances[] data = resampleTrainAndTestInstances(train, test, fold); + train = data[0]; + test = data[1]; + + String dataset2 = "ERing"; + Instances train2 = DatasetLoading.loadDataNullable("Z:\\Data\\MultivariateTSCProblems\\"+dataset2+"\\"+dataset2+"_TRAIN.arff"); + Instances test2 = DatasetLoading.loadDataNullable("Z:\\Data\\MultivariateTSCProblems\\"+dataset2+"\\"+dataset2+"_TEST.arff"); + Instances[] data2 = resampleMultivariateTrainAndTestInstances(train2, test2, fold); + train2 = data2[0]; + test2 = data2[1]; + + RBOSS c; + double accuracy; + + c = new RBOSS(); + c.useRecommendedSettingsRBOSS(); + c.bayesianParameterSelection = false; + c.setSeed(fold); + c.buildClassifier(train); + accuracy = ClassifierTools.accuracy(test, c); + + System.out.println("CVAcc CAWPE BOSS accuracy on " + dataset + " fold " + fold + " = " + accuracy + " numClassifiers = " + Arrays.toString(c.numClassifiers)); + + c = new RBOSS(); + c.useRecommendedSettingsRBOSS(); + c.bayesianParameterSelection = false; + c.setSeed(fold); + c.buildClassifier(train2); + accuracy = ClassifierTools.accuracy(test2, c); + + System.out.println("CVAcc CAWPE BOSS accuracy on " + dataset2 + " fold " + fold + " = " + accuracy + " numClassifiers = " + Arrays.toString(c.numClassifiers)); + + c = new RBOSS(); + c.useRecommendedSettingsRBOSS(); + c.setBayesianParameterSelection(true); + c.setSeed(fold); + c.buildClassifier(train); + accuracy = ClassifierTools.accuracy(test, c); + + System.out.println("Bayesian CVAcc CAWPE BOSS accuracy on " + dataset + " fold " + fold + " = " + accuracy + " numClassifiers = " + Arrays.toString(c.numClassifiers)); + + c = new RBOSS(); + c.useRecommendedSettingsRBOSS(); + c.setBayesianParameterSelection(true); + c.setSeed(fold); + c.buildClassifier(train2); + accuracy = ClassifierTools.accuracy(test2, c); + + System.out.println("Bayesian CVAcc CAWPE BOSS accuracy on " + dataset2 + " fold " + fold + " = " + accuracy + " numClassifiers = " + Arrays.toString(c.numClassifiers)); + + c = new RBOSS(); + c.ensembleSize = 250; + c.setMaxEnsembleSize(50); + c.setRandomCVAccEnsemble(true); + c.setSeed(fold); + c.useFastTrainEstimate = true; + c.reduceTrainInstances = true; + c.setMaxEvalPerClass(50); + c.setMaxTrainInstances(500); + c.buildClassifier(train); + accuracy = ClassifierTools.accuracy(test, c); + + System.out.println("FastMax CVAcc BOSS accuracy on " + dataset + " fold " + fold + " = " + accuracy + " numClassifiers = " + Arrays.toString(c.numClassifiers)); + + c = new RBOSS(); + c.ensembleSize = 250; + c.setMaxEnsembleSize(50); + c.setRandomCVAccEnsemble(true); + c.setSeed(fold); + c.useFastTrainEstimate = true; + c.reduceTrainInstances = true; + c.setMaxEvalPerClass(50); + c.setMaxTrainInstances(500); + c.buildClassifier(train2); + accuracy = ClassifierTools.accuracy(test2, c); + + System.out.println("FastMax CVAcc BOSS accuracy on " + dataset2 + " fold " + fold + " = " + accuracy + " numClassifiers = " + Arrays.toString(c.numClassifiers)); + + c = new RBOSS(); + c.ensembleSize = 100; + c.useWeights(true); + c.setSeed(fold); + c.setReduceTrainInstances(true); + c.setTrainProportion(0.7); + c.buildClassifier(train); + accuracy = ClassifierTools.accuracy(test, c); + + System.out.println("CAWPE Subsample BOSS accuracy on " + dataset + " fold " + fold + " = " + accuracy + " numClassifiers = " + Arrays.toString(c.numClassifiers)); + + c = new RBOSS(); + c.ensembleSize = 100; + c.useWeights(true); + c.setSeed(fold); + c.setReduceTrainInstances(true); + c.setTrainProportion(0.7); + c.buildClassifier(train2); + accuracy = ClassifierTools.accuracy(test2, c); + + System.out.println("CAWPE Subsample BOSS accuracy on " + dataset2 + " fold " + fold + " = " + accuracy + " numClassifiers = " + Arrays.toString(c.numClassifiers)); + + c = new RBOSS(); + c.setTrainTimeLimit(TimeUnit.MINUTES, 1); + c.setCleanupCheckpointFiles(true); + c.setSavePath("D:\\"); + c.setSeed(fold); + c.buildClassifier(train); + accuracy = ClassifierTools.accuracy(test, c); + + System.out.println("Contract 1 Min Checkpoint BOSS accuracy on " + dataset + " fold " + fold + " = " + accuracy + " numClassifiers = " + Arrays.toString(c.numClassifiers)); + + c = new RBOSS(); + c.setTrainTimeLimit(TimeUnit.MINUTES, 1); + c.setCleanupCheckpointFiles(true); + c.setSavePath("D:\\"); + c.setSeed(fold); + c.buildClassifier(train2); + accuracy = ClassifierTools.accuracy(test2, c); + + System.out.println("Contract 1 Min Checkpoint BOSS accuracy on " + dataset2 + " fold " + fold + " = " + accuracy + " numClassifiers = " + Arrays.toString(c.numClassifiers)); + + c = new RBOSS(); + c.setMemoryLimit(DataUnit.MEGABYTE, 500); + c.setSeed(fold); + c.buildClassifier(train); + accuracy = ClassifierTools.accuracy(test, c); + + System.out.println("Contract 500MB BOSS accuracy on " + dataset + " fold " + fold + " = " + accuracy + " numClassifiers = " + Arrays.toString(c.numClassifiers)); + + c = new RBOSS(); + c.setMemoryLimit(DataUnit.MEGABYTE, 500); + c.setSeed(fold); + c.buildClassifier(train2); + accuracy = ClassifierTools.accuracy(test2, c); + + System.out.println("Contract 500MB BOSS accuracy on " + dataset2 + " fold " + fold + " = " + accuracy + " numClassifiers = " + Arrays.toString(c.numClassifiers)); + + //Output 22/07/19 + /* + CVAcc CAWPE BOSS accuracy on ItalyPowerDemand fold 0 = 0.923226433430515 numClassifiers = [50] + CVAcc CAWPE BOSS accuracy on ERing fold 0 = 0.8851851851851852 numClassifiers = [50, 50, 50, 50] + Bayesian CVAcc CAWPE BOSS accuracy on ItalyPowerDemand fold 0 = 0.9300291545189504 numClassifiers = [50] + Bayesian CVAcc CAWPE BOSS accuracy on ERing fold 0 = 0.8851851851851852 numClassifiers = [50, 50, 50, 50] + FastMax CVAcc BOSS accuracy on ItalyPowerDemand fold 0 = 0.8415937803692906 numClassifiers = [50] + FastMax CVAcc BOSS accuracy on ERing fold 0 = 0.725925925925926 numClassifiers = [50, 50, 50, 50] + CAWPE Subsample BOSS accuracy on ItalyPowerDemand fold 0 = 0.9271137026239067 numClassifiers = [80] + CAWPE Subsample BOSS accuracy on ERing fold 0 = 0.8592592592592593 numClassifiers = [25, 25, 25, 25] + Contract 1 Min Checkpoint BOSS accuracy on ItalyPowerDemand fold 0 = 0.6958211856171039 numClassifiers = [80] + Contract 1 Min Checkpoint BOSS accuracy on ERing fold 0 = 0.5259259259259259 numClassifiers = [190, 190, 190, 190] + Contract 500MB BOSS accuracy on ItalyPowerDemand fold 0 = 0.7103984450923226 numClassifiers = [50] + Contract 500MB BOSS accuracy on ERing fold 0 = 0.4740740740740741 numClassifiers = [13, 13, 12, 12] + */ + } +} \ No newline at end of file diff --git a/src/main/java/timeseriesweka/classifiers/SAXVSM.java b/src/main/java/timeseriesweka/classifiers/dictionary_based/SAXVSM.java similarity index 95% rename from src/main/java/timeseriesweka/classifiers/SAXVSM.java rename to src/main/java/timeseriesweka/classifiers/dictionary_based/SAXVSM.java index 558392961..d390ceba1 100644 --- a/src/main/java/timeseriesweka/classifiers/SAXVSM.java +++ b/src/main/java/timeseriesweka/classifiers/dictionary_based/SAXVSM.java @@ -12,8 +12,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers; +package timeseriesweka.classifiers.dictionary_based; +import experiments.data.DatasetLoading; +import timeseriesweka.classifiers.AbstractClassifierWithTrainingInfo; import utilities.ClassifierTools; import weka.classifiers.Classifier; import weka.core.Capabilities; @@ -359,10 +361,10 @@ public static void main(String[] args){ public static void basicTest() { System.out.println("SAXVSMBasicTest\n"); try { - Instances train = ClassifierTools.loadData("C:\\tempbakeoff\\TSC Problems\\Car\\Car_TRAIN.arff"); - Instances test = ClassifierTools.loadData("C:\\tempbakeoff\\TSC Problems\\Car\\Car_TEST.arff"); -// Instances train = ClassifierTools.loadData("C:\\tempbakeoff\\TSC Problems\\BeetleFly\\BeetleFly_TRAIN.arff"); -// Instances test = ClassifierTools.loadData("C:\\tempbakeoff\\TSC Problems\\BeetleFly\\BeetleFly_TEST.arff"); + Instances train = DatasetLoading.loadDataNullable("C:\\tempbakeoff\\TSC Problems\\Car\\Car_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("C:\\tempbakeoff\\TSC Problems\\Car\\Car_TEST.arff"); +// Instances train = ClassifierTools.loadDataThrowable("C:\\tempbakeoff\\TSC Problems\\BeetleFly\\BeetleFly_TRAIN.arff"); +// Instances test = ClassifierTools.loadDataThrowable("C:\\tempbakeoff\\TSC Problems\\BeetleFly\\BeetleFly_TEST.arff"); System.out.println(train.relationName()); diff --git a/src/main/java/timeseriesweka/classifiers/SAX_1NN.java b/src/main/java/timeseriesweka/classifiers/dictionary_based/SAX_1NN.java similarity index 93% rename from src/main/java/timeseriesweka/classifiers/SAX_1NN.java rename to src/main/java/timeseriesweka/classifiers/dictionary_based/SAX_1NN.java index 69d962ea1..53ba56682 100644 --- a/src/main/java/timeseriesweka/classifiers/SAX_1NN.java +++ b/src/main/java/timeseriesweka/classifiers/dictionary_based/SAX_1NN.java @@ -12,11 +12,13 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers; +package timeseriesweka.classifiers.dictionary_based; +import experiments.data.DatasetLoading; +import timeseriesweka.classifiers.AbstractClassifierWithTrainingInfo; import utilities.ClassifierTools; import weka.classifiers.Classifier; -import weka.classifiers.lazy.kNN; +import weka_uea.classifiers.kNN; import weka.core.Capabilities; import weka.core.DenseInstance; import weka.core.Instance; @@ -84,7 +86,7 @@ public static void main(String[] args){ System.out.println("BagofPatternsTest\n\n"); try { - Instances all = ClassifierTools.loadData("C:\\\\Temp\\\\TESTDATA\\\\FiveClassV1.arff"); + Instances all = DatasetLoading.loadDataNullable("C:\\\\Temp\\\\TESTDATA\\\\FiveClassV1.arff"); all.deleteAttributeAt(0); //just name of bottle Randomize rand = new Randomize(); diff --git a/src/main/java/timeseriesweka/classifiers/WEASEL.java b/src/main/java/timeseriesweka/classifiers/dictionary_based/WEASEL.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/WEASEL.java rename to src/main/java/timeseriesweka/classifiers/dictionary_based/WEASEL.java index 2ac165823..fda008f84 100644 --- a/src/main/java/timeseriesweka/classifiers/WEASEL.java +++ b/src/main/java/timeseriesweka/classifiers/dictionary_based/WEASEL.java @@ -1,4 +1,18 @@ -package timeseriesweka.classifiers; +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package timeseriesweka.classifiers.dictionary_based; import evaluation.evaluators.CrossValidationEvaluator; @@ -9,8 +23,8 @@ import com.carrotsearch.hppc.cursors.LongIntCursor; import de.bwaldvogel.liblinear.*; import edu.emory.mathcs.jtransforms.fft.DoubleFFT_1D; +import experiments.data.DatasetLoading; import fileIO.OutFile; -import timeseriesweka.classifiers.cote.HiveCoteModule; import utilities.*; import weka.classifiers.Classifier; import weka.core.Capabilities; @@ -21,7 +35,9 @@ import java.io.Serializable; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; +import timeseriesweka.classifiers.AbstractClassifierWithTrainingInfo; import weka.core.TechnicalInformationHandler; +import timeseriesweka.classifiers.TrainAccuracyEstimator; /** * WEASEL Classifier @@ -29,8 +45,9 @@ * @author Patrick Schaefer * */ -public class WEASEL extends AbstractClassifierWithTrainingInfo implements HiveCoteModule, TrainAccuracyEstimate,TechnicalInformationHandler { +public class WEASEL extends AbstractClassifierWithTrainingInfo implements TrainAccuracyEstimator,TechnicalInformationHandler { + @Override public TechnicalInformation getTechnicalInformation() { TechnicalInformation result; result = new TechnicalInformation(TechnicalInformation.Type.ARTICLE); @@ -74,7 +91,7 @@ public TechnicalInformation getTechnicalInformation() { boolean setSeed=false; @Override - public void writeCVTrainToFile(String outputPathAndName) { + public void writeTrainEstimatesToFile(String outputPathAndName) { trainCVPath=outputPathAndName; trainCV=true; } @@ -467,12 +484,12 @@ public double[] distributionForInstance(Instance instance) throws Exception { @Override - public double getEnsembleCvAcc() { + public double getTrainAcc() { return 0; } @Override - public double[] getEnsembleCvPreds() { + public double[] getTrainPreds() { return new double[0]; } @@ -1683,8 +1700,8 @@ public static void main(String[] args) throws Exception{ "TwoLeadECG", "MoteStrain", "ItalyPowerDemand"}) { - Instances train = ClassifierTools.loadData("/Users/bzcschae/workspace/TSC_TONY_new/TimeSeriesClassification/TSCProblems/" + dataset + "/" + dataset + "_TRAIN.arff"); - Instances test = ClassifierTools.loadData("/Users/bzcschae/workspace/TSC_TONY_new/TimeSeriesClassification/TSCProblems/" + dataset + "/" + dataset + "_TEST.arff"); + Instances train = DatasetLoading.loadDataNullable("/Users/bzcschae/workspace/TSC_TONY_new/TimeSeriesClassification/TSCProblems/" + dataset + "/" + dataset + "_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("/Users/bzcschae/workspace/TSC_TONY_new/TimeSeriesClassification/TSCProblems/" + dataset + "/" + dataset + "_TEST.arff"); Classifier c = new WEASEL(); c.buildClassifier(train); diff --git a/src/main/java/timeseriesweka/classifiers/boss/BOSSC45.java b/src/main/java/timeseriesweka/classifiers/dictionary_based/boss_variants/BOSSC45.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/boss/BOSSC45.java rename to src/main/java/timeseriesweka/classifiers/dictionary_based/boss_variants/BOSSC45.java index 85284b9c3..9c1d8cfff 100644 --- a/src/main/java/timeseriesweka/classifiers/boss/BOSSC45.java +++ b/src/main/java/timeseriesweka/classifiers/dictionary_based/boss_variants/BOSSC45.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.boss; +package timeseriesweka.classifiers.dictionary_based.boss_variants; import fileIO.OutFile; import java.io.File; @@ -28,6 +28,8 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.List; + +import timeseriesweka.classifiers.dictionary_based.BOSSIndividual; import utilities.InstanceTools; import timeseriesweka.classifiers.SaveParameterInfo; import weka.core.Capabilities; @@ -37,17 +39,18 @@ import java.util.HashSet; import java.util.Map.Entry; import java.util.Set; -import timeseriesweka.classifiers.BOSS; -import utilities.BitWord; +import timeseriesweka.classifiers.dictionary_based.BOSS; +import timeseriesweka.classifiers.dictionary_based.BitWord; import utilities.ClassifierTools; -import utilities.TrainAccuracyEstimate; import evaluation.storage.ClassifierResults; +import experiments.data.DatasetLoading; import weka.classifiers.trees.J48; import weka.core.Attribute; import weka.core.DenseInstance; import weka.core.FastVector; import weka.core.Instance; import weka.core.Instances; +import timeseriesweka.classifiers.TrainAccuracyEstimator; /** * BOSS + C45 tree classifier with parameter search and ensembling, if parameters are @@ -71,7 +74,7 @@ * BOSS implementation based on the algorithm described in getTechnicalInformation() * C45 done using the WEKA implementation 'weka.classifiers.trees.J48' */ -public class BOSSC45 implements Classifier, SaveParameterInfo,TrainAccuracyEstimate { +public class BOSSC45 implements Classifier, SaveParameterInfo,TrainAccuracyEstimator { public TechnicalInformation getTechnicalInformation() { TechnicalInformation result; @@ -251,7 +254,7 @@ public int compareTo(BOSSWindow other) { } @Override - public void writeCVTrainToFile(String train) { + public void writeTrainEstimatesToFile(String train) { trainCVPath=train; trainCV=true; } @@ -561,8 +564,8 @@ public Capabilities getCapabilities() { public static void main(String[] args) throws Exception{ //Minimum working example String dataset = "BeetleFly"; - Instances train = ClassifierTools.loadData("C:\\TSC Problems\\"+dataset+"\\"+dataset+"_TRAIN.arff"); - Instances test = ClassifierTools.loadData("C:\\TSC Problems\\"+dataset+"\\"+dataset+"_TEST.arff"); + Instances train = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dataset+"\\"+dataset+"_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dataset+"\\"+dataset+"_TEST.arff"); Classifier c = new BOSSC45(); c.buildClassifier(train); @@ -578,8 +581,8 @@ public static void main(String[] args) throws Exception{ public static void detailedFold0Test(String dset) { System.out.println("BOSSC45 DetailedTest\n"); try { - Instances train = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); - Instances test = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); + Instances train = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); System.out.println(train.relationName()); BOSSC45 boss = new BOSSC45(); @@ -614,8 +617,8 @@ public static void detailedFold0Test(String dset) { } public static void resampleTest(String dset, int resamples) throws Exception { - Instances train = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); - Instances test = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); + Instances train = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); Classifier c = new BOSSC45(); @@ -655,7 +658,7 @@ public static void resampleTest(String dset, int resamples) throws Exception { * * @author James Large */ - public static class BOSSC45Individual extends BOSS.BOSSIndividual { + public static class BOSSC45Individual extends BOSSIndividual { public boolean buildBags = true; public boolean buildForest = true; diff --git a/src/main/java/timeseriesweka/classifiers/boss/BOSSSpatialPyramids.java b/src/main/java/timeseriesweka/classifiers/dictionary_based/boss_variants/BOSSSpatialPyramids.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/boss/BOSSSpatialPyramids.java rename to src/main/java/timeseriesweka/classifiers/dictionary_based/boss_variants/BOSSSpatialPyramids.java index eb8e123fb..1e878ccbb 100644 --- a/src/main/java/timeseriesweka/classifiers/boss/BOSSSpatialPyramids.java +++ b/src/main/java/timeseriesweka/classifiers/dictionary_based/boss_variants/BOSSSpatialPyramids.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.boss; +package timeseriesweka.classifiers.dictionary_based.boss_variants; import fileIO.OutFile; @@ -39,13 +39,14 @@ import java.util.HashMap; import java.util.Map.Entry; import utilities.ClassifierTools; -import utilities.BitWord; -import utilities.TrainAccuracyEstimate; +import timeseriesweka.classifiers.dictionary_based.BitWord; import weka.core.Capabilities; import weka.core.Instance; import weka.core.Instances; import weka.classifiers.Classifier; import evaluation.storage.ClassifierResults; +import experiments.data.DatasetLoading; +import timeseriesweka.classifiers.TrainAccuracyEstimator; /** @@ -63,7 +64,7 @@ * Base algorithm information found in BOSS.java * Spatial Pyramids based on the algorithm described in getTechnicalInformation() */ -public class BOSSSpatialPyramids implements Classifier, SaveParameterInfo,TrainAccuracyEstimate { +public class BOSSSpatialPyramids implements Classifier, SaveParameterInfo,TrainAccuracyEstimator { public TechnicalInformation getTechnicalInformation() { TechnicalInformation result; @@ -244,7 +245,7 @@ public int compareTo(BOSSWindow other) { } @Override - public void writeCVTrainToFile(String train) { + public void writeTrainEstimatesToFile(String train) { trainCVPath=train; trainCV=true; } @@ -576,8 +577,8 @@ public Capabilities getCapabilities() { public static void main(String[] args) throws Exception{ //Minimum working example String dataset = "ItalyPowerDemand"; - Instances train = ClassifierTools.loadData("C:\\TSC Problems\\"+dataset+"\\"+dataset+"_TRAIN.arff"); - Instances test = ClassifierTools.loadData("C:\\TSC Problems\\"+dataset+"\\"+dataset+"_TEST.arff"); + Instances train = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dataset+"\\"+dataset+"_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dataset+"\\"+dataset+"_TEST.arff"); Classifier c = new BOSSSpatialPyramids(); c.buildClassifier(train); @@ -593,8 +594,8 @@ public static void main(String[] args) throws Exception{ public static void detailedFold0Test(String dset) { System.out.println("BOSSEnsembleSPDetailedTest\n"); try { - Instances train = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); - Instances test = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); + Instances train = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); System.out.println(train.relationName()); BOSSSpatialPyramids boss = new BOSSSpatialPyramids(); @@ -629,8 +630,8 @@ public static void detailedFold0Test(String dset) { } public static void resampleTest(String dset, int resamples) throws Exception { - Instances train = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); - Instances test = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); + Instances train = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); Classifier c = new BOSSSpatialPyramids(); @@ -1379,8 +1380,8 @@ public Capabilities getCapabilities() { public static void detailedFold0Test(String dset) { System.out.println("BOSSSpatialPyramidsIndividual DetailedTest\n"); try { - Instances train = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); - Instances test = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); + Instances train = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); System.out.println(train.relationName()); int windowSize = 10; diff --git a/src/main/java/timeseriesweka/classifiers/boss/BOSSSpatialPyramids_BD.java b/src/main/java/timeseriesweka/classifiers/dictionary_based/boss_variants/BOSSSpatialPyramids_BD.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/boss/BOSSSpatialPyramids_BD.java rename to src/main/java/timeseriesweka/classifiers/dictionary_based/boss_variants/BOSSSpatialPyramids_BD.java index 4925aa2cd..bbb89b8c9 100644 --- a/src/main/java/timeseriesweka/classifiers/boss/BOSSSpatialPyramids_BD.java +++ b/src/main/java/timeseriesweka/classifiers/dictionary_based/boss_variants/BOSSSpatialPyramids_BD.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.boss; +package timeseriesweka.classifiers.dictionary_based.boss_variants; import fileIO.OutFile; import java.io.File; @@ -38,13 +38,14 @@ import java.util.HashMap; import java.util.Map.Entry; import utilities.ClassifierTools; -import utilities.BitWord; -import utilities.TrainAccuracyEstimate; +import timeseriesweka.classifiers.dictionary_based.BitWord; import weka.core.Capabilities; import weka.core.Instance; import weka.core.Instances; import weka.classifiers.Classifier; import evaluation.storage.ClassifierResults; +import experiments.data.DatasetLoading; +import timeseriesweka.classifiers.TrainAccuracyEstimator; /** @@ -66,7 +67,7 @@ * Base algorithm information found in BOSS.java * Spatial Pyramids based on the algorithm described in getTechnicalInformation() */ -public class BOSSSpatialPyramids_BD implements Classifier, SaveParameterInfo,TrainAccuracyEstimate { +public class BOSSSpatialPyramids_BD implements Classifier, SaveParameterInfo,TrainAccuracyEstimator { public TechnicalInformation getTechnicalInformation() { TechnicalInformation result; @@ -247,7 +248,7 @@ public int compareTo(BOSSWindow other) { } @Override - public void writeCVTrainToFile(String train) { + public void writeTrainEstimatesToFile(String train) { trainCVPath=train; trainCV=true; } @@ -585,7 +586,7 @@ public static void bossspImageMakingCode() throws Exception { // String dset = "Lightning7"; String dset = "BeetleFly"; - Instances train = ClassifierTools.loadData(dset+"_TRAIN.arff"); + Instances train = DatasetLoading.loadDataNullable(dset+"_TRAIN.arff"); boss.buildClassifier(train); @@ -649,8 +650,8 @@ public static void bossspImageMakingCode() throws Exception { public static void main(String[] args) throws Exception{ // //Minimum working example // String dataset = "ItalyPowerDemand"; -//// Instances train = ClassifierTools.loadData("C:\\TSC Problems\\"+dataset+"\\"+dataset+"_TRAIN.arff"); -//// Instances test = ClassifierTools.loadData("C:\\TSC Problems\\"+dataset+"\\"+dataset+"_TEST.arff"); +//// Instances train = ClassifierTools.loadDataThrowable("C:\\TSC Problems\\"+dataset+"\\"+dataset+"_TRAIN.arff"); +//// Instances test = ClassifierTools.loadDataThrowable("C:\\TSC Problems\\"+dataset+"\\"+dataset+"_TEST.arff"); //// //// Classifier c = new BOSSSpatialPyramids_BD(); //// c.buildClassifier(train); @@ -668,8 +669,8 @@ public static void main(String[] args) throws Exception{ public static void detailedFold0Test(String dset) { System.out.println("BOSSEnsembleSPDetailedTest\n"); try { - Instances train = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); - Instances test = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); + Instances train = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); System.out.println(train.relationName()); BOSSSpatialPyramids_BD boss = new BOSSSpatialPyramids_BD(); @@ -704,8 +705,8 @@ public static void detailedFold0Test(String dset) { } public static void resampleTest(String dset, int resamples) throws Exception { - Instances train = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); - Instances test = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); + Instances train = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); Classifier c = new BOSSSpatialPyramids_BD(); @@ -1428,8 +1429,8 @@ public Capabilities getCapabilities() { public static void detailedFold0Test(String dset) { System.out.println("BOSSSpatialPyramidsIndividual DetailedTest\n"); try { - Instances train = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); - Instances test = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); + Instances train = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); System.out.println(train.relationName()); int windowSize = 10; diff --git a/src/main/java/timeseriesweka/classifiers/boss/BoTSWEnsemble.java b/src/main/java/timeseriesweka/classifiers/dictionary_based/boss_variants/BoTSWEnsemble.java similarity index 98% rename from src/main/java/timeseriesweka/classifiers/boss/BoTSWEnsemble.java rename to src/main/java/timeseriesweka/classifiers/dictionary_based/boss_variants/BoTSWEnsemble.java index 8da63170e..598f41690 100644 --- a/src/main/java/timeseriesweka/classifiers/boss/BoTSWEnsemble.java +++ b/src/main/java/timeseriesweka/classifiers/dictionary_based/boss_variants/BoTSWEnsemble.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.boss; +package timeseriesweka.classifiers.dictionary_based.boss_variants; import fileIO.OutFile; import java.util.Iterator; @@ -25,10 +25,10 @@ import utilities.InstanceTools; import timeseriesweka.classifiers.SaveParameterInfo; import utilities.Timer; -import utilities.TrainAccuracyEstimate; import weka.classifiers.Classifier; import weka.classifiers.functions.LibSVM; import evaluation.storage.ClassifierResults; +import experiments.data.DatasetLoading; import weka.clusterers.SimpleKMeans; import weka.core.Attribute; import weka.core.Capabilities; @@ -38,6 +38,7 @@ import weka.core.Instances; import weka.core.SelectedTag; import weka.core.TechnicalInformation; +import timeseriesweka.classifiers.TrainAccuracyEstimator; /** @@ -63,7 +64,7 @@ * * Implementation based on the algorithm described in getTechnicalInformation() */ -public class BoTSWEnsemble implements Classifier, SaveParameterInfo,TrainAccuracyEstimate { +public class BoTSWEnsemble implements Classifier, SaveParameterInfo,TrainAccuracyEstimator { public TechnicalInformation getTechnicalInformation() { TechnicalInformation result; @@ -138,7 +139,7 @@ public int compareTo(BoTSWWindow other) { } @Override - public void writeCVTrainToFile(String train) { + public void writeTrainEstimatesToFile(String train) { trainCVPath=train; trainCV=true; } @@ -441,8 +442,8 @@ public Capabilities getCapabilities() { public static void main(String[] args) throws Exception{ //Minimum working example String dataset = "ItalyPowerDemand"; - Instances train = ClassifierTools.loadData("C:\\TSC Problems\\"+dataset+"\\"+dataset+"_TRAIN.arff"); - Instances test = ClassifierTools.loadData("C:\\TSC Problems\\"+dataset+"\\"+dataset+"_TEST.arff"); + Instances train = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dataset+"\\"+dataset+"_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dataset+"\\"+dataset+"_TEST.arff"); Classifier c = new BoTSWEnsemble(); ((BoTSWEnsemble)c).dist = BoTSW.DistFunction.BOSS_DISTANCE; @@ -459,8 +460,8 @@ public static void main(String[] args) throws Exception{ public static void detailedFold0Test(String dset) { System.out.println("BoTSWEnsemble DetailedTest\n"); try { - Instances train = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); - Instances test = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); + Instances train = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); System.out.println(train.relationName()); BoTSWEnsemble botsw = new BoTSWEnsemble(); @@ -496,8 +497,8 @@ public static void detailedFold0Test(String dset) { } public static void resampleTest(String dset, int resamples) throws Exception { - Instances train = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); - Instances test = ClassifierTools.loadData("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); + Instances train = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("C:\\TSC Problems\\"+dset+"\\"+dset+"_TEST.arff"); Classifier c = new BoTSWEnsemble(); diff --git a/src/main/java/timeseriesweka/classifiers/DD_DTW.java b/src/main/java/timeseriesweka/classifiers/distance_based/DD_DTW.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/DD_DTW.java rename to src/main/java/timeseriesweka/classifiers/distance_based/DD_DTW.java index 234356cb6..4933e807e 100644 --- a/src/main/java/timeseriesweka/classifiers/DD_DTW.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/DD_DTW.java @@ -12,13 +12,15 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers; +package timeseriesweka.classifiers.distance_based; import java.text.DecimalFormat; import utilities.ClassifierTools; import utilities.InstanceTools; -import weka.classifiers.lazy.kNN; +import weka_uea.classifiers.kNN; import evaluation.storage.ClassifierResults; +import experiments.data.DatasetLoading; +import timeseriesweka.classifiers.SaveParameterInfo; import weka.core.DenseInstance; import weka.core.EuclideanDistance; import weka.core.Instance; @@ -657,8 +659,8 @@ public static void recreateResultsTable(int seed) throws Exception{ System.out.print(dataset+","); - train = ClassifierTools.loadData(dataDir+dataset+"/"+dataset+"_TRAIN"); - test = ClassifierTools.loadData(dataDir+dataset+"/"+dataset+"_TEST"); + train = DatasetLoading.loadDataNullable(dataDir+dataset+"/"+dataset+"_TRAIN"); + test = DatasetLoading.loadDataNullable(dataDir+dataset+"/"+dataset+"_TEST"); // instance resampling happens here, seed of 0 means that the standard train/test split is used if(seed!=0){ @@ -732,8 +734,8 @@ public static void main(String[] args){ try{ if(option==1){ String dataName = "ItalyPowerDemand"; - Instances train = ClassifierTools.loadData(DATA_DIR+dataName+"/"+dataName+"_TRAIN"); - Instances test = ClassifierTools.loadData(DATA_DIR+dataName+"/"+dataName+"_TEST"); + Instances train = DatasetLoading.loadDataNullable(DATA_DIR+dataName+"/"+dataName+"_TRAIN"); + Instances test = DatasetLoading.loadDataNullable(DATA_DIR+dataName+"/"+dataName+"_TEST"); // create the classifier, using DTW as the distance function as an example DD_DTW nndw = new DD_DTW(DistanceType.DTW);; diff --git a/src/main/java/timeseriesweka/classifiers/DTD_C.java b/src/main/java/timeseriesweka/classifiers/distance_based/DTD_C.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/DTD_C.java rename to src/main/java/timeseriesweka/classifiers/distance_based/DTD_C.java index 1e5cb2b57..724afdbcb 100644 --- a/src/main/java/timeseriesweka/classifiers/DTD_C.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/DTD_C.java @@ -12,11 +12,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers; +package timeseriesweka.classifiers.distance_based; +import experiments.data.DatasetLoading; import java.text.DecimalFormat; import utilities.ClassifierTools; -import weka.classifiers.lazy.kNN; +import weka_uea.classifiers.kNN; import weka.core.Instance; import weka.core.Instances; import weka.core.TechnicalInformation; @@ -304,8 +305,8 @@ public static void recreateResultsTable() throws Exception{ System.out.println("Dataset,fullCosDTW,fullSinDTW,fullHilDTW,weightedCosDTW,weightedSinDTW,weightedHilDTW"); for(String dataset:PAPER_DATASETS){ System.out.print(dataset+","); - train = ClassifierTools.loadData(DATA_DIR+dataset+"/"+dataset+"_TRAIN"); - test = ClassifierTools.loadData(DATA_DIR+dataset+"/"+dataset+"_TEST"); + train = DatasetLoading.loadDataNullable(DATA_DIR+dataset+"/"+dataset+"_TRAIN"); + test = DatasetLoading.loadDataNullable(DATA_DIR+dataset+"/"+dataset+"_TEST"); // DTW on only the transformed data first for(SimpleBatchFilter transform:transforms){ @@ -342,8 +343,8 @@ public static void main(String[] args){ try{ if(option==1){ String dataName = "ItalyPowerDemand"; - Instances train = ClassifierTools.loadData(DATA_DIR+dataName+"/"+dataName+"_TRAIN"); - Instances test = ClassifierTools.loadData(DATA_DIR+dataName+"/"+dataName+"_TEST"); + Instances train = DatasetLoading.loadDataNullable(DATA_DIR+dataName+"/"+dataName+"_TRAIN"); + Instances test = DatasetLoading.loadDataNullable(DATA_DIR+dataName+"/"+dataName+"_TEST"); // create the classifier, using cosine in the distance calculations as an example DTD_C nntw = new DTD_C(TransformType.COS); diff --git a/src/main/java/timeseriesweka/classifiers/distance_based/DTW_kNN.java b/src/main/java/timeseriesweka/classifiers/distance_based/DTW_kNN.java new file mode 100644 index 000000000..af936720c --- /dev/null +++ b/src/main/java/timeseriesweka/classifiers/distance_based/DTW_kNN.java @@ -0,0 +1,131 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package timeseriesweka.classifiers.distance_based; +import java.io.FileReader; +import weka_uea.classifiers.kNN; + +import weka.core.*; + +import weka.core.EuclideanDistance; +import timeseriesweka.elastic_distance_measures.DTW; + +/* This class is a specialisation of kNN that can only be used with the efficient DTW distance + * + * The reason for specialising is this class has the option of searching for the optimal window length + * through a grid search of values. + * + * By default this class does a search. + * To search for the window size call + * optimiseWindow(true); + * By default, this does a leave one out cross validation on every possible window size, then sets the + * proportion to the one with the largest accuracy. This will be slow. Speed it up by + * + * 1. Set the max window size to consider by calling + * setMaxWindowSize(double r) where r is on range 0..1, with 1 being a full warp. + * + * 2. Set the increment size + * setIncrementSize(int s) where s is on range 1...trainSetSize + * + * This is a basic brute force implementation, not optimised! There are probably ways of + * incrementally doing this. It could further be speeded up by using PAA to reduce the dimensionality first. + * + */ + +public class DTW_kNN extends kNN { + private boolean optimiseWindow=false; + private double windowSize=0.1; + private double maxWindowSize=1; + private int incrementSize=10; + private Instances train; + private int trainSize; + private int bestWarp; + DTW dtw=new DTW(); + +// DTW_DistanceEfficient dtw=new DTW_DistanceEfficient(); + public DTW_kNN(){ + super(); + dtw.setR(windowSize); + setDistanceFunction(dtw); + super.setKNN(1); + } + + public void optimiseWindow(boolean b){ optimiseWindow=b;} + public void setMaxR(double r){ maxWindowSize=r;} + + + public DTW_kNN(int k){ + super(k); + dtw.setR(windowSize); + optimiseWindow=true; + setDistanceFunction(dtw); + } + public void buildClassifier(Instances d){ + dist.setInstances(d); + train=d; + trainSize=d.numInstances(); + if(optimiseWindow){ + double maxR=0; + double maxAcc=0; +/*Set the maximum warping window: Not this is all a bit mixed up. +The window size in the r value is range 0..1, but the increments should be set by the +data*/ + int dataLength=train.numAttributes()-1; + int max=(int)(dataLength*maxWindowSize); +// System.out.println(" MAX ="+max+" increment size ="+incrementSize); + for(double i=0;i buildTimes; protected ClassifierResults res =new ClassifierResults(); - public FastDTWWrapper(){ + public FastDTW(){ ws=new FastWWSByPercent(); } @Override public void buildClassifier(Instances data) throws Exception { - long startTime=System.currentTimeMillis(); + res.setTimeUnit(TimeUnit.NANOSECONDS); + long startTime=System.nanoTime(); ws.buildClassifier(data); - res.setBuildTime(System.currentTimeMillis()-startTime); + res.setBuildTime(System.nanoTime()-startTime); Runtime rt = Runtime.getRuntime(); long usedBytes = (rt.totalMemory() - rt.freeMemory()); res.setMemory(usedBytes); } public double classifyInstance(Instance data) throws Exception { return ws.classifyInstance(data); - } @Override public String getParameters() { - String result="BuildTime,"+res.getBuildTime()+",CVAcc,"+res.getAcc()+",Memory,"+res.getMemory(); + String result="CVAcc,"+res.getAcc()+",Memory,"+res.getMemory(); result+=",WindowSize,"+ws.getBestWin()+",Score,"+ws.getBestScore(); return result; } diff --git a/src/main/java/timeseriesweka/classifiers/FastDTW_1NN.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastDTW_1NN.java similarity index 95% rename from src/main/java/timeseriesweka/classifiers/FastDTW_1NN.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastDTW_1NN.java index e7e01f6c0..f5fc3d5a5 100644 --- a/src/main/java/timeseriesweka/classifiers/FastDTW_1NN.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastDTW_1NN.java @@ -12,20 +12,23 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers; +package timeseriesweka.classifiers.distance_based; import fileIO.OutFile; import java.util.ArrayList; import timeseriesweka.elastic_distance_measures.DTW; import timeseriesweka.elastic_distance_measures.DTW_DistanceBasic; import java.util.HashMap; import evaluation.storage.ClassifierResults; +import experiments.data.DatasetLoading; import utilities.ClassifierTools; -import utilities.TrainAccuracyEstimate; -import vector_classifiers.SaveEachParameter; +import weka_uea.classifiers.SaveEachParameter; import weka.classifiers.AbstractClassifier; import weka.classifiers.Classifier; import weka.core.*; import java.lang.instrument.*; +import timeseriesweka.classifiers.ParameterSplittable; +import timeseriesweka.classifiers.SaveParameterInfo; +import timeseriesweka.classifiers.TrainAccuracyEstimator; /* * The reason for specialising is this class has the option of searching for @@ -63,7 +66,7 @@ to store the distance matrix for a given window size. This requires O(n^2) extra is equivalent to Euclidean distance (rather than a window size of 0 */ -public class FastDTW_1NN extends AbstractClassifier implements SaveParameterInfo, TrainAccuracyEstimate,SaveEachParameter,ParameterSplittable{ +public class FastDTW_1NN extends AbstractClassifier implements SaveParameterInfo, TrainAccuracyEstimator,SaveEachParameter,ParameterSplittable{ private boolean optimiseWindow=false; private double windowSize=1; private int maxPercentageWarp=100; @@ -90,7 +93,7 @@ public void setSaveEachParaAcc(boolean b){ saveEachParaAcc=b; } @Override - public void writeCVTrainToFile(String train) { + public void writeTrainEstimatesToFile(String train) { trainPath=train; } public void setFindTrainAccuracyEstimate(boolean setCV){ @@ -330,8 +333,8 @@ public static void main(String[] args){ FastDTW_1NN c = new FastDTW_1NN(); String path="C:\\Research\\Data\\Time Series Data\\Time Series Classification\\"; - Instances test=ClassifierTools.loadData(path+"Coffee\\Coffee_TEST.arff"); - Instances train=ClassifierTools.loadData(path+"Coffee\\Coffee_TRAIN.arff"); + Instances test=DatasetLoading.loadDataNullable(path+"Coffee\\Coffee_TEST.arff"); + Instances train=DatasetLoading.loadDataNullable(path+"Coffee\\Coffee_TRAIN.arff"); train.setClassIndex(train.numAttributes()-1); c.buildClassifier(train); diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/ScalabilityExperiment.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/ScalabilityExperiment.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/FastWWS/experiments/ScalabilityExperiment.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/ScalabilityExperiment.java index b8b5ce87b..0230aa59f 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/ScalabilityExperiment.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/ScalabilityExperiment.java @@ -15,19 +15,19 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.experiments; +package timeseriesweka.classifiers.distance_based.fast_dtw.experiments; import java.io.File; import java.io.FileWriter; import java.io.IOException; -import timeseriesweka.classifiers.FastWWS.items.ExperimentsLauncher; -import timeseriesweka.classifiers.FastWWS.tools.Sampling; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.ExperimentsLauncher; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.Sampling; import weka.core.Instances; -import timeseriesweka.classifiers.FastWWS.windowSearcher.FastWWS; -import timeseriesweka.classifiers.FastWWS.windowSearcher.Trillion; -import timeseriesweka.classifiers.FastWWS.windowSearcher.LbKeoghPrunedDTW; -import timeseriesweka.classifiers.FastWWS.windowSearcher.WindowSearcher; +import timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher.FastWWS; +import timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher.Trillion; +import timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher.LbKeoghPrunedDTW; +import timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher.WindowSearcher; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 @@ -309,8 +309,8 @@ public static double keoghPrunedDTW(Instances data, int sampleSize) { /** * Save results (search time) to csv + * @param sampleSize * @param searchTime - * @param error */ private static void saveSearchTime(int sampleSize, double searchTime) { String fileName = resDir + "scaling_result_" + method + ".csv"; diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_FastWWS.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_FastWWS.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_FastWWS.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_FastWWS.java index 25d369e17..1bb3e4960 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_FastWWS.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_FastWWS.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.experiments; +package timeseriesweka.classifiers.distance_based.fast_dtw.experiments; import java.io.File; import java.io.FileFilter; @@ -23,12 +23,12 @@ import java.io.IOException; import java.util.Arrays; -import timeseriesweka.classifiers.FastWWS.items.ExperimentsLauncher; -import timeseriesweka.classifiers.FastWWS.tools.Sampling; -import timeseriesweka.classifiers.FastWWS.tools.UCRArchive; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.ExperimentsLauncher; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.Sampling; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.UCRArchive; import weka.classifiers.Evaluation; import weka.core.Instances; -import timeseriesweka.classifiers.FastWWS.windowSearcher.FastWWS; +import timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher.FastWWS; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_FastWWSPrunedDTW.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_FastWWSPrunedDTW.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_FastWWSPrunedDTW.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_FastWWSPrunedDTW.java index e83dfaf70..ceb0c510e 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_FastWWSPrunedDTW.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_FastWWSPrunedDTW.java @@ -1,4 +1,4 @@ -package timeseriesweka.classifiers.FastWWS.experiments; +package timeseriesweka.classifiers.distance_based.fast_dtw.experiments; import java.io.File; import java.io.FileFilter; @@ -6,11 +6,11 @@ import java.io.IOException; import java.util.Arrays; -import timeseriesweka.classifiers.FastWWS.items.ExperimentsLauncher; -import timeseriesweka.classifiers.FastWWS.tools.Sampling; -import timeseriesweka.classifiers.FastWWS.tools.UCRArchive; -import timeseriesweka.classifiers.FastWWS.windowSearcher.FastWWS; -import timeseriesweka.classifiers.FastWWS.windowSearcher.FastWWSPrunedDTW; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.ExperimentsLauncher; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.Sampling; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.UCRArchive; +import timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher.FastWWS; +import timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher.FastWWSPrunedDTW; import weka.classifiers.Evaluation; import weka.core.Instances; diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_LbKeogh.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_LbKeogh.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_LbKeogh.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_LbKeogh.java index 841d1fa3d..45cf3438b 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_LbKeogh.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_LbKeogh.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.experiments; +package timeseriesweka.classifiers.distance_based.fast_dtw.experiments; import java.io.File; import java.io.FileFilter; @@ -23,12 +23,12 @@ import java.io.IOException; import java.util.Arrays; -import timeseriesweka.classifiers.FastWWS.items.ExperimentsLauncher; -import timeseriesweka.classifiers.FastWWS.tools.Sampling; -import timeseriesweka.classifiers.FastWWS.tools.UCRArchive; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.ExperimentsLauncher; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.Sampling; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.UCRArchive; import weka.classifiers.Evaluation; import weka.core.Instances; -import timeseriesweka.classifiers.FastWWS.windowSearcher.WindowSearcher; +import timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher.WindowSearcher; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_LbKeoghPrunedDTW.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_LbKeoghPrunedDTW.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_LbKeoghPrunedDTW.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_LbKeoghPrunedDTW.java index 7e2c64916..0bf2ac5c1 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_LbKeoghPrunedDTW.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_LbKeoghPrunedDTW.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.experiments; +package timeseriesweka.classifiers.distance_based.fast_dtw.experiments; import java.io.File; import java.io.FileFilter; @@ -23,12 +23,12 @@ import java.io.IOException; import java.util.Arrays; -import timeseriesweka.classifiers.FastWWS.items.ExperimentsLauncher; -import timeseriesweka.classifiers.FastWWS.tools.Sampling; -import timeseriesweka.classifiers.FastWWS.tools.UCRArchive; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.ExperimentsLauncher; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.Sampling; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.UCRArchive; import weka.classifiers.Evaluation; import weka.core.Instances; -import timeseriesweka.classifiers.FastWWS.windowSearcher.LbKeoghPrunedDTW; +import timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher.LbKeoghPrunedDTW; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_NaiveDTW.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_NaiveDTW.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_NaiveDTW.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_NaiveDTW.java index f7a6bb665..9d013bfa6 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_NaiveDTW.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_NaiveDTW.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.experiments; +package timeseriesweka.classifiers.distance_based.fast_dtw.experiments; import java.io.File; import java.io.FileFilter; @@ -23,12 +23,12 @@ import java.io.IOException; import java.util.Arrays; -import timeseriesweka.classifiers.FastWWS.items.ExperimentsLauncher; -import timeseriesweka.classifiers.FastWWS.tools.Sampling; -import timeseriesweka.classifiers.FastWWS.tools.UCRArchive; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.ExperimentsLauncher; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.Sampling; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.UCRArchive; import weka.classifiers.Evaluation; import weka.core.Instances; -import timeseriesweka.classifiers.FastWWS.windowSearcher.NaiveDTW; +import timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher.NaiveDTW; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_Trillion.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_Trillion.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_Trillion.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_Trillion.java index e5123c5ee..c161bfedc 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_Trillion.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_Trillion.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.experiments; +package timeseriesweka.classifiers.distance_based.fast_dtw.experiments; import java.io.File; import java.io.FileFilter; @@ -23,12 +23,12 @@ import java.io.IOException; import java.util.Arrays; -import timeseriesweka.classifiers.FastWWS.items.ExperimentsLauncher; -import timeseriesweka.classifiers.FastWWS.tools.Sampling; -import timeseriesweka.classifiers.FastWWS.tools.UCRArchive; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.ExperimentsLauncher; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.Sampling; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.UCRArchive; import weka.classifiers.Evaluation; import weka.core.Instances; -import timeseriesweka.classifiers.FastWWS.windowSearcher.Trillion; +import timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher.Trillion; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_UCRSuite.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_UCRSuite.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_UCRSuite.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_UCRSuite.java index e008bea07..be22113c2 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_UCRSuite.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_UCRSuite.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.experiments; +package timeseriesweka.classifiers.distance_based.fast_dtw.experiments; import java.io.File; import java.io.FileFilter; @@ -23,12 +23,12 @@ import java.io.IOException; import java.util.Arrays; -import timeseriesweka.classifiers.FastWWS.items.ExperimentsLauncher; -import timeseriesweka.classifiers.FastWWS.tools.Sampling; -import timeseriesweka.classifiers.FastWWS.tools.UCRArchive; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.ExperimentsLauncher; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.Sampling; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.UCRArchive; import weka.classifiers.Evaluation; import weka.core.Instances; -import timeseriesweka.classifiers.FastWWS.windowSearcher.UCRSuite; +import timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher.UCRSuite; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_UCRSuitePrunedDTW.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_UCRSuitePrunedDTW.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_UCRSuitePrunedDTW.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_UCRSuitePrunedDTW.java index ef99a24dc..efccfd339 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/experiments/UCR_UCRSuitePrunedDTW.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/experiments/UCR_UCRSuitePrunedDTW.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.experiments; +package timeseriesweka.classifiers.distance_based.fast_dtw.experiments; import java.io.File; import java.io.FileFilter; @@ -23,12 +23,12 @@ import java.io.IOException; import java.util.Arrays; -import timeseriesweka.classifiers.FastWWS.items.ExperimentsLauncher; -import timeseriesweka.classifiers.FastWWS.tools.Sampling; -import timeseriesweka.classifiers.FastWWS.tools.UCRArchive; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.ExperimentsLauncher; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.Sampling; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.UCRArchive; import weka.classifiers.Evaluation; import weka.core.Instances; -import timeseriesweka.classifiers.FastWWS.windowSearcher.UCRSuitePrunedDTW; +import timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher.UCRSuitePrunedDTW; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/items/DTWResult.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/DTWResult.java similarity index 95% rename from src/main/java/timeseriesweka/classifiers/FastWWS/items/DTWResult.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/DTWResult.java index 10c030122..7a20cae05 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/items/DTWResult.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/DTWResult.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.items; +package timeseriesweka.classifiers.distance_based.fast_dtw.items; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/items/ExperimentsLauncher.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/ExperimentsLauncher.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/FastWWS/items/ExperimentsLauncher.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/ExperimentsLauncher.java index d268b16d4..fae967782 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/items/ExperimentsLauncher.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/ExperimentsLauncher.java @@ -15,11 +15,11 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.items; +package timeseriesweka.classifiers.distance_based.fast_dtw.items; import java.io.File; -import timeseriesweka.classifiers.FastWWS.tools.UCR2CSV; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.UCR2CSV; import weka.core.Instances; import weka.core.converters.CSVLoader; diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/items/Itemset.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/Itemset.java similarity index 95% rename from src/main/java/timeseriesweka/classifiers/FastWWS/items/Itemset.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/Itemset.java index dbef359f2..aa0732da1 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/items/Itemset.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/Itemset.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.items; +package timeseriesweka.classifiers.distance_based.fast_dtw.items; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/items/LazyAssessNN.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/LazyAssessNN.java similarity index 99% rename from src/main/java/timeseriesweka/classifiers/FastWWS/items/LazyAssessNN.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/LazyAssessNN.java index 9a1c644aa..022cd38ef 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/items/LazyAssessNN.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/LazyAssessNN.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.items; +package timeseriesweka.classifiers.distance_based.fast_dtw.items; -import timeseriesweka.classifiers.FastWWS.sequences.SymbolicSequence; +import timeseriesweka.classifiers.distance_based.fast_dtw.sequences.SymbolicSequence; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/items/LazyAssessNNEarlyAbandon.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/LazyAssessNNEarlyAbandon.java similarity index 99% rename from src/main/java/timeseriesweka/classifiers/FastWWS/items/LazyAssessNNEarlyAbandon.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/LazyAssessNNEarlyAbandon.java index b28b8eee9..25a917bcf 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/items/LazyAssessNNEarlyAbandon.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/LazyAssessNNEarlyAbandon.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.items; +package timeseriesweka.classifiers.distance_based.fast_dtw.items; -import timeseriesweka.classifiers.FastWWS.sequences.SymbolicSequence; +import timeseriesweka.classifiers.distance_based.fast_dtw.sequences.SymbolicSequence; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/items/MonoDoubleItemSet.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/MonoDoubleItemSet.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/FastWWS/items/MonoDoubleItemSet.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/MonoDoubleItemSet.java index ab70660e2..165b03b0c 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/items/MonoDoubleItemSet.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/MonoDoubleItemSet.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.items; +package timeseriesweka.classifiers.distance_based.fast_dtw.items; import static java.lang.Math.abs; /** diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/items/MonoItemSet.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/MonoItemSet.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/FastWWS/items/MonoItemSet.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/MonoItemSet.java index 8b4bbe1e7..cbc07daee 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/items/MonoItemSet.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/MonoItemSet.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.items; +package timeseriesweka.classifiers.distance_based.fast_dtw.items; import java.util.HashMap; diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/items/SequenceStatsCache.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/SequenceStatsCache.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/FastWWS/items/SequenceStatsCache.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/SequenceStatsCache.java index 1735e55ed..a730b790b 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/items/SequenceStatsCache.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/items/SequenceStatsCache.java @@ -15,11 +15,11 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.items; +package timeseriesweka.classifiers.distance_based.fast_dtw.items; import java.util.Arrays; -import timeseriesweka.classifiers.FastWWS.sequences.SymbolicSequence; +import timeseriesweka.classifiers.distance_based.fast_dtw.sequences.SymbolicSequence; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/sequences/IndexScored.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/sequences/IndexScored.java similarity index 95% rename from src/main/java/timeseriesweka/classifiers/FastWWS/sequences/IndexScored.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/sequences/IndexScored.java index d925acc6b..68eb10a40 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/sequences/IndexScored.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/sequences/IndexScored.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.sequences; +package timeseriesweka.classifiers.distance_based.fast_dtw.sequences; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/sequences/SymbolicSequence.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/sequences/SymbolicSequence.java similarity index 98% rename from src/main/java/timeseriesweka/classifiers/FastWWS/sequences/SymbolicSequence.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/sequences/SymbolicSequence.java index d9203a5d5..74c1903cc 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/sequences/SymbolicSequence.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/sequences/SymbolicSequence.java @@ -15,18 +15,18 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.sequences; +package timeseriesweka.classifiers.distance_based.fast_dtw.sequences; import static java.lang.Math.sqrt; import java.util.ArrayList; import java.util.Arrays; -import timeseriesweka.classifiers.FastWWS.items.DTWResult; -import timeseriesweka.classifiers.FastWWS.items.Itemset; -import timeseriesweka.classifiers.FastWWS.items.MonoDoubleItemSet; -import timeseriesweka.classifiers.FastWWS.items.MonoItemSet; -import timeseriesweka.classifiers.FastWWS.tools.Tools; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.DTWResult; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.Itemset; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.MonoDoubleItemSet; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.MonoItemSet; +import timeseriesweka.classifiers.distance_based.fast_dtw.tools.Tools; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/tools/QuickSort.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/tools/QuickSort.java similarity index 98% rename from src/main/java/timeseriesweka/classifiers/FastWWS/tools/QuickSort.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/tools/QuickSort.java index 65986f504..807fc5ccf 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/tools/QuickSort.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/tools/QuickSort.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.tools; +package timeseriesweka.classifiers.distance_based.fast_dtw.tools; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/tools/Sampling.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/tools/Sampling.java similarity index 98% rename from src/main/java/timeseriesweka/classifiers/FastWWS/tools/Sampling.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/tools/Sampling.java index ed7be993a..c2cbd4d62 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/tools/Sampling.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/tools/Sampling.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.tools; +package timeseriesweka.classifiers.distance_based.fast_dtw.tools; import java.util.Random; diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/tools/Tools.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/tools/Tools.java similarity index 98% rename from src/main/java/timeseriesweka/classifiers/FastWWS/tools/Tools.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/tools/Tools.java index 487ec1699..c3bfa0fe3 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/tools/Tools.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/tools/Tools.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.tools; +package timeseriesweka.classifiers.distance_based.fast_dtw.tools; import java.util.Random; diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/tools/UCR2CSV.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/tools/UCR2CSV.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/FastWWS/tools/UCR2CSV.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/tools/UCR2CSV.java index 203e6c090..13d75308c 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/tools/UCR2CSV.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/tools/UCR2CSV.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.tools; +package timeseriesweka.classifiers.distance_based.fast_dtw.tools; import java.io.BufferedReader; import java.io.File; diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/tools/UCRArchive.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/tools/UCRArchive.java similarity index 98% rename from src/main/java/timeseriesweka/classifiers/FastWWS/tools/UCRArchive.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/tools/UCRArchive.java index 59c6151a0..729bf70b6 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/tools/UCRArchive.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/tools/UCRArchive.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.tools; +package timeseriesweka.classifiers.distance_based.fast_dtw.tools; /** * Stores dataset names for the Standard UCR Archive diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/FastWWS.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/FastWWS.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/FastWWS.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/FastWWS.java index 64d5fb29d..43cd92a64 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/FastWWS.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/FastWWS.java @@ -15,15 +15,15 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.windowSearcher; +package timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher; import java.util.ArrayList; import java.util.Collections; -import timeseriesweka.classifiers.FastWWS.items.LazyAssessNN; -import timeseriesweka.classifiers.FastWWS.items.SequenceStatsCache; -import timeseriesweka.classifiers.FastWWS.items.LazyAssessNN.RefineReturnType; -import timeseriesweka.classifiers.FastWWS.sequences.SymbolicSequence; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.LazyAssessNN; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.SequenceStatsCache; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.LazyAssessNN.RefineReturnType; +import timeseriesweka.classifiers.distance_based.fast_dtw.sequences.SymbolicSequence; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/FastWWSByPercent.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/FastWWSByPercent.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/FastWWSByPercent.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/FastWWSByPercent.java index 0aa14b823..aa33dc6b9 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/FastWWSByPercent.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/FastWWSByPercent.java @@ -15,12 +15,12 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.windowSearcher; +package timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher; -import timeseriesweka.classifiers.FastWWS.items.LazyAssessNN; -import timeseriesweka.classifiers.FastWWS.items.LazyAssessNN.RefineReturnType; -import timeseriesweka.classifiers.FastWWS.items.SequenceStatsCache; -import timeseriesweka.classifiers.FastWWS.sequences.SymbolicSequence; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.LazyAssessNN; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.LazyAssessNN.RefineReturnType; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.SequenceStatsCache; +import timeseriesweka.classifiers.distance_based.fast_dtw.sequences.SymbolicSequence; import java.util.ArrayList; import java.util.Collections; diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/FastWWSPrunedDTW.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/FastWWSPrunedDTW.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/FastWWSPrunedDTW.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/FastWWSPrunedDTW.java index f3afbd940..7b419d479 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/FastWWSPrunedDTW.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/FastWWSPrunedDTW.java @@ -15,15 +15,15 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.windowSearcher; +package timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher; import java.util.ArrayList; import java.util.Collections; -import timeseriesweka.classifiers.FastWWS.items.LazyAssessNN; -import timeseriesweka.classifiers.FastWWS.items.SequenceStatsCache; -import timeseriesweka.classifiers.FastWWS.items.LazyAssessNN.RefineReturnType; -import timeseriesweka.classifiers.FastWWS.sequences.SymbolicSequence; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.LazyAssessNN; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.SequenceStatsCache; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.LazyAssessNN.RefineReturnType; +import timeseriesweka.classifiers.distance_based.fast_dtw.sequences.SymbolicSequence; /** * Code for the paper "Efficient search of the best warping window for Dynamic Time Warping" published in SDM18 diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/LbKeoghPrunedDTW.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/LbKeoghPrunedDTW.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/LbKeoghPrunedDTW.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/LbKeoghPrunedDTW.java index 107342aba..f8588baa4 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/LbKeoghPrunedDTW.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/LbKeoghPrunedDTW.java @@ -15,14 +15,14 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.windowSearcher; +package timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher; import java.io.PrintStream; import java.util.ArrayList; import java.util.HashMap; -import timeseriesweka.classifiers.FastWWS.items.MonoDoubleItemSet; -import timeseriesweka.classifiers.FastWWS.sequences.SymbolicSequence; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.MonoDoubleItemSet; +import timeseriesweka.classifiers.distance_based.fast_dtw.sequences.SymbolicSequence; import weka.core.Attribute; import weka.core.Instance; import weka.core.Instances; diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/NaiveDTW.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/NaiveDTW.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/NaiveDTW.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/NaiveDTW.java index 425a1528f..92aae19fd 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/NaiveDTW.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/NaiveDTW.java @@ -15,14 +15,14 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.windowSearcher; +package timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher; import java.io.PrintStream; import java.util.ArrayList; import java.util.HashMap; -import timeseriesweka.classifiers.FastWWS.items.MonoDoubleItemSet; -import timeseriesweka.classifiers.FastWWS.sequences.SymbolicSequence; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.MonoDoubleItemSet; +import timeseriesweka.classifiers.distance_based.fast_dtw.sequences.SymbolicSequence; import weka.core.Attribute; import weka.core.Instance; import weka.core.Instances; diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/Trillion.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/Trillion.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/Trillion.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/Trillion.java index 3a85102bd..f01589676 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/Trillion.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/Trillion.java @@ -15,15 +15,15 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.windowSearcher; +package timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher; import java.io.PrintStream; import java.util.ArrayList; import java.util.HashMap; -import timeseriesweka.classifiers.FastWWS.items.MonoDoubleItemSet; -import timeseriesweka.classifiers.FastWWS.items.SequenceStatsCache; -import timeseriesweka.classifiers.FastWWS.sequences.SymbolicSequence; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.MonoDoubleItemSet; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.SequenceStatsCache; +import timeseriesweka.classifiers.distance_based.fast_dtw.sequences.SymbolicSequence; import weka.core.Attribute; import weka.core.Instance; import weka.core.Instances; diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/UCRSuite.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/UCRSuite.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/UCRSuite.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/UCRSuite.java index 999d2e3b8..3b6584e48 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/UCRSuite.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/UCRSuite.java @@ -15,17 +15,17 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.windowSearcher; +package timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher; import java.io.PrintStream; import java.util.ArrayList; import java.util.HashMap; -import timeseriesweka.classifiers.FastWWS.items.LazyAssessNNEarlyAbandon; -import timeseriesweka.classifiers.FastWWS.items.LazyAssessNNEarlyAbandon.RefineReturnType; -import timeseriesweka.classifiers.FastWWS.sequences.SymbolicSequence; -import timeseriesweka.classifiers.FastWWS.items.MonoDoubleItemSet; -import timeseriesweka.classifiers.FastWWS.items.SequenceStatsCache; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.LazyAssessNNEarlyAbandon; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.LazyAssessNNEarlyAbandon.RefineReturnType; +import timeseriesweka.classifiers.distance_based.fast_dtw.sequences.SymbolicSequence; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.MonoDoubleItemSet; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.SequenceStatsCache; import weka.core.Attribute; import weka.core.Instance; import weka.core.Instances; diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/UCRSuitePrunedDTW.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/UCRSuitePrunedDTW.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/UCRSuitePrunedDTW.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/UCRSuitePrunedDTW.java index cdf246dd0..49d01301b 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/UCRSuitePrunedDTW.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/UCRSuitePrunedDTW.java @@ -15,17 +15,17 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.windowSearcher; +package timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher; import java.io.PrintStream; import java.util.ArrayList; import java.util.HashMap; -import timeseriesweka.classifiers.FastWWS.items.LazyAssessNNEarlyAbandon; -import timeseriesweka.classifiers.FastWWS.items.LazyAssessNNEarlyAbandon.RefineReturnType; -import timeseriesweka.classifiers.FastWWS.sequences.SymbolicSequence; -import timeseriesweka.classifiers.FastWWS.items.MonoDoubleItemSet; -import timeseriesweka.classifiers.FastWWS.items.SequenceStatsCache; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.LazyAssessNNEarlyAbandon; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.LazyAssessNNEarlyAbandon.RefineReturnType; +import timeseriesweka.classifiers.distance_based.fast_dtw.sequences.SymbolicSequence; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.MonoDoubleItemSet; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.SequenceStatsCache; import weka.core.Attribute; import weka.core.Instance; import weka.core.Instances; diff --git a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/WindowSearcher.java b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/WindowSearcher.java similarity index 98% rename from src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/WindowSearcher.java rename to src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/WindowSearcher.java index 1e2e6c4a9..64249f308 100644 --- a/src/main/java/timeseriesweka/classifiers/FastWWS/windowSearcher/WindowSearcher.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/FastWWS/windowSearcher/WindowSearcher.java @@ -15,10 +15,10 @@ * You should have received a copy of the GNU General Public License * along with FastWWSearch. If not, see . ******************************************************************************/ -package timeseriesweka.classifiers.FastWWS.windowSearcher; +package timeseriesweka.classifiers.distance_based.fast_dtw.windowSearcher; -import timeseriesweka.classifiers.FastWWS.items.MonoDoubleItemSet; -import timeseriesweka.classifiers.FastWWS.sequences.SymbolicSequence; +import timeseriesweka.classifiers.distance_based.fast_dtw.items.MonoDoubleItemSet; +import timeseriesweka.classifiers.distance_based.fast_dtw.sequences.SymbolicSequence; import weka.classifiers.Classifier; import weka.core.Attribute; import weka.core.Instance; diff --git a/src/main/java/timeseriesweka/classifiers/NN_CID.java b/src/main/java/timeseriesweka/classifiers/distance_based/NN_CID.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/NN_CID.java rename to src/main/java/timeseriesweka/classifiers/distance_based/NN_CID.java index 1b303db7c..689c6b76f 100644 --- a/src/main/java/timeseriesweka/classifiers/NN_CID.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/NN_CID.java @@ -12,12 +12,14 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers; +package timeseriesweka.classifiers.distance_based; -import experiments.DataSets; +import experiments.data.DatasetLists; import utilities.ClassifierTools; -import weka.classifiers.lazy.kNN; +import weka_uea.classifiers.kNN; import evaluation.storage.ClassifierResults; +import experiments.data.DatasetLoading; +import timeseriesweka.classifiers.SaveParameterInfo; import weka.core.EuclideanDistance; import weka.core.Instance; import weka.core.Instances; @@ -284,12 +286,12 @@ public double distance(Instance first, Instance second, double cutoff){ public static void recreateDTWDistance(){ int c=0; - for(String s:DataSets.tscProblems46){ + for(String s:DatasetLists.tscProblems46){ kNN k= new kNN(1); NN_CID k2= new NN_CID(); k2.useDTW(); - Instances train=ClassifierTools.loadData(DataSets.problemPath+s+"\\"+s+"_TRAIN"); - Instances test=ClassifierTools.loadData(DataSets.problemPath+s+"\\"+s+"_TEST"); + Instances train=DatasetLoading.loadDataNullable(DatasetLists.problemPath+s+"\\"+s+"_TRAIN"); + Instances test=DatasetLoading.loadDataNullable(DatasetLists.problemPath+s+"\\"+s+"_TEST"); k.buildClassifier(train); k2.buildClassifier(train); double a1=ClassifierTools.accuracy(test, k); @@ -298,16 +300,16 @@ public static void recreateDTWDistance(){ if(a2>a1) c++; } - System.out.println("CID Better on "+c+" out of "+DataSets.tscProblems46.length); + System.out.println("CID Better on "+c+" out of "+DatasetLists.tscProblems46.length); } public static void recreateEuclideanDistance(){ int c=0; - for(String s:DataSets.tscProblems46){ + for(String s:DatasetLists.tscProblems46){ kNN k= new kNN(1); NN_CID k2= new NN_CID(); - Instances train=ClassifierTools.loadData(DataSets.problemPath+s+"\\"+s+"_TRAIN"); - Instances test=ClassifierTools.loadData(DataSets.problemPath+s+"\\"+s+"_TEST"); + Instances train=DatasetLoading.loadDataNullable(DatasetLists.problemPath+s+"\\"+s+"_TRAIN"); + Instances test=DatasetLoading.loadDataNullable(DatasetLists.problemPath+s+"\\"+s+"_TEST"); k.buildClassifier(train); k2.buildClassifier(train); double a1=ClassifierTools.accuracy(test, k); @@ -316,7 +318,7 @@ public static void recreateEuclideanDistance(){ if(a2>a1) c++; } - System.out.println("CID Better on "+c+" out of "+DataSets.tscProblems46.length); + System.out.println("CID Better on "+c+" out of "+DatasetLists.tscProblems46.length); } public static void main(String[]args){ recreateEuclideanDistance(); diff --git a/src/main/java/timeseriesweka/classifiers/proximityForest/ProximityForestWeka.java b/src/main/java/timeseriesweka/classifiers/distance_based/ProximityForestWrapper.java similarity index 98% rename from src/main/java/timeseriesweka/classifiers/proximityForest/ProximityForestWeka.java rename to src/main/java/timeseriesweka/classifiers/distance_based/ProximityForestWrapper.java index 33fdf1ac6..ce32ec40c 100644 --- a/src/main/java/timeseriesweka/classifiers/proximityForest/ProximityForestWeka.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/ProximityForestWrapper.java @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package timeseriesweka.classifiers.proximityForest; +package timeseriesweka.classifiers.distance_based; import core.AppContext; import core.contracts.Dataset; @@ -81,7 +81,7 @@ * * @author James Large (james.large@uea.ac.uk) */ -public class ProximityForestWeka extends AbstractClassifier { +public class ProximityForestWrapper extends AbstractClassifier { //from paper, pg18-19: /* @@ -102,7 +102,7 @@ public class ProximityForestWeka extends AbstractClassifier { private int numClasses; Instances header; - public ProximityForestWeka() { + public ProximityForestWrapper() { } public int getNum_trees() { diff --git a/src/main/java/timeseriesweka/classifiers/SlowDTW_1NN.java b/src/main/java/timeseriesweka/classifiers/distance_based/SlowDTW_1NN.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/SlowDTW_1NN.java rename to src/main/java/timeseriesweka/classifiers/distance_based/SlowDTW_1NN.java index f3fad5cba..929091684 100644 --- a/src/main/java/timeseriesweka/classifiers/SlowDTW_1NN.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/SlowDTW_1NN.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers; +package timeseriesweka.classifiers.distance_based; import fileIO.OutFile; import java.util.ArrayList; import timeseriesweka.elastic_distance_measures.DTW; @@ -21,18 +21,21 @@ import evaluation.storage.ClassifierResults; import utilities.ClassifierTools; import evaluation.evaluators.CrossValidationEvaluator; -import utilities.TrainAccuracyEstimate; -import vector_classifiers.SaveEachParameter; +import experiments.data.DatasetLoading; +import timeseriesweka.classifiers.ParameterSplittable; +import timeseriesweka.classifiers.SaveParameterInfo; +import weka_uea.classifiers.SaveEachParameter; import weka.classifiers.AbstractClassifier; import weka.classifiers.Classifier; import weka.core.*; +import timeseriesweka.classifiers.TrainAccuracyEstimator; /* This classifier does the full 101 parameter searches for window. It is only here for comparison to faster methods */ -public class SlowDTW_1NN extends AbstractClassifier implements SaveParameterInfo, TrainAccuracyEstimate,SaveEachParameter,ParameterSplittable{ +public class SlowDTW_1NN extends AbstractClassifier implements SaveParameterInfo, TrainAccuracyEstimator,SaveEachParameter,ParameterSplittable{ private boolean optimiseWindow=false; private double windowSize=1; private int maxPercentageWarp=100; @@ -59,7 +62,7 @@ public void setSaveEachParaAcc(boolean b){ saveEachParaAcc=b; } @Override - public void writeCVTrainToFile(String train) { + public void writeTrainEstimatesToFile(String train) { trainPath=train; } @Override @@ -273,8 +276,8 @@ public static void main(String[] args){ SlowDTW_1NN c = new SlowDTW_1NN(); String path="C:\\Research\\Data\\Time Series Data\\Time Series Classification\\"; - Instances test=ClassifierTools.loadData(path+"Coffee\\Coffee_TEST.arff"); - Instances train=ClassifierTools.loadData(path+"Coffee\\Coffee_TRAIN.arff"); + Instances test=DatasetLoading.loadDataNullable(path+"Coffee\\Coffee_TEST.arff"); + Instances train=DatasetLoading.loadDataNullable(path+"Coffee\\Coffee_TRAIN.arff"); train.setClassIndex(train.numAttributes()-1); c.buildClassifier(train); diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/DTW1NN.java b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/DTW1NN.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/DTW1NN.java rename to src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/DTW1NN.java index 935967eea..ad75b91f4 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/DTW1NN.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/DTW1NN.java @@ -12,10 +12,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.elastic_ensemble; +package timeseriesweka.classifiers.distance_based.elastic_ensemble; +import experiments.data.DatasetLoading; import utilities.ClassifierTools; -import weka.classifiers.lazy.kNN; +import weka_uea.classifiers.kNN; import weka.core.Capabilities; import weka.core.Instance; import weka.core.Instances; @@ -209,8 +210,8 @@ public static void runComparison() throws Exception{ // String datasetName = "SonyAiboRobotSurface1"; double r = 0.1; - Instances train = ClassifierTools.loadData(tscProbDir+datasetName+"/"+datasetName+"_TRAIN"); - Instances test = ClassifierTools.loadData(tscProbDir+datasetName+"/"+datasetName+"_TEST"); + Instances train = DatasetLoading.loadDataNullable(tscProbDir+datasetName+"/"+datasetName+"_TRAIN"); + Instances test = DatasetLoading.loadDataNullable(tscProbDir+datasetName+"/"+datasetName+"_TEST"); // old version kNN knn = new kNN(); //efaults to k = 1 without any normalisation diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/DTWKNN.java b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/DTWKNN.java similarity index 98% rename from src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/DTWKNN.java rename to src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/DTWKNN.java index ee8117ef5..294184494 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/DTWKNN.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/DTWKNN.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.elastic_ensemble; +package timeseriesweka.classifiers.distance_based.elastic_ensemble; import java.util.Comparator; import java.util.PriorityQueue; diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/ED1NN.java b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/ED1NN.java similarity index 93% rename from src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/ED1NN.java rename to src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/ED1NN.java index 053a3bd2e..3b7dbcb2c 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/ED1NN.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/ED1NN.java @@ -12,11 +12,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.elastic_ensemble; +package timeseriesweka.classifiers.distance_based.elastic_ensemble; +import experiments.data.DatasetLoading; import utilities.ClassifierTools; import weka.classifiers.Classifier; -import weka.classifiers.lazy.kNN; +import weka_uea.classifiers.kNN; import weka.core.Capabilities; import weka.core.EuclideanDistance; import weka.core.Instance; @@ -78,8 +79,8 @@ public static void runComparison() throws Exception{ String datasetName = "SonyAiboRobotSurface1"; double r = 0.1; - Instances train = ClassifierTools.loadData(tscProbDir+datasetName+"/"+datasetName+"_TRAIN"); - Instances test = ClassifierTools.loadData(tscProbDir+datasetName+"/"+datasetName+"_TEST"); + Instances train = DatasetLoading.loadDataNullable(tscProbDir+datasetName+"/"+datasetName+"_TRAIN"); + Instances test = DatasetLoading.loadDataNullable(tscProbDir+datasetName+"/"+datasetName+"_TEST"); // old version kNN knn = new kNN(); //efaults to k = 1 without any normalisation diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/ERP1NN.java b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/ERP1NN.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/ERP1NN.java rename to src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/ERP1NN.java index 62848c8e0..9d2c85659 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/ERP1NN.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/ERP1NN.java @@ -12,11 +12,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.elastic_ensemble; +package timeseriesweka.classifiers.distance_based.elastic_ensemble; +import experiments.data.DatasetLoading; import utilities.ClassifierTools; import weka.classifiers.Classifier; -import weka.classifiers.lazy.kNN; +import weka_uea.classifiers.kNN; import weka.core.Capabilities; import weka.core.Instance; import weka.core.Instances; @@ -169,8 +170,8 @@ public static void runComparison() throws Exception{ String datasetName = "SonyAiboRobotSurface1"; double r = 0.1; - Instances train = ClassifierTools.loadData(tscProbDir+datasetName+"/"+datasetName+"_TRAIN"); - Instances test = ClassifierTools.loadData(tscProbDir+datasetName+"/"+datasetName+"_TEST"); + Instances train = DatasetLoading.loadDataNullable(tscProbDir+datasetName+"/"+datasetName+"_TRAIN"); + Instances test = DatasetLoading.loadDataNullable(tscProbDir+datasetName+"/"+datasetName+"_TEST"); // old version kNN knn = new kNN(); //efaults to k = 1 without any normalisation diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/Efficient1NN.java b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/Efficient1NN.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/Efficient1NN.java rename to src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/Efficient1NN.java index ab14beb91..e1b4209eb 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/Efficient1NN.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/Efficient1NN.java @@ -12,13 +12,14 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.elastic_ensemble; +package timeseriesweka.classifiers.distance_based.elastic_ensemble; import java.io.File; import java.io.FileWriter; import java.text.DecimalFormat; import java.util.Scanner; import evaluation.storage.ClassifierResults; +import experiments.data.DatasetLoading; import utilities.ClassifierTools; import utilities.InstanceTools; import timeseriesweka.classifiers.SaveParameterInfo; @@ -241,8 +242,8 @@ public String getParameters(){ // public double writeLOOCVOutput(String tscProblemDir, String datasetName, int resampleId, String outputResultsDir, int paramId) throws Exception{ // new File(outputResultsDir+classifierIdentifier+"/Predictions/"+datasetName+"/loocvForParamOptions/").mkdirs(); // -// Instances train = ClassifierTools.loadData(tscProblemDir+datasetName+"/"+datasetName+"_TRAIN"); -// Instances test = ClassifierTools.loadData(tscProblemDir+datasetName+"/"+datasetName+"_TEST"); +// Instances train = ClassifierTools.loadDataThrowable(tscProblemDir+datasetName+"/"+datasetName+"_TRAIN"); +// Instances test = ClassifierTools.loadDataThrowable(tscProblemDir+datasetName+"/"+datasetName+"_TEST"); // // if(resampleId!=0){ // Instances[] temp = InstanceTools.resampleTrainAndTestInstances(train, test, resampleId); @@ -593,8 +594,8 @@ public void writeTrainTestOutput(String tscProblemDir, String datasetName, int r headerInfo.append(classifierIdentifier).append(System.lineSeparator()); headerInfo.append(this.getParamInformationString()).append(System.lineSeparator()); - Instances train = ClassifierTools.loadData(tscProblemDir+datasetName+"/"+datasetName+"_TRAIN"); - Instances test = ClassifierTools.loadData(tscProblemDir+datasetName+"/"+datasetName+"_TEST"); + Instances train = DatasetLoading.loadDataNullable(tscProblemDir+datasetName+"/"+datasetName+"_TRAIN"); + Instances test = DatasetLoading.loadDataNullable(tscProblemDir+datasetName+"/"+datasetName+"_TEST"); if(resampleId!=0){ Instances[] temp = InstanceTools.resampleTrainAndTestInstances(train, test, resampleId); diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/ElasticEnsembleClusterDistributer.java b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/ElasticEnsembleClusterDistributer.java similarity index 95% rename from src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/ElasticEnsembleClusterDistributer.java rename to src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/ElasticEnsembleClusterDistributer.java index 1b6b6a564..cacdedf86 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/ElasticEnsembleClusterDistributer.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/ElasticEnsembleClusterDistributer.java @@ -12,9 +12,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.elastic_ensemble; +package timeseriesweka.classifiers.distance_based.elastic_ensemble; -import timeseriesweka.classifiers.ElasticEnsemble; +import experiments.data.DatasetLoading; +import timeseriesweka.classifiers.distance_based.ElasticEnsemble; import java.io.File; import java.io.FileWriter; import java.util.Scanner; @@ -190,7 +191,7 @@ public static void clusterMaster(String[] args)throws Exception{ String classifier = args[3].trim(); int paramId = Integer.parseInt(args[4].trim())-1; - Instances train = ClassifierTools.loadData(arffDir+datasetName+"_TRAIN"); + Instances train = DatasetLoading.loadDataNullable(arffDir+datasetName+"_TRAIN"); runCv(train, datasetName, resampleId, ElasticEnsemble.ConstituentClassifiers.valueOf(classifier), paramId); }else if(args[0].equalsIgnoreCase("parseCv")){ @@ -209,8 +210,8 @@ public static void clusterMaster(String[] args)throws Exception{ int resampleId = 0; - Instances train = ClassifierTools.loadData(arffPath+datasetName+"/"+datasetName+"_TRAIN"); - Instances test = ClassifierTools.loadData(arffPath+datasetName+"/"+datasetName+"_TEST"); + Instances train = DatasetLoading.loadDataNullable(arffPath+datasetName+"/"+datasetName+"_TRAIN"); + Instances test = DatasetLoading.loadDataNullable(arffPath+datasetName+"/"+datasetName+"_TEST"); if(args.length > 4){ resampleId = Integer.parseInt(args[4].trim()); Instances temp[] = InstanceTools.resampleTrainAndTestInstances(train, test, resampleId); diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/LCSS1NN.java b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/LCSS1NN.java similarity index 95% rename from src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/LCSS1NN.java rename to src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/LCSS1NN.java index 4ab39c27c..181736b91 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/LCSS1NN.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/LCSS1NN.java @@ -12,11 +12,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.elastic_ensemble; +package timeseriesweka.classifiers.distance_based.elastic_ensemble; +import experiments.data.DatasetLoading; import utilities.ClassifierTools; -import weka.classifiers.lazy.kNN; +import weka_uea.classifiers.kNN; import weka.core.Capabilities; import weka.core.Instance; import weka.core.Instances; @@ -129,8 +130,8 @@ public static void runComparison() throws Exception{ // String datasetName = "SonyAiboRobotSurface1"; - Instances train = ClassifierTools.loadData(tscProbDir+datasetName+"/"+datasetName+"_TRAIN"); - Instances test = ClassifierTools.loadData(tscProbDir+datasetName+"/"+datasetName+"_TEST"); + Instances train = DatasetLoading.loadDataNullable(tscProbDir+datasetName+"/"+datasetName+"_TRAIN"); + Instances test = DatasetLoading.loadDataNullable(tscProbDir+datasetName+"/"+datasetName+"_TEST"); int delta = 10; double epsilon = 0.5; diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/MSM1NN.java b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/MSM1NN.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/MSM1NN.java rename to src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/MSM1NN.java index cb31d91cf..6d381d635 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/MSM1NN.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/MSM1NN.java @@ -12,11 +12,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.elastic_ensemble; +package timeseriesweka.classifiers.distance_based.elastic_ensemble; +import experiments.data.DatasetLoading; import utilities.ClassifierTools; -import weka.classifiers.lazy.kNN; +import weka_uea.classifiers.kNN; import weka.core.Capabilities; import weka.core.Instance; import weka.core.Instances; @@ -237,8 +238,8 @@ public static void runComparison() throws Exception{ String datasetName = "SonyAiboRobotSurface1"; double c = 0.1; - Instances train = ClassifierTools.loadData(tscProbDir+datasetName+"/"+datasetName+"_TRAIN"); - Instances test = ClassifierTools.loadData(tscProbDir+datasetName+"/"+datasetName+"_TEST"); + Instances train = DatasetLoading.loadDataNullable(tscProbDir+datasetName+"/"+datasetName+"_TRAIN"); + Instances test = DatasetLoading.loadDataNullable(tscProbDir+datasetName+"/"+datasetName+"_TEST"); // old version kNN knn = new kNN(); //efaults to k = 1 without any normalisation diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/TWE1NN.java b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/TWE1NN.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/TWE1NN.java rename to src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/TWE1NN.java index e24fa33bc..4df536661 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/TWE1NN.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/TWE1NN.java @@ -12,10 +12,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.elastic_ensemble; +package timeseriesweka.classifiers.distance_based.elastic_ensemble; +import experiments.data.DatasetLoading; import utilities.ClassifierTools; -import weka.classifiers.lazy.kNN; +import weka_uea.classifiers.kNN; import weka.core.Capabilities; import weka.core.Instance; import weka.core.Instances; @@ -232,8 +233,8 @@ public static void runComparison() throws Exception{ // String datasetName = "Coffee"; String datasetName = "SonyAiboRobotSurface1"; - Instances train = ClassifierTools.loadData(tscProbDir+datasetName+"/"+datasetName+"_TRAIN"); - Instances test = ClassifierTools.loadData(tscProbDir+datasetName+"/"+datasetName+"_TEST"); + Instances train = DatasetLoading.loadDataNullable(tscProbDir+datasetName+"/"+datasetName+"_TRAIN"); + Instances test = DatasetLoading.loadDataNullable(tscProbDir+datasetName+"/"+datasetName+"_TEST"); // old version kNN knn = new kNN(); //efaults to k = 1 without any normalisation diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/WDTW1NN.java b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/WDTW1NN.java similarity index 93% rename from src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/WDTW1NN.java rename to src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/WDTW1NN.java index 56e42d994..fd2df6e04 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/elastic_ensemble/WDTW1NN.java +++ b/src/main/java/timeseriesweka/classifiers/distance_based/elastic_ensemble/WDTW1NN.java @@ -12,11 +12,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.elastic_ensemble; +package timeseriesweka.classifiers.distance_based.elastic_ensemble; +import experiments.data.DatasetLoading; import utilities.ClassifierTools; import weka.classifiers.Classifier; -import weka.classifiers.lazy.kNN; +import weka_uea.classifiers.kNN; import weka.core.Capabilities; import weka.core.Instance; import weka.core.Instances; @@ -134,8 +135,8 @@ public static void runComparison() throws Exception{ // String datasetName = "SonyAiboRobotSurface1"; double r = 0.1; - Instances train = ClassifierTools.loadData(tscProbDir+datasetName+"/"+datasetName+"_TRAIN"); - Instances test = ClassifierTools.loadData(tscProbDir+datasetName+"/"+datasetName+"_TEST"); + Instances train = DatasetLoading.loadDataNullable(tscProbDir+datasetName+"/"+datasetName+"_TRAIN"); + Instances test = DatasetLoading.loadDataNullable(tscProbDir+datasetName+"/"+datasetName+"_TEST"); // old version kNN knn = new kNN(); //efaults to k = 1 without any normalisation @@ -193,7 +194,7 @@ public static void main(String[] args) throws Exception{ // runComparison(); // } - Instances train = ClassifierTools.loadData("C:/users/sjx07ngu/dropbox/tsc problems/SonyAiboRobotSurface1/SonyAiboRobotSurface1_TRAIN"); + Instances train = DatasetLoading.loadDataNullable("C:/users/sjx07ngu/dropbox/tsc problems/SonyAiboRobotSurface1/SonyAiboRobotSurface1_TRAIN"); Instance one, two; one = train.firstInstance(); diff --git a/src/main/java/timeseriesweka/classifiers/CRISE.java b/src/main/java/timeseriesweka/classifiers/frequency_based/CRISE.java similarity index 98% rename from src/main/java/timeseriesweka/classifiers/CRISE.java rename to src/main/java/timeseriesweka/classifiers/frequency_based/CRISE.java index e3a3a5cfd..0e22928a6 100644 --- a/src/main/java/timeseriesweka/classifiers/CRISE.java +++ b/src/main/java/timeseriesweka/classifiers/frequency_based/CRISE.java @@ -12,10 +12,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers; +package timeseriesweka.classifiers.frequency_based; +import experiments.data.DatasetLoading; import fileIO.FullAccessOutFile; -import timeseriesweka.classifiers.contract_interfaces.TrainTimeContractClassifier; import timeseriesweka.filters.ACF; import timeseriesweka.filters.ARMA; import timeseriesweka.filters.FFT; @@ -30,6 +30,9 @@ import java.util.Collections; import java.util.Random; import java.util.concurrent.TimeUnit; +import timeseriesweka.classifiers.Checkpointable; +import timeseriesweka.classifiers.SaveParameterInfo; +import timeseriesweka.classifiers.TrainTimeContractable; /** @@ -69,7 +72,7 @@ * @date 19/02/19 **/ -public class CRISE implements Classifier, SaveParameterInfo, TrainTimeContractClassifier, CheckpointClassifier{ +public class CRISE implements Classifier, SaveParameterInfo, TrainTimeContractable, Checkpointable{ private int maxIntervalLength = 0; private int minIntervalLength = 2; @@ -881,9 +884,9 @@ public static void main(String[] args){ String problemName = "StarLightCurves"; //String problemName = "InsectWingbeat"; - train = ClassifierTools.loadData("Z:\\Data\\TSCProblems2018\\"+problemName+"\\"+problemName+"_TRAIN.arff"); - test = ClassifierTools.loadData("Z:\\Data\\TSCProblems2018\\"+problemName+"\\"+problemName+"_TEST.arff"); - //instances = ClassifierTools.loadData("Z:\\Data\\TSCProblemsAudio2019\\InsectWingbeat\\InsectWingbeat.arff"); + train = DatasetLoading.loadDataNullable("Z:\\Data\\TSCProblems2018\\"+problemName+"\\"+problemName+"_TRAIN.arff"); + test = DatasetLoading.loadDataNullable("Z:\\Data\\TSCProblems2018\\"+problemName+"\\"+problemName+"_TEST.arff"); + //instances = ClassifierTools.loadDataThrowable("Z:\\Data\\TSCProblemsAudio2019\\InsectWingbeat\\InsectWingbeat.arff"); //Instances[] data = InstanceTools.resampleInstances(instances, 0, 0.5); //train = data[0]; //test = data[1]; diff --git a/src/main/java/timeseriesweka/classifiers/RISE.java b/src/main/java/timeseriesweka/classifiers/frequency_based/RISE.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/RISE.java rename to src/main/java/timeseriesweka/classifiers/frequency_based/RISE.java index 688ccbe36..50036549c 100644 --- a/src/main/java/timeseriesweka/classifiers/RISE.java +++ b/src/main/java/timeseriesweka/classifiers/frequency_based/RISE.java @@ -1,4 +1,4 @@ -package timeseriesweka.classifiers; +package timeseriesweka.classifiers.frequency_based; /* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -13,8 +13,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ +import experiments.data.DatasetLoading; import java.util.ArrayList; import java.util.Random; +import timeseriesweka.classifiers.AbstractClassifierWithTrainingInfo; +import timeseriesweka.classifiers.SaveParameterInfo; import utilities.ClassifierTools; import weka.classifiers.AbstractClassifier; import weka.classifiers.Classifier; @@ -35,6 +38,7 @@ import weka.core.Utils; import weka.filters.Filter; import weka.filters.SimpleFilter; +import timeseriesweka.classifiers.SubSampleTrainer; /** * Development code for RISE @@ -90,7 +94,7 @@ **/ -public class RISE extends AbstractClassifierWithTrainingInfo implements SaveParameterInfo, SubSampleTrain, Randomizable,TechnicalInformationHandler{ +public class RISE extends AbstractClassifierWithTrainingInfo implements SaveParameterInfo, SubSampleTrainer, Randomizable,TechnicalInformationHandler{ /** Default to a random tree */ private Classifier baseClassifierTemplate=new RandomTree(); /** Ensemble base classifiers */ @@ -407,8 +411,8 @@ public double[] distributionForInstance(Instance ins) throws Exception { } public static void main(String[] arg) throws Exception{ - Instances train=ClassifierTools.loadData("C:\\Users\\ajb\\Dropbox\\TSC Problems\\ItalyPowerDemand\\ItalyPowerDemand_TRAIN"); - Instances test=ClassifierTools.loadData("C:\\Users\\ajb\\Dropbox\\TSC Problems\\ItalyPowerDemand\\ItalyPowerDemand_TEST"); + Instances train=DatasetLoading.loadDataNullable("C:\\Users\\ajb\\Dropbox\\TSC Problems\\ItalyPowerDemand\\ItalyPowerDemand_TRAIN"); + Instances test=DatasetLoading.loadDataNullable("C:\\Users\\ajb\\Dropbox\\TSC Problems\\ItalyPowerDemand\\ItalyPowerDemand_TEST"); RISE rif = new RISE(); rif.setTransforms("ACF","AR","AFC"); for(Filter f: rif.filters) diff --git a/src/main/java/timeseriesweka/classifiers/FlatCote.java b/src/main/java/timeseriesweka/classifiers/hybrids/FlatCote.java similarity index 92% rename from src/main/java/timeseriesweka/classifiers/FlatCote.java rename to src/main/java/timeseriesweka/classifiers/hybrids/FlatCote.java index 107842529..23372369f 100644 --- a/src/main/java/timeseriesweka/classifiers/FlatCote.java +++ b/src/main/java/timeseriesweka/classifiers/hybrids/FlatCote.java @@ -12,14 +12,17 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers; +package timeseriesweka.classifiers.hybrids; +import experiments.data.DatasetLoading; +import timeseriesweka.classifiers.distance_based.ElasticEnsemble; import java.util.ArrayList; import java.util.Random; +import timeseriesweka.classifiers.AbstractClassifierWithTrainingInfo; import timeseriesweka.filters.shapelet_transforms.ShapeletTransform; import timeseriesweka.filters.shapelet_transforms.ShapeletTransformTimingUtilities; import utilities.ClassifierTools; -import vector_classifiers.CAWPE; +import weka_uea.classifiers.ensembles.CAWPE; import weka.core.Instance; import weka.core.Instances; import weka.core.TechnicalInformation; @@ -172,8 +175,8 @@ public double classifyInstance(Instance test) throws Exception{ public static void main(String[] args) throws Exception{ FlatCote fc = new FlatCote(); - Instances train = ClassifierTools.loadData("C:/users/sjx07ngu/dropbox/tsc problems/ItalyPowerDemand/ItalyPowerDemand_TRAIN"); - Instances test = ClassifierTools.loadData("C:/users/sjx07ngu/dropbox/tsc problems/ItalyPowerDemand/ItalyPowerDemand_TEST"); + Instances train = DatasetLoading.loadDataNullable("C:/users/sjx07ngu/dropbox/tsc problems/ItalyPowerDemand/ItalyPowerDemand_TRAIN"); + Instances test = DatasetLoading.loadDataNullable("C:/users/sjx07ngu/dropbox/tsc problems/ItalyPowerDemand/ItalyPowerDemand_TEST"); fc.buildClassifier(train); int correct = 0; diff --git a/src/main/java/timeseriesweka/classifiers/HiveCote.java b/src/main/java/timeseriesweka/classifiers/hybrids/HiveCote.java similarity index 93% rename from src/main/java/timeseriesweka/classifiers/HiveCote.java rename to src/main/java/timeseriesweka/classifiers/hybrids/HiveCote.java index f4bdb694d..d3e45a729 100644 --- a/src/main/java/timeseriesweka/classifiers/HiveCote.java +++ b/src/main/java/timeseriesweka/classifiers/hybrids/HiveCote.java @@ -12,9 +12,14 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers; +package timeseriesweka.classifiers.hybrids; +import experiments.data.DatasetLoading; +import timeseriesweka.classifiers.interval_based.TSF; +import timeseriesweka.classifiers.frequency_based.RISE; +import timeseriesweka.classifiers.dictionary_based.BOSS; +import timeseriesweka.classifiers.distance_based.ElasticEnsemble; import java.io.File; import java.io.FileWriter; import java.util.ArrayList; @@ -22,17 +27,18 @@ import java.util.Random; import java.util.Scanner; import java.util.concurrent.TimeUnit; +import timeseriesweka.classifiers.AbstractClassifierWithTrainingInfo; -import timeseriesweka.classifiers.contract_interfaces.TrainTimeContractClassifier; import timeseriesweka.filters.shapelet_transforms.ShapeletTransform; -import timeseriesweka.classifiers.cote.HiveCoteModule; +import timeseriesweka.classifiers.TrainAccuracyEstimator; import utilities.ClassifierTools; import weka.classifiers.Classifier; -import vector_classifiers.CAWPE; +import weka_uea.classifiers.ensembles.CAWPE; import weka.core.Instance; import weka.core.Instances; import weka.core.TechnicalInformation; import weka.core.TechnicalInformationHandler; +import timeseriesweka.classifiers.TrainTimeContractable; /** * NOTE: consider this code experimental. This is a first pass and may not be final; * it has been informally tested but awaiting rigorous testing before being signed off. @@ -69,7 +75,7 @@ * To review: whole file writing thing. */ -public class HiveCote extends AbstractClassifierWithTrainingInfo implements TrainTimeContractClassifier,TechnicalInformationHandler{ +public class HiveCote extends AbstractClassifierWithTrainingInfo implements TrainTimeContractable,TechnicalInformationHandler{ private ArrayList classifiers; @@ -179,16 +185,16 @@ public void buildClassifier(Instances train) throws Exception{ for(int i = 0; i < classifiers.size(); i++){ - // if classifier is an implementation of HiveCoteModule, no need to cv for ensemble accuracy as it can self-report - // e.g. of the default modules, EE, CAWPE, and BOSS should all have this functionality (group a); RISE and TSF do not currently (group b) so must manualy cv - if(classifiers.get(i) instanceof HiveCoteModule){ +// if classifier is an implementation of TrainAccuracyEstimator, no need to cv for ensemble accuracy as it can self-report +// e.g. of the default modules, EE, CAWPE, and BOSS should all have this functionality (group a); RISE and TSF do not currently (group b) so must manualy cv + if(classifiers.get(i) instanceof TrainAccuracyEstimator){ optionalOutputLine("training (group a): "+this.names.get(i)); classifiers.get(i).buildClassifier(train); - modules[i] = new ConstituentHiveEnsemble(this.names.get(i), this.classifiers.get(i), ((HiveCoteModule) classifiers.get(i)).getEnsembleCvAcc()); + modules[i] = new ConstituentHiveEnsemble(this.names.get(i), this.classifiers.get(i), ((TrainAccuracyEstimator) classifiers.get(i)).getTrainAcc()); if(this.fileWriting){ outputFilePathAndName = fileOutputDir+names.get(i)+"/Predictions/"+this.fileOutputDataset+"/trainFold"+this.fileOutputResampleId+".csv"; - genericCvResultsFileWriter(outputFilePathAndName, train, ((HiveCoteModule)(modules[i].classifier)).getEnsembleCvPreds(), this.fileOutputDataset, modules[i].classifierName, ((HiveCoteModule)(modules[i].classifier)).getParameters(), modules[i].ensembleCvAcc); + genericCvResultsFileWriter(outputFilePathAndName, train, ((TrainAccuracyEstimator)(modules[i].classifier)).getTrainPreds(), this.fileOutputDataset, modules[i].classifierName, ((TrainAccuracyEstimator)(modules[i].classifier)).getParameters(), modules[i].ensembleCvAcc); } @@ -615,8 +621,8 @@ public void setTrainTimeLimit(TimeUnit time, long amount) { contractTime=true; long used=0; for(Classifier c:classifiers){ - if(c instanceof TrainTimeContractClassifier) - ((TrainTimeContractClassifier) c).setTrainTimeLimit(time, amount/classifiers.size()); + if(c instanceof TrainTimeContractable) + ((TrainTimeContractable) c).setTrainTimeLimit(time, amount/classifiers.size()); used+=amount/classifiers.size(); } long remaining = amount-used; @@ -624,8 +630,8 @@ public void setTrainTimeLimit(TimeUnit time, long amount) { //for no real reason othe than simplicity and to avoid hidden randomization. if(remaining>0){ for(Classifier c:classifiers){ - if(c instanceof TrainTimeContractClassifier){ - ((TrainTimeContractClassifier) c).setTrainTimeLimit(time, amount/classifiers.size()+remaining); + if(c instanceof TrainTimeContractable){ + ((TrainTimeContractable) c).setTrainTimeLimit(time, amount/classifiers.size()+remaining); break; } } @@ -655,8 +661,8 @@ public static void main(String[] args) throws Exception{ String datasetName = "ItalyPowerDemand"; // String datasetName = "MoteStrain"; - Instances train = ClassifierTools.loadData("C:/users/sjx07ngu/dropbox/tsc problems/"+datasetName+"/"+datasetName+"_TRAIN"); - Instances test = ClassifierTools.loadData("C:/users/sjx07ngu/dropbox/tsc problems/"+datasetName+"/"+datasetName+"_TEST"); + Instances train = DatasetLoading.loadDataNullable("C:/users/sjx07ngu/dropbox/tsc problems/"+datasetName+"/"+datasetName+"_TRAIN"); + Instances test = DatasetLoading.loadDataNullable("C:/users/sjx07ngu/dropbox/tsc problems/"+datasetName+"/"+datasetName+"_TEST"); HiveCote hive = new HiveCote(); hive.makeShouty(); diff --git a/src/main/java/timeseriesweka/classifiers/cote/AbstractPostProcessedCote.java b/src/main/java/timeseriesweka/classifiers/hybrids/cote/AbstractPostProcessedCote.java similarity index 99% rename from src/main/java/timeseriesweka/classifiers/cote/AbstractPostProcessedCote.java rename to src/main/java/timeseriesweka/classifiers/hybrids/cote/AbstractPostProcessedCote.java index 655dee99b..d538e9a32 100644 --- a/src/main/java/timeseriesweka/classifiers/cote/AbstractPostProcessedCote.java +++ b/src/main/java/timeseriesweka/classifiers/hybrids/cote/AbstractPostProcessedCote.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.cote; +package timeseriesweka.classifiers.hybrids.cote; import java.io.File; import java.io.FileWriter; diff --git a/src/main/java/timeseriesweka/classifiers/cote/HiveCotePostProcessed.java b/src/main/java/timeseriesweka/classifiers/hybrids/cote/HiveCotePostProcessed.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/cote/HiveCotePostProcessed.java rename to src/main/java/timeseriesweka/classifiers/hybrids/cote/HiveCotePostProcessed.java index 3521473f5..303d0fdf3 100644 --- a/src/main/java/timeseriesweka/classifiers/cote/HiveCotePostProcessed.java +++ b/src/main/java/timeseriesweka/classifiers/hybrids/cote/HiveCotePostProcessed.java @@ -12,13 +12,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.cote; +package timeseriesweka.classifiers.hybrids.cote; -import experiments.DataSets; +import experiments.data.DatasetLists; import java.util.ArrayList; -import static utilities.ClassifierTools.loadData; - /** * * @author Jason Lines (j.lines@uea.ac.uk) @@ -179,7 +177,7 @@ public static void main(String[] args) throws Exception{ classifiersToUse.add("TSF"); System.out.println("votes"); for(double alpha:alphas){ - for(String datasetName: DataSets.tscProblems85){ + for(String datasetName: DatasetLists.tscProblems85){ System.out.println(datasetName+" "+alpha); for(int resample = 0; resample < 100; resample++){ try{ diff --git a/src/main/java/timeseriesweka/classifiers/LPS.java b/src/main/java/timeseriesweka/classifiers/interval_based/LPS.java similarity index 98% rename from src/main/java/timeseriesweka/classifiers/LPS.java rename to src/main/java/timeseriesweka/classifiers/interval_based/LPS.java index 83566b9ff..3b8c43d68 100644 --- a/src/main/java/timeseriesweka/classifiers/LPS.java +++ b/src/main/java/timeseriesweka/classifiers/interval_based/LPS.java @@ -12,9 +12,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers; +package timeseriesweka.classifiers.interval_based; -import experiments.DataSets; +import experiments.data.DatasetLists; +import experiments.data.DatasetLoading; import fileIO.OutFile; import java.io.FileInputStream; import java.io.ObjectInputStream; @@ -26,6 +27,8 @@ import java.util.Queue; import java.util.Random; import java.util.Vector; +import timeseriesweka.classifiers.AbstractClassifierWithTrainingInfo; +import timeseriesweka.classifiers.ParameterSplittable; import utilities.ClassifierTools; import weka.classifiers.AbstractClassifier; import weka.classifiers.Classifier; @@ -274,15 +277,15 @@ public TechnicalInformation getTechnicalInformation() { public static void compareToPublished() throws Exception{ DecimalFormat df=new DecimalFormat("###.###"); - OutFile res=new OutFile(DataSets.path+"recreatedLPS.csv"); + OutFile res=new OutFile(DatasetLists.path+"recreatedLPS.csv"); int b=0; int t=0; System.out.println("problem,recreated,published"); for(int i=0;i. */ -package timeseriesweka.classifiers; +package timeseriesweka.classifiers.interval_based; import fileIO.OutFile; import java.util.ArrayList; @@ -26,11 +26,13 @@ import weka.core.Instance; import weka.core.Instances; import weka.core.TechnicalInformation; -import utilities.TrainAccuracyEstimate; import evaluation.storage.ClassifierResults; +import experiments.data.DatasetLoading; import java.io.File; import java.util.concurrent.TimeUnit; import java.util.function.Function; +import timeseriesweka.classifiers.AbstractClassifierWithTrainingInfo; +import timeseriesweka.classifiers.SaveParameterInfo; import weka.classifiers.Classifier; import weka.classifiers.meta.Bagging; import weka.core.Capabilities; @@ -38,6 +40,7 @@ import weka.core.Randomizable; import weka.core.TechnicalInformationHandler; import weka.core.Utils; +import timeseriesweka.classifiers.TrainAccuracyEstimator; /** @@ -105,7 +108,8 @@ Time Series Forest (TimeSeriesForest) Deng 2013: **/ -public class TSF extends AbstractClassifierWithTrainingInfo implements SaveParameterInfo, TrainAccuracyEstimate, Randomizable,TechnicalInformationHandler{ +public class TSF extends AbstractClassifierWithTrainingInfo + implements SaveParameterInfo, TrainAccuracyEstimator, Randomizable,TechnicalInformationHandler{ //Static defaults private final static int DEFAULT_NUM_CLASSIFIERS=500; @@ -201,7 +205,7 @@ public void setSeed(int s){ * @param train */ @Override - public void writeCVTrainToFile(String train) { + public void writeTrainEstimatesToFile(String train) { trainCVPath=train; trainAccuracyEst=true; } @@ -720,10 +724,10 @@ public static void main(String[] arg) throws Exception{ File f= new File(resultsLocation+problem); if(!f.isDirectory()) f.mkdirs(); - Instances train=ClassifierTools.loadData(dataLocation+problem+"\\"+problem+"_TRAIN"); - Instances test=ClassifierTools.loadData(dataLocation+problem+"\\"+problem+"_TEST"); + Instances train=DatasetLoading.loadDataNullable(dataLocation+problem+"\\"+problem+"_TRAIN"); + Instances test=DatasetLoading.loadDataNullable(dataLocation+problem+"\\"+problem+"_TEST"); TSF tsf = new TSF(); - tsf.writeCVTrainToFile(resultsLocation+problem+"trainFold0.csv"); + tsf.writeTrainEstimatesToFile(resultsLocation+problem+"trainFold0.csv"); double a; tsf.buildClassifier(train); System.out.println("build ok: original atts="+(train.numAttributes()-1)+" new atts ="+tsf.testHolder.numAttributes()+" num trees = "+tsf.numClassifiers+" num intervals = "+tsf.numIntervals); diff --git a/src/main/java/timeseriesweka/classifiers/FastShapelets.java b/src/main/java/timeseriesweka/classifiers/shapelet_based/FastShapelets.java similarity index 98% rename from src/main/java/timeseriesweka/classifiers/FastShapelets.java rename to src/main/java/timeseriesweka/classifiers/shapelet_based/FastShapelets.java index e2397c94d..44f50a175 100644 --- a/src/main/java/timeseriesweka/classifiers/FastShapelets.java +++ b/src/main/java/timeseriesweka/classifiers/shapelet_based/FastShapelets.java @@ -12,8 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers; +package timeseriesweka.classifiers.shapelet_based; +import experiments.data.DatasetLoading; import java.io.File; import java.util.ArrayList; import java.util.Arrays; @@ -23,6 +24,7 @@ import java.util.HashSet; import java.util.Map; import java.util.Random; +import timeseriesweka.classifiers.AbstractClassifierWithTrainingInfo; import static utilities.GenericTools.cloneArrayList; import utilities.InstanceTools; import weka.classifiers.Classifier; @@ -692,8 +694,8 @@ public static void main(String[] args) throws Exception { String datasetLocation = dotdotSlash + dotdotSlash + "resampled data sets" + File.separator + datasetName + File.separator + datasetName; for (int i = 0; i < 100; i++) { - Instances train = utilities.ClassifierTools.loadData(datasetLocation + i + "_TRAIN"); - Instances test = utilities.ClassifierTools.loadData(datasetLocation + i + "_TEST"); + Instances train = DatasetLoading.loadDataNullable(datasetLocation + i + "_TRAIN"); + Instances test = DatasetLoading.loadDataNullable(datasetLocation + i + "_TEST"); FastShapelets fs = new FastShapelets(); diff --git a/src/main/java/timeseriesweka/classifiers/LearnShapelets.java b/src/main/java/timeseriesweka/classifiers/shapelet_based/LearnShapelets.java similarity index 98% rename from src/main/java/timeseriesweka/classifiers/LearnShapelets.java rename to src/main/java/timeseriesweka/classifiers/shapelet_based/LearnShapelets.java index 431821cae..b879cb6b1 100644 --- a/src/main/java/timeseriesweka/classifiers/LearnShapelets.java +++ b/src/main/java/timeseriesweka/classifiers/shapelet_based/LearnShapelets.java @@ -12,12 +12,15 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers; +package timeseriesweka.classifiers.shapelet_based; +import experiments.data.DatasetLoading; import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Random; +import timeseriesweka.classifiers.AbstractClassifierWithTrainingInfo; +import timeseriesweka.classifiers.ParameterSplittable; import utilities.StatisticalUtilities; import utilities.InstanceTools; @@ -794,8 +797,8 @@ public static void main(String[] args) throws Exception{ String samplePath = args[0] + fileExtension; //load the train and test. - Instances testSet = utilities.ClassifierTools.loadData(samplePath + "_TEST"); - Instances trainSet = utilities.ClassifierTools.loadData(samplePath + "_TRAIN"); + Instances testSet = DatasetLoading.loadDataNullable(samplePath + "_TEST"); + Instances trainSet = DatasetLoading.loadDataNullable(samplePath + "_TRAIN"); LearnShapelets ls = new LearnShapelets(); ls.setSeed(0); diff --git a/src/main/java/timeseriesweka/classifiers/ShapeletTransformClassifier.java b/src/main/java/timeseriesweka/classifiers/shapelet_based/ShapeletTransformClassifier.java similarity index 79% rename from src/main/java/timeseriesweka/classifiers/ShapeletTransformClassifier.java rename to src/main/java/timeseriesweka/classifiers/shapelet_based/ShapeletTransformClassifier.java index bed7ea188..d99d46660 100644 --- a/src/main/java/timeseriesweka/classifiers/ShapeletTransformClassifier.java +++ b/src/main/java/timeseriesweka/classifiers/shapelet_based/ShapeletTransformClassifier.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers; +package timeseriesweka.classifiers.shapelet_based; -import timeseriesweka.classifiers.contract_interfaces.TrainTimeContractClassifier; +import experiments.data.DatasetLoading; import timeseriesweka.filters.shapelet_transforms.ShapeletTransformFactory; import timeseriesweka.filters.shapelet_transforms.ShapeletTransform; import timeseriesweka.filters.shapelet_transforms.Shapelet; @@ -26,7 +26,7 @@ import java.math.MathContext; import utilities.ClassifierTools; import utilities.InstanceTools; -import vector_classifiers.CAWPE; +import weka_uea.classifiers.ensembles.CAWPE; import weka.core.Instance; import weka.core.Instances; import static timeseriesweka.filters.shapelet_transforms.ShapeletTransformTimingUtilities.nanoToOp; @@ -35,18 +35,20 @@ import timeseriesweka.filters.shapelet_transforms.search_functions.ShapeletSearch; import timeseriesweka.filters.shapelet_transforms.search_functions.ShapeletSearch.SearchType; import timeseriesweka.filters.shapelet_transforms.search_functions.ShapeletSearchOptions; -import timeseriesweka.classifiers.cote.HiveCoteModule; -import timeseriesweka.classifiers.ensembles.voting.MajorityConfidence; -import timeseriesweka.classifiers.ensembles.weightings.TrainAcc; +import weka_uea.classifiers.ensembles.voting.MajorityConfidence; +import weka_uea.classifiers.ensembles.weightings.TrainAcc; import fileIO.FullAccessOutFile; import fileIO.OutFile; import java.security.InvalidParameterException; import java.util.ArrayList; import java.util.concurrent.TimeUnit; +import timeseriesweka.classifiers.AbstractClassifierWithTrainingInfo; +import timeseriesweka.classifiers.SaveParameterInfo; +import timeseriesweka.classifiers.TrainAccuracyEstimator; -import timeseriesweka.classifiers.ensembles.voting.MajorityVote; -import timeseriesweka.classifiers.ensembles.weightings.EqualWeighting; +import weka_uea.classifiers.ensembles.voting.MajorityVote; +import weka_uea.classifiers.ensembles.weightings.EqualWeighting; import weka.classifiers.Classifier; import weka.classifiers.bayes.NaiveBayes; import weka.classifiers.functions.SMO; @@ -55,29 +57,34 @@ import weka.classifiers.meta.RotationForest; import weka.classifiers.trees.J48; import weka.classifiers.trees.RandomForest; +import timeseriesweka.classifiers.TrainTimeContractable; +import weka_uea.classifiers.ensembles.ContractRotationForest; /** * * By default, performs a shapelet transform through full enumeration (max 1000 shapelets selected) - * then classifies with the heterogeneous ensemble CAWPE, using randF, rotF and SVMQ. + * then classifies with rotation forest. * If can be contracted to a maximum run time for shapelets, and can be configured for a different * */ -public class ShapeletTransformClassifier extends AbstractClassifierWithTrainingInfo implements HiveCoteModule, SaveParameterInfo, TrainTimeContractClassifier { - - //Minimum number of instances per class in the train set +public class ShapeletTransformClassifier extends AbstractClassifierWithTrainingInfo implements SaveParameterInfo, TrainTimeContractable { +//Basic pipeline is transform, then build classifier on transformed space + private ShapeletTransform transform; +//Transformed shapelets header info stored here + private Instances shapeletData; +//Final classifier built on transformed shapelet + private Classifier classifier; +//Minimum number of instances per class in the train set public static final int minimumRepresentation = 25; - private static int MAXTRANSFORMSIZE=1000; //Default number in transform +//Default number in transform + private static int MAXTRANSFORMSIZE=1000; private boolean preferShortShapelets = false; private String shapeletOutputPath; - private CAWPE ensemble; - private ShapeletTransform transform; - private Instances shapeletData; int[] redundantFeatures; private boolean doTransform=true; private long transformBuildTime; - int numShapeletsInTransform = MAXTRANSFORMSIZE; + private int numShapeletsInTransform = MAXTRANSFORMSIZE; private SearchType searchType = SearchType.IMP_RANDOM; private long numShapelets = 0; private long seed = 0; @@ -87,7 +94,7 @@ public class ShapeletTransformClassifier extends AbstractClassifierWithTraining private boolean checkpoint=false; private boolean saveShapelets=false; private String shapeletPath=""; - +//Can be configured to multivariate enum TransformType{UNI,MULTI_D,MULTI_I}; TransformType type=TransformType.UNI; @@ -115,7 +122,10 @@ public void setTransformType(String t){ } public ShapeletTransformClassifier(){ - configureDefaultEnsemble(); + classifier= new ContractRotationForest(); + + +// configureCAWPEEnsemble(); } @@ -138,19 +148,25 @@ public void setPerformCV(boolean b) { @Override public String getParameters(){ - String paras=transform.getParameters(); - String ensemble=this.ensemble.getParameters(); - return "BuildTime,"+trainResults.getBuildTime()+",CVAcc,"+trainResults.getAcc()+",TransformBuildTime,"+transformBuildTime+",timeLimit,"+timeLimit+",TransformParas,"+paras+",EnsembleParas,"+ensemble; + String paras=transform.getParameters(); + String classifierParas="No Classifier Para Info"; + if(classifier instanceof SaveParameterInfo) + classifierParas=((SaveParameterInfo)classifier).getParameters(); + return "BuildTime,"+trainResults.getBuildTime()+",CVAcc,"+trainResults.getAcc()+",TransformBuildTime,"+transformBuildTime+",timeLimit,"+timeLimit+",TransformParas,"+paras+",ClassifierParas,"+classifierParas; } - @Override - public double getEnsembleCvAcc() { - return ensemble.getEnsembleCvAcc(); +// @Override + public double getTrainAcc() { + if(classifier instanceof TrainAccuracyEstimator) + return ((TrainAccuracyEstimator)classifier).getTrainAcc(); + throw new RuntimeException(" ERRROR, the classifier is not a TrainAccuracyEstimator so cannot be accessed in this way: in ShapeletTransformClassifier"); } - @Override - public double[] getEnsembleCvPreds() { - return ensemble.getEnsembleCvPreds(); +// @Override + public double[] getTrainPreds() { + if(classifier instanceof TrainAccuracyEstimator) + return ((TrainAccuracyEstimator)classifier).getTrainPreds(); + throw new RuntimeException(" ERRROR, the classifier is not a TrainAccuracyEstimator so cannot be accessed in this way: in ShapeletTransformClassifier"); } public void doSTransform(boolean b){ @@ -200,10 +216,12 @@ public void buildClassifier(Instances data) throws Exception { getCapabilities().testWithFail(data); long startTime=System.nanoTime(); - shapeletData = doTransform ? createTransformData(data, timeLimit) : data; - transformBuildTime=System.currentTimeMillis()-startTime; - if(setSeed) - ensemble.setRandSeed((int) seed); + long transformTime=(long)((((double)timeLimit)*2.0)/3.0); + System.out.println("Time limit = "+timeLimit+" transform time "+transformTime); + shapeletData = doTransform ? createTransformData(data, transformTime) : data; + transformBuildTime=System.nanoTime()-startTime; +// if(setSeed) +// classifier.setRandSeed((int) seed); // if(debug) redundantFeatures=InstanceTools.removeRedundantTrainAttributes(shapeletData); if(saveShapelets){ @@ -222,25 +240,25 @@ public void buildClassifier(Instances data) throws Exception { of.writeString("\n"); of.writeString(transform.toString()); of.closeFile(); - } - - ensemble.buildClassifier(shapeletData); + long classifierTime=timeLimit-transformBuildTime; + if(classifier instanceof TrainTimeContractable) + ((TrainTimeContractable)classifier).setTrainTimeLimit(classifierTime); + classifier.buildClassifier(shapeletData); shapeletData=new Instances(data,0); trainResults.setBuildTime(System.nanoTime()-startTime); } /** * Classifiers used in the HIVE COTE paper */ - public void configureDefaultEnsemble(){ + public void configureCAWPEEnsemble(){ //HIVE_SHAPELET_SVMQ HIVE_SHAPELET_RandF HIVE_SHAPELET_RotF //HIVE_SHAPELET_NN HIVE_SHAPELET_NB HIVE_SHAPELET_C45 HIVE_SHAPELET_SVML - ensemble=new CAWPE(); - ensemble.setWeightingScheme(new TrainAcc(4)); - ensemble.setVotingScheme(new MajorityConfidence()); + classifier=new CAWPE(); + ((CAWPE)classifier).setWeightingScheme(new TrainAcc(1)); + ((CAWPE)classifier).setVotingScheme(new MajorityConfidence()); Classifier[] classifiers = new Classifier[7]; - String[] classifierNames = new String[7]; - + String[] classifierNames = new String[7]; SMO smo = new SMO(); smo.turnChecksOff(); smo.setBuildLogisticModels(true); @@ -283,16 +301,15 @@ public void configureDefaultEnsemble(){ smo.setKernel(k2); classifiers[6] = svml; classifierNames[6] = "SVML"; - ensemble.setClassifiers(classifiers, classifierNames, null); + ((CAWPE)classifier).setClassifiers(classifiers, classifierNames, null); } //This sets up the ensemble to work within the time constraints of the problem public void configureEnsemble(){ - ensemble.setWeightingScheme(new TrainAcc(4)); - ensemble.setVotingScheme(new MajorityConfidence()); + ((CAWPE)classifier).setWeightingScheme(new TrainAcc(4)); + ((CAWPE)classifier).setVotingScheme(new MajorityConfidence()); Classifier[] classifiers = new Classifier[3]; String[] classifierNames = new String[3]; - SMO smo = new SMO(); smo.turnChecksOff(); smo.setBuildLogisticModels(true); @@ -318,17 +335,14 @@ public void configureEnsemble(){ rf.setSeed((int)seed); classifiers[2] = rf; classifierNames[2] = "RotF"; - - - ensemble.setClassifiers(classifiers, classifierNames, null); - + ((CAWPE)classifier).setClassifiers(classifiers, classifierNames, null); } public void configureBasicEnsemble(){ // Random forest only - ensemble=new CAWPE(); + classifier=new CAWPE(); Classifier[] classifiers = new Classifier[1]; String[] classifierNames = new String[1]; RandomForest r=new RandomForest(); @@ -339,13 +353,13 @@ public void configureBasicEnsemble(){ classifierNames[0] = "RandF"; - ensemble.setWeightingScheme(new EqualWeighting()); - ensemble.setVotingScheme(new MajorityVote()); + ((CAWPE)classifier).setWeightingScheme(new EqualWeighting()); + ((CAWPE)classifier).setVotingScheme(new MajorityVote()); RotationForest rf=new RotationForest(); rf.setNumIterations(100); if(setSeed) rf.setSeed((int)seed); - ensemble.setClassifiers(classifiers, classifierNames, null); + ((CAWPE)classifier).setClassifiers(classifiers, classifierNames, null); } @@ -360,7 +374,7 @@ public double classifyInstance(Instance ins) throws Exception{ Instance test = temp.get(0); shapeletData.remove(0); - return ensemble.classifyInstance(test); + return classifier.classifyInstance(test); } @Override public double[] distributionForInstance(Instance ins) throws Exception{ @@ -373,7 +387,7 @@ public double[] distributionForInstance(Instance ins) throws Exception{ Instance test = temp.get(0); shapeletData.remove(0); - return ensemble.distributionForInstance(test); + return classifier.distributionForInstance(test); } public void setShapeletOutputFilePath(String path){ @@ -394,12 +408,10 @@ public Instances createTransformData(Instances train, long time){ int m = train.numAttributes()-1; //Set the number of shapelets to keep, max is MAXTRANSFORMSIZE (500) //numShapeletsInTransform -// n > 2000 ? 2000 : n; +// n*m < 1000 ? n*m: 1000; if(n*m numShapeletsInTransform ? numShapeletsInTransform : (int) numShapelets; } - optionsBuilder.setKShapelets(numShapeletsInTransform); optionsBuilder.setSearchOptions(searchBuilder.build()); transform = new ShapeletTransformFactory(optionsBuilder.build()).getTransform(); @@ -450,7 +460,7 @@ public Instances createTransformData(Instances train, long time){ if(preferShortShapelets) transform.setShapeletComparator(new Shapelet.ShortOrder()); - + transform.setNumberOfShapelets((int)numShapeletsInTransform); return transform.process(train); } @@ -461,8 +471,8 @@ public static void main(String[] args) throws Exception { String datasetName = "FordA"; int fold = 0; - Instances train= ClassifierTools.loadData(dataLocation+datasetName+File.separator+datasetName+"_TRAIN"); - Instances test= ClassifierTools.loadData(dataLocation+datasetName+File.separator+datasetName+"_TEST"); + Instances train= DatasetLoading.loadDataNullable(dataLocation+datasetName+File.separator+datasetName+"_TRAIN"); + Instances test= DatasetLoading.loadDataNullable(dataLocation+datasetName+File.separator+datasetName+"_TEST"); String trainS= saveLocation+datasetName+File.separator+"TrainCV.csv"; String testS=saveLocation+datasetName+File.separator+"TestPreds.csv"; String preds=saveLocation+datasetName; @@ -495,7 +505,7 @@ public void copyFromSerObject(Object obj) throws Exception{ //Copy meta data ShapeletTransformClassifier st=(ShapeletTransformClassifier)obj; //We assume the classifiers have not been built, so are basically copying over the set up - ensemble=st.ensemble; + classifier=st.classifier; preferShortShapelets = st.preferShortShapelets; shapeletOutputPath=st.shapeletOutputPath; transform=st.transform; diff --git a/src/main/java/timeseriesweka/clusterers/KShape.java b/src/main/java/timeseriesweka/clusterers/KShape.java index 59cc6d452..c1bf6949e 100644 --- a/src/main/java/timeseriesweka/clusterers/KShape.java +++ b/src/main/java/timeseriesweka/clusterers/KShape.java @@ -5,6 +5,7 @@ */ package timeseriesweka.clusterers; +import experiments.data.DatasetLoading; import java.util.ArrayList; import java.util.Arrays; import java.util.Random; @@ -241,8 +242,8 @@ public static void main(String[] args) throws Exception{ // System.out.println(sbd.yShift); String dataset = "Trace"; - Instances inst = ClassifierTools.loadData("D:\\CMP Machine Learning\\Datasets\\TSC Archive\\" + dataset + "/" + dataset + "_TRAIN.arff"); - Instances inst2 = ClassifierTools.loadData("D:\\CMP Machine Learning\\Datasets\\TSC Archive\\" + dataset + "/" + dataset + "_TEST.arff"); + Instances inst = DatasetLoading.loadDataNullable("D:\\CMP Machine Learning\\Datasets\\TSC Archive\\" + dataset + "/" + dataset + "_TRAIN.arff"); + Instances inst2 = DatasetLoading.loadDataNullable("D:\\CMP Machine Learning\\Datasets\\TSC Archive\\" + dataset + "/" + dataset + "_TEST.arff"); inst.setClassIndex(inst.numAttributes()-1); inst.addAll(inst2); diff --git a/src/main/java/timeseriesweka/clusterers/UnsupervisedShapelets.java b/src/main/java/timeseriesweka/clusterers/UnsupervisedShapelets.java index df799707c..0e369cc0e 100644 --- a/src/main/java/timeseriesweka/clusterers/UnsupervisedShapelets.java +++ b/src/main/java/timeseriesweka/clusterers/UnsupervisedShapelets.java @@ -1,10 +1,11 @@ package timeseriesweka.clusterers; +import experiments.data.DatasetLoading; import java.util.ArrayList; import java.util.Arrays; import utilities.ClassifierTools; -import vector_clusterers.KMeans; +import weka_uea.clusterers.KMeans; import weka.core.Instance; import weka.core.Instances; @@ -210,8 +211,8 @@ private double standardDeviation(ArrayList dists, double mean){ public static void main(String[] args) throws Exception{ String dataset = "Trace"; - Instances inst = ClassifierTools.loadData("Z:/Data/TSCProblems2018/" + dataset + "/" + dataset + "_TRAIN.arff"); - Instances inst2 = ClassifierTools.loadData("Z:/Data/TSCProblems2018/" + dataset + "/" + dataset + "_TEST.arff"); + Instances inst = DatasetLoading.loadDataNullable("Z:/Data/TSCProblems2018/" + dataset + "/" + dataset + "_TRAIN.arff"); + Instances inst2 = DatasetLoading.loadDataNullable("Z:/Data/TSCProblems2018/" + dataset + "/" + dataset + "_TEST.arff"); inst.setClassIndex(inst.numAttributes()-1); inst.addAll(inst2); diff --git a/src/main/java/timeseriesweka/elastic_distance_measures/BasicDTW.java b/src/main/java/timeseriesweka/elastic_distance_measures/BasicDTW.java index 6138178c3..b8eb954c8 100644 --- a/src/main/java/timeseriesweka/elastic_distance_measures/BasicDTW.java +++ b/src/main/java/timeseriesweka/elastic_distance_measures/BasicDTW.java @@ -4,6 +4,7 @@ */ package timeseriesweka.elastic_distance_measures; +import experiments.data.DatasetLoading; import utilities.ClassifierTools; import weka.core.DenseInstance; import weka.core.EuclideanDistance; @@ -34,7 +35,7 @@ public BasicDTW(){ /** * BasicDTW Constructor that allows enabling of early abandon * - * @param earlyAbandon boolean value setting if early abandon is enabled + * //@param earlyAbandon boolean value setting if early abandon is enabled */ public BasicDTW(Instances d) { super(d); @@ -165,8 +166,8 @@ public String printMinCostWarpPath(){ /** * Recursive method that finds and prints the minimum warped path * - * @param int i position in distances, should be max of series - * @param int j position in distances, should be max of series + * @param i position in distances, should be max of series + * @param j position in distances, should be max of series * * @return current position */ @@ -246,7 +247,7 @@ public String toString() { public static void main(String[] args){ //Test BasicDTW - Instances test = ClassifierTools.loadData("C:\\Users\\ajb\\Dropbox\\test\\Beef"); + Instances test = DatasetLoading.loadDataNullable("C:\\Users\\ajb\\Dropbox\\test\\Beef"); BasicDTW dtw=new BasicDTW(test); EuclideanDistance ed=new EuclideanDistance(test); ed.setDontNormalize(true); diff --git a/src/main/java/timeseriesweka/elastic_distance_measures/TAA.java b/src/main/java/timeseriesweka/elastic_distance_measures/TAA.java new file mode 100644 index 000000000..22cc90ea5 --- /dev/null +++ b/src/main/java/timeseriesweka/elastic_distance_measures/TAA.java @@ -0,0 +1,500 @@ +package timeseriesweka.elastic_distance_measures; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.Map; +import java.util.Stack; +import timeseriesweka.classifiers.SaveParameterInfo; +import static utilities.Utilities.extractTimeSeries; +import weka.core.Instance; +import weka.core.NormalizableDistance; +import weka.core.TechnicalInformation; +import weka.core.TechnicalInformationHandler; + +public class TAA extends NormalizableDistance implements SaveParameterInfo, TechnicalInformationHandler { + +// WARNING: NOT DEBUGGED. ADD MORE COMMENTS. odo summary for each measure / relate to paper +// auth +// d Itakura Parallelogram + + + + private static final TAA_banded TAA = new TAA_banded(); + + private int k; + + public TAA(int k, double gPenalty, double tPenalty) { + this.k = k; + this.gPenalty = gPenalty; + this.tPenalty = tPenalty; + } + + private double gPenalty; + + public int getK() { + return k; + } + + public void setK(int k) { + this.k = k; + } + + public double getGPenalty() { + return gPenalty; + } + + public void setGPenalty(double gPenalty) { + this.gPenalty = gPenalty; + } + + public double getTPenalty() { + return tPenalty; + } + + public void setTPenalty(double tPenalty) { + this.tPenalty = tPenalty; + } + + private double tPenalty; + + + private int[] naturalNumbers(int size) { + int[] numbers = new int[size]; + for(int i = 0; i < numbers.length; i++) { + numbers[i] = i; + } + return numbers; + } + + protected double measureDistance(double[] timeSeriesA, double[] timeSeriesB, double cutOff) { + return TAA.score(timeSeriesA, + naturalNumbers(timeSeriesA.length), + timeSeriesB, + naturalNumbers(timeSeriesB.length), + 1, 1, 1); + } + + @Override + public String getRevision() { + return null; + } + + @Override + public TechnicalInformation getTechnicalInformation() { + return null; + } + + public static void main(String[] args) { + double[] a = new double[] {1,1,2,2,3,3,2,2,1,1}; + double[] b = new double[] {1,2,3,2,1,1,1,1,1,2}; + int[] aIntervals = new int[] {1,2,3,4,5,6,7,8,9,10}; + int[] bIntervals = new int[] {1,2,3,4,5,6,7,8,9,10}; + System.out.println(new TAA_banded().score(a,aIntervals,b,bIntervals,2,2,2)); + TAA taa = new TAA(2,2,2); + System.out.println(taa.distance(a,b)); + } + + @Override + public String getParameters() { + return "k=" + k + ",tPenalty=" + tPenalty + ",gPenalty=" + gPenalty + ","; + } + + @Override + public String toString() { + return "TAA"; + } + + /** + * measures distance between time series, swapping the two time series so A is always the longest + * @param timeSeriesA time series + * @param timeSeriesB time series + * @param cutOff cut off value to abandon distance measurement early + * @return distance between two time series + */ + public final double distance(double[] timeSeriesA, double[] timeSeriesB, double cutOff) { + if(timeSeriesA.length < timeSeriesB.length) { + double[] temp = timeSeriesA; + timeSeriesA = timeSeriesB; + timeSeriesB = temp; + } + return measureDistance(timeSeriesA, timeSeriesB, cutOff); + } + + /** + * measures distance between time series, swapping the two time series so A is always the longest + * @param timeSeriesA time series + * @param timeSeriesB time series + * @return distance between two time series + */ + public final double distance(double[] timeSeriesA, double[] timeSeriesB) { + return distance(timeSeriesA, timeSeriesB, Double.POSITIVE_INFINITY); + } + + /** + * find distance between two instances + * @param instanceA first instance + * @param instanceB second instance + * @return distance between the two instances + */ + public final double distance(Instance instanceA, Instance instanceB) { + return distance(instanceA, instanceB, Double.POSITIVE_INFINITY); + } + + /** + * find distance between two instances + * @param instanceA first instance + * @param instanceB second instance + * @param cutOff cut off value to abandon distance measurement early + * @return distance between the two instances + */ + public final double distance(Instance instanceA, Instance instanceB, double cutOff) { + return measureDistance(extractTimeSeries(instanceA), extractTimeSeries(instanceB), cutOff); + } + + @Override + public String globalInfo() { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } + + @Override + protected double updateDistance(double currDist, double diff) { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } + + private static class TAA_banded { + + public static final char VERTICAL = 'v'; + public static final char DIAGONAL = 'd'; + public static final char HORIZONTAL = 'h'; + public static final double t_event = 116; + + public double score(double[] seqA, int[] sA, double[] seqB, int[] sB, double gPenalty, double tPenalty, int K) { + // the event 't' in seqA and in seqB is represented as the value 116 (which is the ascii for t + + int m = seqA.length; + int n = seqB.length; + + double[][] V = new double[m + 1][n + 1]; // Score matrix + double[][] G = new double[m + 1][n + 1]; // Match matrix + double[][] E = new double[m + 1][n + 1]; // Horizontal gap Matrix + double[][] F = new double[m + 1][n + 1]; // Vertical gap Matrix + + LinkedList EPointers = new LinkedList(); + EPointers.addFirst(0); + ArrayList> FPointers = new ArrayList>(); + LinkedList EBlockList = new LinkedList(); + EBlockList.addFirst(n); + ArrayList> FBlockList = new ArrayList>(); + for (int i = 0; i <= n; i++) { + LinkedList list = new LinkedList(); + list.addFirst(m); + FBlockList.add(list); + LinkedList pointerList = new LinkedList(); + pointerList.addFirst(0); + FPointers.add(pointerList); + } + + // init V + for (int i = 0; i <= m; i++) { + // start end seqLabels, seqNoTimeMap, delimiter + V[i][0] = Integer.MAX_VALUE; + E[i][0] = Integer.MAX_VALUE; + } + // init V + int I = 1; + for (int j = 0; j <= n; j++) { + V[0][j] = Integer.MAX_VALUE; + F[0][j] = Integer.MAX_VALUE; + if (j != 0 && j < K) { + I = 1; + } else { + I = I + 1; + } + + E[I][j] = Integer.MAX_VALUE; + F[I][j] = Integer.MAX_VALUE; + G[I][j] = Integer.MAX_VALUE; + V[I][j] = Integer.MAX_VALUE; + } + + for (int i = 0; i <= m; i++) { + E[i][Math.max(1, i - K - 1)] = Integer.MAX_VALUE; + F[i][Math.max(1, i - K - 1)] = Integer.MAX_VALUE; + G[i][Math.max(1, i - K - 1)] = Integer.MAX_VALUE; + V[i][Math.max(1, i - K - 1)] = Integer.MAX_VALUE; + } + + V[0][0] = 0; + + for (int i = 1; i <= m; i++) { + // reset E Pointers + EPointers.clear(); + EPointers.addFirst(Math.max(1, i - K - 1)); // initially all will point to 0 index + + //reset E Intervals + EBlockList.clear(); + EBlockList.addFirst(n); // initially there is only one interval all the way to the end + for (int j = Math.max(1, i - K); j <= Math.min(i + K, n); j++) { + int k = EPointers.getFirst(); + int fK = FPointers.get(j).getFirst(); + E[i][j] = CandR(k, j, V, i, sB, gPenalty, tPenalty); + F[i][j] = CandC(fK, i, V, j, sA, gPenalty, tPenalty); + + if (seqA[i - 1] == t_event && seqB[j - 1] == t_event) { + G[i][j] = V[i - 1][j - 1]; + } else if (seqA[i - 1] == t_event || seqB[j - 1] == t_event) { + G[i][j] = Integer.MAX_VALUE; + } else { // the events are a match + G[i][j] = V[i - 1][j - 1] + Math.abs(seqA[i - 1] - seqB[j - 1]); //match case: penalty is the norm; for timed-event sequences, you can use a scoring matrix + } + + V[i][j] = Math.min(E[i][j], Math.min(F[i][j], G[i][j])); + + int jPrime = EBlockList.getFirst(); + int jPointer = EPointers.getFirst(); + if (j != n && CandR(jPointer, j + 1, V, i, sB, gPenalty, tPenalty) > CandR(j, j + 1, V, i, sB, gPenalty, tPenalty)) { // if the candidate from j wins + + // j's candidate wins + while (!EBlockList.isEmpty() && CandR(jPointer, jPrime, V, i, sB, gPenalty, tPenalty) > CandR(j, jPrime, V, i, sB, gPenalty, tPenalty)) { // if j keeps winning + EBlockList.removeFirst(); + EPointers.removeFirst(); + if (!EBlockList.isEmpty()) { + jPrime = EBlockList.getFirst(); + } + } + + if (EBlockList.isEmpty()) { // if the candidate from j is the best to the end + EBlockList.addFirst(n); // you have one contiguous block from j through to n + } else { // figure out where the candidate from j stops being the best + + int BsRow = EPointers.getFirst(); + //Analytically figure out when the candidate from j will stop winning + // for logarithmic functions, you can compute when one of them will overtake the other + double eC = Math.exp(V[i][j] - V[i][BsRow]) / tPenalty; + + int d = (int) Math.ceil((BsRow - j) / (1 - eC)) - 1; //d is the offset of cells at which j's candidate is no longer better + + if (seqB[j - 1] == t_event) { + d = d * 2; // you have to account for the static events in between + } else { + d = d * 2 - 1; // you have to account for the static events in between + } + // Time series format: A t1 A t A t. + if (d > 0) { + int p = j + d; // p is the cell at which the candidate from j is no longer better + + if (p <= n) { + EBlockList.addFirst(p); + } + } + } + EPointers.addFirst(j); + } + + int iPrime = FBlockList.get(j).getFirst(); + int iPointer = FPointers.get(j).getFirst(); + if (i != m && CandC(iPointer, i + 1, V, j, sA, gPenalty, tPenalty) > CandC(i, i + 1, V, j, sA, gPenalty, tPenalty)) { + while (!FBlockList.get(j).isEmpty() && CandC(iPointer, iPrime, V, j, sA, gPenalty, tPenalty) > CandC(i, iPrime, V, j, sA, gPenalty, tPenalty)) { + int removedItem = FBlockList.get(j).removeFirst(); + int removedPointer = FPointers.get(j).removeFirst(); + if (!FBlockList.get(j).isEmpty()) { + iPrime = FBlockList.get(j).getFirst(); + } + } + if (FBlockList.get(j).isEmpty()) { + FBlockList.get(j).addFirst(m); + } else { + int BsCol = FPointers.get(j).getFirst(); + + //Find the point at which j's candidate overtakes the candidate from B_s + // for logarithmic functions, you can compute when one of them will overtake the other + double eC = Math.exp(V[i][j] - V[BsCol][j]) / tPenalty; + int d = (int) Math.ceil((BsCol - i) / (1 - eC)) - 1; //d is the offset of cells after which j's candidate is no longer better + if (seqB[j - 1] == t_event) { + d = d * 2; // you have to account for the static events in between + } else { + d = d * 2 - 1; // you have to account for the static events in between + } + // d is the offset of number of cells after which j's candidate stops winning + if (d > 0) { + int p = j + d; // cell p is the cell where j's candidate stops winning + if (p <= n) { + FBlockList.get(j).addFirst(p); // + } + } + } + FPointers.get(j).addFirst(i); + } + } + } + + return V[m][n]; + } + + /** + * + * @param k cell that sends candidates + * @param j this is destination cell + * @param V Reference for the V matrix + * @param row this is row number. + * @return + */ + private double CandR(int k, int j, double[][] V, int row, int[] s, double gPenalty, double tPenalty) { + return V[row][k] + W(k, j, Math.abs(s[k] - s[j]), gPenalty, tPenalty); + } + + /** + * + * @param k row that sends candidates + * @param i row that receives candidates + * @param V reference to V matrix + * @param col column number + * @return + */ + private double CandC(int k, int i, double[][] V, int col, int[] s, double gPenalty, double tPenalty) { + return V[k][col] + W(k, i, Math.abs(s[k] - s[i]), gPenalty, tPenalty); + } + + // W is the penalty function and requires the nmber of + public double W(int k, int i, int Nstatic, double gPenalty, double tPenalty) { + + //s is the number of static events. compute penalty + double penalty = tPenalty * Math.log(Math.abs(i - k) - Nstatic + 1) + Nstatic * gPenalty; + + if (i == k) { // if the alignment is from the current cell to the current cell, then there is no penalty + penalty = 0; + } + + return penalty; + } + + private String getString(Stack stack) { + StringBuilder seqResult = new StringBuilder(); + while (!stack.isEmpty()) { + seqResult.append(stack.pop() + " "); + } + return seqResult.toString().trim(); + + } + + private String generateGap(int length) { + char[] fill = new char[length]; + Arrays.fill(fill, '-'); + return new String(fill); + } + + private static String[] generateTime(int length) { + String[] f = new String[length]; + Arrays.fill(f, "t"); + return f; + } + + private int[] getIndexSequence(String[] seq, Map map) { + int[] indexSeq = new int[seq.length]; + for (int i = 0; i < seq.length; i++) { + indexSeq[i] = map.get(seq[i]); + } + return indexSeq; + + } + + private static void printScoreMatrix(double[][] matrix) { + for (int i = 0; i < matrix.length; i++) { + for (int j = 0; j < matrix[0].length; j++) { + //System.out.print("" + matrix[i][j] + " "); + System.out.print(""); + if (matrix[i][j] >= 0) { + System.out.print("+"); + } + + System.out.printf("%.8f", matrix[i][j]); + System.out.print(" "); + } + System.out.println(); + } + } + + private static void addSeqEventsToScoreMatrix(String[] seq, Map map) { + // for a single sequence, this adds the events to the labels of the scoring matrix + for (int i = 0; i < seq.length; i++) { + if (!map.containsKey(seq[i])) { + map.put(seq[i], map.size()); + } + } + } + + private static String[] seqRemoveTiming(String seq, Map map) { + //remove timing values from the string if there are timing values and add the events to the labels for the score matrix + String[] chunks = seq.split(" "); + String[] sbSeq = new String[chunks.length]; + for (int i = 0; i < chunks.length; i++) { + String chunk = chunks[i]; + String[] planAndTime = chunk.split("\\."); + sbSeq[i] = planAndTime[0]; + + } + return sbSeq; + } + + private static String[] seqAddTimings(String seq, int[] staticEventCount, int seqL) { + //remove timing values from the string if there are timing values and add the events to the labels for the score matrix + String[] chunks = seq.split(" "); + String event; + int time; + String[] newSeq = new String[seqL]; // because we don't know final size + int j; + int staticCount = 0; // raw index in the array + int counter = 0; + staticEventCount[0] = 0; // the first row and column of matrix should get a static event count of 0 + for (int i = 0; i < chunks.length; i++) { + String[] planAndTime = chunks[i].split("\\."); + event = planAndTime[0]; + time = Integer.parseInt(planAndTime[1]); // amount of time + newSeq[counter] = event; // add the event + counter = counter + 1; + staticCount = staticCount + 1; //Number of static events + staticEventCount[counter] = staticCount; + + for (j = 0; j < time; j++) { //j is the time number; + newSeq[counter] = "t"; + counter = counter + 1; + staticEventCount[counter] = staticCount; + } + } + return newSeq; + } + + private static ArrayList seqIncludeTimingEvents(String seq, Map tMap, Map eMap) { + //remove timing values from the string if there are timing values and add the events to the labels for the score matrix + String[] chunks = seq.split(" "); + String[] sbSeq = new String[chunks.length]; + String event; + int time; + ArrayList newSeq = new ArrayList(); // because we don't know final size + int tCounts = 1; + int j; + int rawIndex = 0; // raw index in the array + for (int i = 0; i < chunks.length; i++) { + String chunk = chunks[i]; + String[] planAndTime = chunk.split("\\."); + event = planAndTime[0]; + newSeq.add(event); // add the event + rawIndex = rawIndex + 1; //Raw Array Index + eMap.put(rawIndex, tCounts); //for each static event, store the index of the upcoming timing event so it can be used for calculating timing penalties... + time = Integer.parseInt(planAndTime[1]); // amount of time + for (j = tCounts; j < tCounts + time; j++) { //j is the time number; + rawIndex = rawIndex + 1; //count each timing event + //map each timing event to a key in the array sequence + tMap.put(j, new int[]{i + j, i + 1}); // index of timing event in sequence, second argument is number of static events so far. + newSeq.add(Integer.toString(j)); + } + tCounts = tCounts + time; + } + System.out.println("rawIndex = " + Integer.toString(rawIndex)); + return newSeq; + } + + } + +} diff --git a/src/main/java/timeseriesweka/examples/ClassificationExamples.java b/src/main/java/timeseriesweka/examples/ClassificationExamples.java index 385bb584a..90e1abf56 100644 --- a/src/main/java/timeseriesweka/examples/ClassificationExamples.java +++ b/src/main/java/timeseriesweka/examples/ClassificationExamples.java @@ -14,24 +14,25 @@ */ package timeseriesweka.examples; -import timeseriesweka.classifiers.ensembles.elastic_ensemble.WDTW1NN; -import timeseriesweka.classifiers.ensembles.elastic_ensemble.DTW1NN; -import timeseriesweka.classifiers.ensembles.elastic_ensemble.ED1NN; -import timeseriesweka.classifiers.ensembles.elastic_ensemble.MSM1NN; -import timeseriesweka.classifiers.FastShapelets; -import timeseriesweka.classifiers.LearnShapelets; -import timeseriesweka.classifiers.NN_CID; -import timeseriesweka.classifiers.TSBF; -import timeseriesweka.classifiers.TSF; -import timeseriesweka.classifiers.DTD_C; -import timeseriesweka.classifiers.BOSS; -import timeseriesweka.classifiers.RISE; -import timeseriesweka.classifiers.LPS; -import timeseriesweka.classifiers.SAXVSM; -import timeseriesweka.classifiers.ShapeletTransformClassifier; -import timeseriesweka.classifiers.DD_DTW; -import timeseriesweka.classifiers.BagOfPatterns; -import experiments.DataSets; +import timeseriesweka.classifiers.distance_based.elastic_ensemble.WDTW1NN; +import timeseriesweka.classifiers.distance_based.elastic_ensemble.DTW1NN; +import timeseriesweka.classifiers.distance_based.elastic_ensemble.ED1NN; +import timeseriesweka.classifiers.distance_based.elastic_ensemble.MSM1NN; +import timeseriesweka.classifiers.shapelet_based.FastShapelets; +import timeseriesweka.classifiers.shapelet_based.LearnShapelets; +import timeseriesweka.classifiers.distance_based.NN_CID; +import timeseriesweka.classifiers.interval_based.TSBF; +import timeseriesweka.classifiers.interval_based.TSF; +import timeseriesweka.classifiers.distance_based.DTD_C; +import timeseriesweka.classifiers.dictionary_based.BOSS; +import timeseriesweka.classifiers.frequency_based.RISE; +import timeseriesweka.classifiers.interval_based.LPS; +import timeseriesweka.classifiers.dictionary_based.SAXVSM; +import timeseriesweka.classifiers.shapelet_based.ShapeletTransformClassifier; +import timeseriesweka.classifiers.distance_based.DD_DTW; +import timeseriesweka.classifiers.dictionary_based.BagOfPatterns; +import experiments.data.DatasetLists; +import experiments.data.DatasetLoading; import fileIO.OutFile; import java.io.File; import java.text.DecimalFormat; @@ -46,8 +47,8 @@ import weka.classifiers.functions.SMO; import weka.classifiers.functions.supportVector.PolyKernel; import weka.classifiers.meta.RotationForest; -import vector_classifiers.CAWPE; -import timeseriesweka.classifiers.ensembles.SaveableEnsemble; +import weka_uea.classifiers.ensembles.CAWPE; +import weka_uea.classifiers.ensembles.SaveableEnsemble; import weka.classifiers.trees.J48; import weka.classifiers.trees.RandomForest; import weka.core.Instances; @@ -191,21 +192,21 @@ public static Classifier setClassifier(String classifier){ /** Run a given classifier/problem/fold combination with associated file set up @param args: - * args[0]: Classifier name. Create classifier with setClassifier - * args[1]: Problem name - * args[2]: Fold number. This is assumed to range from 1, hence we subtract 1 - * (this is because of the scripting we use to run the code on the cluster) - * the standard archive folds are always fold 0 - * - * NOTES: - * 1. this assumes you have set DataSets.problemPath to be where ever the - * data is, and assumes the data is in its own directory with two files, - * args[1]_TRAIN.arff and args[1]_TEST.arff - * 2. assumes you have set DataSets.resultsPath to where you want the results to - * go It will NOT overwrite any existing results (i.e. if a file of non zero - * size exists) - * 3. This method just does the file set up then calls the next method. If you - * just want to run the problem, go to the next method + args[0]: Classifier name. Create classifier with setClassifier + args[1]: Problem name + args[2]: Fold number. This is assumed to range from 1, hence we subtract 1 + (this is because of the scripting we use to run the code on the cluster) + the standard archive folds are always fold 0 + + NOTES: + 1. this assumes you have set DatasetLists.problemPath to be where ever the + data is, and assumes the data is in its own directory with two files, + args[1]_TRAIN.arff and args[1]_TEST.arff + 2. assumes you have set DatasetLists.resultsPath to where you want the results to + go It will NOT overwrite any existing results (i.e. if a file of non zero + size exists) + 3. This method just does the file set up then calls the next method. If you + just want to run the problem, go to the next method * */ public static void singleClassifierAndFold(String[] args){ //first gives the problem file @@ -214,12 +215,12 @@ public static void singleClassifierAndFold(String[] args){ int fold=Integer.parseInt(args[2])-1; Classifier c=setClassifier(classifier); - Instances train=ClassifierTools.loadData(DataSets.problemPath+problem+"/"+problem+"_TRAIN"); - Instances test=ClassifierTools.loadData(DataSets.problemPath+problem+"/"+problem+"_TEST"); - File f=new File(DataSets.resultsPath+classifier); + Instances train=DatasetLoading.loadDataNullable(DatasetLists.problemPath+problem+"/"+problem+"_TRAIN"); + Instances test=DatasetLoading.loadDataNullable(DatasetLists.problemPath+problem+"/"+problem+"_TEST"); + File f=new File(DatasetLists.resultsPath+classifier); if(!f.exists()) f.mkdir(); - String predictions=DataSets.resultsPath+classifier+"/Predictions"; + String predictions=DatasetLists.resultsPath+classifier+"/Predictions"; f=new File(predictions); if(!f.exists()) f.mkdir(); @@ -317,8 +318,8 @@ public static void main(String[] args){ //Example usage: //1. Set up the paths - DataSets.problemPath=DataSets.dropboxPath+"TSC Problems/"; - DataSets.resultsPath="C:/Temp/"; + DatasetLists.problemPath=DatasetLists.dropboxPath+"TSC Problems/"; + DatasetLists.resultsPath="C:/Temp/"; //2. Set up the arguments: Classifier, Problem, Fold String[] paras={"BOSS","ItalyPowerDemand","1"}; //3. Run a full experiment, saving the results diff --git a/src/main/java/timeseriesweka/examples/SimulationExperiments.java b/src/main/java/timeseriesweka/examples/SimulationExperiments.java index e2f1f6908..1d6e391d7 100644 --- a/src/main/java/timeseriesweka/examples/SimulationExperiments.java +++ b/src/main/java/timeseriesweka/examples/SimulationExperiments.java @@ -14,21 +14,21 @@ */ package timeseriesweka.examples; -import timeseriesweka.classifiers.FlatCote; -import timeseriesweka.classifiers.LearnShapelets; -import timeseriesweka.classifiers.FastShapelets; -import timeseriesweka.classifiers.TSBF; -import timeseriesweka.classifiers.TSF; -import timeseriesweka.classifiers.DTD_C; -import timeseriesweka.classifiers.BOSS; -import timeseriesweka.classifiers.RISE; -import timeseriesweka.classifiers.ShapeletTransformClassifier; -import timeseriesweka.classifiers.LPS; -import timeseriesweka.classifiers.ElasticEnsemble; -import timeseriesweka.classifiers.DD_DTW; -import timeseriesweka.classifiers.BagOfPatterns; -import timeseriesweka.classifiers.HiveCote; -import experiments.DataSets; +import timeseriesweka.classifiers.hybrids.FlatCote; +import timeseriesweka.classifiers.shapelet_based.LearnShapelets; +import timeseriesweka.classifiers.shapelet_based.FastShapelets; +import timeseriesweka.classifiers.interval_based.TSBF; +import timeseriesweka.classifiers.interval_based.TSF; +import timeseriesweka.classifiers.distance_based.DTD_C; +import timeseriesweka.classifiers.dictionary_based.BOSS; +import timeseriesweka.classifiers.frequency_based.RISE; +import timeseriesweka.classifiers.shapelet_based.ShapeletTransformClassifier; +import timeseriesweka.classifiers.interval_based.LPS; +import timeseriesweka.classifiers.distance_based.ElasticEnsemble; +import timeseriesweka.classifiers.distance_based.DD_DTW; +import timeseriesweka.classifiers.dictionary_based.BagOfPatterns; +import timeseriesweka.classifiers.hybrids.HiveCote; +import experiments.data.DatasetLists; import fileIO.OutFile; import statistics.simulators.Model; import statistics.simulators.SimulateSpectralData; @@ -38,14 +38,14 @@ import utilities.InstanceTools; import timeseriesweka.classifiers.SaveParameterInfo; import weka.classifiers.Classifier; -import timeseriesweka.classifiers.FastDTW_1NN; +import timeseriesweka.classifiers.distance_based.FastDTW_1NN; import weka.classifiers.meta.RotationForest; -import vector_classifiers.CAWPE; -import timeseriesweka.classifiers.ensembles.SaveableEnsemble; -import vector_classifiers.TunedRandomForest; +import weka_uea.classifiers.ensembles.CAWPE; +import weka_uea.classifiers.ensembles.SaveableEnsemble; +import weka_uea.classifiers.tuned.TunedRandomForest; import weka.core.Instances; import utilities.ClassifierTools; -import utilities.TrainAccuracyEstimate; +import timeseriesweka.classifiers.TrainAccuracyEstimator; /** * @@ -252,8 +252,8 @@ public static double singleSampleExperiment(Instances train, Instances test, Cla OutFile p=new OutFile(preds+"/testFold"+sample+".csv"); // hack here to save internal CV for further ensembling - if(c instanceof TrainAccuracyEstimate) - ((TrainAccuracyEstimate)c).writeCVTrainToFile(preds+"/trainFold"+sample+".csv"); + if(c instanceof TrainAccuracyEstimator) + ((TrainAccuracyEstimator)c).writeTrainEstimatesToFile(preds+"/trainFold"+sample+".csv"); if(c instanceof SaveableEnsemble) ((SaveableEnsemble)c).saveResults(preds+"/internalCV_"+sample+".csv",preds+"/internalTestPreds_"+sample+".csv"); try{ @@ -382,7 +382,7 @@ public static void runShapeletSimulatorExperiment(){ public static void main(String[] args){ - DataSets.resultsPath="C:\\Users\\ajb\\Dropbox\\Results\\SimulationExperiments\\"; + DatasetLists.resultsPath="C:\\Users\\ajb\\Dropbox\\Results\\SimulationExperiments\\"; runShapeletSimulatorExperiment(); } } diff --git a/src/main/java/timeseriesweka/filters/ACF.java b/src/main/java/timeseriesweka/filters/ACF.java index 123fe5ed2..3db6d362a 100644 --- a/src/main/java/timeseriesweka/filters/ACF.java +++ b/src/main/java/timeseriesweka/filters/ACF.java @@ -17,6 +17,7 @@ import experiments.SimulationExperiments; +import experiments.data.DatasetLoading; import fileIO.OutFile; import java.text.DecimalFormat; import java.util.ArrayList; @@ -450,7 +451,7 @@ private void zeroInstance(Instance ins, int p){ */ public static void testTransform(){ // Test File ACF: Four AR(1) series, first two \phi_0=0.5, seconde two \phi_0=-0.5 - Instances test=ClassifierTools.loadData("C:\\Research\\Data\\TestData\\ACFTest"); + Instances test=DatasetLoading.loadDataNullable("C:\\Research\\Data\\TestData\\ACFTest"); DecimalFormat df=new DecimalFormat("##.####"); ACF acf=new ACF(); acf.setMaxLag(test.numAttributes()-10); @@ -468,7 +469,7 @@ public static void testTransform(){ } } public static void testTrunctate(){ - Instances test=ClassifierTools.loadData("C:\\Research\\Data\\TestData\\ACFTest"); + Instances test=DatasetLoading.loadDataNullable("C:\\Research\\Data\\TestData\\ACFTest"); DecimalFormat df=new DecimalFormat("##.####"); ACF acf=new ACF(); int[] cases={20,20}; @@ -502,7 +503,7 @@ public static void main(String[] args) { String problemPath = "E:/TSCProblems/"; String resultsPath="E:/Temp/"; String datasetName="ItalyPowerDemand"; - Instances train =ClassifierTools.loadData("E:/TSCProblems/"+datasetName+"/"+datasetName+"_TRAIN"); + Instances train =DatasetLoading.loadDataNullable("E:/TSCProblems/"+datasetName+"/"+datasetName+"_TRAIN"); ACF acf= new ACF(); try { Instances trans=acf.process(train); diff --git a/src/main/java/timeseriesweka/filters/BagOfPatternsFilter.java b/src/main/java/timeseriesweka/filters/BagOfPatternsFilter.java index 7691d737a..34d541cb2 100644 --- a/src/main/java/timeseriesweka/filters/BagOfPatternsFilter.java +++ b/src/main/java/timeseriesweka/filters/BagOfPatternsFilter.java @@ -14,6 +14,7 @@ */ package timeseriesweka.filters; +import experiments.data.DatasetLoading; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; @@ -128,6 +129,7 @@ public HashMap buildBag(Instance series) throws Exception { if (!(numerosityReduction && identicalPattern(pattern, prevPattern))) patterns.add(pattern); + prevPattern = pattern; } return buildHistogram(patterns); @@ -244,7 +246,7 @@ public static void main(String[] args) { System.out.println("BoPtest\n\n"); try { - Instances test = ClassifierTools.loadData("C:\\tempbakeoff\\TSC Problems\\Car\\Car_TRAIN.arff"); + Instances test = DatasetLoading.loadDataNullable("C:\\tempbakeoff\\TSC Problems\\Car\\Car_TRAIN.arff"); test.deleteAttributeAt(0); //just name of bottle BagOfPatternsFilter bop = new BagOfPatternsFilter(8,4,50); diff --git a/src/main/java/timeseriesweka/filters/Clipping.java b/src/main/java/timeseriesweka/filters/Clipping.java index 21603badc..3f15ef2ea 100644 --- a/src/main/java/timeseriesweka/filters/Clipping.java +++ b/src/main/java/timeseriesweka/filters/Clipping.java @@ -19,10 +19,6 @@ import weka.core.*; import weka.filters.SimpleBatchFilter; -/* - * copyright: Anthony Bagnall - * - * */ public class Clipping extends SimpleBatchFilter { boolean useMean=true; boolean useRealAttributes=false; diff --git a/src/main/java/timeseriesweka/filters/Cosine.java b/src/main/java/timeseriesweka/filters/Cosine.java index d4b7e130a..90ad0a1a9 100644 --- a/src/main/java/timeseriesweka/filters/Cosine.java +++ b/src/main/java/timeseriesweka/filters/Cosine.java @@ -14,10 +14,11 @@ */ package timeseriesweka.filters; -import experiments.DataSets; +import experiments.data.DatasetLists; +import experiments.data.DatasetLoading; import fileIO.OutFile; import utilities.ClassifierTools; -import timeseriesweka.classifiers.FastDTW_1NN; +import timeseriesweka.classifiers.distance_based.FastDTW_1NN; import weka.core.*; import weka.filters.SimpleBatchFilter; @@ -94,8 +95,8 @@ public static void main(String[] args){ String s="Beef"; OutFile of1 = new OutFile("C:\\Users\\ajb\\Dropbox\\test\\BeefCosine_TRAIN.arff"); OutFile of2 = new OutFile("C:\\Users\\ajb\\Dropbox\\test\\BeefCosine_TEST.arff"); - Instances test=utilities.ClassifierTools.loadData(DataSets.dropboxPath+s+"\\"+s+"_TEST"); - Instances train=utilities.ClassifierTools.loadData(DataSets.dropboxPath+s+"\\"+s+"_TRAIN"); + Instances test=DatasetLoading.loadDataNullable(DatasetLists.dropboxPath+s+"\\"+s+"_TEST"); + Instances train=DatasetLoading.loadDataNullable(DatasetLists.dropboxPath+s+"\\"+s+"_TRAIN"); Cosine cosTransform= new Cosine(); Sine sinTransform=new Sine(); Hilbert hilbertTransform= new Hilbert(); diff --git a/src/main/java/timeseriesweka/filters/MatrixProfile.java b/src/main/java/timeseriesweka/filters/MatrixProfile.java index b9f482fd6..2743a786a 100644 --- a/src/main/java/timeseriesweka/filters/MatrixProfile.java +++ b/src/main/java/timeseriesweka/filters/MatrixProfile.java @@ -14,6 +14,7 @@ */ package timeseriesweka.filters; +import experiments.data.DatasetLoading; import java.util.ArrayList; import static timeseriesweka.filters.shapelet_transforms.distance_functions.SubSeqDistance.ROUNDING_ERROR_CORRECTION; import utilities.ClassifierTools; @@ -701,7 +702,7 @@ public static void main(String[] args){ // String datapath = "C:/users/sjx07ngu/Dropbox/TSC Problems/"; String datasetName = "GunPoint"; - Instances train = ClassifierTools.loadData(datapath+datasetName+"/"+datasetName+"_TRAIN"); + Instances train = DatasetLoading.loadDataNullable(datapath+datasetName+"/"+datasetName+"_TRAIN"); int windowSize = 10; MatrixProfile mp = new MatrixProfile(windowSize); @@ -722,7 +723,7 @@ public static void main(String[] args){ // String datapath = "C:/users/sjx07ngu/Dropbox/TSC Problems/"; String datasetName = "GunPoint"; - Instances train = ClassifierTools.loadData(datapath+datasetName+"/"+datasetName+"_TRAIN"); + Instances train = DatasetLoading.loadDataNullable(datapath+datasetName+"/"+datasetName+"_TRAIN"); int windowSize = (train.numAttributes()-1)/4+1; MatrixProfile mp = new MatrixProfile(windowSize); Instances transformedToDistances = mp.process(train); diff --git a/src/main/java/timeseriesweka/filters/PowerSpectrum.java b/src/main/java/timeseriesweka/filters/PowerSpectrum.java index b9700d4c5..9c155389b 100644 --- a/src/main/java/timeseriesweka/filters/PowerSpectrum.java +++ b/src/main/java/timeseriesweka/filters/PowerSpectrum.java @@ -14,6 +14,7 @@ */ package timeseriesweka.filters; +import experiments.data.DatasetLoading; import fileIO.OutFile; import java.io.FileReader; import java.util.logging.Level; @@ -123,8 +124,8 @@ public Instances process(Instances instances) throws Exception { return output; } public static void waferTest(){ -/* Instances a=WekaMethods.loadData("C:\\Research\\Data\\Time Series Data\\Time Series Classification\\wafer\\wafer_TRAIN"); - Instances b=WekaMethods.loadData("C:\\Research\\Data\\Time Series Data\\Time Series Classification\\wafer\\wafer_TEST"); +/* Instances a=WekaMethods.loadDataThrowable("C:\\Research\\Data\\Time Series Data\\Time Series Classification\\wafer\\wafer_TRAIN"); + Instances b=WekaMethods.loadDataThrowable("C:\\Research\\Data\\Time Series Data\\Time Series Classification\\wafer\\wafer_TEST"); PowerSpectrum ps=new PowerSpectrum(); try{ Instances c=ps.process(a); @@ -184,8 +185,8 @@ public static void matlabComparison(){ //Case 4: 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1 /* PowerSpectrum ps=new PowerSpectrum(); - Instances test1=ClassifierTools.loadData("C:\\Users\\ajb\\Dropbox\\TSC Problems\\TestData\\FFT_test1"); - Instances test2=ClassifierTools.loadData("C:\\Users\\ajb\\Dropbox\\TSC Problems\\TestData\\FFT_test2"); + Instances test1=ClassifierTools.loadDataThrowable("C:\\Users\\ajb\\Dropbox\\TSC Problems\\TestData\\FFT_test1"); + Instances test2=ClassifierTools.loadDataThrowable("C:\\Users\\ajb\\Dropbox\\TSC Problems\\TestData\\FFT_test2"); Instances t2; try{ t2=ps.process(test1); @@ -213,7 +214,7 @@ public static void main(String[] args) { String problemPath = "E:/TSCProblems/"; String resultsPath="E:/Temp/"; String datasetName="ItalyPowerDemand"; - Instances train =ClassifierTools.loadData("E:/TSCProblems/"+datasetName+"/"+datasetName+"_TRAIN"); + Instances train =DatasetLoading.loadDataNullable("E:/TSCProblems/"+datasetName+"/"+datasetName+"_TRAIN"); PowerSpectrum ps= new PowerSpectrum(); try { Instances trans=ps.process(train); diff --git a/src/main/java/timeseriesweka/filters/SAX.java b/src/main/java/timeseriesweka/filters/SAX.java index 32caabc02..6874b5639 100644 --- a/src/main/java/timeseriesweka/filters/SAX.java +++ b/src/main/java/timeseriesweka/filters/SAX.java @@ -14,15 +14,15 @@ */ package timeseriesweka.filters; -import utilities.ClassifierTools; +import experiments.data.DatasetLoading; import weka.core.Attribute; import weka.core.DenseInstance; import weka.core.FastVector; import weka.core.Instance; import weka.core.Instances; -import weka.filters.Filter; +import weka.core.TechnicalInformation; +import weka.core.TechnicalInformationHandler; import weka.filters.SimpleBatchFilter; -import weka.filters.unsupervised.attribute.Normalize; /** * Filter to reduce dimensionality of and discretise a time series into SAX form, @@ -35,7 +35,7 @@ * * @author James */ -public class SAX extends SimpleBatchFilter { +public class SAX extends SimpleBatchFilter implements TechnicalInformationHandler { private int numIntervals = 8; private int alphabetSize = 4; @@ -293,13 +293,13 @@ public static void main(String[] args) { System.out.println("SAXtest\n\n"); try { - Instances test = ClassifierTools.loadData("C:\\tempbakeoff\\TSC Problems\\Car\\Car_TEST.arff"); + Instances test = DatasetLoading.loadDataThrowable("C:\\Users\\ajb\\Dropbox\\Data\\TSCProblems\\Chinatown\\Chinatown_TRAIN.arff"); new NormalizeCase().standardNorm(test); - SAX sax = new SAX(); - sax.setNumIntervals(2); - sax.setAlphabetSize(3); + + sax.setNumIntervals(8); + sax.setAlphabetSize(4); sax.useRealValuedAttributes(false); Instances result = sax.process(test); @@ -313,4 +313,21 @@ public static void main(String[] args) { } } + @Override + public TechnicalInformation getTechnicalInformation() { + TechnicalInformation result; + result = new TechnicalInformation(TechnicalInformation.Type.ARTICLE); + result.setValue(TechnicalInformation.Field.TITLE, "Experiencing SAX: a novel symbolic representation of time series"); + result.setValue(TechnicalInformation.Field.AUTHOR, "Jessica Lin, Eamonn Keogh, Li Wei and Stefano Lonardi"); + result.setValue(TechnicalInformation.Field.YEAR, "2007"); + result.setValue(TechnicalInformation.Field.JOURNAL, "Data Mining and Knowledge Discovery"); + result.setValue(TechnicalInformation.Field.VOLUME, "15"); + result.setValue(TechnicalInformation.Field.NUMBER, "2"); + result.setValue(TechnicalInformation.Field.PAGES, "107-144"); + + return result; + } + + + } diff --git a/src/main/java/timeseriesweka/filters/SummaryStats.java b/src/main/java/timeseriesweka/filters/SummaryStats.java index 86a52d8ce..70f7e13c1 100644 --- a/src/main/java/timeseriesweka/filters/SummaryStats.java +++ b/src/main/java/timeseriesweka/filters/SummaryStats.java @@ -15,6 +15,7 @@ package timeseriesweka.filters; +import experiments.data.DatasetLoading; import utilities.ClassifierTools; import weka.core.Attribute; import weka.core.DenseInstance; @@ -165,7 +166,7 @@ public static void main(String[] args) { try{ - Instances test=ClassifierTools.loadData("C:\\Users\\ajb\\Dropbox\\TSC Problems\\Beef\\Beef_TRAIN"); + Instances test=DatasetLoading.loadDataNullable("C:\\Users\\ajb\\Dropbox\\TSC Problems\\Beef\\Beef_TRAIN"); // Instances filter=new SummaryStats().process(test); SummaryStats m=new SummaryStats(); m.setInputFormat(test); diff --git a/src/main/java/timeseriesweka/filters/shapelet_transforms/GraceShapeletTransform.java b/src/main/java/timeseriesweka/filters/shapelet_transforms/GraceShapeletTransform.java index d7c19960a..b483402e8 100644 --- a/src/main/java/timeseriesweka/filters/shapelet_transforms/GraceShapeletTransform.java +++ b/src/main/java/timeseriesweka/filters/shapelet_transforms/GraceShapeletTransform.java @@ -14,7 +14,8 @@ */ package timeseriesweka.filters.shapelet_transforms; -import experiments.DataSets; +import experiments.data.DatasetLists; +import experiments.data.DatasetLoading; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -279,18 +280,18 @@ public static void test() final String ucrLocation = "../../time-series-datasets/TSC Problems"; final String transformLocation = "../../"; - String fileExtension = File.separator + DataSets.tscProblemsSmall[0] + File.separator + DataSets.tscProblemsSmall[0]; + String fileExtension = File.separator + DatasetLists.tscProblemsSmall[0] + File.separator + DatasetLists.tscProblemsSmall[0]; - Instances train = utilities.ClassifierTools.loadData(ucrLocation + fileExtension + "_TRAIN"); - Instances test = utilities.ClassifierTools.loadData(ucrLocation + fileExtension + "_TEST"); + Instances train = DatasetLoading.loadDataNullable(ucrLocation + fileExtension + "_TRAIN"); + Instances test = DatasetLoading.loadDataNullable(ucrLocation + fileExtension + "_TEST"); //first run: build the BSUB. - //GraceFullShapeletTransform.buildGraceBSUB("../../"+DataSets.tscProblemsSmall[0], train.numInstances(), "raj09hxu", "SamplingExperiments/dist", "samplingExperiments", "long", 1000); + //GraceFullShapeletTransform.buildGraceBSUB("../../"+DatasetLists.tscProblemsSmall[0], train.numInstances(), "raj09hxu", "SamplingExperiments/dist", "samplingExperiments", "long", 1000); GraceShapeletTransform st = new GraceShapeletTransform(); st.setNumberOfShapelets(train.numInstances()*10); - st.setLogOutputFile(DataSets.tscProblemsSmall[0] + ".csv"); + st.setLogOutputFile(DatasetLists.tscProblemsSmall[0] + ".csv"); //set the params for your transform. length, shapelets etc. diff --git a/src/main/java/timeseriesweka/filters/shapelet_transforms/ShapeletTransform.java b/src/main/java/timeseriesweka/filters/shapelet_transforms/ShapeletTransform.java index 7fdb3b917..5cdde4a82 100644 --- a/src/main/java/timeseriesweka/filters/shapelet_transforms/ShapeletTransform.java +++ b/src/main/java/timeseriesweka/filters/shapelet_transforms/ShapeletTransform.java @@ -14,6 +14,7 @@ */ package timeseriesweka.filters.shapelet_transforms; +import experiments.data.DatasetLoading; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; @@ -83,6 +84,7 @@ public class ShapeletTransform extends SimpleBatchFilter implements SaveParamete //Variables for experiments protected static long subseqDistOpCount; private boolean removeSelfSimilar = true; + private boolean pruneMatchingShapelets; @Override public String globalInfo() { @@ -337,8 +339,8 @@ public void setLogOutputFile(String fileName) { * Mutator method to set the minimum and maximum shapelet lengths for the * filter. * - * @param minShapeletLength minimum length of shapelets - * @param maxShapeletLength maximum length of shapelets + * @param min minimum length of shapelets + * @param max maximum length of shapelets */ public void setShapeletMinAndMax(int min, int max) { searchFunction.setMinAndMax(min, max); @@ -429,7 +431,7 @@ protected Instances determineOutputFormat(Instances inputFormat) throws IllegalA protected void inputCheck(Instances dataInst) throws IllegalArgumentException { if (numShapelets < 1) { - throw new IllegalArgumentException("Number of shapelets initialised incorrectly - please select value of k (Usage: setNumberOfShapelets"); + throw new IllegalArgumentException("Number of shapelets initialised incorrectly to "+numShapelets+" - please select value of k (Usage: setNumberOfShapelets"); } int maxPossibleLength; @@ -581,7 +583,7 @@ public ArrayList findBestKShapeletsCache(Instances data) { outputPrint("Processing data: "); int dataSize = data.numInstances(); - + //for all possible time series. for(; casesSoFar < dataSize; casesSoFar++) { outputPrint("data : " + casesSoFar); @@ -706,35 +708,78 @@ protected ArrayList combine(int k, ArrayList kBestSoFar, Arr //one list is expired keep adding the other list until we reach K. if (shapelet1Null) { - newBestSoFar.add(shapelet2); + //even if the list has expired don't just add shapelets without considering they may be dupes. + AddToBestSoFar(shapelet2, newBestSoFar); tssPtr++; continue; } //one list is expired keep adding the other list until we reach K. if (shapelet2Null) { - newBestSoFar.add(shapelet1); + //even if the list has expired don't just add shapelets without considering they may be dupes. + AddToBestSoFar(shapelet1, newBestSoFar); bsfPtr++; continue; } //if both lists are fine then we need to compare which one to use. - if (shapeletComparator.compare(shapelet1, shapelet2) == -1) { - newBestSoFar.add(shapelet1); + int compare = shapeletComparator.compare(shapelet1, shapelet2); + if (compare < 0) { + AddToBestSoFar(shapelet1, newBestSoFar); bsfPtr++; shapelet1 = null; - } else { - newBestSoFar.add(shapelet2); + } else{ + AddToBestSoFar(shapelet2, newBestSoFar); tssPtr++; shapelet2 = null; - } - + } } return newBestSoFar; } + private void AddToBestSoFar(Shapelet shapelet1, ArrayList newBestSoFar) { + boolean containsMatchingShapelet = false; + if(pruneMatchingShapelets) + containsMatchingShapelet = containsMatchingShapelet(shapelet1, newBestSoFar); + + if(!containsMatchingShapelet) + newBestSoFar.add(shapelet1); + } + + private boolean containsMatchingShapelet(Shapelet shapelet, ArrayList newBestSoFar){ + //we're going to be comparing all the shapelets we have to shapelet. + this.subseqDistance.setShapelet(shapelet); + + //go backwards from where we're at until we stop matching. List is sorted. + for(int index=newBestSoFar.size()-1;index>=0; index--){ + Shapelet shape = newBestSoFar.get(index); + int compare2 = shapeletComparator.compare(shape, shapelet); + //if we are not simply equal to the shapelet that we're looking at then abandon ship. + if(compare2 != 0){ + return false; // stop evaluating. we no longer have any matches. + } + + System.out.println("matched length and IG."); + + //if we're here then evaluate the shapelet distance. if they're equal in the comparator it means same length, same IG. + double dist = this.subseqDistance.distanceToShapelet(shape); + //if we hit a shapelet we nearly match with 1e-6 match with stop checking. + if(isNearlyEqual(dist, 0.0)){ + return true; //this means we should not add the shapelet. + } + } + + return false; + } + + private static boolean isNearlyEqual(double a, double b){ + double eps = 1e-6; + return Math.abs(a - b) < eps; + } + + /** * protected method to remove self-similar shapelets from an ArrayList (i.e. * if they come from the same series and have overlapping indicies) @@ -1191,8 +1236,8 @@ public static void basicTest(){ final int fold = 1; final String filePath = dataLocation + File.separator + dataset + File.separator + dataset; Instances test, train; - test = utilities.ClassifierTools.loadData(filePath + "_TEST"); - train = utilities.ClassifierTools.loadData(filePath + "_TRAIN"); + test = DatasetLoading.loadDataNullable(filePath + "_TEST"); + train = DatasetLoading.loadDataNullable(filePath + "_TRAIN"); ShapeletSearchOptions searchOptions = new ShapeletSearchOptions.Builder() .setMin(3) .setMax(train.numAttributes()-1) @@ -1230,13 +1275,13 @@ public static void basicTest(){ } public static void main(String[] args){ try { - final String resampleLocation = "../../Dropbox//TSC Problems"; - final String dataset = "ItalyPowerDemand"; + final String resampleLocation = "D:\\Research TSC\\Data\\TSCProblems2018"; + final String dataset = "Yoga"; final int fold = 1; final String filePath = resampleLocation + File.separator + dataset + File.separator + dataset; Instances test, train; - test = utilities.ClassifierTools.loadData(filePath + "_TEST"); - train = utilities.ClassifierTools.loadData(filePath + "_TRAIN"); + test = DatasetLoading.loadDataNullable(filePath + "_TEST"); + train = DatasetLoading.loadDataNullable(filePath + "_TRAIN"); //use fold as the seed. //train = InstanceTools.subSample(train, 100, fold); @@ -1251,6 +1296,7 @@ public static void main(String[] args){ transform.setNumberOfShapelets(train.numInstances() * 10); transform.setQualityMeasure(ShapeletQualityChoice.INFORMATION_GAIN); transform.supressOutput(); + transform.setPruneMatchingShapelets(true); long startTime = System.nanoTime(); @@ -1317,5 +1363,19 @@ public boolean isRemoveSelfSimilar() { public void setRemoveSelfSimilar(boolean removeSelfSimilar) { this.removeSelfSimilar = removeSelfSimilar; } + + /** + * @return the pruneMatchingShapelets + */ + public boolean isPruneMatchingShapelets() { + return pruneMatchingShapelets; + } + + /** + * @param pruneMatchingShapelets the pruneMatchingShapelets to set + */ + public void setPruneMatchingShapelets(boolean pruneMatchingShapelets) { + this.pruneMatchingShapelets = pruneMatchingShapelets; + } } diff --git a/src/main/java/timeseriesweka/filters/shapelet_transforms/ShapeletTransformLight.java b/src/main/java/timeseriesweka/filters/shapelet_transforms/ShapeletTransformLight.java deleted file mode 100644 index 7b635a086..000000000 --- a/src/main/java/timeseriesweka/filters/shapelet_transforms/ShapeletTransformLight.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package timeseriesweka.filters.shapelet_transforms; - -import java.io.OutputStreamWriter; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.Map; -import java.util.PriorityQueue; -import java.util.TreeMap; -import weka.core.Instances; - -/** - * - * Tony's stripped down shapelet finder. - */ -public class ShapeletTransformLight implements Serializable -{ - private int numShapelets=1000; //Max number of shapelets - private Instances trainData; - protected ArrayList shapelets;//Final list of shapelets - double allowedTime=1000*60*60; //Default to one hour - - public void findBestShapelets(Instances data){ - double startTime=System.currentTimeMillis(); - double currentTime=System.currentTimeMillis(); - - int c=data.numClasses(); - int m=data.numAttributes()-1; - int n=data.numInstances(); - trainData=data; - - PriorityQueue[] shapeletsByClass= new PriorityQueue[c]; - for (int i=0; i (); -//Store in a priority MAX queue with the worst at the top. -//Once we have the minimum of each class, remove the worst so far if the new one is better - //Number shapelets per class - int shapeletsPerClass = numShapelets/c; -//Start the timer - boolean timesUp=false; - while(currentTime-startTime mergeBestKShapelets(ArrayList[] shapeletsByClass) - { - ArrayList kShapelets = new ArrayList<>(); - - int numberOfClassVals = shapeletsByClass.length; - int proportion = numShapelets/numberOfClassVals; - - - Iterator it; - - //all lists should be sorted. - //go through the map and get the sub portion of best shapelets for the final list. - for(ArrayList list : shapeletsByClass){ - int i=0; - it = list.iterator(); - while(it.hasNext() && i++ <= proportion) - kShapelets.add(it.next()); - } - return kShapelets; - } - - private class Shapelet implements Comparable{ - int caseIndex; - int startPosition; - int length; - double quality; - - @Override - public int compareTo(Shapelet t) { //For min Heap, i.e. worst is next to process and has highest priority - if(quality>t.quality) return 1; - if(quality1){ - M[i][i-k-1] = Integer.MAX_VALUE; - } - } - - int sc = 1; - int ec = 1; - int beg; - int end; - boolean smaller_found = false; - int ec_next; - boolean test_flag; - // Run the algorithm - // Go through each cell of the M matrix and use Temporal Needleman-Waterman recursion formulas to fill it in; populate the D matrix at each step! - for (int i = 1 ; i <= m ; i++) { - // set the start and end of the warping window for row i - beg = Math.max(sc, i-k); - end = Math.min(i+k,n); - M[i][beg-1] = Integer.MAX_VALUE; // You must initialize the first value prior to the window to inifinity - if(beg==end) { - break; - } - smaller_found = false; //for each row, initially you have not found a smaller value than UB - ec_next = i; - test_flag = true; - for (int j = beg; j <= end ; j++) { - - diagScore = M[i-1][j-1] + Math.abs(seqA[i-1] - seqB[j-1]); - horizScore = M[i][j-1] + gapPenalty; - vertScore = M[i-1][j] + gapPenalty; - - //Set M[i][j] to the max of these scores - if (diagScore<=horizScore && diagScore<=vertScore) { - D[i][j] = DIAGONAL; //diagonal is the best - M[i][j] = diagScore; - } - else if (vertScore<=horizScore && vertScore<=diagScore) { - M[i][j] = vertScore; - D[i][j] = VERTICAL; //vertical is best - } - else { - D[i][j] = HORIZONTAL; //horizontal is best - M[i][j] = horizScore; - } - - //prune now - if(!smaller_found && M[i][j]>(UB - gapPenalty*(Math.abs(j-i)))){ - if (!smaller_found){ - sc = j+1; - test_flag=false; - if(i!=m) { - M[i+1][j] = Integer.MAX_VALUE; // set intial value of the cell on the next row - } - } - //if (j>=ec) { - // break; - //} - } - else { - smaller_found = true; - ec_next = j+1; - } - } - ec = ec_next; - } - - double[] result = new double[2]; //store number of gaps - result[0] = M[m][n]; //alignment score - - //Backtrack the optimal alignment and tabulate number of gaps of every length - int i = m, j = n; - int vGaps = 0; - int hGaps = 0; - - while(i != 0 && j != 0){ - if(D[i][j] == DIAGONAL){ // diagonal - - if(vGaps!=0) - result[1] = result[1] + Math.log(Math.abs(vGaps+1)); // total possible timing penalties - if(hGaps!=0) - result[1] = result[1] + Math.log(Math.abs(hGaps+1)); - - //gaps[vGaps] = gaps[vGaps] + 1; // count vertical gaps of length vGaps - //gaps[hGaps] = gaps[hGaps] + 1; // count horizontal gaps of length hGaps - //reset the gap length - vGaps = 0; - hGaps = 0; - i--; - j--; - }else if(D[i][j] == VERTICAL){ // vertical - vGaps = vGaps + 1; - i--; - }else{ // horizontal - hGaps = hGaps + 1; - j--; - } - } - - return result; - - } - - private static void printScoreMatrix(double[][] matrix){ - for(int i = 0 ; i < matrix.length ; i++){ - for(int j = 0 ; j < matrix[0].length ; j++){ - //System.out.print("" + matrix[i][j] + " "); - System.out.print(""); - if(matrix[i][j]>=0){ - System.out.print("+"); - } - - System.out.printf("%.8f",matrix[i][j]); - System.out.print(" "); - } - System.out.println(); - } - } - private String getString(Stack stack){ - StringBuilder seqResult = new StringBuilder(); - while(!stack.isEmpty()){ - seqResult.append(stack.pop() + " "); - } - return seqResult.toString().trim(); - - } - - private String[] stringToArraySequence(String seq, int size) { - - String[] seqArray = new String[size]; - for(int i = 0; i map){ - int[] indexSeq = new int[seq.length]; - for(int i = 0 ; i < seq.length ; i++){ - indexSeq[i]= map.get(seq[i]); - } - return indexSeq; - - } - private String generateGap(int length){ - char[] fill = new char[length]; - Arrays.fill(fill, '-'); - return new String(fill); - } - - private static void addSeqEventsToScoreMatrix(String[] seq, Map map) { - // for a single sequence, this adds the events to the labels of the scoring matrix - for(int i = 0 ; i < seq.length ; i++){ - if(!map.containsKey(seq[i])){ - map.put(seq[i],map.size()); - } - } - } -} diff --git a/src/main/java/timeseriesweka/measures/taa/TAA_banded.java b/src/main/java/timeseriesweka/measures/taa/TAA_banded.java deleted file mode 100644 index ef17ad6a7..000000000 --- a/src/main/java/timeseriesweka/measures/taa/TAA_banded.java +++ /dev/null @@ -1,332 +0,0 @@ -package timeseriesweka.measures.taa; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.LinkedList; -import java.util.Map; -import java.util.Stack; - -public class TAA_banded { - - public static final char VERTICAL = 'v'; - public static final char DIAGONAL = 'd'; - public static final char HORIZONTAL = 'h'; - public static final double t_event= 116; - - public double score(double[] seqA, int[] sA, double[] seqB, int[] sB, double gPenalty, double tPenalty, int K) { - // the event 't' in seqA and in seqB is represented as the value 116 (which is the ascii for t - - int m = seqA.length; - int n = seqB.length; - - double[][] V = new double[m + 1][n + 1]; // Score matrix - double[][] G = new double[m + 1][n + 1]; // Match matrix - double[][] E = new double[m + 1][n + 1]; // Horizontal gap Matrix - double[][] F = new double[m + 1][n + 1]; // Vertical gap Matrix - - LinkedList EPointers = new LinkedList(); - EPointers.addFirst(0); - ArrayList> FPointers = new ArrayList>(); - LinkedList EBlockList = new LinkedList(); - EBlockList.addFirst(n); - ArrayList> FBlockList = new ArrayList>(); - for (int i = 0; i <= n; i++) { - LinkedList list = new LinkedList(); - list.addFirst(m); - FBlockList.add(list); - LinkedList pointerList = new LinkedList(); - pointerList.addFirst(0); - FPointers.add(pointerList); - } - - // init V - for (int i = 0; i <= m; i++) { - // start end seqLabels, seqNoTimeMap, delimiter - V[i][0] = Integer.MAX_VALUE; - E[i][0] = Integer.MAX_VALUE; - } - // init V - int I = 1; - for (int j = 0; j <= n; j++) { - V[0][j] = Integer.MAX_VALUE; - F[0][j] = Integer.MAX_VALUE; - if(j!=0 && j CandR(j, j+1, V, i, sB, gPenalty, tPenalty)) { // if the candidate from j wins - - // j's candidate wins - while(!EBlockList.isEmpty() && CandR(jPointer, jPrime, V, i, sB, gPenalty, tPenalty) > CandR(j, jPrime, V, i, sB, gPenalty, tPenalty)){ // if j keeps winning - EBlockList.removeFirst(); - EPointers.removeFirst(); - if(!EBlockList.isEmpty()){ - jPrime = EBlockList.getFirst(); - } - } - - if(EBlockList.isEmpty()){ // if the candidate from j is the best to the end - EBlockList.addFirst(n); // you have one contiguous block from j through to n - } else{ // figure out where the candidate from j stops being the best - - int BsRow = EPointers.getFirst(); - //Analytically figure out when the candidate from j will stop winning - // for logarithmic functions, you can compute when one of them will overtake the other - double eC = Math.exp(V[i][j]-V[i][BsRow])/tPenalty; - - int d = (int) Math.ceil((BsRow - j)/(1-eC)) - 1; //d is the offset of cells at which j's candidate is no longer better - - if (seqB[j-1]==t_event) { - d = d*2; // you have to account for the static events in between - } else { - d = d*2-1; // you have to account for the static events in between - } - // Time series format: A t1 A t A t. - if(d>0) { - int p = j + d; // p is the cell at which the candidate from j is no longer better - - if(p<=n) { - EBlockList.addFirst(p); - } - } - } - EPointers.addFirst(j); - } - - int iPrime = FBlockList.get(j).getFirst(); - int iPointer = FPointers.get(j).getFirst(); - if(i!=m && CandC(iPointer,i+1,V,j,sA, gPenalty, tPenalty) > CandC(i,i+1,V,j,sA, gPenalty, tPenalty)){ - while(!FBlockList.get(j).isEmpty() && CandC(iPointer,iPrime, V, j, sA, gPenalty, tPenalty) > CandC(i,iPrime, V, j, sA, gPenalty, tPenalty)){ - int removedItem = FBlockList.get(j).removeFirst(); - int removedPointer = FPointers.get(j).removeFirst(); - if(!FBlockList.get(j).isEmpty()){ - iPrime = FBlockList.get(j).getFirst(); - } - } - if(FBlockList.get(j).isEmpty()){ - FBlockList.get(j).addFirst(m); - }else{ - int BsCol = FPointers.get(j).getFirst(); - - //Find the point at which j's candidate overtakes the candidate from B_s - // for logarithmic functions, you can compute when one of them will overtake the other - double eC = Math.exp(V[i][j]-V[BsCol][j])/tPenalty; - int d = (int) Math.ceil((BsCol - i)/(1-eC)) - 1; //d is the offset of cells after which j's candidate is no longer better - if (seqB[j-1]==t_event) { - d = d*2; // you have to account for the static events in between - } else { - d = d*2-1; // you have to account for the static events in between - } - // d is the offset of number of cells after which j's candidate stops winning - if(d>0) { - int p = j + d; // cell p is the cell where j's candidate stops winning - if(p<=n) { - FBlockList.get(j).addFirst(p); // - } - } - } - FPointers.get(j).addFirst(i); - } - } - } - - return V[m][n]; - } - /** - * - * @param k cell that sends candidates - * @param j this is destination cell - * @param V Reference for the V matrix - * @param row this is row number. - * @return - */ - private double CandR(int k, int j, double[][] V, int row, int[] s, double gPenalty, double tPenalty) { - return V[row][k] + W(k,j,Math.abs(s[k]-s[j]), gPenalty, tPenalty); - } - /** - * - * @param k row that sends candidates - * @param i row that receives candidates - * @param V reference to V matrix - * @param col column number - * @return - */ - private double CandC(int k, int i, double[][] V, int col, int[] s, double gPenalty, double tPenalty) { - return V[k][col] + W(k,i,Math.abs(s[k]-s[i]), gPenalty, tPenalty); - } - - // W is the penalty function and requires the nmber of - public double W(int k, int i, int Nstatic, double gPenalty, double tPenalty){ - - //s is the number of static events. compute penalty - double penalty = tPenalty*Math.log(Math.abs(i - k) - Nstatic + 1) + Nstatic*gPenalty; - - if(i==k){ // if the alignment is from the current cell to the current cell, then there is no penalty - penalty = 0; - } - - return penalty; - } - private String getString(Stack stack){ - StringBuilder seqResult = new StringBuilder(); - while(!stack.isEmpty()){ - seqResult.append(stack.pop() + " "); - } - return seqResult.toString().trim(); - - } - private String generateGap(int length){ - char[] fill = new char[length]; - Arrays.fill(fill, '-'); - return new String(fill); - } - private static String[] generateTime(int length){ - String[] f = new String[length]; - Arrays.fill(f, "t"); - return f; - } - private int[] getIndexSequence(String[] seq, Map map){ - int[] indexSeq = new int[seq.length]; - for(int i = 0 ; i < seq.length ; i++){ - indexSeq[i]= map.get(seq[i]); - } - return indexSeq; - - } - private static void printScoreMatrix(double[][] matrix){ - for(int i = 0 ; i < matrix.length ; i++){ - for(int j = 0 ; j < matrix[0].length ; j++){ - //System.out.print("" + matrix[i][j] + " "); - System.out.print(""); - if(matrix[i][j]>=0){ - System.out.print("+"); - } - - System.out.printf("%.8f",matrix[i][j]); - System.out.print(" "); - } - System.out.println(); - } - } - private static void addSeqEventsToScoreMatrix(String[] seq, Map map) { - // for a single sequence, this adds the events to the labels of the scoring matrix - for(int i = 0 ; i < seq.length ; i++){ - if(!map.containsKey(seq[i])){ - map.put(seq[i],map.size()); - } - } - } - private static String[] seqRemoveTiming(String seq, Map map){ - //remove timing values from the string if there are timing values and add the events to the labels for the score matrix - String[] chunks = seq.split(" "); - String[] sbSeq = new String[chunks.length]; - for(int i = 0 ; i < chunks.length ; i++){ - String chunk = chunks[i]; - String[] planAndTime = chunk.split("\\."); - sbSeq[i] = planAndTime[0]; - - } - return sbSeq; - } - private static String[] seqAddTimings(String seq, int[] staticEventCount, int seqL){ - //remove timing values from the string if there are timing values and add the events to the labels for the score matrix - String[] chunks = seq.split(" "); - String event; - int time; - String[] newSeq = new String[seqL]; // because we don't know final size - int j; - int staticCount = 0; // raw index in the array - int counter = 0; - staticEventCount[0] = 0; // the first row and column of matrix should get a static event count of 0 - for(int i = 0 ; i < chunks.length ; i++){ - String[] planAndTime = chunks[i].split("\\."); - event = planAndTime[0]; - time = Integer.parseInt(planAndTime[1]); // amount of time - newSeq[counter] = event; // add the event - counter = counter+1; - staticCount = staticCount+1; //Number of static events - staticEventCount[counter] = staticCount; - - for (j = 0; j < time; j++) { //j is the time number; - newSeq[counter] = "t"; - counter = counter+1; - staticEventCount[counter] = staticCount; - } - } - return newSeq; - } - private static ArrayList seqIncludeTimingEvents(String seq, Map tMap, Map eMap){ - //remove timing values from the string if there are timing values and add the events to the labels for the score matrix - String[] chunks = seq.split(" "); - String[] sbSeq = new String[chunks.length]; - String event; - int time; - ArrayList newSeq = new ArrayList(); // because we don't know final size - int tCounts = 1; - int j; - int rawIndex = 0; // raw index in the array - for(int i = 0 ; i < chunks.length ; i++){ - String chunk = chunks[i]; - String[] planAndTime = chunk.split("\\."); - event = planAndTime[0]; - newSeq.add(event); // add the event - rawIndex = rawIndex+1; //Raw Array Index - eMap.put(rawIndex, tCounts); //for each static event, store the index of the upcoming timing event so it can be used for calculating timing penalties... - time = Integer.parseInt(planAndTime[1]); // amount of time - for (j = tCounts; j < tCounts+time; j++) { //j is the time number; - rawIndex = rawIndex + 1; //count each timing event - //map each timing event to a key in the array sequence - tMap.put(j,new int[]{i+j, i+1}); // index of timing event in sequence, second argument is number of static events so far. - newSeq.add(Integer.toString(j)); - } - tCounts = tCounts+time; - } - System.out.println("rawIndex = " + Integer.toString(rawIndex)); - return newSeq; - } - -} diff --git a/src/main/java/timeseriesweka/measures/taa/Taa.java b/src/main/java/timeseriesweka/measures/taa/Taa.java deleted file mode 100644 index 0fa27d3ed..000000000 --- a/src/main/java/timeseriesweka/measures/taa/Taa.java +++ /dev/null @@ -1,93 +0,0 @@ -package timeseriesweka.measures.taa; - -import timeseriesweka.measures.DistanceMeasure; -import weka.core.TechnicalInformation; - -public class Taa extends DistanceMeasure { - - private static final TAA_banded TAA = new TAA_banded(); - - private int k; - - public Taa(int k, double gPenalty, double tPenalty) { - this.k = k; - this.gPenalty = gPenalty; - this.tPenalty = tPenalty; - } - - private double gPenalty; - - public int getK() { - return k; - } - - public void setK(int k) { - this.k = k; - } - - public double getGPenalty() { - return gPenalty; - } - - public void setGPenalty(double gPenalty) { - this.gPenalty = gPenalty; - } - - public double getTPenalty() { - return tPenalty; - } - - public void setTPenalty(double tPenalty) { - this.tPenalty = tPenalty; - } - - private double tPenalty; - - - private int[] naturalNumbers(int size) { - int[] numbers = new int[size]; - for(int i = 0; i < numbers.length; i++) { - numbers[i] = i; - } - return numbers; - } - - @Override - protected double measureDistance(double[] timeSeriesA, double[] timeSeriesB, double cutOff) { - return TAA.score(timeSeriesA, - naturalNumbers(timeSeriesA.length), - timeSeriesB, - naturalNumbers(timeSeriesB.length), - 1, 1, 1); - } - - @Override - public String getRevision() { - return null; - } - - @Override - public TechnicalInformation getTechnicalInformation() { - return null; - } - - public static void main(String[] args) { - double[] a = new double[] {1,1,2,2,3,3,2,2,1,1}; - double[] b = new double[] {1,2,3,2,1,1,1,1,1,2}; - int[] aIntervals = new int[] {1,2,3,4,5,6,7,8,9,10}; - int[] bIntervals = new int[] {1,2,3,4,5,6,7,8,9,10}; - System.out.println(new TAA_banded().score(a,aIntervals,b,bIntervals,2,2,2)); - Taa taa = new Taa(2,2,2); - System.out.println(taa.distance(a,b)); - } - - @Override - public String getParameters() { - return "k=" + k + ",tPenalty=" + tPenalty + ",gPenalty=" + gPenalty + ","; - } - - @Override - public String toString() { - return "TAA"; - } -} diff --git a/src/main/java/utilities/ClassifierTools.java b/src/main/java/utilities/ClassifierTools.java index 390723b7f..63326d4ae 100644 --- a/src/main/java/utilities/ClassifierTools.java +++ b/src/main/java/utilities/ClassifierTools.java @@ -47,7 +47,7 @@ import java.io.IOException; import java.util.Arrays; import statistics.distributions.NormalDistribution; -import weka.classifiers.lazy.kNN; +import weka_uea.classifiers.kNN; import weka.core.Attribute; import weka.core.DenseInstance; import weka.core.converters.ArffSaver; @@ -60,66 +60,6 @@ */ public class ClassifierTools { - /** - * simply loads the file on path or exits the program - * @param fullPath source path for ARFF file WITHOUT THE EXTENSION for some reason - * @return Instances from path - */ - public static Instances loadData(String fullPath){ - if(!fullPath.toLowerCase().endsWith(".arff")) - fullPath += ".arff"; - - try { - return loadData(new File(fullPath)); - } catch(IOException e) { - System.out.println("Unable to load data on path "+fullPath+" Exception thrown ="+e); - return null; - } - } - - public static Instances loadDataThrowable(String fullPath) throws IOException{ - if(!fullPath.toLowerCase().endsWith(".arff")) - fullPath += ".arff"; - - return loadData(new File(fullPath)); - } - - /** - * simply loads the instances from the file - * @param file the File pointer rather than the path. Useful if you use FilenameFilters. - * @return Instances from file. - */ - public static Instances loadData(File file) throws IOException{ - FileReader reader = new FileReader(file); - Instances inst = new Instances(reader); - inst.setClassIndex(inst.numAttributes()-1); - reader.close(); - return inst; - } - - /** - * Simple util to saveDatasets out. Useful for shapelet transform. - * - * @param dataSet - * @param fileName - */ - public static void saveDataset(Instances dataSet, String fileName) - { - try - { - ArffSaver saver = new ArffSaver(); - saver.setInstances(dataSet); - if (fileName.endsWith(".arff")) - saver.setFile(new File(fileName)); - else - saver.setFile(new File(fileName + ".arff")); - saver.writeBatch(); - } - catch (IOException ex) - { - System.out.println("Error saving transformed dataset" + ex); - } - } /** * Simple util to find the accuracy of a trained classifier on a test set. Probably is a built in method for this! diff --git a/src/main/java/utilities/InstanceTools.java b/src/main/java/utilities/InstanceTools.java index 9a5fed8d8..352ba38bc 100644 --- a/src/main/java/utilities/InstanceTools.java +++ b/src/main/java/utilities/InstanceTools.java @@ -18,6 +18,7 @@ import java.io.FileWriter; import java.util.*; +import scala.tools.nsc.Global; import utilities.class_counts.ClassCounts; import utilities.class_counts.TreeSetClassCounts; import utilities.generic_storage.Pair; @@ -268,6 +269,23 @@ public static Instances toWekaInstancesWithClass(double[][] data) { return wekaInstances; } + //converts a 2d array into a weka Instances, appending the ith classlabel onto the ith row of data for each instance + public static Instances toWekaInstances(double[][] data, double[] classLabels) { + //todo error checking if really wanted. all utils need it at some point + + double[][] newData = new double[data.length][]; + + for (int i = 0; i < data.length; i++) { + newData[i] = new double[data[i].length + 1]; + int j = 0; + for ( ; j < data[i].length; j++) + newData[i][j] = data[i][j]; + + newData[i][j] = classLabels[i]; + } + + return toWekaInstancesWithClass(newData); + } //converts a weka Instances into a 2d array - removing class val at the end. public static double[][] fromWekaInstancesArray(Instances ds, boolean removeLastVal) { @@ -747,5 +765,4 @@ public static Instances concatenateInstances(Instances a, Instances b){ combo.setClassIndex(combo.numAttributes()-1); return combo; } - } diff --git a/src/main/java/utilities/generic_storage/SingleComparablePair.java b/src/main/java/utilities/generic_storage/SingleComparablePair.java new file mode 100644 index 000000000..2efc299d8 --- /dev/null +++ b/src/main/java/utilities/generic_storage/SingleComparablePair.java @@ -0,0 +1,49 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package utilities.generic_storage; + +import java.util.Objects; + +public class SingleComparablePair, T2 extends Comparable > +implements Comparable>{ + public final T1 var1; + public final T2 var2; + public SingleComparablePair(T1 t1, T2 t2){ + var1 = t1; + var2 = t2; + } + + @Override + public String toString(){ + return var1 + " " + var2; + } + + @Override + public int compareTo(SingleComparablePair other) { + return var1.compareTo(other.var1); + } + + @Override + public boolean equals(Object other) { + if (other instanceof SingleComparablePair) + return var1.equals(((SingleComparablePair)other).var1); + return false; + } + + @Override + public int hashCode() { + return Objects.hash(var1); + } +} diff --git a/src/main/java/utilities/multivariate_tools/CalculateDatasetsStats.java b/src/main/java/utilities/multivariate_tools/CalculateDatasetsStats.java index 1b3c0a77f..0d46992ef 100644 --- a/src/main/java/utilities/multivariate_tools/CalculateDatasetsStats.java +++ b/src/main/java/utilities/multivariate_tools/CalculateDatasetsStats.java @@ -14,6 +14,7 @@ */ package utilities.multivariate_tools; +import experiments.data.DatasetLoading; import fileIO.OutFile; import java.util.Arrays; import java.util.Map; @@ -36,7 +37,7 @@ public static void main(String[] args) throws Exception { OutFile out = new OutFile(multivariate_timeseriesweka.DataSets.dropboxPath + dataset +"_summarystats.txt"); - Instances train = utilities.ClassifierTools.loadData(multivariate_timeseriesweka.DataSets.dropboxPath + dataset + "/" + dataset +"_TRAIN.arff"); + Instances train = DatasetLoading.loadDataNullable(multivariate_timeseriesweka.DataSets.dropboxPath + dataset + "/" + dataset +"_TRAIN.arff"); Instances[] channels = utilities.multivariate_tools.MultivariateInstanceTools.splitMultivariateInstances(train); out.writeLine("num instances " + train.numInstances()); diff --git a/src/main/java/utilities/multivariate_tools/ConvertDatasets.java b/src/main/java/utilities/multivariate_tools/ConvertDatasets.java index f0e10b649..ff158b576 100644 --- a/src/main/java/utilities/multivariate_tools/ConvertDatasets.java +++ b/src/main/java/utilities/multivariate_tools/ConvertDatasets.java @@ -14,6 +14,7 @@ */ package utilities.multivariate_tools; +import experiments.data.DatasetLoading; import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; @@ -27,9 +28,6 @@ import weka.core.DenseInstance; import weka.core.FastVector; import weka.core.Instances; - -import static utilities.ClassifierTools.loadData; -import weka.core.Instance; /** * * @author raj09hxu @@ -56,9 +54,9 @@ public static void main(String[] args) throws FileNotFoundException { /*String dir = "E:\\LocalData\\Dropbox\\Multivariate TSC\\Aarons Official\\ArticularyWord\\"; - Instances[] LL = splitMultivariateInstances(loadData(dir+"ArticularyWordLL")); - Instances[] T1 = splitMultivariateInstances(loadData(dir+"ArticularyWordT1")); - Instances[] UL = splitMultivariateInstances(loadData(dir+"ArticularyWordUL")); + Instances[] LL = splitMultivariateInstances(loadDataThrowable(dir+"ArticularyWordLL")); + Instances[] T1 = splitMultivariateInstances(loadDataThrowable(dir+"ArticularyWordT1")); + Instances[] UL = splitMultivariateInstances(loadDataThrowable(dir+"ArticularyWordUL")); List list = new ArrayList(LL.length+T1.length+UL.length); list.addAll(Arrays.asList(LL)); @@ -66,7 +64,7 @@ public static void main(String[] args) throws FileNotFoundException { list.addAll(Arrays.asList(UL)); saveDataset(mergeToMultivariateInstances(list.toArray(new Instances[list.size()])), dir+"ArticularyWord"); - Instances data = utilities.ClassifierTools.loadData(dir + "ArticularyWord.arff"); + Instances data = utilities.ClassifierTools.loadDataThrowable(dir + "ArticularyWord.arff"); Instances train, test; @@ -79,13 +77,13 @@ public static void main(String[] args) throws FileNotFoundException { utilities.ClassifierTools.saveDataset(test, dir + "ArticularyWord" + "_TEST");*/ /*saveDataset(mergeToMultivariateInstances(new Instances[]{ - loadData("DTW_A_TEST/A_TRAIN"), - loadData("DTW_A_TEST/B_TRAIN")} + loadDataThrowable("DTW_A_TEST/A_TRAIN"), + loadDataThrowable("DTW_A_TEST/B_TRAIN")} ), "AB_TRAIN"); saveDataset(mergeToMultivariateInstances(new Instances[]{ - loadData("DTW_A_TEST/A_TEST"), - loadData("DTW_A_TEST/B_TEST")} + loadDataThrowable("DTW_A_TEST/A_TEST"), + loadDataThrowable("DTW_A_TEST/B_TEST")} ), "AB_TEST");*/ @@ -99,7 +97,7 @@ public static void main(String[] args) throws FileNotFoundException { Instances[] data = new Instances[end.length]; int i=0; for(String en : end){ - data[i++] = utilities.ClassifierTools.loadData(dir + dataset + "\\" + dataset + type + en); + data[i++] = utilities.ClassifierTools.loadDataThrowable(dir + dataset + "\\" + dataset + type + en); } utilities.ClassifierTools.saveDataset(utilities.MultivariateInstanceTools.mergeToMultivariateInstances(data), dir + dataset + "\\" + dataset + type + Arrays.toString(end).replace("[", "").replace("]", "").replace(",", "").replace("\\s+", "")); @@ -117,16 +115,16 @@ static void createAALTD(){ Instances[] data = new Instances[end.length]; int j=0; for(String en : end){ - data[j++] = utilities.ClassifierTools.loadData(dir + dataset + "\\univariate\\" + dataset + "_"+i+"_" + en + "_TRAIN"); + data[j++] = DatasetLoading.loadDataNullable(dir + dataset + "\\univariate\\" + dataset + "_"+i+"_" + en + "_TRAIN"); } Instances merged = utilities.multivariate_tools.MultivariateInstanceTools.mergeToMultivariateInstances(data); - utilities.ClassifierTools.saveDataset(merged, dir + dataset + "\\" + dataset + "_" +i); + DatasetLoading.saveDataset(merged, dir + dataset + "\\" + dataset + "_" +i); //split into train and test Instances[] train_test = utilities.multivariate_tools.MultivariateInstanceTools.resampleMultivariateInstances(merged, 0, 0.5); - utilities.ClassifierTools.saveDataset(train_test[0], dir + dataset + "\\" + dataset + "_" + i + "_TRAIN"); - utilities.ClassifierTools.saveDataset(train_test[1], dir + dataset + "\\" + dataset + "_" + i + "_TEST"); + DatasetLoading.saveDataset(train_test[0], dir + dataset + "\\" + dataset + "_" + i + "_TRAIN"); + DatasetLoading.saveDataset(train_test[1], dir + dataset + "\\" + dataset + "_" + i + "_TEST"); } } @@ -140,16 +138,16 @@ static void createCricket(){ Instances[] data = new Instances[end.length]; int j=0; for(String end1 : end){ - data[j++] = utilities.ClassifierTools.loadData(dir + dataset + "\\univariate\\" + dataset +end1+ LR); + data[j++] = DatasetLoading.loadDataNullable(dir + dataset + "\\univariate\\" + dataset +end1+ LR); } Instances merged = utilities.multivariate_tools.MultivariateInstanceTools.mergeToMultivariateInstances(data); - utilities.ClassifierTools.saveDataset(merged, dir + dataset + "\\" + dataset + "_" + LR); + DatasetLoading.saveDataset(merged, dir + dataset + "\\" + dataset + "_" + LR); //split into train and test Instances[] train_test = utilities.multivariate_tools.MultivariateInstanceTools.resampleMultivariateInstances(merged, 0, 0.5); - utilities.ClassifierTools.saveDataset(train_test[0], dir + dataset + "\\" + dataset + "_" + LR + "_TRAIN"); - utilities.ClassifierTools.saveDataset(train_test[1], dir + dataset + "\\" + dataset + "_" + LR + "_TEST"); + DatasetLoading.saveDataset(train_test[0], dir + dataset + "\\" + dataset + "_" + LR + "_TRAIN"); + DatasetLoading.saveDataset(train_test[1], dir + dataset + "\\" + dataset + "_" + LR + "_TEST"); } } @@ -163,16 +161,16 @@ public static void createArticularyWord(){ Instances[] data = new Instances[end.length]; int j=0; for(String end1 : end){ - data[j++] = utilities.ClassifierTools.loadData(dir + dataset + "\\univariate\\" + dataset + LR+end1); + data[j++] = DatasetLoading.loadDataNullable(dir + dataset + "\\univariate\\" + dataset + LR+end1); } Instances merged = utilities.multivariate_tools.MultivariateInstanceTools.mergeToMultivariateInstances(data); - utilities.ClassifierTools.saveDataset(merged, dir + dataset + "\\" + dataset + "_" + LR); + DatasetLoading.saveDataset(merged, dir + dataset + "\\" + dataset + "_" + LR); //split into train and test Instances[] train_test = utilities.multivariate_tools.MultivariateInstanceTools.resampleMultivariateInstances(merged, 0, 0.5); - utilities.ClassifierTools.saveDataset(train_test[0], dir + dataset + "\\" + dataset + "_" + LR + "_TRAIN"); - utilities.ClassifierTools.saveDataset(train_test[1], dir + dataset + "\\" + dataset + "_" + LR + "_TEST"); + DatasetLoading.saveDataset(train_test[0], dir + dataset + "\\" + dataset + "_" + LR + "_TRAIN"); + DatasetLoading.saveDataset(train_test[1], dir + dataset + "\\" + dataset + "_" + LR + "_TEST"); } @@ -182,9 +180,9 @@ public static void createArticularyWord(){ public static void createVillar(){ String dir = "E:\\LocalData\\Dropbox\\Multivariate TSC\\Aarons Official\\"; String dataset = "VillarData"; - Instances[] train_test = utilities.multivariate_tools.MultivariateInstanceTools.resampleMultivariateInstances(loadData(dir + dataset + "\\" + dataset), 0, 0.5); - utilities.ClassifierTools.saveDataset(train_test[0], dir + dataset + "\\" + dataset + "_TRAIN"); - utilities.ClassifierTools.saveDataset(train_test[1], dir + dataset + "\\" + dataset + "_TEST"); + Instances[] train_test = utilities.multivariate_tools.MultivariateInstanceTools.resampleMultivariateInstances(DatasetLoading.loadDataNullable(dir + dataset + "\\" + dataset), 0, 0.5); + DatasetLoading.saveDataset(train_test[0], dir + dataset + "\\" + dataset + "_TRAIN"); + DatasetLoading.saveDataset(train_test[1], dir + dataset + "\\" + dataset + "_TEST"); } public static void createMVMotion(){ @@ -192,7 +190,7 @@ public static void createMVMotion(){ //load up the MVMotion2 dataset. Split it into accelormeter and gyro data, then combine and split into 50/50 splits. String dir2 = "E:\\LocalData\\Dropbox\\Multivariate TSC\\Aarons Official\\Old data\\MVMotion\\MVMotion2.arff"; - Instances data = utilities.ClassifierTools.loadData(dir2); + Instances data = DatasetLoading.loadDataNullable(dir2); Instances[] data_channels = utilities.multivariate_tools.MultivariateInstanceTools.splitMultivariateInstances(data); @@ -206,21 +204,21 @@ public static void createMVMotion(){ //create MVMotionA train test String dataset = "MVMotionA"; Instances[] train_test = utilities.multivariate_tools.MultivariateInstanceTools.resampleMultivariateInstances(accel, 0, 0.5); - utilities.ClassifierTools.saveDataset(train_test[0], dir + dataset + "\\" + dataset + "_TRAIN"); - utilities.ClassifierTools.saveDataset(train_test[1], dir + dataset + "\\" + dataset + "_TEST"); + DatasetLoading.saveDataset(train_test[0], dir + dataset + "\\" + dataset + "_TRAIN"); + DatasetLoading.saveDataset(train_test[1], dir + dataset + "\\" + dataset + "_TEST"); //create MVMotionAG train test dataset = "MVMotionAG"; train_test = utilities.multivariate_tools.MultivariateInstanceTools.resampleMultivariateInstances(data, 0, 0.5); - utilities.ClassifierTools.saveDataset(train_test[0], dir + dataset + "\\" + dataset + "_TRAIN"); - utilities.ClassifierTools.saveDataset(train_test[1], dir + dataset + "\\" + dataset + "_TEST"); + DatasetLoading.saveDataset(train_test[0], dir + dataset + "\\" + dataset + "_TRAIN"); + DatasetLoading.saveDataset(train_test[1], dir + dataset + "\\" + dataset + "_TEST"); //create MVMotionG train test and extract the G part from MVMotionG //create MVMotionA train test dataset = "MVMotionG"; train_test = utilities.multivariate_tools.MultivariateInstanceTools.resampleMultivariateInstances(gyro, 0, 0.5); - utilities.ClassifierTools.saveDataset(train_test[0], dir + dataset + "\\" + dataset + "_TRAIN"); - utilities.ClassifierTools.saveDataset(train_test[1], dir + dataset + "\\" + dataset + "_TEST"); + DatasetLoading.saveDataset(train_test[0], dir + dataset + "\\" + dataset + "_TRAIN"); + DatasetLoading.saveDataset(train_test[1], dir + dataset + "\\" + dataset + "_TEST"); } @@ -230,7 +228,7 @@ public static void createSingleDatasets(String dir1, String dirName, int classIn for(File f : dir.listFiles()){ if(f.isDirectory()) continue; Instances data = createArff(f); - utilities.ClassifierTools.saveDataset(data, dir + "\\"+dirName+"_"+f.getName()); + DatasetLoading.saveDataset(data, dir + "\\"+dirName+"_"+f.getName()); } } diff --git a/src/main/java/utilities/multivariate_tools/createMultivariateDatasetFromCSV.java b/src/main/java/utilities/multivariate_tools/createMultivariateDatasetFromCSV.java index 6990bd150..e8022e211 100644 --- a/src/main/java/utilities/multivariate_tools/createMultivariateDatasetFromCSV.java +++ b/src/main/java/utilities/multivariate_tools/createMultivariateDatasetFromCSV.java @@ -14,6 +14,7 @@ */ package utilities.multivariate_tools; +import experiments.data.DatasetLoading; import static utilities.multivariate_tools.ConvertDatasets.buildArff; import java.io.File; import java.io.FileNotFoundException; @@ -73,10 +74,10 @@ static void createDataset(String dir, String name, String dataset_csv, String af } for(int i=0; i loadDataset(File fname) throws FileNotFoundException{ diff --git a/src/main/java/utilities/samplers/RandomIndexSampler.java b/src/main/java/utilities/samplers/RandomIndexSampler.java new file mode 100644 index 000000000..299256584 --- /dev/null +++ b/src/main/java/utilities/samplers/RandomIndexSampler.java @@ -0,0 +1,33 @@ +package utilities.samplers; + +import weka.core.Instance; +import weka.core.Instances; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class RandomIndexSampler implements Sampler{ + + private List instances; + private Random random; + + public RandomIndexSampler(Random random){ + this.random = random; + } + + public RandomIndexSampler(){ + random = new Random(); + } + + public void setInstances(Instances instances) { + this.instances = new ArrayList(instances.numInstances()); + for (int i = 0; i < instances.numInstances(); i++){ + this.instances.add(i); + } + } + + public boolean hasNext() { return !instances.isEmpty(); } + + public Integer next() { return instances.remove(random.nextInt(instances.size())); } +} diff --git a/src/main/java/utilities/samplers/RandomRoundRobinIndexSampler.java b/src/main/java/utilities/samplers/RandomRoundRobinIndexSampler.java index ecc6abd25..dd515ad41 100644 --- a/src/main/java/utilities/samplers/RandomRoundRobinIndexSampler.java +++ b/src/main/java/utilities/samplers/RandomRoundRobinIndexSampler.java @@ -10,7 +10,7 @@ import static utilities.InstanceTools.indexByClass; import static utilities.InstanceTools.instancesByClass; -public class RandomRoundRobinIndexSampler { +public class RandomRoundRobinIndexSampler implements Sampler{ private List> instancesByClass; private Random random; @@ -39,7 +39,7 @@ public boolean hasNext() { return !indicies.isEmpty() || !instancesByClass.isEmpty(); } - public int next() { + public Integer next() { int classValue = indicies.remove(random.nextInt(indicies.size())); List homogeneousInstances = instancesByClass.get(classValue); int instance = homogeneousInstances.remove(random.nextInt(homogeneousInstances.size())); diff --git a/src/main/java/utilities/samplers/RandomRoundRobinSampler.java b/src/main/java/utilities/samplers/RandomRoundRobinSampler.java index 581105674..223b4bcf1 100644 --- a/src/main/java/utilities/samplers/RandomRoundRobinSampler.java +++ b/src/main/java/utilities/samplers/RandomRoundRobinSampler.java @@ -9,7 +9,7 @@ import static utilities.InstanceTools.instancesByClass; -public class RandomRoundRobinSampler{ +public class RandomRoundRobinSampler implements Sampler{ private List instancesByClass; private Random random; diff --git a/src/main/java/utilities/samplers/RandomSampler.java b/src/main/java/utilities/samplers/RandomSampler.java index ad4c4cb5f..2de26dd31 100644 --- a/src/main/java/utilities/samplers/RandomSampler.java +++ b/src/main/java/utilities/samplers/RandomSampler.java @@ -6,10 +6,10 @@ import java.util.List; import java.util.Random; -public class RandomSampler{ +public class RandomSampler implements Sampler{ private Instances instances; - private Random random = new Random(); + private Random random; public RandomSampler(Random random){ this.random = random; @@ -19,7 +19,7 @@ public RandomSampler(){ random = new Random(); } - public void setInstances(Instances instances) { this.instances = instances; } + public void setInstances(Instances instances) { this.instances = new Instances(instances); } public boolean hasNext() { return !instances.isEmpty(); } diff --git a/src/main/java/utilities/samplers/RandomStratifiedIndexSampler.java b/src/main/java/utilities/samplers/RandomStratifiedIndexSampler.java new file mode 100644 index 000000000..7ea55a95a --- /dev/null +++ b/src/main/java/utilities/samplers/RandomStratifiedIndexSampler.java @@ -0,0 +1,50 @@ +package utilities.samplers; + +import utilities.ArrayUtilities; +import weka.core.Instance; +import weka.core.Instances; + +import java.util.List; +import java.util.Random; + +import static utilities.InstanceTools.*; +import static utilities.Utilities.argMax; + +public class RandomStratifiedIndexSampler implements Sampler{ + + private List> instancesByClass; + private double[] classDistribution; + private double[] classSamplingProbabilities; + private int count; + private Random random; + private int maxCount; + + public RandomStratifiedIndexSampler(Random random){ + this.random = random; + } + + public RandomStratifiedIndexSampler(){ + random = new Random(); + } + + public void setInstances(Instances instances) { + instancesByClass = indexByClass(instances); + classDistribution = classDistribution(instances); + classSamplingProbabilities = classDistribution(instances); + count = 0; + maxCount = instances.size(); + } + + public boolean hasNext() { + return count < maxCount; + } + + public Integer next() { + int sampleClass = argMax(classSamplingProbabilities, random); + List homogeneousInstances = instancesByClass.get(sampleClass); // instances of the class value + int sampledInstance = homogeneousInstances.remove(random.nextInt(homogeneousInstances.size())); + classSamplingProbabilities[sampleClass]--; + ArrayUtilities.add(classSamplingProbabilities, classDistribution); + return sampledInstance; + } +} diff --git a/src/main/java/utilities/samplers/RandomStratifiedSampler.java b/src/main/java/utilities/samplers/RandomStratifiedSampler.java index 1bec91735..d318a4f77 100644 --- a/src/main/java/utilities/samplers/RandomStratifiedSampler.java +++ b/src/main/java/utilities/samplers/RandomStratifiedSampler.java @@ -11,7 +11,7 @@ import static utilities.InstanceTools.instancesByClass; import static utilities.Utilities.argMax; -public class RandomStratifiedSampler { +public class RandomStratifiedSampler implements Sampler{ private List instancesByClass; private double[] classDistribution; diff --git a/src/main/java/utilities/samplers/Sampler.java b/src/main/java/utilities/samplers/Sampler.java new file mode 100644 index 000000000..410447570 --- /dev/null +++ b/src/main/java/utilities/samplers/Sampler.java @@ -0,0 +1,11 @@ +package utilities.samplers; + +import weka.core.Instances; + +public interface Sampler { + void setInstances(Instances instances); + + boolean hasNext(); + + Object next(); +} diff --git a/src/main/java/vector_classifiers/ChooseClassifierFromFile.java b/src/main/java/weka_uea/classifiers/ChooseClassifierFromFile.java similarity index 97% rename from src/main/java/vector_classifiers/ChooseClassifierFromFile.java rename to src/main/java/weka_uea/classifiers/ChooseClassifierFromFile.java index 1df0622d5..80f5a5887 100644 --- a/src/main/java/vector_classifiers/ChooseClassifierFromFile.java +++ b/src/main/java/weka_uea/classifiers/ChooseClassifierFromFile.java @@ -1,231 +1,231 @@ -/* - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package vector_classifiers; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.FileWriter; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Random; -import weka.classifiers.Classifier; -import weka.core.Capabilities; -import weka.core.Instance; -import weka.core.Instances; - -/** - * - * @author cjr13geu - */ -public class ChooseClassifierFromFile implements Classifier{ - - private Random randomNumber; - private final int bufferSize = 100000; - private int foldNumber = 0; - private int indexOfLargest = 0; - ArrayList line; - - /** - * if size results path == 1, all classifier's results read from that one path - * else, resultsPaths.length must equal classifiers.length, with each index aligning - * to the path to read the classifier's results from. - * - * e.g to read 2 classifiers from one directory, and another 2 from 2 different directories: - * - * Index | Paths | Classifier - * -------------------------- - * 0 | pathA | c1 - * 1 | pathA | c2 - * 2 | pathB | c3 - * 3 | pathC | c4 - * - */ - private String[] resultsPaths = { "Results/" }; - - /** - * if resultsWritePath is not set, will default to resultsPaths[0] - * i.e, if only reading from one directory, will write back the chosen results - * under the same directory. if reading from multiple directories but a particular - * write path not set, will simply pick the first one given. - */ - private String resultsWritePath = null; - private String classifiers[] = {"TunedSVMRBF", "TunedSVMPolynomial"}; - - private String name = "EnsembleResults"; - private String relationName = "abalone"; - private double accuracies[]; - private File dir; - private BufferedReader[] trainFiles; - private BufferedReader testFile; - private BufferedWriter outTrain; - private BufferedWriter outTest; - - - - public void setFold(int foldNumber){ - this.foldNumber = foldNumber; - } - - public void setClassifiers(String[] classifiers){ - this.classifiers = classifiers; - } - - public void setResultsPath(String[] resultsPaths){ - this.resultsPaths = resultsPaths; - } - - public void setResultsPath(String resultsPath){ - this.resultsPaths = new String[] { resultsPath }; - } - - public void setResultsWritePath(String writePath) { - this.resultsWritePath = writePath; - } - - public void setName(String name){ - this.name = name; - } - - public void setRelationName(String name){ - this.relationName = name; - } - - @Override - public void buildClassifier(Instances data) throws Exception { - if (resultsPaths.length > 1) - if (resultsPaths.length != classifiers.length) - throw new Exception("ChooseClassifierFromFile.buildClassifier: more than one results path given, but number given does not align with the number of classifiers."); - - if (resultsWritePath == null) - resultsWritePath = resultsPaths[0]; - - dir = new File(resultsWritePath + "/" + this.name + "/Predictions/" + relationName + "/trainFold" + foldNumber + ".csv"); - - if(!dir.exists()){ - try{ - trainFiles = new BufferedReader[classifiers.length]; - accuracies = new double[classifiers.length]; - - for (int i = 0; i < classifiers.length; i++) { - int pathIndex = resultsPaths.length == 1 ? 0 : i; - - trainFiles[i] = new BufferedReader(new FileReader(resultsPaths[pathIndex] + "/"+ classifiers[i] + "/Predictions/" + relationName + "/trainFold" + foldNumber + ".csv"), bufferSize); - trainFiles[i].mark(bufferSize); - trainFiles[i].readLine(); - trainFiles[i].readLine(); - accuracies[i] = Double.valueOf(trainFiles[i].readLine()); - } - - for (int i = 0; i < accuracies.length; i++ ) { - if ( accuracies[i] > accuracies[indexOfLargest] ) { - indexOfLargest = i; - } - } - - ArrayList duplicates = new ArrayList<>(); - for (int i = 0; i < accuracies.length; i++) { - if(accuracies[indexOfLargest] == accuracies[i] && indexOfLargest != i){ - duplicates.add(i); - } - } - - randomNumber = new Random(foldNumber); - if(!duplicates.isEmpty()){ - indexOfLargest = randomNumber.nextInt(duplicates.size()); - } - - //Write Train file. - dir = new File(resultsWritePath + "/" + this.name + "/Predictions/" + relationName); - dir.mkdirs(); - outTrain = new BufferedWriter(new FileWriter(dir + "/trainFold" + foldNumber + ".csv")); - trainFiles[indexOfLargest].reset(); - line = new ArrayList<>(Arrays.asList(trainFiles[indexOfLargest].readLine().split(","))); - line.set(1, name); - outTrain.write(line.toString().replace("[", "").replace("]", "")); - outTrain.newLine(); - - line = new ArrayList<>(Arrays.asList(trainFiles[indexOfLargest].readLine().split(","))); - line.add("originalClassifier"); - line.add(classifiers[indexOfLargest]); - outTrain.write(line.toString().replace("[", "").replace("]", "")); - outTrain.newLine(); - - while((line = new ArrayList<>(Arrays.asList(new String[] { trainFiles[indexOfLargest].readLine() }))).get(0) != null){ - outTrain.write(line.get(0)); - outTrain.newLine(); - } - - //Write Test file. - outTest = new BufferedWriter(new FileWriter(dir + "/testFold" + foldNumber + ".csv")); - - int pathIndex = resultsPaths.length == 1 ? 0 : indexOfLargest; - testFile = new BufferedReader(new FileReader(resultsPaths[pathIndex] + "/"+ classifiers[indexOfLargest] + "/Predictions/" + relationName + "/testFold" + foldNumber + ".csv"), bufferSize); - - line = new ArrayList<>(Arrays.asList(testFile.readLine().split(","))); - line.set(1, name); - outTest.write(line.toString().replace("[", "").replace("]", "")); - outTest.newLine(); - - line = new ArrayList<>(Arrays.asList(testFile.readLine().split(","))); - line.add("originalClassifier"); - line.add(classifiers[indexOfLargest]); - outTest.write(line.toString().replace("[", "").replace("]", "")); - outTest.newLine(); - - while((line = new ArrayList<>(Arrays.asList(new String[] { testFile.readLine() }))).get(0) != null){ - outTest.write(line.get(0)); - outTest.newLine(); - } - - - for (int i = 0; i < classifiers.length; i++) { - trainFiles[i].close(); - testFile.close(); - } - outTrain.flush(); - outTrain.close(); - outTest.flush(); - outTest.close(); - - }catch(FileNotFoundException | NumberFormatException e){ - System.out.println("Fold " + foldNumber + " not present: "+ e); - } - }else{ - System.out.println(dir.getAbsolutePath() + ": Already exists."); - } - - - } - - @Override - public double classifyInstance(Instance instance) throws Exception { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. - } - - @Override - public double[] distributionForInstance(Instance instance) throws Exception { - classifyInstance(instance); - return null; - } - - @Override - public Capabilities getCapabilities() { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. - } -} - +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package weka_uea.classifiers; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.FileWriter; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Random; +import weka.classifiers.Classifier; +import weka.core.Capabilities; +import weka.core.Instance; +import weka.core.Instances; + +/** + * + * @author cjr13geu + */ +public class ChooseClassifierFromFile implements Classifier{ + + private Random randomNumber; + private final int bufferSize = 100000; + private int foldNumber = 0; + private int indexOfLargest = 0; + ArrayList line; + + /** + * if size results path == 1, all classifier's results read from that one path + * else, resultsPaths.length must equal classifiers.length, with each index aligning + * to the path to read the classifier's results from. + * + * e.g to read 2 classifiers from one directory, and another 2 from 2 different directories: + * + * Index | Paths | Classifier + * -------------------------- + * 0 | pathA | c1 + * 1 | pathA | c2 + * 2 | pathB | c3 + * 3 | pathC | c4 + * + */ + private String[] resultsPaths = { "Results/" }; + + /** + * if resultsWritePath is not set, will default to resultsPaths[0] + * i.e, if only reading from one directory, will write back the chosen results + * under the same directory. if reading from multiple directories but a particular + * write path not set, will simply pick the first one given. + */ + private String resultsWritePath = null; + private String classifiers[] = {"TunedSVMRBF", "TunedSVMPolynomial"}; + + private String name = "EnsembleResults"; + private String relationName = "abalone"; + private double accuracies[]; + private File dir; + private BufferedReader[] trainFiles; + private BufferedReader testFile; + private BufferedWriter outTrain; + private BufferedWriter outTest; + + + + public void setFold(int foldNumber){ + this.foldNumber = foldNumber; + } + + public void setClassifiers(String[] classifiers){ + this.classifiers = classifiers; + } + + public void setResultsPath(String[] resultsPaths){ + this.resultsPaths = resultsPaths; + } + + public void setResultsPath(String resultsPath){ + this.resultsPaths = new String[] { resultsPath }; + } + + public void setResultsWritePath(String writePath) { + this.resultsWritePath = writePath; + } + + public void setName(String name){ + this.name = name; + } + + public void setRelationName(String name){ + this.relationName = name; + } + + @Override + public void buildClassifier(Instances data) throws Exception { + if (resultsPaths.length > 1) + if (resultsPaths.length != classifiers.length) + throw new Exception("ChooseClassifierFromFile.buildClassifier: more than one results path given, but number given does not align with the number of classifiers."); + + if (resultsWritePath == null) + resultsWritePath = resultsPaths[0]; + + dir = new File(resultsWritePath + "/" + this.name + "/Predictions/" + relationName + "/trainFold" + foldNumber + ".csv"); + + if(!dir.exists()){ + try{ + trainFiles = new BufferedReader[classifiers.length]; + accuracies = new double[classifiers.length]; + + for (int i = 0; i < classifiers.length; i++) { + int pathIndex = resultsPaths.length == 1 ? 0 : i; + + trainFiles[i] = new BufferedReader(new FileReader(resultsPaths[pathIndex] + "/"+ classifiers[i] + "/Predictions/" + relationName + "/trainFold" + foldNumber + ".csv"), bufferSize); + trainFiles[i].mark(bufferSize); + trainFiles[i].readLine(); + trainFiles[i].readLine(); + accuracies[i] = Double.valueOf(trainFiles[i].readLine()); + } + + for (int i = 0; i < accuracies.length; i++ ) { + if ( accuracies[i] > accuracies[indexOfLargest] ) { + indexOfLargest = i; + } + } + + ArrayList duplicates = new ArrayList<>(); + for (int i = 0; i < accuracies.length; i++) { + if(accuracies[indexOfLargest] == accuracies[i] && indexOfLargest != i){ + duplicates.add(i); + } + } + + randomNumber = new Random(foldNumber); + if(!duplicates.isEmpty()){ + indexOfLargest = randomNumber.nextInt(duplicates.size()); + } + + //Write Train file. + dir = new File(resultsWritePath + "/" + this.name + "/Predictions/" + relationName); + dir.mkdirs(); + outTrain = new BufferedWriter(new FileWriter(dir + "/trainFold" + foldNumber + ".csv")); + trainFiles[indexOfLargest].reset(); + line = new ArrayList<>(Arrays.asList(trainFiles[indexOfLargest].readLine().split(","))); + line.set(1, name); + outTrain.write(line.toString().replace("[", "").replace("]", "")); + outTrain.newLine(); + + line = new ArrayList<>(Arrays.asList(trainFiles[indexOfLargest].readLine().split(","))); + line.add("originalClassifier"); + line.add(classifiers[indexOfLargest]); + outTrain.write(line.toString().replace("[", "").replace("]", "")); + outTrain.newLine(); + + while((line = new ArrayList<>(Arrays.asList(new String[] { trainFiles[indexOfLargest].readLine() }))).get(0) != null){ + outTrain.write(line.get(0)); + outTrain.newLine(); + } + + //Write Test file. + outTest = new BufferedWriter(new FileWriter(dir + "/testFold" + foldNumber + ".csv")); + + int pathIndex = resultsPaths.length == 1 ? 0 : indexOfLargest; + testFile = new BufferedReader(new FileReader(resultsPaths[pathIndex] + "/"+ classifiers[indexOfLargest] + "/Predictions/" + relationName + "/testFold" + foldNumber + ".csv"), bufferSize); + + line = new ArrayList<>(Arrays.asList(testFile.readLine().split(","))); + line.set(1, name); + outTest.write(line.toString().replace("[", "").replace("]", "")); + outTest.newLine(); + + line = new ArrayList<>(Arrays.asList(testFile.readLine().split(","))); + line.add("originalClassifier"); + line.add(classifiers[indexOfLargest]); + outTest.write(line.toString().replace("[", "").replace("]", "")); + outTest.newLine(); + + while((line = new ArrayList<>(Arrays.asList(new String[] { testFile.readLine() }))).get(0) != null){ + outTest.write(line.get(0)); + outTest.newLine(); + } + + + for (int i = 0; i < classifiers.length; i++) { + trainFiles[i].close(); + testFile.close(); + } + outTrain.flush(); + outTrain.close(); + outTest.flush(); + outTest.close(); + + }catch(FileNotFoundException | NumberFormatException e){ + System.out.println("Fold " + foldNumber + " not present: "+ e); + } + }else{ + System.out.println(dir.getAbsolutePath() + ": Already exists."); + } + + + } + + @Override + public double classifyInstance(Instance instance) throws Exception { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } + + @Override + public double[] distributionForInstance(Instance instance) throws Exception { + classifyInstance(instance); + return null; + } + + @Override + public Capabilities getCapabilities() { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } +} + diff --git a/src/main/java/vector_classifiers/ChooseDatasetFromFile.java b/src/main/java/weka_uea/classifiers/ChooseDatasetFromFile.java similarity index 99% rename from src/main/java/vector_classifiers/ChooseDatasetFromFile.java rename to src/main/java/weka_uea/classifiers/ChooseDatasetFromFile.java index 9098af38d..afb1cc845 100644 --- a/src/main/java/vector_classifiers/ChooseDatasetFromFile.java +++ b/src/main/java/weka_uea/classifiers/ChooseDatasetFromFile.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package vector_classifiers; +package weka_uea.classifiers; import java.io.BufferedReader; import java.io.BufferedWriter; diff --git a/src/main/java/vector_classifiers/MultiLinearRegression.java b/src/main/java/weka_uea/classifiers/MultiLinearRegression.java similarity index 92% rename from src/main/java/vector_classifiers/MultiLinearRegression.java rename to src/main/java/weka_uea/classifiers/MultiLinearRegression.java index 3168ad740..8f6ccfa38 100644 --- a/src/main/java/vector_classifiers/MultiLinearRegression.java +++ b/src/main/java/weka_uea/classifiers/MultiLinearRegression.java @@ -12,8 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package vector_classifiers; +package weka_uea.classifiers; +import experiments.data.DatasetLoading; import utilities.ClassifierTools; import utilities.InstanceTools; import weka.classifiers.AbstractClassifier; @@ -121,9 +122,9 @@ public static void main(String[] args) throws Exception { -// Instances train = ClassifierTools.loadData("Z:/Data/TSCProblems/ItalyPowerDemand/ItalyPowerDemand_TRAIN.arff"); -// Instances test = ClassifierTools.loadData("Z:/Data/TSCProblems/ItalyPowerDemand/ItalyPowerDemand_TEST.arff"); - Instances all = ClassifierTools.loadData("Z:/Data/UCIContinuous/molec-biol-promoter/molec-biol-promoter.arff"); +// Instances train = ClassifierTools.loadDataThrowable("Z:/Data/TSCProblems/ItalyPowerDemand/ItalyPowerDemand_TRAIN.arff"); +// Instances test = ClassifierTools.loadDataThrowable("Z:/Data/TSCProblems/ItalyPowerDemand/ItalyPowerDemand_TEST.arff"); + Instances all = DatasetLoading.loadDataNullable("Z:/Data/UCIContinuous/molec-biol-promoter/molec-biol-promoter.arff"); int folds = 10; double acc = 0; diff --git a/src/main/java/vector_classifiers/MultiResponseModelTrees.java b/src/main/java/weka_uea/classifiers/MultiResponseModelTrees.java similarity index 92% rename from src/main/java/vector_classifiers/MultiResponseModelTrees.java rename to src/main/java/weka_uea/classifiers/MultiResponseModelTrees.java index 88cf1af6b..dd46cb456 100644 --- a/src/main/java/vector_classifiers/MultiResponseModelTrees.java +++ b/src/main/java/weka_uea/classifiers/MultiResponseModelTrees.java @@ -12,8 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package vector_classifiers; +package weka_uea.classifiers; +import experiments.data.DatasetLoading; import java.util.Arrays; import java.util.List; import utilities.ClassifierTools; @@ -107,9 +108,9 @@ public double classifyInstance(Instance inst) throws Exception { public static void main(String[] args) throws Exception { -// Instances train = ClassifierTools.loadData("Z:/Data/TSCProblems/ItalyPowerDemand/ItalyPowerDemand_TRAIN.arff"); -// Instances test = ClassifierTools.loadData("Z:/Data/TSCProblems/ItalyPowerDemand/ItalyPowerDemand_TEST.arff"); - Instances all = ClassifierTools.loadData("Z:/Data/UCIContinuous/hayes-roth/hayes-roth.arff"); +// Instances train = ClassifierTools.loadDataThrowable("Z:/Data/TSCProblems/ItalyPowerDemand/ItalyPowerDemand_TRAIN.arff"); +// Instances test = ClassifierTools.loadDataThrowable("Z:/Data/TSCProblems/ItalyPowerDemand/ItalyPowerDemand_TEST.arff"); + Instances all = DatasetLoading.loadDataNullable("Z:/Data/UCIContinuous/hayes-roth/hayes-roth.arff"); int folds = 10; double acc = 0; diff --git a/src/main/java/vector_classifiers/PLSNominalClassifier.java b/src/main/java/weka_uea/classifiers/PLSNominalClassifier.java similarity index 99% rename from src/main/java/vector_classifiers/PLSNominalClassifier.java rename to src/main/java/weka_uea/classifiers/PLSNominalClassifier.java index 274023ae9..0ea584d36 100644 --- a/src/main/java/vector_classifiers/PLSNominalClassifier.java +++ b/src/main/java/weka_uea/classifiers/PLSNominalClassifier.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package vector_classifiers; +package weka_uea.classifiers; import weka.classifiers.functions.PLSClassifier; import weka.core.Attribute; diff --git a/src/main/java/vector_classifiers/SaveEachParameter.java b/src/main/java/weka_uea/classifiers/SaveEachParameter.java similarity index 94% rename from src/main/java/vector_classifiers/SaveEachParameter.java rename to src/main/java/weka_uea/classifiers/SaveEachParameter.java index 2faedaf6a..9b8f9a09b 100644 --- a/src/main/java/vector_classifiers/SaveEachParameter.java +++ b/src/main/java/weka_uea/classifiers/SaveEachParameter.java @@ -1,25 +1,25 @@ -/* - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package vector_classifiers; - -/** - * - * @author ajb - */ -public interface SaveEachParameter { - void setPathToSaveParameters(String r); - default void setSaveEachParaAcc(){setSaveEachParaAcc(true);} - void setSaveEachParaAcc(boolean b); -} +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package weka_uea.classifiers; + +/** + * + * @author ajb + */ +public interface SaveEachParameter { + void setPathToSaveParameters(String r); + default void setSaveEachParaAcc(){setSaveEachParaAcc(true);} + void setSaveEachParaAcc(boolean b); +} diff --git a/src/main/java/vector_classifiers/CAWPE.java b/src/main/java/weka_uea/classifiers/ensembles/CAWPE.java similarity index 93% rename from src/main/java/vector_classifiers/CAWPE.java rename to src/main/java/weka_uea/classifiers/ensembles/CAWPE.java index 37befa456..38a146251 100644 --- a/src/main/java/vector_classifiers/CAWPE.java +++ b/src/main/java/weka_uea/classifiers/ensembles/CAWPE.java @@ -12,21 +12,20 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package vector_classifiers; +package weka_uea.classifiers.ensembles; import experiments.CollateResults; import experiments.Experiments; import evaluation.MultipleClassifierEvaluation; -import timeseriesweka.classifiers.ensembles.weightings.TrainAcc; -import timeseriesweka.classifiers.ensembles.weightings.ModuleWeightingScheme; -import timeseriesweka.classifiers.ensembles.weightings.TrainAccByClass; -import timeseriesweka.classifiers.ensembles.voting.MajorityVote; -import timeseriesweka.classifiers.ensembles.voting.ModuleVotingScheme; +import weka_uea.classifiers.ensembles.weightings.TrainAcc; +import weka_uea.classifiers.ensembles.weightings.ModuleWeightingScheme; +import weka_uea.classifiers.ensembles.weightings.TrainAccByClass; +import weka_uea.classifiers.ensembles.voting.MajorityVote; +import weka_uea.classifiers.ensembles.voting.ModuleVotingScheme; import java.io.File; import java.util.Arrays; -import timeseriesweka.classifiers.cote.HiveCoteModule; import utilities.ClassifierTools; import evaluation.evaluators.CrossValidationEvaluator; import utilities.DebugPrinting; @@ -36,7 +35,6 @@ import weka.classifiers.bayes.NaiveBayes; import weka.classifiers.functions.SMO; import weka.classifiers.functions.supportVector.PolyKernel; -import weka.classifiers.lazy.kNN; import weka.classifiers.meta.RotationForest; import weka.classifiers.trees.J48; import weka.classifiers.trees.RandomForest; @@ -46,13 +44,13 @@ import weka.filters.SimpleBatchFilter; import timeseriesweka.classifiers.SaveParameterInfo; import utilities.StatisticalUtilities; -import utilities.TrainAccuracyEstimate; import evaluation.storage.ClassifierResults; +import experiments.data.DatasetLoading; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; -import timeseriesweka.classifiers.ensembles.EnsembleModule; -import timeseriesweka.classifiers.ensembles.voting.MajorityConfidence; +import weka_uea.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.voting.MajorityConfidence; import timeseriesweka.filters.SAX; import utilities.ErrorReport; import static utilities.GenericTools.indexOfMax; @@ -62,6 +60,8 @@ import weka.core.TechnicalInformation; import weka.core.TechnicalInformationHandler; import weka.filters.Filter; +import weka_uea.classifiers.kNN; +import timeseriesweka.classifiers.TrainAccuracyEstimator; /** * Can be constructed and will be ready for use from the default constructor like any other classifier. @@ -104,7 +104,7 @@ For the original settings used in an older version of cote, call setOriginalCAWP * */ -public class CAWPE extends AbstractClassifier implements HiveCoteModule, SaveParameterInfo, DebugPrinting, TrainAccuracyEstimate, TechnicalInformationHandler { +public class CAWPE extends AbstractClassifier implements SaveParameterInfo, DebugPrinting, TrainAccuracyEstimator, TechnicalInformationHandler { @Override public TechnicalInformation getTechnicalInformation() { @@ -548,50 +548,12 @@ protected void initialiseModules() throws Exception { for (int m = 0; m < modules.length; m++) { - //see javadoc for this bool, hacky insert for handling old results. NOT to be used/turned on by default - //remove all this garbage when possible - if (fillMissingDistsWithOneHotVectors) { - ClassifierResults origres = modules[m].trainResults; - - List dists = origres.getProbabilityDistributions(); - if (dists == null || dists.isEmpty() || dists.get(0) == null) { - - double[][] newdists = new double[numTrainInsts][]; - for (int i = 0; i < numTrainInsts; i++) { - double[] dist = new double[numClasses]; - dist[(int) origres.getPredClassValue(i)] = 1.0; - newdists[i] = dist; - } - - ClassifierResults replacementRes = new ClassifierResults( - origres.getTrueClassValsAsArray(), - origres.getPredClassValsAsArray(), - newdists, - origres.getPredictionTimesAsArray(), - origres.getPredDescriptionsAsArray()); - - replacementRes.setClassifierName(origres.getClassifierName()); - replacementRes.setDatasetName(origres.getDatasetName()); - replacementRes.setFoldID(origres.getFoldID()); - replacementRes.setSplit(origres.getSplit()); - replacementRes.setTimeUnit(origres.getTimeUnit()); - replacementRes.setDescription(origres.getDescription()); - - replacementRes.setParas(origres.getParas()); - - replacementRes.setBuildTime(origres.getBuildTime()); - replacementRes.setTestTime(origres.getTestTime()); - replacementRes.setBenchmarkTime(origres.getBenchmarkTime()); - replacementRes.setMemory(origres.getMemory()); - - replacementRes.finaliseResults(); - - modules[m].trainResults = replacementRes; - } - } - //in case train results didnt have probability distributions, hack for old hive cote results tony todo clean modules[m].trainResults.setNumClasses(trainInsts.numClasses()); + + if (fillMissingDistsWithOneHotVectors) + modules[m].trainResults.populateMissingDists(); + modules[m].trainResults.findAllStatsOnce(); } } @@ -603,7 +565,7 @@ protected boolean willNeedToDoCV() { //or if any of the modules dont have cv data already for (EnsembleModule m : modules) - if (!(m.getClassifier() instanceof TrainAccuracyEstimate)) + if (!(m.getClassifier() instanceof TrainAccuracyEstimator)) return true; return false; @@ -612,11 +574,11 @@ protected boolean willNeedToDoCV() { protected void trainModules() throws Exception { for (EnsembleModule module : modules) { - if (module.getClassifier() instanceof TrainAccuracyEstimate) { + if (module.getClassifier() instanceof TrainAccuracyEstimator) { module.getClassifier().buildClassifier(trainInsts); //these train results should also include the buildtime - module.trainResults = ((TrainAccuracyEstimate)module.getClassifier()).getTrainResults(); + module.trainResults = ((TrainAccuracyEstimator)module.getClassifier()).getTrainResults(); module.trainResults.finaliseResults(); if (writeIndividualsResults) { //if we're doing trainFold# file writing @@ -912,12 +874,12 @@ public String[] getClassifierNames() { } @Override - public double[] getEnsembleCvPreds() { + public double[] getTrainPreds() { return ensembleTrainResults.getPredClassValsAsArray(); } @Override - public double getEnsembleCvAcc() { + public double getTrainAcc() { return ensembleTrainResults.getAcc(); } @@ -1000,7 +962,7 @@ public void setTransform(SimpleBatchFilter transform){ } @Override //TrainAccuracyEstimate - public void writeCVTrainToFile(String path) { + public void writeTrainEstimatesToFile(String path) { performEnsembleCV=true; writeEnsembleTrainingFile=true; @@ -1208,8 +1170,8 @@ public static void buildAndWriteFullIndividualTrainTestResults(Instances default public static void exampleCAWPEUsage() throws Exception { String datasetName = "ItalyPowerDemand"; - Instances train = ClassifierTools.loadData("c:/tsc problems/"+datasetName+"/"+datasetName+"_TRAIN"); - Instances test = ClassifierTools.loadData("c:/tsc problems/"+datasetName+"/"+datasetName+"_TEST"); + Instances train = DatasetLoading.loadDataNullable("c:/tsc problems/"+datasetName+"/"+datasetName+"_TRAIN"); + Instances test = DatasetLoading.loadDataNullable("c:/tsc problems/"+datasetName+"/"+datasetName+"_TEST"); //Uses predefined default settings. This is the CAWPE classifier built on 'simple' components in the paper, equivalent to setDefaultCAWPESettings() CAWPE cawpe = new CAWPE(); @@ -1364,9 +1326,9 @@ public static void testBuildingInds(int testID) throws Exception { String dataset = "breast-cancer-wisc-prog"; // String dataset = "ItalyPowerDemand"; - Instances all = ClassifierTools.loadData("C:/UCI Problems/"+dataset+"/"+dataset); - // Instances train = ClassifierTools.loadData("C:/tsc problems/"+dataset+"/"+dataset+"_TRAIN"); - // Instances test = ClassifierTools.loadData("C:/tsc problems/"+dataset+"/"+dataset+"_TEST"); + Instances all = DatasetLoading.loadDataNullable("C:/UCI Problems/"+dataset+"/"+dataset); + // Instances train = ClassifierTools.loadDataThrowable("C:/tsc problems/"+dataset+"/"+dataset+"_TRAIN"); + // Instances test = ClassifierTools.loadDataThrowable("C:/tsc problems/"+dataset+"/"+dataset+"_TEST"); Instances[] insts = InstanceTools.resampleInstances(all, fold, 0.5); Instances train = insts[0]; @@ -1406,9 +1368,9 @@ public static void testLoadingInds(int testID) throws Exception { String dataset = "breast-cancer-wisc-prog"; // String dataset = "ItalyPowerDemand"; - Instances all = ClassifierTools.loadData("C:/UCI Problems/"+dataset+"/"+dataset); - // Instances train = ClassifierTools.loadData("C:/tsc problems/"+dataset+"/"+dataset+"_TRAIN"); - // Instances test = ClassifierTools.loadData("C:/tsc problems/"+dataset+"/"+dataset+"_TEST"); + Instances all = DatasetLoading.loadDataNullable("C:/UCI Problems/"+dataset+"/"+dataset); + // Instances train = ClassifierTools.loadDataThrowable("C:/tsc problems/"+dataset+"/"+dataset+"_TRAIN"); + // Instances test = ClassifierTools.loadDataThrowable("C:/tsc problems/"+dataset+"/"+dataset+"_TEST"); Instances[] insts = InstanceTools.resampleInstances(all, fold, 0.5); Instances train = insts[0]; @@ -1596,10 +1558,10 @@ public static void buildCAWPEPaper_BuildEnsembleFromResultsFiles(String baseWrit System.out.println(dset); if (dataHeaders[archive].equals("UCI")) - all = ClassifierTools.loadData(dataPaths[archive] + dset + "/" + dset + ".arff"); + all = DatasetLoading.loadDataNullable(dataPaths[archive] + dset + "/" + dset + ".arff"); else if ((dataHeaders[archive].contains("UCR"))) { - train = ClassifierTools.loadData(dataPaths[archive] + dset + "/" + dset + "_TRAIN.arff"); - test = ClassifierTools.loadData(dataPaths[archive] + dset + "/" + dset + "_TEST.arff"); + train = DatasetLoading.loadDataNullable(dataPaths[archive] + dset + "/" + dset + "_TRAIN.arff"); + test = DatasetLoading.loadDataNullable(dataPaths[archive] + dset + "/" + dset + "_TEST.arff"); } for (int fold = 0; fold < numFolds; fold++) { diff --git a/src/main/java/vector_classifiers/ContractRotationForest.java b/src/main/java/weka_uea/classifiers/ensembles/ContractRotationForest.java similarity index 98% rename from src/main/java/vector_classifiers/ContractRotationForest.java rename to src/main/java/weka_uea/classifiers/ensembles/ContractRotationForest.java index f3bdb32ac..44d0a14e2 100644 --- a/src/main/java/vector_classifiers/ContractRotationForest.java +++ b/src/main/java/weka_uea/classifiers/ensembles/ContractRotationForest.java @@ -18,11 +18,12 @@ * RotationForest.java * Copyright (C) 2008 Juan Jose Rodriguez * Copyright (C) 2008 University of Waikato, Hamilton, New Zealand + * Contract Version by Tony Bagnall, with enhancements by ? * */ -package vector_classifiers; +package weka_uea.classifiers.ensembles; import java.io.File; import java.io.FileInputStream; @@ -30,7 +31,6 @@ import java.io.Serializable; import java.util.ArrayList; -import timeseriesweka.classifiers.contract_interfaces.TrainTimeContractClassifier; import weka.core.Attribute; import weka.core.FastVector; import weka.core.Instance; @@ -47,17 +47,17 @@ import java.util.Random; import java.util.concurrent.TimeUnit; -import timeseriesweka.classifiers.CheckpointClassifier; import evaluation.storage.ClassifierResults; import timeseriesweka.classifiers.SaveParameterInfo; import weka.classifiers.AbstractClassifier; import weka.classifiers.Classifier; import weka.core.DenseInstance; +import timeseriesweka.classifiers.Checkpointable; +import timeseriesweka.classifiers.TrainTimeContractable; public class ContractRotationForest extends AbstractClassifier - - implements SaveParameterInfo, TrainTimeContractClassifier, CheckpointClassifier, Serializable{ + implements SaveParameterInfo, TrainTimeContractable, Checkpointable, Serializable{ Classifier baseClassifier; ArrayList classifiers; @@ -87,7 +87,7 @@ public class ContractRotationForest extends AbstractClassifier protected static double CHECKPOINTINTERVAL=2.0; //Minimum interval between checkpoointing //Added features - double contractHours=1; //Defaults to an approximate build time of 1 hour + double contractHours=1; //Defaults to an approximate build time of 2 hours protected ClassifierResults res; double estSingleTree; int numTrees=0; @@ -291,7 +291,7 @@ public void buildClassifier(Instances data) throws Exception { else random = new Random(seed); - +//This is from the RotationForest removeUseless = new RemoveUseless(); removeUseless.setInputFormat(data); data = Filter.useFilter(data, removeUseless); @@ -399,7 +399,7 @@ public void buildClassifier(Instances data) throws Exception { //CASE 2 and 3: dont think we can build min number of trees else{ if(debug) - System.out.println("unable to build 50 trees in the time allowed "); + System.out.println("Dont think we can build 50 trees in the time allowed "); //If m > n: SAMPLE ATTRIBUTES if(m>n){ //estimate maximum number of attributes allowed, x, to get minNumberOfTrees. diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/EnsembleModule.java b/src/main/java/weka_uea/classifiers/ensembles/EnsembleModule.java similarity index 98% rename from src/main/java/timeseriesweka/classifiers/ensembles/EnsembleModule.java rename to src/main/java/weka_uea/classifiers/ensembles/EnsembleModule.java index 929d6dbe0..08e5bc064 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/EnsembleModule.java +++ b/src/main/java/weka_uea/classifiers/ensembles/EnsembleModule.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles; +package weka_uea.classifiers.ensembles; import evaluation.storage.ClassifierResults; import utilities.DebugPrinting; diff --git a/src/main/java/vector_classifiers/EnsembleSelection.java b/src/main/java/weka_uea/classifiers/ensembles/EnsembleSelection.java similarity index 97% rename from src/main/java/vector_classifiers/EnsembleSelection.java rename to src/main/java/weka_uea/classifiers/ensembles/EnsembleSelection.java index a1554d504..db96f661d 100644 --- a/src/main/java/vector_classifiers/EnsembleSelection.java +++ b/src/main/java/weka_uea/classifiers/ensembles/EnsembleSelection.java @@ -12,10 +12,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package vector_classifiers; +package weka_uea.classifiers.ensembles; +import weka_uea.classifiers.ensembles.CAWPE; import experiments.CollateResults; -import experiments.DataSets; +import experiments.data.DatasetLists; import java.io.File; import java.util.ArrayList; import java.util.Arrays; @@ -23,11 +24,12 @@ import java.util.LinkedList; import java.util.List; import java.util.Random; -import timeseriesweka.classifiers.ensembles.EnsembleModule; -import timeseriesweka.classifiers.ensembles.voting.MajorityVote; -import timeseriesweka.classifiers.ensembles.weightings.EqualWeighting; +import weka_uea.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.voting.MajorityVote; +import weka_uea.classifiers.ensembles.weightings.EqualWeighting; import evaluation.storage.ClassifierResults; import experiments.Experiments; +import experiments.data.DatasetLoading; import utilities.ClassifierTools; import static utilities.GenericTools.indexOfMax; import utilities.InstanceTools; @@ -352,7 +354,7 @@ public static void tests() { String resPath = "C:/JamesLPHD/HESCA/UCI/UCIResults/"; int numfolds = 30; - String[] dsets = DataSets.UCIContinuousFileNames; + String[] dsets = DatasetLists.UCIContinuousFileNames; // String[] skipDsets = new String[] { "adult", "chess-krvk", "chess-krvkp", "connect-4", "miniboone", }; // String[] dsets = new String[] { "hayes-roth" }; @@ -366,7 +368,7 @@ public static void tests() { System.out.println(dset); - Instances all = ClassifierTools.loadData("C:/UCI Problems/" + dset + "/" + dset + ".arff"); + Instances all = DatasetLoading.loadDataNullable("C:/UCI Problems/" + dset + "/" + dset + ".arff"); for (int fold = 0; fold < numfolds; fold++) { String predictions = resPath+classifier+"/Predictions/"+dset; diff --git a/src/main/java/vector_classifiers/HomogeneousContractCAWPE.java b/src/main/java/weka_uea/classifiers/ensembles/HomogeneousContractCAWPE.java similarity index 92% rename from src/main/java/vector_classifiers/HomogeneousContractCAWPE.java rename to src/main/java/weka_uea/classifiers/ensembles/HomogeneousContractCAWPE.java index c9778aeaf..74b57dbb4 100644 --- a/src/main/java/vector_classifiers/HomogeneousContractCAWPE.java +++ b/src/main/java/weka_uea/classifiers/ensembles/HomogeneousContractCAWPE.java @@ -1,8 +1,9 @@ -package vector_classifiers; +package weka_uea.classifiers.ensembles; +import weka_uea.classifiers.ensembles.CAWPE; import evaluation.storage.ClassifierResults; -import timeseriesweka.classifiers.ensembles.EnsembleModule; -import timeseriesweka.classifiers.ensembles.weightings.TrainAcc; +import weka_uea.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.weightings.TrainAcc; import weka.classifiers.Classifier; import weka.core.Instances; diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/SaveableEnsemble.java b/src/main/java/weka_uea/classifiers/ensembles/SaveableEnsemble.java similarity index 95% rename from src/main/java/timeseriesweka/classifiers/ensembles/SaveableEnsemble.java rename to src/main/java/weka_uea/classifiers/ensembles/SaveableEnsemble.java index 8ee3def04..c34d2aac8 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/SaveableEnsemble.java +++ b/src/main/java/weka_uea/classifiers/ensembles/SaveableEnsemble.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles; +package weka_uea.classifiers.ensembles; /** *Interface that facilitates the saving of the internal state of the classifier, diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/SingleTransformEnsembles.java b/src/main/java/weka_uea/classifiers/ensembles/SingleTransformEnsembles.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/ensembles/SingleTransformEnsembles.java rename to src/main/java/weka_uea/classifiers/ensembles/SingleTransformEnsembles.java index e05e1131f..938083137 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/SingleTransformEnsembles.java +++ b/src/main/java/weka_uea/classifiers/ensembles/SingleTransformEnsembles.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles; +package weka_uea.classifiers.ensembles; import weka.classifiers.AbstractClassifier; import weka.classifiers.Classifier; import weka.core.Instances; diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/TransformEnsembles.java b/src/main/java/weka_uea/classifiers/ensembles/TransformEnsembles.java similarity index 98% rename from src/main/java/timeseriesweka/classifiers/ensembles/TransformEnsembles.java rename to src/main/java/weka_uea/classifiers/ensembles/TransformEnsembles.java index 5e3a26256..f2b251839 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/TransformEnsembles.java +++ b/src/main/java/weka_uea/classifiers/ensembles/TransformEnsembles.java @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles; +package weka_uea.classifiers.ensembles; import timeseriesweka.filters.PowerSpectrum; import timeseriesweka.filters.ACF; import java.util.ArrayList; @@ -21,8 +21,8 @@ import weka.classifiers.AbstractClassifier; import weka.classifiers.Classifier; import weka.classifiers.Evaluation; -import timeseriesweka.classifiers.FastDTW_1NN; -import weka.classifiers.lazy.kNN; +import timeseriesweka.classifiers.distance_based.FastDTW_1NN; +import weka_uea.classifiers.kNN; import weka.core.Instance; import weka.core.Instances; import timeseriesweka.filters.NormalizeAttribute; diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/voting/AverageVoteByConfidence.java b/src/main/java/weka_uea/classifiers/ensembles/voting/AverageVoteByConfidence.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/ensembles/voting/AverageVoteByConfidence.java rename to src/main/java/weka_uea/classifiers/ensembles/voting/AverageVoteByConfidence.java index 7a9dd9ba2..297b1cb6b 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/voting/AverageVoteByConfidence.java +++ b/src/main/java/weka_uea/classifiers/ensembles/voting/AverageVoteByConfidence.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.voting; +package weka_uea.classifiers.ensembles.voting; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; import static utilities.GenericTools.indexOfMax; import weka.core.Instance; diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/voting/BestIndividual.java b/src/main/java/weka_uea/classifiers/ensembles/voting/BestIndividual.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/ensembles/voting/BestIndividual.java rename to src/main/java/weka_uea/classifiers/ensembles/voting/BestIndividual.java index 3b7a763f7..c378b21e0 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/voting/BestIndividual.java +++ b/src/main/java/weka_uea/classifiers/ensembles/voting/BestIndividual.java @@ -12,12 +12,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.voting; +package weka_uea.classifiers.ensembles.voting; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; import weka.core.Instance; /** diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/voting/BestIndividualOracle.java b/src/main/java/weka_uea/classifiers/ensembles/voting/BestIndividualOracle.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/ensembles/voting/BestIndividualOracle.java rename to src/main/java/weka_uea/classifiers/ensembles/voting/BestIndividualOracle.java index 65a7cac48..968814e7b 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/voting/BestIndividualOracle.java +++ b/src/main/java/weka_uea/classifiers/ensembles/voting/BestIndividualOracle.java @@ -12,10 +12,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.voting; +package weka_uea.classifiers.ensembles.voting; import utilities.DebugPrinting; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; import weka.core.Instance; /** diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/voting/BestIndividualTrain.java b/src/main/java/weka_uea/classifiers/ensembles/voting/BestIndividualTrain.java similarity index 95% rename from src/main/java/timeseriesweka/classifiers/ensembles/voting/BestIndividualTrain.java rename to src/main/java/weka_uea/classifiers/ensembles/voting/BestIndividualTrain.java index 1917d3f59..d42b3ff69 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/voting/BestIndividualTrain.java +++ b/src/main/java/weka_uea/classifiers/ensembles/voting/BestIndividualTrain.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.voting; +package weka_uea.classifiers.ensembles.voting; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; import weka.core.Instance; /** diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/voting/MajorityConfidence.java b/src/main/java/weka_uea/classifiers/ensembles/voting/MajorityConfidence.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/ensembles/voting/MajorityConfidence.java rename to src/main/java/weka_uea/classifiers/ensembles/voting/MajorityConfidence.java index c6e522729..dcd9af2e3 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/voting/MajorityConfidence.java +++ b/src/main/java/weka_uea/classifiers/ensembles/voting/MajorityConfidence.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.voting; +package weka_uea.classifiers.ensembles.voting; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; import weka.core.Instance; /** diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/voting/MajorityVote.java b/src/main/java/weka_uea/classifiers/ensembles/voting/MajorityVote.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/ensembles/voting/MajorityVote.java rename to src/main/java/weka_uea/classifiers/ensembles/voting/MajorityVote.java index eb9e0eb8e..846645020 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/voting/MajorityVote.java +++ b/src/main/java/weka_uea/classifiers/ensembles/voting/MajorityVote.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.voting; +package weka_uea.classifiers.ensembles.voting; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; import static utilities.GenericTools.indexOfMax; import weka.core.Instance; diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/voting/MajorityVoteByConfidence.java b/src/main/java/weka_uea/classifiers/ensembles/voting/MajorityVoteByConfidence.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/ensembles/voting/MajorityVoteByConfidence.java rename to src/main/java/weka_uea/classifiers/ensembles/voting/MajorityVoteByConfidence.java index f112bfcfb..35051b6ec 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/voting/MajorityVoteByConfidence.java +++ b/src/main/java/weka_uea/classifiers/ensembles/voting/MajorityVoteByConfidence.java @@ -12,10 +12,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.voting; +package weka_uea.classifiers.ensembles.voting; import java.util.Arrays; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; import static utilities.GenericTools.indexOfMax; import weka.core.Instance; diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/voting/MajorityVoteByCorrectedConfidence.java b/src/main/java/weka_uea/classifiers/ensembles/voting/MajorityVoteByCorrectedConfidence.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/ensembles/voting/MajorityVoteByCorrectedConfidence.java rename to src/main/java/weka_uea/classifiers/ensembles/voting/MajorityVoteByCorrectedConfidence.java index a13723103..6425e07dc 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/voting/MajorityVoteByCorrectedConfidence.java +++ b/src/main/java/weka_uea/classifiers/ensembles/voting/MajorityVoteByCorrectedConfidence.java @@ -12,10 +12,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.voting; +package weka_uea.classifiers.ensembles.voting; import java.util.Arrays; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; import static utilities.GenericTools.indexOfMax; import weka.core.Instance; diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/voting/MajorityVoteByPoweredConfidence.java b/src/main/java/weka_uea/classifiers/ensembles/voting/MajorityVoteByPoweredConfidence.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/ensembles/voting/MajorityVoteByPoweredConfidence.java rename to src/main/java/weka_uea/classifiers/ensembles/voting/MajorityVoteByPoweredConfidence.java index 47bd14eb3..883c80816 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/voting/MajorityVoteByPoweredConfidence.java +++ b/src/main/java/weka_uea/classifiers/ensembles/voting/MajorityVoteByPoweredConfidence.java @@ -12,10 +12,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.voting; +package weka_uea.classifiers.ensembles.voting; import java.util.Arrays; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; import static utilities.GenericTools.indexOfMax; import weka.core.Instance; diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/voting/ModuleVotingScheme.java b/src/main/java/weka_uea/classifiers/ensembles/voting/ModuleVotingScheme.java similarity index 97% rename from src/main/java/timeseriesweka/classifiers/ensembles/voting/ModuleVotingScheme.java rename to src/main/java/weka_uea/classifiers/ensembles/voting/ModuleVotingScheme.java index dcabe2cd2..96094875d 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/voting/ModuleVotingScheme.java +++ b/src/main/java/weka_uea/classifiers/ensembles/voting/ModuleVotingScheme.java @@ -12,12 +12,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.voting; +package weka_uea.classifiers.ensembles.voting; import java.util.ArrayList; import java.util.Random; import utilities.DebugPrinting; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; import evaluation.storage.ClassifierResults; import java.util.concurrent.TimeUnit; import static utilities.GenericTools.indexOfMax; diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/voting/NP_MAX.java b/src/main/java/weka_uea/classifiers/ensembles/voting/NP_MAX.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/ensembles/voting/NP_MAX.java rename to src/main/java/weka_uea/classifiers/ensembles/voting/NP_MAX.java index df7afc0cc..8624ece6c 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/voting/NP_MAX.java +++ b/src/main/java/weka_uea/classifiers/ensembles/voting/NP_MAX.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.voting; +package weka_uea.classifiers.ensembles.voting; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; import weka.core.Instance; /** diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/voting/NaiveBayesCombiner.java b/src/main/java/weka_uea/classifiers/ensembles/voting/NaiveBayesCombiner.java similarity index 98% rename from src/main/java/timeseriesweka/classifiers/ensembles/voting/NaiveBayesCombiner.java rename to src/main/java/weka_uea/classifiers/ensembles/voting/NaiveBayesCombiner.java index 550f8b742..3474de49b 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/voting/NaiveBayesCombiner.java +++ b/src/main/java/weka_uea/classifiers/ensembles/voting/NaiveBayesCombiner.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.voting; +package weka_uea.classifiers.ensembles.voting; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; import static utilities.GenericTools.indexOfMax; import weka.core.Instance; diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/voting/stacking/AbstractStacking.java b/src/main/java/weka_uea/classifiers/ensembles/voting/stacking/AbstractStacking.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/ensembles/voting/stacking/AbstractStacking.java rename to src/main/java/weka_uea/classifiers/ensembles/voting/stacking/AbstractStacking.java index 00609e624..b1941c3df 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/voting/stacking/AbstractStacking.java +++ b/src/main/java/weka_uea/classifiers/ensembles/voting/stacking/AbstractStacking.java @@ -12,12 +12,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.voting.stacking; +package weka_uea.classifiers.ensembles.voting.stacking; import java.util.ArrayList; import weka.classifiers.Classifier; -import timeseriesweka.classifiers.ensembles.EnsembleModule; -import timeseriesweka.classifiers.ensembles.voting.ModuleVotingScheme; +import weka_uea.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.voting.ModuleVotingScheme; import weka.core.Attribute; import weka.core.Instance; import weka.core.Instances; diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/voting/stacking/StackingOnDists.java b/src/main/java/weka_uea/classifiers/ensembles/voting/stacking/StackingOnDists.java similarity index 93% rename from src/main/java/timeseriesweka/classifiers/ensembles/voting/stacking/StackingOnDists.java rename to src/main/java/weka_uea/classifiers/ensembles/voting/stacking/StackingOnDists.java index 7d3c675b6..adc86c0f9 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/voting/stacking/StackingOnDists.java +++ b/src/main/java/weka_uea/classifiers/ensembles/voting/stacking/StackingOnDists.java @@ -12,10 +12,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.voting.stacking; +package weka_uea.classifiers.ensembles.voting.stacking; import weka.classifiers.Classifier; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; import weka.core.DenseInstance; import weka.core.Instance; diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/voting/stacking/StackingOnExtendedSetOfFeatures.java b/src/main/java/weka_uea/classifiers/ensembles/voting/stacking/StackingOnExtendedSetOfFeatures.java similarity index 95% rename from src/main/java/timeseriesweka/classifiers/ensembles/voting/stacking/StackingOnExtendedSetOfFeatures.java rename to src/main/java/weka_uea/classifiers/ensembles/voting/stacking/StackingOnExtendedSetOfFeatures.java index ea2d29b6e..6e691161b 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/voting/stacking/StackingOnExtendedSetOfFeatures.java +++ b/src/main/java/weka_uea/classifiers/ensembles/voting/stacking/StackingOnExtendedSetOfFeatures.java @@ -12,10 +12,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.voting.stacking; +package weka_uea.classifiers.ensembles.voting.stacking; import weka.classifiers.Classifier; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; import weka.core.DenseInstance; import weka.core.Instance; diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/voting/stacking/StackingOnPreds.java b/src/main/java/weka_uea/classifiers/ensembles/voting/stacking/StackingOnPreds.java similarity index 93% rename from src/main/java/timeseriesweka/classifiers/ensembles/voting/stacking/StackingOnPreds.java rename to src/main/java/weka_uea/classifiers/ensembles/voting/stacking/StackingOnPreds.java index 5a4089949..c083f8c47 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/voting/stacking/StackingOnPreds.java +++ b/src/main/java/weka_uea/classifiers/ensembles/voting/stacking/StackingOnPreds.java @@ -12,10 +12,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.voting.stacking; +package weka_uea.classifiers.ensembles.voting.stacking; import weka.classifiers.Classifier; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; import static utilities.GenericTools.indexOfMax; import weka.core.DenseInstance; import weka.core.Instance; diff --git a/src/main/java/vector_classifiers/weightedvoters/CAWPE_MajorityVote.java b/src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_MajorityVote.java similarity index 83% rename from src/main/java/vector_classifiers/weightedvoters/CAWPE_MajorityVote.java rename to src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_MajorityVote.java index 8f4a7ccf3..704eff3c5 100644 --- a/src/main/java/vector_classifiers/weightedvoters/CAWPE_MajorityVote.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_MajorityVote.java @@ -12,11 +12,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package vector_classifiers.weightedvoters; +package weka_uea.classifiers.ensembles.weightedvoters; -import timeseriesweka.classifiers.ensembles.voting.MajorityVote; -import timeseriesweka.classifiers.ensembles.weightings.EqualWeighting; -import vector_classifiers.CAWPE; +import weka_uea.classifiers.ensembles.voting.MajorityVote; +import weka_uea.classifiers.ensembles.weightings.EqualWeighting; +import weka_uea.classifiers.ensembles.CAWPE; /** * Implemented as separate classifier for explicit comparison, from Kuncheva and Rodríguez (2014) diff --git a/src/main/java/vector_classifiers/weightedvoters/CAWPE_NaiveBayesCombiner.java b/src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_NaiveBayesCombiner.java similarity index 83% rename from src/main/java/vector_classifiers/weightedvoters/CAWPE_NaiveBayesCombiner.java rename to src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_NaiveBayesCombiner.java index d48dd7dd9..f0af97d5e 100644 --- a/src/main/java/vector_classifiers/weightedvoters/CAWPE_NaiveBayesCombiner.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_NaiveBayesCombiner.java @@ -12,11 +12,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package vector_classifiers.weightedvoters; +package weka_uea.classifiers.ensembles.weightedvoters; -import timeseriesweka.classifiers.ensembles.voting.NaiveBayesCombiner; -import timeseriesweka.classifiers.ensembles.weightings.EqualWeighting; -import vector_classifiers.CAWPE; +import weka_uea.classifiers.ensembles.voting.NaiveBayesCombiner; +import weka_uea.classifiers.ensembles.weightings.EqualWeighting; +import weka_uea.classifiers.ensembles.CAWPE; /** * Implemented as separate classifier for explicit comparison, from Kuncheva and Rodríguez (2014) diff --git a/src/main/java/vector_classifiers/weightedvoters/CAWPE_PickBest.java b/src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_PickBest.java similarity index 82% rename from src/main/java/vector_classifiers/weightedvoters/CAWPE_PickBest.java rename to src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_PickBest.java index a68e0e9e1..735d78bdb 100644 --- a/src/main/java/vector_classifiers/weightedvoters/CAWPE_PickBest.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_PickBest.java @@ -12,11 +12,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package vector_classifiers.weightedvoters; +package weka_uea.classifiers.ensembles.weightedvoters; -import timeseriesweka.classifiers.ensembles.voting.BestIndividualTrain; -import timeseriesweka.classifiers.ensembles.weightings.EqualWeighting; -import vector_classifiers.CAWPE; +import weka_uea.classifiers.ensembles.voting.BestIndividualTrain; +import weka_uea.classifiers.ensembles.weightings.EqualWeighting; +import weka_uea.classifiers.ensembles.CAWPE; /** * diff --git a/src/main/java/vector_classifiers/weightedvoters/CAWPE_RecallCombiner.java b/src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_RecallCombiner.java similarity index 83% rename from src/main/java/vector_classifiers/weightedvoters/CAWPE_RecallCombiner.java rename to src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_RecallCombiner.java index a5aa820dc..e21e9eace 100644 --- a/src/main/java/vector_classifiers/weightedvoters/CAWPE_RecallCombiner.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_RecallCombiner.java @@ -12,11 +12,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package vector_classifiers.weightedvoters; +package weka_uea.classifiers.ensembles.weightedvoters; -import timeseriesweka.classifiers.ensembles.voting.MajorityVote; -import timeseriesweka.classifiers.ensembles.weightings.RecallByClass; -import vector_classifiers.CAWPE; +import weka_uea.classifiers.ensembles.voting.MajorityVote; +import weka_uea.classifiers.ensembles.weightings.RecallByClass; +import weka_uea.classifiers.ensembles.CAWPE; /** * Implemented as separate classifier for explicit comparison, from Kuncheva and Rodríguez (2014) diff --git a/src/main/java/vector_classifiers/weightedvoters/CAWPE_TunedAlpha.java b/src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_TunedAlpha.java similarity index 96% rename from src/main/java/vector_classifiers/weightedvoters/CAWPE_TunedAlpha.java rename to src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_TunedAlpha.java index a59eb36fc..87382eb12 100644 --- a/src/main/java/vector_classifiers/weightedvoters/CAWPE_TunedAlpha.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_TunedAlpha.java @@ -12,18 +12,18 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package vector_classifiers.weightedvoters; +package weka_uea.classifiers.ensembles.weightedvoters; -import experiments.DataSets; +import experiments.data.DatasetLists; import fileIO.OutFile; import java.io.FileNotFoundException; -import timeseriesweka.classifiers.ensembles.voting.BestIndividualTrain; -import timeseriesweka.classifiers.ensembles.voting.MajorityConfidence; -import timeseriesweka.classifiers.ensembles.weightings.EqualWeighting; -import timeseriesweka.classifiers.ensembles.weightings.TrainAcc; +import weka_uea.classifiers.ensembles.voting.BestIndividualTrain; +import weka_uea.classifiers.ensembles.voting.MajorityConfidence; +import weka_uea.classifiers.ensembles.weightings.EqualWeighting; +import weka_uea.classifiers.ensembles.weightings.TrainAcc; import evaluation.storage.ClassifierResults; import utilities.StatisticalUtilities; -import vector_classifiers.CAWPE; +import weka_uea.classifiers.ensembles.CAWPE; import weka.core.Instances; import weka.filters.Filter; @@ -165,7 +165,7 @@ public static void buildParaAnalysisFiles() throws FileNotFoundException, Except String resPath = "C:/JamesLPHD/HESCA/UCI/UCIResults/"; int numfolds = 30; - String[] dsets = DataSets.UCIContinuousFileNames; + String[] dsets = DatasetLists.UCIContinuousFileNames; String classifier = "HESCA_TunedAlpha"; //both dset by fold diff --git a/src/main/java/vector_classifiers/weightedvoters/CAWPE_WeightedMajorityVote.java b/src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_WeightedMajorityVote.java similarity index 84% rename from src/main/java/vector_classifiers/weightedvoters/CAWPE_WeightedMajorityVote.java rename to src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_WeightedMajorityVote.java index 7268b9c8f..f772e482c 100644 --- a/src/main/java/vector_classifiers/weightedvoters/CAWPE_WeightedMajorityVote.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightedvoters/CAWPE_WeightedMajorityVote.java @@ -12,11 +12,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package vector_classifiers.weightedvoters; +package weka_uea.classifiers.ensembles.weightedvoters; -import timeseriesweka.classifiers.ensembles.voting.MajorityVote; -import timeseriesweka.classifiers.ensembles.weightings.TrainAcc; -import vector_classifiers.CAWPE; +import weka_uea.classifiers.ensembles.voting.MajorityVote; +import weka_uea.classifiers.ensembles.weightings.TrainAcc; +import weka_uea.classifiers.ensembles.CAWPE; /** * Implemented as separate classifier for explicit comparison, from Kuncheva and Rodríguez (2014) diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/AUROC.java b/src/main/java/weka_uea/classifiers/ensembles/weightings/AUROC.java similarity index 93% rename from src/main/java/timeseriesweka/classifiers/ensembles/weightings/AUROC.java rename to src/main/java/weka_uea/classifiers/ensembles/weightings/AUROC.java index 62fe2c4c0..bdf6554ad 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/AUROC.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightings/AUROC.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.weightings; +package weka_uea.classifiers.ensembles.weightings; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; /** * Will call findMeanAuroc() on each module's results, therefore not necessary to call diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/AvgCorrectedTrainAcc.java b/src/main/java/weka_uea/classifiers/ensembles/weightings/AvgCorrectedTrainAcc.java similarity index 93% rename from src/main/java/timeseriesweka/classifiers/ensembles/weightings/AvgCorrectedTrainAcc.java rename to src/main/java/weka_uea/classifiers/ensembles/weightings/AvgCorrectedTrainAcc.java index 718f23d09..85d7109b8 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/AvgCorrectedTrainAcc.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightings/AvgCorrectedTrainAcc.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.weightings; +package weka_uea.classifiers.ensembles.weightings; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; /** * Sets each module's weighting to Math.max(0.01, module.trainResults.acc - maxClassWeighting), diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/BalancedAccuracy.java b/src/main/java/weka_uea/classifiers/ensembles/weightings/BalancedAccuracy.java similarity index 93% rename from src/main/java/timeseriesweka/classifiers/ensembles/weightings/BalancedAccuracy.java rename to src/main/java/weka_uea/classifiers/ensembles/weightings/BalancedAccuracy.java index 748ec5b1c..06afb6f22 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/BalancedAccuracy.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightings/BalancedAccuracy.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.weightings; +package weka_uea.classifiers.ensembles.weightings; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; /** * Will call findBalancedAcc() on each module's results, therefore not necessary to call diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/ConfusionEntropy.java b/src/main/java/weka_uea/classifiers/ensembles/weightings/ConfusionEntropy.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/ensembles/weightings/ConfusionEntropy.java rename to src/main/java/weka_uea/classifiers/ensembles/weightings/ConfusionEntropy.java index d9c459747..2a0276474 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/ConfusionEntropy.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightings/ConfusionEntropy.java @@ -12,10 +12,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.weightings; +package weka_uea.classifiers.ensembles.weightings; import java.util.Arrays; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; /** * diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/ConfusionEntropyByClass.java b/src/main/java/weka_uea/classifiers/ensembles/weightings/ConfusionEntropyByClass.java similarity index 91% rename from src/main/java/timeseriesweka/classifiers/ensembles/weightings/ConfusionEntropyByClass.java rename to src/main/java/weka_uea/classifiers/ensembles/weightings/ConfusionEntropyByClass.java index c1302b8db..755caf4e7 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/ConfusionEntropyByClass.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightings/ConfusionEntropyByClass.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.weightings; +package weka_uea.classifiers.ensembles.weightings; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; /** * diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/EqualWeighting.java b/src/main/java/weka_uea/classifiers/ensembles/weightings/EqualWeighting.java similarity index 90% rename from src/main/java/timeseriesweka/classifiers/ensembles/weightings/EqualWeighting.java rename to src/main/java/weka_uea/classifiers/ensembles/weightings/EqualWeighting.java index 04684eee7..117754a8e 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/EqualWeighting.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightings/EqualWeighting.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.weightings; +package weka_uea.classifiers.ensembles.weightings; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; /** diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/FScore.java b/src/main/java/weka_uea/classifiers/ensembles/weightings/FScore.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/ensembles/weightings/FScore.java rename to src/main/java/weka_uea/classifiers/ensembles/weightings/FScore.java index 171d08cda..2c8de344a 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/FScore.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightings/FScore.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.weightings; +package weka_uea.classifiers.ensembles.weightings; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; /** * Non uniform weighting scheme, uses F-measure to give a weighting composed of diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/MCCWeighting.java b/src/main/java/weka_uea/classifiers/ensembles/weightings/MCCWeighting.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/ensembles/weightings/MCCWeighting.java rename to src/main/java/weka_uea/classifiers/ensembles/weightings/MCCWeighting.java index 0772b5837..f4f569707 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/MCCWeighting.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightings/MCCWeighting.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.weightings; +package weka_uea.classifiers.ensembles.weightings; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; /** diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/MaxCorrectedTrainAcc.java b/src/main/java/weka_uea/classifiers/ensembles/weightings/MaxCorrectedTrainAcc.java similarity index 95% rename from src/main/java/timeseriesweka/classifiers/ensembles/weightings/MaxCorrectedTrainAcc.java rename to src/main/java/weka_uea/classifiers/ensembles/weightings/MaxCorrectedTrainAcc.java index e59bcddba..8395da407 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/MaxCorrectedTrainAcc.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightings/MaxCorrectedTrainAcc.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.weightings; +package weka_uea.classifiers.ensembles.weightings; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; /** * Sets each module's weighting to Math.max(0.01, module.trainResults.acc - maxClassWeighting), diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/ModuleWeightingScheme.java b/src/main/java/weka_uea/classifiers/ensembles/weightings/ModuleWeightingScheme.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/ensembles/weightings/ModuleWeightingScheme.java rename to src/main/java/weka_uea/classifiers/ensembles/weightings/ModuleWeightingScheme.java index c6cd3fff4..e550bec1d 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/ModuleWeightingScheme.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightings/ModuleWeightingScheme.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.weightings; +package weka_uea.classifiers.ensembles.weightings; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; /** * Base class for defining the weighting of a classifiers votes in ensemble classifiers diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/NLL.java b/src/main/java/weka_uea/classifiers/ensembles/weightings/NLL.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/ensembles/weightings/NLL.java rename to src/main/java/weka_uea/classifiers/ensembles/weightings/NLL.java index 9648c51c0..0d6a1d87f 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/NLL.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightings/NLL.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.weightings; +package weka_uea.classifiers.ensembles.weightings; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; /** * diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/ProportionalTrainAcc.java b/src/main/java/weka_uea/classifiers/ensembles/weightings/ProportionalTrainAcc.java similarity index 93% rename from src/main/java/timeseriesweka/classifiers/ensembles/weightings/ProportionalTrainAcc.java rename to src/main/java/weka_uea/classifiers/ensembles/weightings/ProportionalTrainAcc.java index 0a3399d62..58ce644ae 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/ProportionalTrainAcc.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightings/ProportionalTrainAcc.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.weightings; +package weka_uea.classifiers.ensembles.weightings; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; /** * Each modules weighting is defined as it's accuracy proportional to the other modules, diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/RecallByClass.java b/src/main/java/weka_uea/classifiers/ensembles/weightings/RecallByClass.java similarity index 94% rename from src/main/java/timeseriesweka/classifiers/ensembles/weightings/RecallByClass.java rename to src/main/java/weka_uea/classifiers/ensembles/weightings/RecallByClass.java index 71f3cbbd4..2b7387332 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/RecallByClass.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightings/RecallByClass.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.weightings; +package weka_uea.classifiers.ensembles.weightings; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; /** * Non uniform weighting scheme, calculates the recall for each class and uses those diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/TrainAcc.java b/src/main/java/weka_uea/classifiers/ensembles/weightings/TrainAcc.java similarity index 93% rename from src/main/java/timeseriesweka/classifiers/ensembles/weightings/TrainAcc.java rename to src/main/java/weka_uea/classifiers/ensembles/weightings/TrainAcc.java index becb4fba3..dddbc4642 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/TrainAcc.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightings/TrainAcc.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.weightings; +package weka_uea.classifiers.ensembles.weightings; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; /** * Simply uses the modules train acc as it's weighting. Extension: can raise the accuracy diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/TrainAccByClass.java b/src/main/java/weka_uea/classifiers/ensembles/weightings/TrainAccByClass.java similarity index 92% rename from src/main/java/timeseriesweka/classifiers/ensembles/weightings/TrainAccByClass.java rename to src/main/java/weka_uea/classifiers/ensembles/weightings/TrainAccByClass.java index 2f98320f9..86acd5927 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/TrainAccByClass.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightings/TrainAccByClass.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.weightings; +package weka_uea.classifiers.ensembles.weightings; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; /** * Simply calculates this classifier's accuracy on each class diff --git a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/TrainAccOrMCC.java b/src/main/java/weka_uea/classifiers/ensembles/weightings/TrainAccOrMCC.java similarity index 96% rename from src/main/java/timeseriesweka/classifiers/ensembles/weightings/TrainAccOrMCC.java rename to src/main/java/weka_uea/classifiers/ensembles/weightings/TrainAccOrMCC.java index d7a46ead9..9ba8b9158 100644 --- a/src/main/java/timeseriesweka/classifiers/ensembles/weightings/TrainAccOrMCC.java +++ b/src/main/java/weka_uea/classifiers/ensembles/weightings/TrainAccOrMCC.java @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package timeseriesweka.classifiers.ensembles.weightings; +package weka_uea.classifiers.ensembles.weightings; -import timeseriesweka.classifiers.ensembles.EnsembleModule; +import weka_uea.classifiers.ensembles.EnsembleModule; /** * Will define a module's weighting as it's train accuracy by default, however in diff --git a/src/main/java/weka/classifiers/lazy/kNN.java b/src/main/java/weka_uea/classifiers/kNN.java similarity index 87% rename from src/main/java/weka/classifiers/lazy/kNN.java rename to src/main/java/weka_uea/classifiers/kNN.java index 8d376bc45..5e5110c1c 100644 --- a/src/main/java/weka/classifiers/lazy/kNN.java +++ b/src/main/java/weka_uea/classifiers/kNN.java @@ -1,205 +1,208 @@ -package weka.classifiers.lazy; - -import experiments.DataSets; -import java.text.DecimalFormat; -import utilities.ClassifierTools; -import weka.core.*; -import weka.core.neighboursearch.NearestNeighbourSearch; - -/** Nearest neighbour classifier that extends the weka one but can take - * alternative distance functions. - * @author ajb - * @version 1.0 - * @since 5/4/09 - -1. Normalisation: set by method normalise(boolean) -2. Cross Validation: set by method crossValidate(int folds) -3. Use weighting: set by the method weightVotes() - -* - * */ - -public class kNN extends IBk { - protected DistanceFunction dist; - double[][] distMatrix; - boolean storeDistance; - public kNN(){ -//Defaults to Euclidean distance 1NN without attribute normalisation - super(); - super.setKNN(1); - EuclideanDistance ed = new EuclideanDistance(); - ed.setDontNormalize(true); - setDistanceFunction(ed); - } - public kNN(int k){ - super(k); - EuclideanDistance ed = new EuclideanDistance(); - ed.setDontNormalize(true); - setDistanceFunction(ed); - } - public kNN(DistanceFunction df){ - super(); - setDistanceFunction(df); - } - - public final void setDistanceFunction(DistanceFunction df){ - dist=df; - NearestNeighbourSearch s = super.getNearestNeighbourSearchAlgorithm(); - try{ - s.setDistanceFunction(df); - }catch(Exception e){ - System.err.println(" Exception thrown setting distance function ="+e+" in "+this); - e.printStackTrace(); - System.exit(0); - } - } -//Need to implement the early abandon for the search? - public double distance(Instance first, Instance second) { - return dist.distance(first, second); - } -//Only use with a Euclidean distance method - public void normalise(boolean v){ - if(dist instanceof NormalizableDistance) - ((NormalizableDistance)dist).setDontNormalize(!v); - else - System.out.println(" Not normalisable"); - } - @Override - public void buildClassifier(Instances d){ - Instances d2=d; - if(filterAttributes){ - d2=filter(d); - } - dist.setInstances(d2); - try{ - super.buildClassifier(d2); - }catch(Exception e){ - System.out.println("Exception thrown in kNN build Classifier = "+e); - e.printStackTrace(); - System.exit(0); - } - } - @Override - public double [] distributionForInstance(Instance instance) throws Exception { - if(af!=null){ - Instance newInst=af.filterInstance(instance); - return super.distributionForInstance(newInst); - } - else - return super.distributionForInstance(instance); - - } - public double[] getPredictions(Instances test){ - double[] pred=new double[test.numInstances()]; - try{ - for(int i=0;i. */ -package vector_classifiers.stackers; +package weka_uea.classifiers.stackers; -import timeseriesweka.classifiers.ensembles.voting.stacking.StackingOnDists; -import timeseriesweka.classifiers.ensembles.weightings.EqualWeighting; -import vector_classifiers.CAWPE; -import vector_classifiers.MultiLinearRegression; +import weka_uea.classifiers.ensembles.voting.stacking.StackingOnDists; +import weka_uea.classifiers.ensembles.weightings.EqualWeighting; +import weka_uea.classifiers.ensembles.CAWPE; +import weka_uea.classifiers.MultiLinearRegression; /** * Stacking with multi-response linear regression (MLR), Ting and Witten (1999) diff --git a/src/main/java/vector_classifiers/stackers/SMLRE.java b/src/main/java/weka_uea/classifiers/stackers/SMLRE.java similarity index 80% rename from src/main/java/vector_classifiers/stackers/SMLRE.java rename to src/main/java/weka_uea/classifiers/stackers/SMLRE.java index c088fee93..caa952ad9 100644 --- a/src/main/java/vector_classifiers/stackers/SMLRE.java +++ b/src/main/java/weka_uea/classifiers/stackers/SMLRE.java @@ -12,12 +12,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package vector_classifiers.stackers; +package weka_uea.classifiers.stackers; -import timeseriesweka.classifiers.ensembles.voting.stacking.StackingOnExtendedSetOfFeatures; -import timeseriesweka.classifiers.ensembles.weightings.EqualWeighting; -import vector_classifiers.CAWPE; -import vector_classifiers.MultiLinearRegression; +import weka_uea.classifiers.ensembles.voting.stacking.StackingOnExtendedSetOfFeatures; +import weka_uea.classifiers.ensembles.weightings.EqualWeighting; +import weka_uea.classifiers.ensembles.CAWPE; +import weka_uea.classifiers.MultiLinearRegression; /** * Stacking with MLR and an extended set of meta-level attributes, Dzeroski and Zenko (2004) diff --git a/src/main/java/vector_classifiers/stackers/SMM5.java b/src/main/java/weka_uea/classifiers/stackers/SMM5.java similarity index 81% rename from src/main/java/vector_classifiers/stackers/SMM5.java rename to src/main/java/weka_uea/classifiers/stackers/SMM5.java index f90bd216e..6e5d395b9 100644 --- a/src/main/java/vector_classifiers/stackers/SMM5.java +++ b/src/main/java/weka_uea/classifiers/stackers/SMM5.java @@ -12,12 +12,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package vector_classifiers.stackers; +package weka_uea.classifiers.stackers; -import timeseriesweka.classifiers.ensembles.voting.stacking.StackingOnDists; -import timeseriesweka.classifiers.ensembles.weightings.EqualWeighting; -import vector_classifiers.CAWPE; -import vector_classifiers.MultiResponseModelTrees; +import weka_uea.classifiers.ensembles.voting.stacking.StackingOnDists; +import weka_uea.classifiers.ensembles.weightings.EqualWeighting; +import weka_uea.classifiers.ensembles.CAWPE; +import weka_uea.classifiers.MultiResponseModelTrees; /** * Stacking with multi-response model trees. M5 is used to induce the diff --git a/src/main/java/vector_classifiers/TunedClassifier.java b/src/main/java/weka_uea/classifiers/tuned/TunedClassifier.java similarity index 95% rename from src/main/java/vector_classifiers/TunedClassifier.java rename to src/main/java/weka_uea/classifiers/tuned/TunedClassifier.java index 0e3acec76..3c1aa3afa 100644 --- a/src/main/java/vector_classifiers/TunedClassifier.java +++ b/src/main/java/weka_uea/classifiers/tuned/TunedClassifier.java @@ -12,25 +12,27 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package vector_classifiers; +package weka_uea.classifiers.tuned; import evaluation.storage.ClassifierResults; import evaluation.tuning.ParameterResults; import evaluation.tuning.ParameterSet; import evaluation.tuning.ParameterSpace; import evaluation.tuning.Tuner; -import timeseriesweka.classifiers.CheckpointClassifier; -import timeseriesweka.classifiers.contract_interfaces.TrainTimeContractClassifier; import timeseriesweka.classifiers.ParameterSplittable; import timeseriesweka.classifiers.SaveParameterInfo; -import utilities.TrainAccuracyEstimate; import weka.classifiers.AbstractClassifier; import weka.classifiers.functions.SMO; import weka.classifiers.functions.supportVector.PolyKernel; import weka.core.Instance; import weka.core.Instances; +import java.util.Arrays; import java.util.concurrent.TimeUnit; +import timeseriesweka.classifiers.Checkpointable; +import timeseriesweka.classifiers.TrainTimeContractable; +import weka_uea.classifiers.SaveEachParameter; +import timeseriesweka.classifiers.TrainAccuracyEstimator; /** * Given @@ -56,7 +58,7 @@ * @author James Large (james.large@uea.ac.uk) */ public class TunedClassifier extends AbstractClassifier - implements SaveParameterInfo,TrainAccuracyEstimate,SaveEachParameter,ParameterSplittable,CheckpointClassifier, TrainTimeContractClassifier { + implements SaveParameterInfo,TrainAccuracyEstimator,SaveEachParameter,ParameterSplittable,Checkpointable, TrainTimeContractable { int seed; ParameterSpace space = null; @@ -64,6 +66,7 @@ public class TunedClassifier extends AbstractClassifier AbstractClassifier classifier = null; ParameterSet bestParas = null; + String[] bestOptions = null; ////////// start interface variables @@ -120,7 +123,9 @@ public boolean getCloneClassifierForEachParameterEval() { public void setCloneClassifierForEachParameterEval(boolean clone) { tuner.setCloneClassifierForEachParameterEval(clone); } - + + public String[] getBestOptions() { return bestOptions; } + public ParameterSpace getSpace() { return space; } @@ -213,6 +218,7 @@ public void buildClassifier(Instances data) throws Exception { //apply best paras and build final classifier on full train data String[] options = best.paras.toOptionsList(); + bestOptions = Arrays.copyOf(options, options.length); classifier.setOptions(options); classifier.buildClassifier(data); } @@ -307,7 +313,7 @@ public void setFindTrainAccuracyEstimate(boolean setCV) { } @Override //TrainAccuracyEstimate - public void writeCVTrainToFile(String train) { + public void writeTrainEstimatesToFile(String train) { this.TAE_trainAccWritePath = train; this.TAE_writeTrainAcc = true; } diff --git a/src/main/java/vector_classifiers/TunedRandomForest.java b/src/main/java/weka_uea/classifiers/tuned/TunedRandomForest.java similarity index 95% rename from src/main/java/vector_classifiers/TunedRandomForest.java rename to src/main/java/weka_uea/classifiers/tuned/TunedRandomForest.java index 39d8156bd..43bd1bc7f 100644 --- a/src/main/java/vector_classifiers/TunedRandomForest.java +++ b/src/main/java/weka_uea/classifiers/tuned/TunedRandomForest.java @@ -1,818 +1,820 @@ -/* - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package vector_classifiers; - - -import experiments.CollateResults; -import fileIO.OutFile; -import java.io.File; -import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Random; -import java.util.logging.Level; -import java.util.logging.Logger; -import timeseriesweka.classifiers.ParameterSplittable; -import utilities.ClassifierTools; -import evaluation.evaluators.CrossValidationEvaluator; -import utilities.InstanceTools; -import timeseriesweka.classifiers.SaveParameterInfo; -import utilities.TrainAccuracyEstimate; -import weka.classifiers.meta.Bagging; -import evaluation.storage.ClassifierResults; -import static utilities.GenericTools.indexOfMax; -import weka.classifiers.trees.RandomForest; -import weka.classifiers.trees.RandomTree; -import weka.core.Instances; -import weka.core.Utils; - -/** - *This classifier is enhanced so that classifier builds a random forest with the - facility to build by forward selection addition of trees to minimize OOB error, - by far the fastest way. - - As far as tuning are concerned, RandomForest has three parameters - - m_MaxDepth: defaults to 0 (no limit on depth) - m_numFeatures: defaults to log(m)+1 (not sqrt(m) as most implementations do - m_numTrees: defaults to 10 - - - Further enhanced to allow for selection through OOB error estimates and predictions - - Further changes: - 1. set number of trees (m_numTrees) via grid search on a range (using OOB) that - defaults to - {10 [Weka Default],100,200,.., 500 [R default],...,1000} (11 values) - 2. set number of features (max value m==numAttributes without class) - per tree (m_numFeatures) and m_numTrees through grid - search on a range - 1, 10, sqrt(m) [R default], log_2(m)+1 [Weka default], m [full set]} - (4 values)+add an option to choose randomly for each tree? - grid search is then just 55 values and because it uses OOB no CV is required - * @author aj - */ -public class TunedRandomForest extends RandomForest implements SaveParameterInfo, TrainAccuracyEstimate,SaveEachParameter,ParameterSplittable{ - boolean tuneParameters=true; - int[] paraSpace1;//Maximum tree depth, m_MaxDepth - int[] paraSpace2;//Number of features per tree,m_numFeatures - int[] paraSpace3;//Number of trees, m_numTrees - int[] paras; - int maxPerPara=10; - String trainPath=""; - int seed; //need this to seed cver/the forests for consistency in meta-classification/ensembling purposes - Random rng; //legacy, 'seed' still (and always has) seeds this for any other rng purposes, e.g tie resolution - ArrayList accuracy; - boolean crossValidate=true; - boolean estimateAcc=true; //If there is no tuning, this will find the estimate with the fixed values - private long combinedBuildTime; - protected String resultsPath; - protected boolean saveEachParaAcc=false; -//Need to know this before build if the parameters are going to be set by index -//It is only used in the method setParametersFromIndex, which throws an -//Exception if it is zero - private int numFeaturesInProblem=0; - private static int MAX_FOLDS=10; - - private ClassifierResults res =new ClassifierResults(); - public void setNumFeaturesInProblem(int m){ - numFeaturesInProblem=m; - } - public void setNumFeaturesForEachTree(int m){ - m_numFeatures=m; - } -/** - * Determines whether an estimate of the accuracy is to be obtained from the train data - * by 10x cross validation - * @param b - */ - public void setCrossValidate(boolean b){ - if(b) - setEstimateAcc(b); - crossValidate=b; - } - public void setEstimateAcc(boolean b){ - estimateAcc=b; - } - -//methods from SaveEachParameter - @Override - public void setPathToSaveParameters(String r){ - resultsPath=r; - setSaveEachParaAcc(true); - } - @Override - public void setSaveEachParaAcc(boolean b){ - saveEachParaAcc=b; - } -//MEthods from ParameterSplittable - @Override - public String getParas() { //This is redundant really. - return getParameters(); - } - @Override - public double getAcc() { - return res.getAcc(); - } - @Override - public void setParametersFromIndex(int x) { - tuneParameters=false; -//Three paras, evenly distributed, 1 to maxPerPara. -//Note that if maxPerPara > numFeaturesInProblem, we have a problem, so it will throw an exception later - paras=new int[3]; - if(x<1 || x>maxPerPara*maxPerPara*maxPerPara)//Error, invalid range - throw new UnsupportedOperationException("ERROR parameter index "+x+" out of range for PolyNomialKernel"); //To change body of generated methods, choose Tools | Templates. - int numLevelsIndex=(x-1)/(maxPerPara*maxPerPara); - int numFeaturesIndex=((x-1)/(maxPerPara))%maxPerPara; - int numTreesIndex=x%maxPerPara; -//Need to know number of attributes - if(numFeaturesInProblem==0) - throw new RuntimeException("Error in TunedRandomForest in set ParametersFromIndex: we do not know the number of attributes, need to call setNumFeaturesInProblem before this call"); -//Para 1. Maximum tree depth, m_MaxDepth - if(numLevelsIndex==0) - paras[0]=0; - else - paras[0]=numLevelsIndex*(numFeaturesInProblem/maxPerPara); -//Para 2. Num features - if(numFeaturesIndex==0) - paras[1]=(int)Math.sqrt(numFeaturesInProblem); - else if(numFeaturesIndex==1) - paras[1]=(int) Utils.log2(numFeaturesInProblem)+1; - else - paras[1]=((numFeaturesIndex-1)*numFeaturesInProblem)/maxPerPara; - if(numTreesIndex==0) - paras[2]=10; //Weka default - else - paras[2]=100*numTreesIndex; - setMaxDepth(paras[0]); - setNumFeaturesForEachTree(paras[1]); - setNumTrees(paras[2]); - if(m_Debug) - System.out.println("Index ="+x+" Num Features ="+numFeaturesInProblem+" Max Depth="+paras[0]+" Num Features ="+paras[1]+" Num Trees ="+paras[2]); - } - - - @Override - public ClassifierResults getTrainResults(){ -//Temporary : copy stuff into res.acc here - return res; - } -//SaveParameterInfo - @Override - public String getParameters() { - String result="BuildTime,"+res.getBuildTime()+",CVAcc,"+res.getAcc()+","; - result+="MaxDepth,"+this.getMaxDepth()+",NumFeatures,"+this.getNumFeatures()+",NumTrees,"+this.getNumTrees(); - return result; - } - - @Override - public void setParamSearch(boolean b) { - tuneParameters=b; - } - - - public TunedRandomForest(){ - super(); - m_numTrees=500; - m_numExecutionSlots=1; - m_bagger=new EnhancedBagging(); - rng=new Random(); - seed=0; - accuracy=new ArrayList<>(); - } - @Override - public void setSeed(int s){ - super.setSeed(s); - seed = s; - rng=new Random(); - rng.setSeed(seed); - } - - public void debug(boolean b){ - m_Debug=b; - } - public void tuneParameters(boolean b){ - tuneParameters=b; - } - public void setNumTreesRange(int[] d){ - paraSpace1=d; - } - public void setNumFeaturesRange(int[] d){ - paraSpace2=d; - } - @Override - public void writeCVTrainToFile(String train) { - trainPath=train; - estimateAcc=true; - } - @Override - public void setFindTrainAccuracyEstimate(boolean setCV){ - estimateAcc=setCV; - } - - - @Override - public boolean findsTrainAccuracyEstimate(){ return estimateAcc;} - protected final void setStandardParaSearchSpace(int m){ -//Need to know the number of features to do this -//Does 1000 parameter searches on a 10x10x10 grid - if(mtrain.numInstances()) - folds=train.numInstances(); - double minErr=1; - this.setSeed(rng.nextInt()); - Instances trainCopy=new Instances(train); - CrossValidationEvaluator cv = new CrossValidationEvaluator(); - cv.setSeed(seed); - cv.setNumFolds(folds); - cv.buildFolds(trainCopy); - ArrayList ties=new ArrayList<>(); - ClassifierResults tempResults; - int count=0; - OutFile temp=null; - for(int p1:paraSpace1){//Maximum tree depth, m_MaxDepth - for(int p2:paraSpace2){//Num features - for(int p3:paraSpace3){//Num trees - count++; - if(saveEachParaAcc){// check if para value already done - File f=new File(resultsPath+count+".csv"); - if(f.exists()){ - if(CollateResults.validateSingleFoldFile(resultsPath+count+".csv")==false){ - System.out.println("Deleting file "+resultsPath+count+".csv because size ="+f.length()); - } - else - continue;//If done, ignore skip this iteration - } - } - TunedRandomForest model = new TunedRandomForest(); - model.setMaxDepth(p1); - model.setNumFeatures(p2); - model.setNumTrees(p3); - model.tuneParameters=false; - model.estimateAcc=false; - model.setSeed(count); - tempResults=cv.crossValidateWithStats(model,trainCopy); - - tempResults.setClassifierName("RandFPara"+count); - tempResults.setDatasetName(train.relationName()); - tempResults.setFoldID(seed); - tempResults.setSplit("train"); - - tempResults.setParas("maxDepth,"+p1+",numFeatures,"+p2+",numTrees,"+p3); - - double e=1-tempResults.getAcc(); - if(m_Debug) - System.out.println("Depth="+p1+",Features"+p2+",Trees="+p3+" Acc = "+(1-e)); - accuracy.add(tempResults.getAcc()); - if(saveEachParaAcc){// Save to file and close - tempResults.writeFullResultsToFile(resultsPath+count+".csv"); - File f=new File(resultsPath+count+".csv"); - if(f.exists()) - f.setWritable(true, false); - - } - else{ - if(e();//Remove previous ties - ties.add(new TunedSVM.ResultsHolder(p1,p2,p3,tempResults)); - } - else if(e==minErr){//Sort out ties - ties.add(new TunedSVM.ResultsHolder(p1,p2,p3,tempResults)); - } - } - } - } - } - int bestNumLevels; - int bestNumFeatures; - int bestNumTrees; - - minErr=1; - if(saveEachParaAcc){ -// Check they are all there first. - int missing=0; - for(int p1:paraSpace1){ - for(int p2:paraSpace2){ - for(int p3:paraSpace3){ - File f=new File(resultsPath+count+".csv"); - if(!(f.exists() && f.length()>0)) - missing++; - } - } - } - - if(missing==0)//All present - { - combinedBuildTime=0; - // If so, read them all from file, pick the best - count=0; - for(int p1:paraSpace1){//C - for(int p2:paraSpace2){//Exponent - for(int p3:paraSpace3){//B - count++; - tempResults = new ClassifierResults(); - tempResults.loadResultsFromFile(resultsPath+count+".csv"); - combinedBuildTime+=tempResults.getBuildTime(); - double e=1-tempResults.getAcc(); - if(e();//Remove previous ties - ties.add(new TunedSVM.ResultsHolder(p1,p2,p3,tempResults)); - } - else if(e==minErr){//Sort out ties - ties.add(new TunedSVM.ResultsHolder(p1,p2,p3,tempResults)); - } - //Delete the files here to clean up. - - File f= new File(resultsPath+count+".csv"); - if(!f.delete()) - System.out.println("DELETE FAILED "+resultsPath+count+".csv"); - } - } - } - TunedSVM.ResultsHolder best=ties.get(rng.nextInt(ties.size())); - bestNumLevels=(int)best.x; - bestNumFeatures=(int)best.y; - bestNumTrees=(int)best.z; - paras[0]=bestNumLevels; - paras[1]=bestNumFeatures; - paras[2]=bestNumTrees; - this.setMaxDepth(bestNumLevels); - this.setNumFeatures(bestNumFeatures); - this.setNumTrees(bestNumTrees); - - res=best.res; - if(m_Debug) - System.out.println("Bestnum levels ="+bestNumLevels+" best num features = "+bestNumFeatures+" best num trees ="+bestNumTrees+" best train acc = "+res.getAcc()); - }else//Not all present, just ditch - System.out.println(resultsPath+" error: missing ="+missing+" parameter values"); - } - else{ - TunedSVM.ResultsHolder best=ties.get(rng.nextInt(ties.size())); - bestNumLevels=(int)best.x; - bestNumFeatures=(int)best.y; - bestNumTrees=(int)best.z; - paras[0]=bestNumLevels; - paras[1]=bestNumFeatures; - paras[2]=bestNumTrees; - this.setMaxDepth(bestNumLevels); - this.setNumFeatures(bestNumFeatures); - this.setNumTrees(bestNumTrees); - res=best.res; - } - } - - @Override - public void buildClassifier(Instances data) throws Exception{ - long startTime=System.currentTimeMillis(); -//********* 1: Set up the main classifier with standard Weka calls ***************/ - // can classifier handle the data? - getCapabilities().testWithFail(data); - // remove instances with missing class - data = new Instances(data); - data.deleteWithMissingClass(); -//this is only used if CV is used to find parameters or estimate acc from train data - int folds=10; - if(folds>data.numInstances()) - folds=data.numInstances(); - super.setSeed(seed); - super.setNumFeatures((int)Math.sqrt(data.numAttributes()-1)); -/******* 2. Tune parameters if required: - * - * NOTE: the number of trees could be found incrementally, just start with the smallest - * number and add in each time rather than rebuild. It would massively speed up the search - * this has been implemented for the EnhancedBagger,but is not yet used. - * Obviously cannot do this for the number of attributes - */ - if(tuneParameters){ - if(paraSpace1==null) - setStandardParaSearchSpace(data.numAttributes()-1); - tuneRandomForest(data); - } - else //Override WEKA's default which is worse than sqrt(m) - setNumFeatures(Math.max(1,(int)Math.sqrt(data.numAttributes()-1))); - -/******** 3. Build final classifier ***************/ -/*Cant call super.buildClassifier as it resets the bagger to Bagging instead of - EnhancedBagging so instead straight cut and paste from RandomForest, with - Bagging changed to EnhancedBagging and default size changed -*/ - m_bagger = new EnhancedBagging(); -//Test with C4.5 rather than RT - RandomTree rTree = new RandomTree(); -// J48 rTree = new J48(); - - // set up the random tree options - - - if(m_numFeatures>data.numAttributes()-1) - m_numFeatures=data.numAttributes()-1; - if(m_MaxDepth>data.numAttributes()-1) - m_MaxDepth=0; - m_KValue = m_numFeatures; -//the value in m_numFeatures is not actually used -//its only role is setting m_KValue - rTree.setKValue(m_KValue); - rTree.setMaxDepth(getMaxDepth()); - // set up the bagger and build the forest - m_bagger.setClassifier(rTree); - m_bagger.setSeed(seed); - m_bagger.setNumIterations(m_numTrees); - m_bagger.setCalcOutOfBag(true); - m_bagger.setNumExecutionSlots(m_numExecutionSlots); - m_bagger.buildClassifier(data); - -/*** 4. Find the estimates of the train acc, either through CV or OOB ****/ -// do this after the main build in case OOB is used, because we need the main -//classifier for that -//NOTE IF THE CLASSIFIER IS TUNED THIS WILL BE A POSSIBLE SOURCE OF BIAS -//It should really be nested up a level. - - - if(estimateAcc){ //Need find train acc, either through CV or OOB - if(crossValidate){ - RandomForest t= new RandomForest(); - t.setNumFeatures(this.getNumFeatures()); - t.setNumTrees(this.getNumTrees()); - t.setSeed(seed); - CrossValidationEvaluator cv = new CrossValidationEvaluator(); - cv.setSeed(seed); - cv.setNumFolds(folds); - cv.buildFolds(data); - res = cv.crossValidateWithStats(t, data); - if(m_Debug){ - System.out.println("In cross validate"); - System.out.println(getParameters()); - } - } - else{ - res.setAcc(1-this.measureOutOfBagError()); -//Get OOB probabilities. This is not possible with the standard -//random forest bagger, hence the use of EnhancedBagger - System.out.println("BAGGER CLASS = "+m_bagger.getClass().getName()); - - ((EnhancedBagging)m_bagger).findOOBProbabilities(); - double[][] OOBPredictions=((EnhancedBagging)m_bagger).OOBProbabilities; - for(int i=0;i accuracy; + boolean crossValidate=true; + boolean estimateAcc=true; //If there is no tuning, this will find the estimate with the fixed values + private long combinedBuildTime; + protected String resultsPath; + protected boolean saveEachParaAcc=false; +//Need to know this before build if the parameters are going to be set by index +//It is only used in the method setParametersFromIndex, which throws an +//Exception if it is zero + private int numFeaturesInProblem=0; + private static int MAX_FOLDS=10; + + private ClassifierResults res =new ClassifierResults(); + public void setNumFeaturesInProblem(int m){ + numFeaturesInProblem=m; + } + public void setNumFeaturesForEachTree(int m){ + m_numFeatures=m; + } +/** + * Determines whether an estimate of the accuracy is to be obtained from the train data + * by 10x cross validation + * @param b + */ + public void setCrossValidate(boolean b){ + if(b) + setEstimateAcc(b); + crossValidate=b; + } + public void setEstimateAcc(boolean b){ + estimateAcc=b; + } + +//methods from SaveEachParameter + @Override + public void setPathToSaveParameters(String r){ + resultsPath=r; + setSaveEachParaAcc(true); + } + @Override + public void setSaveEachParaAcc(boolean b){ + saveEachParaAcc=b; + } +//MEthods from ParameterSplittable + @Override + public String getParas() { //This is redundant really. + return getParameters(); + } + @Override + public double getAcc() { + return res.getAcc(); + } + @Override + public void setParametersFromIndex(int x) { + tuneParameters=false; +//Three paras, evenly distributed, 1 to maxPerPara. +//Note that if maxPerPara > numFeaturesInProblem, we have a problem, so it will throw an exception later + paras=new int[3]; + if(x<1 || x>maxPerPara*maxPerPara*maxPerPara)//Error, invalid range + throw new UnsupportedOperationException("ERROR parameter index "+x+" out of range for PolyNomialKernel"); //To change body of generated methods, choose Tools | Templates. + int numLevelsIndex=(x-1)/(maxPerPara*maxPerPara); + int numFeaturesIndex=((x-1)/(maxPerPara))%maxPerPara; + int numTreesIndex=x%maxPerPara; +//Need to know number of attributes + if(numFeaturesInProblem==0) + throw new RuntimeException("Error in TunedRandomForest in set ParametersFromIndex: we do not know the number of attributes, need to call setNumFeaturesInProblem before this call"); +//Para 1. Maximum tree depth, m_MaxDepth + if(numLevelsIndex==0) + paras[0]=0; + else + paras[0]=numLevelsIndex*(numFeaturesInProblem/maxPerPara); +//Para 2. Num features + if(numFeaturesIndex==0) + paras[1]=(int)Math.sqrt(numFeaturesInProblem); + else if(numFeaturesIndex==1) + paras[1]=(int) Utils.log2(numFeaturesInProblem)+1; + else + paras[1]=((numFeaturesIndex-1)*numFeaturesInProblem)/maxPerPara; + if(numTreesIndex==0) + paras[2]=10; //Weka default + else + paras[2]=100*numTreesIndex; + setMaxDepth(paras[0]); + setNumFeaturesForEachTree(paras[1]); + setNumTrees(paras[2]); + if(m_Debug) + System.out.println("Index ="+x+" Num Features ="+numFeaturesInProblem+" Max Depth="+paras[0]+" Num Features ="+paras[1]+" Num Trees ="+paras[2]); + } + + + @Override + public ClassifierResults getTrainResults(){ +//Temporary : copy stuff into res.acc here + return res; + } +//SaveParameterInfo + @Override + public String getParameters() { + String result="BuildTime,"+res.getBuildTime()+",CVAcc,"+res.getAcc()+","; + result+="MaxDepth,"+this.getMaxDepth()+",NumFeatures,"+this.getNumFeatures()+",NumTrees,"+this.getNumTrees(); + return result; + } + + @Override + public void setParamSearch(boolean b) { + tuneParameters=b; + } + + + public TunedRandomForest(){ + super(); + m_numTrees=500; + m_numExecutionSlots=1; + m_bagger=new EnhancedBagging(); + rng=new Random(); + seed=0; + accuracy=new ArrayList<>(); + } + @Override + public void setSeed(int s){ + super.setSeed(s); + seed = s; + rng=new Random(); + rng.setSeed(seed); + } + + public void debug(boolean b){ + m_Debug=b; + } + public void tuneParameters(boolean b){ + tuneParameters=b; + } + public void setNumTreesRange(int[] d){ + paraSpace1=d; + } + public void setNumFeaturesRange(int[] d){ + paraSpace2=d; + } + @Override + public void writeTrainEstimatesToFile(String train) { + trainPath=train; + estimateAcc=true; + } + @Override + public void setFindTrainAccuracyEstimate(boolean setCV){ + estimateAcc=setCV; + } + + + @Override + public boolean findsTrainAccuracyEstimate(){ return estimateAcc;} + protected final void setStandardParaSearchSpace(int m){ +//Need to know the number of features to do this +//Does 1000 parameter searches on a 10x10x10 grid + if(mtrain.numInstances()) + folds=train.numInstances(); + double minErr=1; + this.setSeed(rng.nextInt()); + Instances trainCopy=new Instances(train); + CrossValidationEvaluator cv = new CrossValidationEvaluator(); + cv.setSeed(seed); + cv.setNumFolds(folds); + cv.buildFolds(trainCopy); + ArrayList ties=new ArrayList<>(); + ClassifierResults tempResults; + int count=0; + OutFile temp=null; + for(int p1:paraSpace1){//Maximum tree depth, m_MaxDepth + for(int p2:paraSpace2){//Num features + for(int p3:paraSpace3){//Num trees + count++; + if(saveEachParaAcc){// check if para value already done + File f=new File(resultsPath+count+".csv"); + if(f.exists()){ + if(CollateResults.validateSingleFoldFile(resultsPath+count+".csv")==false){ + System.out.println("Deleting file "+resultsPath+count+".csv because size ="+f.length()); + } + else + continue;//If done, ignore skip this iteration + } + } + TunedRandomForest model = new TunedRandomForest(); + model.setMaxDepth(p1); + model.setNumFeatures(p2); + model.setNumTrees(p3); + model.tuneParameters=false; + model.estimateAcc=false; + model.setSeed(count); + tempResults=cv.crossValidateWithStats(model,trainCopy); + + tempResults.setClassifierName("RandFPara"+count); + tempResults.setDatasetName(train.relationName()); + tempResults.setFoldID(seed); + tempResults.setSplit("train"); + + tempResults.setParas("maxDepth,"+p1+",numFeatures,"+p2+",numTrees,"+p3); + + double e=1-tempResults.getAcc(); + if(m_Debug) + System.out.println("Depth="+p1+",Features"+p2+",Trees="+p3+" Acc = "+(1-e)); + accuracy.add(tempResults.getAcc()); + if(saveEachParaAcc){// Save to file and close + tempResults.writeFullResultsToFile(resultsPath+count+".csv"); + File f=new File(resultsPath+count+".csv"); + if(f.exists()) + f.setWritable(true, false); + + } + else{ + if(e();//Remove previous ties + ties.add(new TunedSVM.ResultsHolder(p1,p2,p3,tempResults)); + } + else if(e==minErr){//Sort out ties + ties.add(new TunedSVM.ResultsHolder(p1,p2,p3,tempResults)); + } + } + } + } + } + int bestNumLevels; + int bestNumFeatures; + int bestNumTrees; + + minErr=1; + if(saveEachParaAcc){ +// Check they are all there first. + int missing=0; + for(int p1:paraSpace1){ + for(int p2:paraSpace2){ + for(int p3:paraSpace3){ + File f=new File(resultsPath+count+".csv"); + if(!(f.exists() && f.length()>0)) + missing++; + } + } + } + + if(missing==0)//All present + { + combinedBuildTime=0; + // If so, read them all from file, pick the best + count=0; + for(int p1:paraSpace1){//C + for(int p2:paraSpace2){//Exponent + for(int p3:paraSpace3){//B + count++; + tempResults = new ClassifierResults(); + tempResults.loadResultsFromFile(resultsPath+count+".csv"); + combinedBuildTime+=tempResults.getBuildTime(); + double e=1-tempResults.getAcc(); + if(e();//Remove previous ties + ties.add(new TunedSVM.ResultsHolder(p1,p2,p3,tempResults)); + } + else if(e==minErr){//Sort out ties + ties.add(new TunedSVM.ResultsHolder(p1,p2,p3,tempResults)); + } + //Delete the files here to clean up. + + File f= new File(resultsPath+count+".csv"); + if(!f.delete()) + System.out.println("DELETE FAILED "+resultsPath+count+".csv"); + } + } + } + TunedSVM.ResultsHolder best=ties.get(rng.nextInt(ties.size())); + bestNumLevels=(int)best.x; + bestNumFeatures=(int)best.y; + bestNumTrees=(int)best.z; + paras[0]=bestNumLevels; + paras[1]=bestNumFeatures; + paras[2]=bestNumTrees; + this.setMaxDepth(bestNumLevels); + this.setNumFeatures(bestNumFeatures); + this.setNumTrees(bestNumTrees); + + res=best.res; + if(m_Debug) + System.out.println("Bestnum levels ="+bestNumLevels+" best num features = "+bestNumFeatures+" best num trees ="+bestNumTrees+" best train acc = "+res.getAcc()); + }else//Not all present, just ditch + System.out.println(resultsPath+" error: missing ="+missing+" parameter values"); + } + else{ + TunedSVM.ResultsHolder best=ties.get(rng.nextInt(ties.size())); + bestNumLevels=(int)best.x; + bestNumFeatures=(int)best.y; + bestNumTrees=(int)best.z; + paras[0]=bestNumLevels; + paras[1]=bestNumFeatures; + paras[2]=bestNumTrees; + this.setMaxDepth(bestNumLevels); + this.setNumFeatures(bestNumFeatures); + this.setNumTrees(bestNumTrees); + res=best.res; + } + } + + @Override + public void buildClassifier(Instances data) throws Exception{ + long startTime=System.currentTimeMillis(); +//********* 1: Set up the main classifier with standard Weka calls ***************/ + // can classifier handle the data? + getCapabilities().testWithFail(data); + // remove instances with missing class + data = new Instances(data); + data.deleteWithMissingClass(); +//this is only used if CV is used to find parameters or estimate acc from train data + int folds=10; + if(folds>data.numInstances()) + folds=data.numInstances(); + super.setSeed(seed); + super.setNumFeatures((int)Math.sqrt(data.numAttributes()-1)); +/******* 2. Tune parameters if required: + * + * NOTE: the number of trees could be found incrementally, just start with the smallest + * number and add in each time rather than rebuild. It would massively speed up the search + * this has been implemented for the EnhancedBagger,but is not yet used. + * Obviously cannot do this for the number of attributes + */ + if(tuneParameters){ + if(paraSpace1==null) + setStandardParaSearchSpace(data.numAttributes()-1); + tuneRandomForest(data); + } + else //Override WEKA's default which is worse than sqrt(m) + setNumFeatures(Math.max(1,(int)Math.sqrt(data.numAttributes()-1))); + +/******** 3. Build final classifier ***************/ +/*Cant call super.buildClassifier as it resets the bagger to Bagging instead of + EnhancedBagging so instead straight cut and paste from RandomForest, with + Bagging changed to EnhancedBagging and default size changed +*/ + m_bagger = new EnhancedBagging(); +//Test with C4.5 rather than RT + RandomTree rTree = new RandomTree(); +// J48 rTree = new J48(); + + // set up the random tree options + + + if(m_numFeatures>data.numAttributes()-1) + m_numFeatures=data.numAttributes()-1; + if(m_MaxDepth>data.numAttributes()-1) + m_MaxDepth=0; + m_KValue = m_numFeatures; +//the value in m_numFeatures is not actually used +//its only role is setting m_KValue + rTree.setKValue(m_KValue); + rTree.setMaxDepth(getMaxDepth()); + // set up the bagger and build the forest + m_bagger.setClassifier(rTree); + m_bagger.setSeed(seed); + m_bagger.setNumIterations(m_numTrees); + m_bagger.setCalcOutOfBag(true); + m_bagger.setNumExecutionSlots(m_numExecutionSlots); + m_bagger.buildClassifier(data); + +/*** 4. Find the estimates of the train acc, either through CV or OOB ****/ +// do this after the main build in case OOB is used, because we need the main +//classifier for that +//NOTE IF THE CLASSIFIER IS TUNED THIS WILL BE A POSSIBLE SOURCE OF BIAS +//It should really be nested up a level. + + + if(estimateAcc){ //Need find train acc, either through CV or OOB + if(crossValidate){ + RandomForest t= new RandomForest(); + t.setNumFeatures(this.getNumFeatures()); + t.setNumTrees(this.getNumTrees()); + t.setSeed(seed); + CrossValidationEvaluator cv = new CrossValidationEvaluator(); + cv.setSeed(seed); + cv.setNumFolds(folds); + cv.buildFolds(data); + res = cv.crossValidateWithStats(t, data); + if(m_Debug){ + System.out.println("In cross validate"); + System.out.println(getParameters()); + } + } + else{ + res.setAcc(1-this.measureOutOfBagError()); +//Get OOB probabilities. This is not possible with the standard +//random forest bagger, hence the use of EnhancedBagger + System.out.println("BAGGER CLASS = "+m_bagger.getClass().getName()); + + ((EnhancedBagging)m_bagger).findOOBProbabilities(); + double[][] OOBPredictions=((EnhancedBagging)m_bagger).OOBProbabilities; + for(int i=0;i accuracy; - private boolean kernelOptimise=false; //Choose between linear, quadratic and RBF kernel - private boolean tuneParameters=true; - private ClassifierResults res =new ClassifierResults(); - private long combinedBuildTime; - private boolean buildFromFile=false; - protected String resultsPath; - protected boolean saveEachParaAcc=false; -//HARD CODED FLAG that allows a build from partials - private boolean buildFromPartial=false; - - @Override - public void setPathToSaveParameters(String r){ - resultsPath=r; - setSaveEachParaAcc(true); - } - @Override - public void setSaveEachParaAcc(boolean b){ - saveEachParaAcc=b; - } - public TunedSVM(){ - super(); - kernelOptimise=false; - kernel=KernelType.RBF; - tuneParameters=true; - setKernel(new RBFKernel()); - rng=new Random(); - accuracy=new ArrayList<>(); - setBuildLogisticModels(true); - } - public void estimateAccFromTrain(boolean b){ - this.findTrainAcc=b; - } - - - public void setSeed(int s){ - this.setSeed=true; - seed=s; - rng=new Random(); - rng.setSeed(seed); - } - - @Override - public void writeCVTrainToFile(String train) { - findTrainAcc=true; - trainPath=train; - } - @Override - public void setFindTrainAccuracyEstimate(boolean setCV){ - findTrainAcc=setCV; - } - - -//Think this always does para search? -// @Override -// public boolean findsTrainAccuracyEstimate(){ return findTrainAcc;} - - @Override - public ClassifierResults getTrainResults(){ -//Temporary : copy stuff into res.acc here - return res; - } - @Override - public String getParameters() { - String result="BuildTime,"+res.getBuildTimeInNanos()+",CVAcc,"+res.getAcc(); - result+=",C,"+paras[0]; - if(paras.length>1){ - if(kernel==KernelType.RBF) - result+=",Gamma,"+paras[1]; - else if (paras.length>2 && kernel==KernelType.POLYNOMIAL) - result+=",Power,"+paras[1]+",b,"+paras[2]; - } - for(double d:accuracy) - result+=","+d; - - return result; - } - - @Override - public void setParamSearch(boolean b) { - tuneParameters=b; - } - - @Override - public void setParametersFromIndex(int x) { - kernelOptimise=false; //Choose between linear, quadratic and RBF kernel - tuneParameters=false; - int numCParas=maxC-minC+1; - - - if(kernel==KernelType.LINEAR || kernel==KernelType.QUADRATIC){//Single parameter for C between 1 and 33 - if(x<1 || x>numCParas)//Error, invalid range - throw new UnsupportedOperationException("ERROR parameter index "+x+" out of range "+minC+" to "+ "max"); //To change body of generated methods, choose Tools | Templates. - paras=new double[1]; - paras[0]=Math.pow(2,minC+(x-1)); - setC(paras[0]); - } - else if(kernel==KernelType.RBF){//Two parameters, same range for both - if(x<1 || x>numCParas*numCParas)//Error, invalid range - throw new UnsupportedOperationException("ERROR parameter index "+x+" out of range "+minC+" to "+ "max"); //To change body of generated methods, choose Tools | Templates. - paras=new double[2]; - int temp=minC+(x-1)/numCParas; - paras[0]=Math.pow(2,temp); - temp=minC+(x-1)%numCParas; - paras[1]=Math.pow(2,temp); - setC(paras[0]); - ((RBFKernel)m_kernel).setGamma(paras[1]); - System.out.println(""); - } - else if(kernel==KernelType.POLYNOMIAL){ -//Three paras, not evenly distributed. C [1 to 33] exponent =[1 to 6], b=[0 to 5] - paras=new double[3]; - int numExpParas=maxExponent-minExponent+1; - int numBParas=maxB-minB+1; - if(x<1 || x>numCParas*numExpParas*numBParas)//Error, invalid range - throw new UnsupportedOperationException("ERROR parameter index "+x+" out of range for PolyNomialKernel"); //To change body of generated methods, choose Tools | Templates. - int cPara=minC+(x-1)%numCParas; - int expPara=minExponent+(x-1)/(numBParas*numCParas); - int bPara=minB+((x-1)/numCParas)%numBParas; - paras[0]=Math.pow(2,cPara); - paras[1]=expPara; - paras[2]=bPara; - PolynomialKernel kern = new PolynomialKernel(); - kern.setExponent(paras[1]); - kern.setB(paras[2]); - setKernel(kern); - setC(paras[0]); - System.out.println("Index "+x+" maps to "+cPara+","+expPara+","+bPara); - } - } - - @Override - public String getParas() { //This is redundant really. - return getParameters(); - } - - @Override - public double getAcc() { - return res.getAcc(); - } - public enum KernelType {LINEAR,QUADRATIC,POLYNOMIAL,RBF}; - KernelType kernel; - public void debug(boolean b){ - this.debug=b; - } - - public void setKernelType(KernelType type) { - kernel = type; - switch (type) { - case LINEAR: - PolyKernel p=new PolynomialKernel(); - p.setExponent(1); - setKernel(p); - break; - case QUADRATIC: - PolyKernel p2=new PolynomialKernel(); - p2.setExponent(2); - setKernel(p2); - break; - case POLYNOMIAL: - PolyKernel p3=new PolynomialKernel(); - p3.setExponent(1); - setKernel(p3); - break; - case RBF: - RBFKernel kernel2 = new RBFKernel(); - setKernel(kernel2); - break; - } - } - - public void setParaSpace(double[] p){ - paraSpace1=p; - } - public void setStandardParaSearchSpace(){ - paraSpace1=new double[maxC-minC+1]; - for(int i=minC;i<=maxC;i++) - paraSpace1[i-minC]=Math.pow(2,i); - if(kernel==KernelType.RBF){ - paraSpace2=new double[maxC-minC+1]; - for(int i=minC;i<=maxC;i++) - paraSpace2[i-minC]=Math.pow(2,i); - } - else if(kernel==KernelType.POLYNOMIAL){ - paraSpace2=new double[maxExponent-minExponent+1]; - paraSpace3=new double[maxB-minB+1]; - for(int i=minExponent;i<=maxExponent;i++) - paraSpace2[i-minExponent]=i; - for(int i=minB;i<=maxB;i++) - paraSpace3[i-minB]=i; - } - } -/** - * - * @param n number of parameter values to try, spread across 2^minC and 2^maxC - on an exponential scale - */ - public void setLargePolynomialParameterSpace(int n){ - paraSpace1=new double[n]; - double interval=(maxC-minC)/(n-1); - double exp=minC; - for(int i=0;itrain.numInstances()) - folds=train.numInstances(); - - double minErr=1; - this.setSeed(rng.nextInt()); - - Instances trainCopy=new Instances(train); - CrossValidationEvaluator cv = new CrossValidationEvaluator(); - if (setSeed) - cv.setSeed(seed); - cv.setNumFolds(folds); - cv.buildFolds(trainCopy); - - - ArrayList ties=new ArrayList<>(); - ClassifierResults tempResults; - int count=0; - OutFile temp=null; - for(double p1:paraSpace1){ - for(double p2:paraSpace2){ - count++; - if(saveEachParaAcc){// check if para value already done - File f=new File(resultsPath+count+".csv"); - if(f.exists()){ - if(f.length()==0){//Empty, delete - f.delete(); - } - else - continue;//If done, ignore skip this iteration - } - } - SMO model = new SMO(); - RBFKernel kern = new RBFKernel(); - kern.setGamma(p2); - model.setKernel(kern); - model.setC(p1); - model.setBuildLogisticModels(true); - tempResults=cv.crossValidateWithStats(model,trainCopy); - - tempResults.setClassifierName("TunedSVM"+kernel); - tempResults.setDatasetName(train.relationName()); - tempResults.setFoldID(seed); - tempResults.setSplit("train"); - - tempResults.setParas("C,"+p1+",Gamma,"+p2); - -// Evaluation eval=new Evaluation(temp); -// eval.crossValidateModel(model, temp, folds, rng); - double e=1-tempResults.getAcc(); - accuracy.add(tempResults.getAcc()); - if(debug) - System.out.println(" C= "+p1+" Gamma = "+p2+" Acc = "+(1-e)); - if(saveEachParaAcc){// Save to file and close - res.writeFullResultsToFile(resultsPath+count+".csv"); - File f=new File(resultsPath+count+".csv"); - if(f.exists()) - f.setWritable(true, false); - - - } - else{ - if(e();//Remove previous ties - ties.add(new ResultsHolder(p1,p2,tempResults)); - } - else if(e==minErr){//Sort out ties - ties.add(new ResultsHolder(p1,p2,tempResults)); - } - } - } - } - double bestC; - double bestSigma; - minErr=1; - if(saveEachParaAcc){ -// Check they are all there first. - int missing=0; - for(double p1:paraSpace1){ - for(double p2:paraSpace1){ - File f=new File(resultsPath+count+".csv"); - if(!(f.exists() && f.length()>0)) - missing++; - } - } - - if(missing==0)//All present - { - combinedBuildTime=0; - // If so, read them all from file, pick the best - count=0; - for(double p1:paraSpace1){ - for(double p2:paraSpace1){ - count++; - tempResults = new ClassifierResults(); - tempResults.loadResultsFromFile(resultsPath+count+".csv"); - combinedBuildTime+=tempResults.getBuildTime(); - double e=1-tempResults.getAcc(); - if(e();//Remove previous ties - ties.add(new ResultsHolder(p1,p2,tempResults)); - } - else if(e==minErr){//Sort out ties - ties.add(new ResultsHolder(p1,p2,tempResults)); - } - //Delete the files here to clean up. - - File f= new File(resultsPath+count+".csv"); - if(!f.delete()) - System.out.println("DELETE FAILED "+resultsPath+count+".csv"); - } - } - ResultsHolder best=ties.get(rng.nextInt(ties.size())); - bestC=best.x; - bestSigma=best.y; - paras[0]=bestC; - setC(bestC); - ((RBFKernel)m_kernel).setGamma(bestSigma); - paras[1]=bestSigma; - res=best.res; - if(debug) - System.out.println("Best C ="+bestC+" best Gamma = "+bestSigma+" best train acc = "+res.getAcc()); - }else//Not all present, just ditch - System.out.println(resultsPath+" error: missing ="+missing+" parameter values"); - } - else{ - ResultsHolder best=ties.get(rng.nextInt(ties.size())); - bestC=best.x; - bestSigma=best.y; - paras[0]=bestC; - setC(bestC); - ((RBFKernel)m_kernel).setGamma(bestSigma); - paras[1]=bestSigma; - res=best.res; - } - - } -/** - * Searches the polynomial exponent and the C value - * @param train - * @throws Exception - */ - public void tunePolynomial(Instances train) throws Exception { - - paras=new double[3]; - int folds=MAX_FOLDS; - if(folds>train.numInstances()) - folds=train.numInstances(); - - double minErr=1; - this.setSeed(rng.nextInt()); - - Instances trainCopy=new Instances(train); - CrossValidationEvaluator cv = new CrossValidationEvaluator(); - if (setSeed) - cv.setSeed(seed); - cv.setNumFolds(folds); - cv.buildFolds(trainCopy); - - - ArrayList ties=new ArrayList<>(); - ClassifierResults tempResults; - int count=0; - OutFile temp=null; - for(double p1:paraSpace1){//C - for(double p2:paraSpace2){//Exponent - for(double p3:paraSpace3){//B - - count++; - if(saveEachParaAcc){// check if para value already done - File f=new File(resultsPath+count+".csv"); - if(f.exists()){ - if(CollateResults.validateSingleFoldFile(resultsPath+count+".csv")==false){ - System.out.println("Deleting file "+resultsPath+count+".csv because incomplete, size ="+f.length()); - } - else - continue;//If done, ignore skip this iteration - } - } - SMO model = new SMO(); - PolynomialKernel kern = new PolynomialKernel(); - kern.setExponent(p2); - kern.setB(p3); - model.setKernel(kern); - model.setC(p1); - model.setBuildLogisticModels(true); - tempResults=cv.crossValidateWithStats(model,trainCopy); - - // Evaluation eval=new Evaluation(temp); - // eval.crossValidateModel(model, temp, folds, rng); - double e=1-tempResults.getAcc(); - accuracy.add(tempResults.getAcc()); - if(debug) - System.out.println("C="+p1+",Exp="+p2+",B="+p3+", Acc = "+(1-e)); - if(saveEachParaAcc){// Save to file and close - res.writeFullResultsToFile(resultsPath+count+".csv"); - } - else{ - if(e();//Remove previous ties - ties.add(new ResultsHolder(p1,p2,p3,tempResults)); - } - else if(e==minErr){//Sort out ties - ties.add(new ResultsHolder(p1,p2,p3,tempResults)); - } - } - } - } - } - double bestC; - double bestExponent; - double bestB; - - minErr=1; - if(saveEachParaAcc){ -// Check they are all there first. - int missing=0; - for(double p1:paraSpace1){ - for(double p2:paraSpace2){ - for(double p3:paraSpace3){ - File f=new File(resultsPath+count+".csv"); - if(!(f.exists() && f.length()>0)) - missing++; - } - } - } - - if(missing==0)//All present - { - combinedBuildTime=0; - // If so, read them all from file, pick the best - count=0; - for(double p1:paraSpace1){//C - for(double p2:paraSpace2){//Exponent - for(double p3:paraSpace3){//B - count++; - tempResults = new ClassifierResults(); - tempResults.loadResultsFromFile(resultsPath+count+".csv"); - combinedBuildTime+=tempResults.getBuildTime(); - double e=1-tempResults.getAcc(); - if(e();//Remove previous ties - ties.add(new ResultsHolder(p1,p2,p3,tempResults)); - } - else if(e==minErr){//Sort out ties - ties.add(new ResultsHolder(p1,p2,p3,tempResults)); - } - //Delete the files here to clean up. - - File f= new File(resultsPath+count+".csv"); - if(!f.delete()) - System.out.println("DELETE FAILED "+resultsPath+count+".csv"); - } - } - } - ResultsHolder best=ties.get(rng.nextInt(ties.size())); - bestC=best.x; - bestExponent=best.y; - bestB=best.z; - paras[0]=bestC; - paras[1]=bestExponent; - paras[2]=bestB; - PolynomialKernel kern = new PolynomialKernel(); - kern.setExponent(bestExponent); - kern.setB(bestB); - setKernel(kern); - setC(bestC); - - res=best.res; - if(debug) - System.out.println("Best C ="+bestC+" best Gamma = "+bestExponent+" best train acc = "+res.getAcc()); - }else//Not all present, just ditch - System.out.println(resultsPath+" error: missing ="+missing+" parameter values"); - } - else{ - ResultsHolder best=ties.get(rng.nextInt(ties.size())); - bestC=best.x; - bestExponent=best.y; - bestB=best.z; - paras[0]=bestC; - paras[1]=bestExponent; - paras[2]=bestB; - PolynomialKernel kern = new PolynomialKernel(); - kern.setExponent(bestExponent); - kern.setB(bestB); - setKernel(kern); - setC(bestC); - res=best.res; - } - } - -/** - * This function assumes the Polynomial exponent is fixed and just searches - * for C values. I could generalise this to use with the exponent search, but - * the risk of introducing bugs is too large - * @param train - * @throws Exception - */ - public void tuneCForFixedPolynomial(Instances train) throws Exception { - paras=new double[1]; - int folds=MAX_FOLDS; - if(folds>train.numInstances()) - folds=train.numInstances(); - double minErr=1; - this.setSeed(rng.nextInt()); - - Instances trainCopy=new Instances(train); - CrossValidationEvaluator cv = new CrossValidationEvaluator(); - if (setSeed) - cv.setSeed(seed); - cv.setNumFolds(folds); - cv.buildFolds(trainCopy); - - - ArrayList ties=new ArrayList<>(); - ClassifierResults tempResults; - int count=0; - OutFile temp=null; - - for(double d: paraSpace1){ - count++; - if(saveEachParaAcc){// check if para value already done - File f=new File(resultsPath+count+".csv"); - if(f.exists() && f.length()>0) - continue;//If done, ignore skip this iteration - if(debug) - System.out.println("PARA COUNT ="+count); - } - - SMO model = new SMO(); - model.setKernel(m_kernel); - model.setC(d); - model.setBuildLogisticModels(true); - - tempResults=cv.crossValidateWithStats(model,trainCopy); -// Evaluation eval=new Evaluation(temp); -// eval.crossValidateModel(model, temp, folds, rng); - double e=1-tempResults.getAcc(); - accuracy.add(tempResults.getAcc()); - if(saveEachParaAcc){// Save to file and close - res.writeFullResultsToFile(resultsPath+count+".csv"); - } - if(e();//Remove previous ties - ties.add(new ResultsHolder(d,0.0,tempResults)); - } - else if(e==minErr){//Sort out ties - ties.add(new ResultsHolder(d,0.0,tempResults)); - } - } - if(saveEachParaAcc){// Read them all from file, if all donepick the best - int missing=0; - for(double p1:paraSpace1){ - File f=new File(resultsPath+count+".csv"); - if(!(f.exists() && f.length()>0)) - missing++; - } - if(missing==0)//All present - { - combinedBuildTime=0; - count=0; - for(double p1:paraSpace1){ - count++; - tempResults = new ClassifierResults(); - tempResults.loadResultsFromFile(resultsPath+count+".csv"); - combinedBuildTime+=tempResults.getBuildTime(); - double e=1-tempResults.getAcc(); - if(e();//Remove previous ties - ties.add(new ResultsHolder(p1,0.0,tempResults)); - } - else if(e==minErr){//Sort out ties - ties.add(new ResultsHolder(p1,0.0,tempResults)); - } - //Delete the files here to clean up. - File f= new File(resultsPath+count+".csv"); - if(!f.delete()) - System.out.println("DELETE FAILED "+resultsPath+count+".csv"); - } - ResultsHolder best=ties.get(rng.nextInt(ties.size())); - setC(best.x); - res=best.res; - paras[0]=best.x; - } - else{ - System.out.println(resultsPath+" error: missing ="+missing+" parameter values"); - } - } - else{ - ResultsHolder best=ties.get(rng.nextInt(ties.size())); - setC(best.x); - res=best.res; - paras[0]=best.x; - } - } - - public void selectKernel(Instances train) throws Exception { - KernelType[] ker=KernelType.values(); - double[] rbfParas=new double[2]; - double rbfCVAcc=0; - double linearBestC=0; - double linearCVAcc=0; - double quadraticBestC=0; - double quadraticCVAcc=0; - for(KernelType k:ker){ - TunedSVM temp=new TunedSVM(); - Kernel kernel; - switch(k){ - case LINEAR: - PolyKernel p=new PolyKernel(); - p.setExponent(1); - temp.setKernel(p); - temp.setStandardParaSearchSpace(); - temp.tuneCForFixedPolynomial(train); - linearCVAcc=temp.res.getAcc(); - linearBestC=temp.getC(); - break; - case QUADRATIC: - PolyKernel p2=new PolyKernel(); - p2.setExponent(2); - temp.setKernel(p2); - temp.setStandardParaSearchSpace(); - temp.tuneCForFixedPolynomial(train); - quadraticCVAcc=temp.res.getAcc(); - quadraticBestC=temp.getC(); - break; - case RBF: - RBFKernel kernel2 = new RBFKernel(); - temp.setKernel(kernel2); - temp.setStandardParaSearchSpace(); - temp.tuneRBF(train); - rbfCVAcc=temp.res.getAcc(); - rbfParas[0]=temp.getC(); - rbfParas[1]=((RBFKernel)temp.m_kernel).getGamma(); - break; - } - } -//Choose best, inelligantly - if(linearCVAcc> rbfCVAcc && linearCVAcc> quadraticCVAcc){//Linear best - PolyKernel p=new PolyKernel(); - p.setExponent(1); - setKernel(p); - setC(linearBestC); - paras=new double[1]; - paras[0]=linearBestC; - res.setAcc(linearCVAcc); - }else if(quadraticCVAcc> linearCVAcc && quadraticCVAcc> rbfCVAcc){ //Quad best - PolyKernel p=new PolyKernel(); - p.setExponent(2); - setKernel(p); - setC(quadraticBestC); - paras=new double[1]; - paras[0]=quadraticBestC; - res.setAcc(quadraticCVAcc); - }else{ //RBF - RBFKernel kernel = new RBFKernel(); - kernel.setGamma(rbfParas[1]); - setKernel(kernel); - setC(rbfParas[0]); - paras=rbfParas; - res.setAcc(rbfCVAcc); - } - } - -//TO DO: add the option to build from an incomplete parameter set, -// without deleting - public void buildFromFile() throws FileNotFoundException, Exception{ - combinedBuildTime=0; - int count=0; - ArrayList ties=new ArrayList<>(); - ClassifierResults tempResults; - double minErr=1; - if(kernel==KernelType.LINEAR || kernel==KernelType.QUADRATIC){ - for(double p1:paraSpace1){ - count++; - tempResults = new ClassifierResults(); - File f= new File(resultsPath+count+".csv"); - if(f.exists() && f.length()>0){ - tempResults.loadResultsFromFile(resultsPath+count+".csv"); - combinedBuildTime+=tempResults.getBuildTime(); - double e=1-tempResults.getAcc(); - if(e();//Remove previous ties - ties.add(new ResultsHolder(p1,0.0,tempResults)); - } - else if(e==minErr){//Sort out ties - ties.add(new ResultsHolder(p1,0.0,tempResults)); - } - } - } - }else if(kernel==KernelType.RBF){ - for(double p1:paraSpace1){ - for(double p2:paraSpace2){ - count++; - tempResults = new ClassifierResults(); - File f= new File(resultsPath+count+".csv"); - if(f.exists() && f.length()>0){ - tempResults.loadResultsFromFile(resultsPath+count+".csv"); - combinedBuildTime+=tempResults.getBuildTime(); - double e=1-tempResults.getAcc(); - if(e();//Remove previous ties - ties.add(new ResultsHolder(p1,p2,tempResults)); - } - else if(e==minErr){//Sort out ties - ties.add(new ResultsHolder(p1,p2,tempResults)); - } - } - } - } - }else if(kernel==KernelType.POLYNOMIAL){ - for(double p1:paraSpace1){ - for(double p2:paraSpace2){ - for(double p3:paraSpace3){ - count++; - tempResults = new ClassifierResults(); - File f= new File(resultsPath+count+".csv"); - if(f.exists() && f.length()>0){ - tempResults.loadResultsFromFile(resultsPath+count+".csv"); - combinedBuildTime+=tempResults.getBuildTime(); - double e=1-tempResults.getAcc(); - if(e();//Remove previous ties - ties.add(new ResultsHolder(p1,p2,p3,tempResults)); - } - else if(e==minErr){//Sort out ties - ties.add(new ResultsHolder(p1,p2,p3,tempResults)); - } - } - } - } - } - } - ResultsHolder best=ties.get(rng.nextInt(ties.size())); - setC(best.x); - res=best.res; - paras[0]=best.x; - if(kernel==KernelType.RBF){ - paras[1]=best.y; -//Set Gamma - }else if(kernel==KernelType.POLYNOMIAL){ - paras[1]=best.y; - paras[2]=best.z; - } - - } - private void setRBFParasFromPartiallyCompleteSearch() throws Exception{ - paras=new double[2]; - combinedBuildTime=0; - ArrayList ties=new ArrayList<>(); - // If so, read them all from file, pick the best - int count=0; - int present=0; - double minErr=1; - for(double p1:paraSpace1){//C - for(double p2:paraSpace2){//GAMMA - ClassifierResults tempResults = new ClassifierResults(); - count++; - if(new File(resultsPath+count+".csv").exists()){ - present++; - tempResults.loadResultsFromFile(resultsPath+count+".csv"); - combinedBuildTime+=tempResults.getBuildTime(); - double e=1-tempResults.getAcc(); - if(e();//Remove previous ties - ties.add(new TunedSVM.ResultsHolder(p1,p2,tempResults)); - } - else if(e==minErr){//Sort out ties - ties.add(new TunedSVM.ResultsHolder(p1,p2,tempResults)); - } - } - } - } -//Set the parameters - if(present>0){ - System.out.println("Number of paras = "+present); - System.out.println("Number of best = "+ties.size()); - TunedSVM.ResultsHolder best=ties.get(rng.nextInt(ties.size())); - double bestC; - double bestSigma; - bestC=best.x; - bestSigma=best.y; - paras[0]=bestC; - paras[1]=bestSigma; - setC(bestC); - ((RBFKernel)m_kernel).setGamma(bestSigma); - res=best.res; - } - else - throw new Exception("Error, no parameter files for "+resultsPath); - } - private void setPolynomialParasFromPartiallyCompleteSearch() throws Exception{ - paras=new double[3]; - combinedBuildTime=0; - ArrayList ties=new ArrayList<>(); - // If so, read them all from file, pick the best - int count=0; - int present=0; - double minErr=1; - for(double p1:paraSpace1){// - for(double p2:paraSpace2){// - for(double p3:paraSpace3){// - ClassifierResults tempResults = new ClassifierResults(); - count++; - if(new File(resultsPath+count+".csv").exists()){ - present++; - tempResults.loadResultsFromFile(resultsPath+count+".csv"); - combinedBuildTime+=tempResults.getBuildTime(); - double e=1-tempResults.getAcc(); - if(e();//Remove previous ties - ties.add(new TunedSVM.ResultsHolder(p1,p2,p3,tempResults)); - } - else if(e==minErr){//Sort out ties - ties.add(new TunedSVM.ResultsHolder(p1,p2,p3,tempResults)); - } - } - } - } - } -//Set the parameters - if(present>0){ - System.out.println("Number of paras = "+present); - System.out.println("Number of best = "+ties.size()); - TunedSVM.ResultsHolder best=ties.get(rng.nextInt(ties.size())); - double bestC; - double bestB; - bestC=best.x; - bestB=best.y; - paras[0]=bestC; - paras[1]=bestB; - setC(bestC); - ((PolynomialKernel)m_kernel).setB(bestB); - res=best.res; - } - else - throw new Exception("Error, no parameter files for "+resultsPath); - } - - - @Override - public void buildClassifier(Instances train) throws Exception { - res =new ClassifierResults(); - long t=System.currentTimeMillis(); -// if(kernelOptimise) -// selectKernel(train); - if(buildFromPartial){ - if(paraSpace1==null) - setStandardParaSearchSpace(); - if(kernel==KernelType.RBF) - setRBFParasFromPartiallyCompleteSearch(); -// else if(kernel==KernelType.LINEAR || kernel==KernelType.QUADRATIC) -// setFixedPolynomialParasFromPartiallyCompleteSearch(); - else if(kernel==KernelType.POLYNOMIAL) - setPolynomialParasFromPartiallyCompleteSearch(); - } - else if(tuneParameters){ - if(paraSpace1==null) - setStandardParaSearchSpace(); - if(buildFromFile){ - throw new Exception("Build from file in TunedSVM Not implemented yet"); - }else{ - if(kernel==KernelType.RBF) - tuneRBF(train); //Tunes two parameters - else if(kernel==KernelType.LINEAR || kernel==KernelType.QUADRATIC) - tuneCForFixedPolynomial(train);//Tunes one parameter - else if(kernel==KernelType.POLYNOMIAL) - tunePolynomial(train); - } - } -/*If there is no parameter search, then there is no train CV available. -this gives the option of finding one using 10xCV -*/ - else if(findTrainAcc){ - int folds=10; - if(folds>train.numInstances()) - folds=train.numInstances(); - SMO model = new SMO(); - model.setKernel(this.m_kernel); - model.setC(this.getC()); - model.setBuildLogisticModels(true); - model.setRandomSeed(seed); - CrossValidationEvaluator cv = new CrossValidationEvaluator(); - cv.setSeed(seed); //trying to mimick old seeding behaviour below - cv.setNumFolds(folds); - cv.buildFolds(train); - res = cv.crossValidateWithStats(model, train); - } - - - -//If both kernelOptimise and tuneParameters are false, it just builds and SVM -//With whatever the parameters are set to - super.buildClassifier(train); - - if(saveEachParaAcc) - res.setBuildTime(combinedBuildTime); - else - res.setBuildTime(System.currentTimeMillis()-t); - if(trainPath!=null && trainPath!=""){ //Save basic train results - res.setClassifierName("TunedSVM"+kernel); - res.setDatasetName(train.relationName()); - res.setFoldID(seed); - res.setSplit("train"); - - res.setParas(getParameters()); - res.writeFullResultsToFile(trainPath); - File x=new File(trainPath); - x.setWritable(true, false); - - } - } - - public static void jamesltest() { - try{ - - String dset = "zoo"; -// int fold = 0; - Instances all=ClassifierTools.loadData("C:/UCI Problems/"+dset+"/"+dset); - - for (int fold = 0; fold < 30; fold++) { - - - Instances[] split=InstanceTools.resampleInstances(all,fold,0.5); - Instances train=split[0]; - Instances test=split[1]; - - TunedSVM svml = new TunedSVM(); - svml.optimiseParas(true); - svml.optimiseKernel(false); - svml.setBuildLogisticModels(true); - svml.setSeed(fold); - svml.setKernelType(TunedSVM.KernelType.LINEAR); - // - // TunedSVM svmq = new TunedSVM(); - // svmq.optimiseParas(true); - // svmq.optimiseKernel(false); - // svmq.setBuildLogisticModels(true); - // svmq.setSeed(fold); - // svmq.setKernelType(TunedSVM.KernelType.QUADRATIC); - // - // TunedSVM svmrbf = new TunedSVM(); - // svmrbf.optimiseParas(true); - // svmrbf.optimiseKernel(false); - // svmrbf.setBuildLogisticModels(true); - // svmrbf.setSeed(fold); - // svmrbf.setKernelType(TunedSVM.KernelType.RBF); - - System.out.println("\n\nTSVM_L:"); - svml.buildClassifier(train); - System.out.println("C ="+svml.getC()); - System.out.println("Train: " + svml.res.getAcc() + " " + svml.res.stddev); - double accL=ClassifierTools.accuracy(test, svml); - System.out.println("Test: " + accL); - // - // - // System.out.println("\n\nTSVM_Q:"); - // svmq.buildClassifier(train); - // System.out.println("C ="+svmq.getC()); - // System.out.println("Train: " + svmq.res.acc + " " + svmq.res.stddev); - // double accQ=ClassifierTools.accuracy(test, svmq); - // System.out.println("Test: " + accQ); - // - // System.out.println("\n\nTSVM_RBF:"); - // svmrbf.buildClassifier(train); - // System.out.println("C ="+svmrbf.getC()); - // System.out.println("Train: " + svmrbf.res.acc + " " + svmrbf.res.stddev); - // double accRBF=ClassifierTools.accuracy(test, svmrbf); - // System.out.println("Test: " + accRBF); - } - }catch(Exception e){ - System.out.println("ffsjava"); - System.out.println(e); - e.printStackTrace(); - } - } - - public static void testKernel() throws Exception{ - TunedSVM svm= new TunedSVM(); - svm.setKernelType(KernelType.POLYNOMIAL); - svm.setParamSearch(false); - svm.setBuildLogisticModels(true); - - String dset = "balloons"; - svm.setSeed(0); - Instances all=ClassifierTools.loadData("C:\\Users\\ajb\\Dropbox\\UCI Problems\\"+dset+"\\"+dset); - Instances[] split=InstanceTools.resampleInstances(all,1,0.5); - svm.buildClassifier(split[0]); - } - - - public static void main(String[] args){ - cheatOnMNIST(); - System.exit(0); - try { - testKernel(); - } catch (Exception ex) { - Logger.getLogger(TunedSVM.class.getName()).log(Level.SEVERE, null, ex); - } - System.exit(0); - int min=-16, max=16; - int numParas=max-min; - if(max*min<0) - numParas++; - - for(int x=1;x<=1089;x++){ - int temp=min+(x-1)/numParas; - double c=Math.pow(2,temp); - int temp2=min+(x-1)%numParas; - double gamma=Math.pow(2,temp2); - System.out.println("c count ="+temp+" gamma count = "+ temp2+" c="+c+" gamma ="+gamma); - } - - System.exit(0); - - -// jamesltest(); - - - String sourcePath="C:\\Users\\ajb\\Dropbox\\TSC Problems\\"; - String problemFile="ItalyPowerDemand"; - DecimalFormat df = new DecimalFormat("###.###"); - Instances all=ClassifierTools.loadData(sourcePath+problemFile+"/"+problemFile+"_TRAIN"); - Instances[] split=InstanceTools.resampleInstances(all,0,0.5); - Instances train=split[0]; - Instances test=split[1]; - try{ - TunedSVM svml=new TunedSVM(); - svml.setPathToSaveParameters("C:\\Temp\\fold1_"); - svml.optimiseParas(true); - svml.optimiseKernel(false); - svml.setBuildLogisticModels(true); - svml.setSeed(0); - svml.setKernelType(TunedSVM.KernelType.RBF); - svml.debug=true; -/* TunedSVM svmq=new TunedSVM(); - kernel = new PolyKernel(); - kernel.setExponent(2); - svmq.setKernel(kernel); - TunedSVM svmrbf=new TunedSVM(); - RBFKernel kernel2 = new RBFKernel(); - kernel2.setGamma(1/(double)(all.numAttributes()-1)); - svmrbf.setKernel(kernel2); - svmq.buildClassifier(train); - System.out.println("BUILT QUAD"); - System.out.println(" Optimal C ="+svmq.getC()); - svmrbf.buildClassifier(train); - System.out.println("BUILT RBF"); - System.out.println(" Optimal C ="+svmrbf.getC()); - double accL=0,accQ=0,accRBF=0; - accQ=ClassifierTools.accuracy(test, svmq); - accRBF=ClassifierTools.accuracy(test,svmrbf); - - -*/ - svml.buildClassifier(train); - System.out.println("BUILT LINEAR = "+svml); - System.out.println(" Optimal C ="+svml.getC()); - - double accL=ClassifierTools.accuracy(test, svml); - - System.out.println("ACC on "+problemFile+": Linear = "+df.format(accL)); //+", Quadratic = "+df.format(accQ)+", RBF = "+df.format(accRBF)); - - }catch(Exception e){ - System.out.println(" Exception building a classifier = "+e); - e.printStackTrace(); - System.exit(0); - } - } - - - protected static class PolynomialKernel extends PolyKernel { -//Constant parameter to allow for (x.x+b)^m_exponent. The reason this wraps the -//Weka kernel is I dont think it possible to include this parameter in Weka - double b=0; - public void setB(double x){b=x;} - protected void setConstantTerm(double x){ b=x;} - @Override - protected double evaluate(int id1, int id2, Instance inst1) - throws Exception { - double result; - if (id1 == id2) { - result = dotProd(inst1, inst1); - } else { - result = dotProd(inst1, m_data.instance(id2)); - } - // // Replacing this - // if (m_lowerOrder) { - // result += 1.0; - // } - //Only change from base class to allow for b constant term, rather than 0/1 - result += b; - - if (m_exponent != 1.0) { - result = Math.pow(result, m_exponent); - } - return result; - } - } - - public static void cheatOnMNIST(){ - Instances train=ClassifierTools.loadData("\\\\cmptscsvr.cmp.uea.ac.uk\\ueatsc\\Data\\LargeProblems\\MNIST\\MNIST_TRAIN"); - Instances test=ClassifierTools.loadData("\\\\cmptscsvr.cmp.uea.ac.uk\\ueatsc\\Data\\LargeProblems\\MNIST\\MNIST_TEST"); - SMO svm=new SMO(); - RBFKernel k=new RBFKernel(); - svm.setKernel(k); - System.out.println("Data loaded ......"); - double a =ClassifierTools.singleTrainTestSplitAccuracy(svm, train, test); - System.out.println("Default acc = "+a); - int min=1;//These search values are used for all kernels with C. It is also used for Gamma in RBF, but not for the Polynomial exponent search - int max=6; - for(double c=min;c<=max;c++) - for(double r=min;r<=max;r++){ - svm.setC(Math.pow(2, c)); - k.setGamma(Math.pow(2, r)); - svm.setKernel(k);//Just in case ... - a =ClassifierTools.singleTrainTestSplitAccuracy(svm, train, test); - System.out.println("logC ="+c+" logGamma = "+r+" acc = "+a); - } - - } - - -} +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package weka_uea.classifiers.tuned; + +import experiments.CollateResults; +import fileIO.OutFile; +import java.io.File; +import java.io.FileNotFoundException; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.Random; +import java.util.logging.Level; +import java.util.logging.Logger; +import timeseriesweka.classifiers.ParameterSplittable; +import utilities.ClassifierTools; +import evaluation.evaluators.CrossValidationEvaluator; +import utilities.InstanceTools; +import timeseriesweka.classifiers.SaveParameterInfo; +import weka.classifiers.functions.SMO; +import weka.classifiers.functions.supportVector.Kernel; +import weka.classifiers.functions.supportVector.PolyKernel; +import weka.classifiers.functions.supportVector.RBFKernel; +import evaluation.storage.ClassifierResults; +import experiments.data.DatasetLoading; +import weka.core.*; +import weka_uea.classifiers.SaveEachParameter; +import timeseriesweka.classifiers.TrainAccuracyEstimator; + +/* +Tony's attempt to see the effect of parameter setting on SVM. + +Two parameters: +kernel para: for polynomial this is the weighting given to lower order terms + k(x,x')=(+b)^d +regularisation parameter, used in the SMO + +m_C + */ + +/** + * + * @author ajb + + TunedSVM sets the margin c through b ten fold cross validation. + + If the kernel type is RBF, also set sigma through CV, same values as c + + NOTE: + 1. CV could be done faster? + 2. Could use libSVM instead + * + */ +public class TunedSVM extends SMO implements SaveParameterInfo, TrainAccuracyEstimator,SaveEachParameter,ParameterSplittable{ + boolean setSeed=false; + int seed; + int minC=-16;//These search values are used for all kernels with C. It is also used for Gamma in RBF, but not for the Polynomial exponent search + int maxC=16; + int minExponent=1;//These values are also used for Gamma in RBF, but not for the Polynomial exponent search + int maxExponent=6; + int minB=0;//These are for the constant value in the Polynomial Kernel + int maxB=5; + double IncrementB=1; + double[] paraSpace1;//For fixed polynomial (LINEAR and QUADRATIC) there is just one range of parameters + double[] paraSpace2;//For RBF this is gamma, for POLYNOMIAL it is exponent. + double[] paraSpace3;//For POLYNOMIAL this is the constant term b in the kernel. + private static int MAX_FOLDS=10; + private double[] paras;//Stored final parameter values after search + String trainPath=""; + boolean debug=false; + protected boolean findTrainAcc=true; + Random rng; + ArrayList accuracy; + private boolean kernelOptimise=false; //Choose between linear, quadratic and RBF kernel + private boolean tuneParameters=true; + private ClassifierResults res =new ClassifierResults(); + private long combinedBuildTime; + private boolean buildFromFile=false; + protected String resultsPath; + protected boolean saveEachParaAcc=false; +//HARD CODED FLAG that allows a build from partials + private boolean buildFromPartial=false; + + @Override + public void setPathToSaveParameters(String r){ + resultsPath=r; + setSaveEachParaAcc(true); + } + @Override + public void setSaveEachParaAcc(boolean b){ + saveEachParaAcc=b; + } + public TunedSVM(){ + super(); + kernelOptimise=false; + kernel=KernelType.RBF; + tuneParameters=true; + setKernel(new RBFKernel()); + rng=new Random(); + accuracy=new ArrayList<>(); + setBuildLogisticModels(true); + } + public void estimateAccFromTrain(boolean b){ + this.findTrainAcc=b; + } + + + public void setSeed(int s){ + this.setSeed=true; + seed=s; + rng=new Random(); + rng.setSeed(seed); + } + + @Override + public void writeTrainEstimatesToFile(String train) { + findTrainAcc=true; + trainPath=train; + } + @Override + public void setFindTrainAccuracyEstimate(boolean setCV){ + findTrainAcc=setCV; + } + + +//Think this always does para search? +// @Override +// public boolean findsTrainAccuracyEstimate(){ return findTrainAcc;} + + @Override + public ClassifierResults getTrainResults(){ +//Temporary : copy stuff into res.acc here + return res; + } + @Override + public String getParameters() { + String result="BuildTime,"+res.getBuildTimeInNanos()+",CVAcc,"+res.getAcc(); + result+=",C,"+paras[0]; + if(paras.length>1){ + if(kernel==KernelType.RBF) + result+=",Gamma,"+paras[1]; + else if (paras.length>2 && kernel==KernelType.POLYNOMIAL) + result+=",Power,"+paras[1]+",b,"+paras[2]; + } + for(double d:accuracy) + result+=","+d; + + return result; + } + + @Override + public void setParamSearch(boolean b) { + tuneParameters=b; + } + + @Override + public void setParametersFromIndex(int x) { + kernelOptimise=false; //Choose between linear, quadratic and RBF kernel + tuneParameters=false; + int numCParas=maxC-minC+1; + + + if(kernel==KernelType.LINEAR || kernel==KernelType.QUADRATIC){//Single parameter for C between 1 and 33 + if(x<1 || x>numCParas)//Error, invalid range + throw new UnsupportedOperationException("ERROR parameter index "+x+" out of range "+minC+" to "+ "max"); //To change body of generated methods, choose Tools | Templates. + paras=new double[1]; + paras[0]=Math.pow(2,minC+(x-1)); + setC(paras[0]); + } + else if(kernel==KernelType.RBF){//Two parameters, same range for both + if(x<1 || x>numCParas*numCParas)//Error, invalid range + throw new UnsupportedOperationException("ERROR parameter index "+x+" out of range "+minC+" to "+ "max"); //To change body of generated methods, choose Tools | Templates. + paras=new double[2]; + int temp=minC+(x-1)/numCParas; + paras[0]=Math.pow(2,temp); + temp=minC+(x-1)%numCParas; + paras[1]=Math.pow(2,temp); + setC(paras[0]); + ((RBFKernel)m_kernel).setGamma(paras[1]); + System.out.println(""); + } + else if(kernel==KernelType.POLYNOMIAL){ +//Three paras, not evenly distributed. C [1 to 33] exponent =[1 to 6], b=[0 to 5] + paras=new double[3]; + int numExpParas=maxExponent-minExponent+1; + int numBParas=maxB-minB+1; + if(x<1 || x>numCParas*numExpParas*numBParas)//Error, invalid range + throw new UnsupportedOperationException("ERROR parameter index "+x+" out of range for PolyNomialKernel"); //To change body of generated methods, choose Tools | Templates. + int cPara=minC+(x-1)%numCParas; + int expPara=minExponent+(x-1)/(numBParas*numCParas); + int bPara=minB+((x-1)/numCParas)%numBParas; + paras[0]=Math.pow(2,cPara); + paras[1]=expPara; + paras[2]=bPara; + PolynomialKernel kern = new PolynomialKernel(); + kern.setExponent(paras[1]); + kern.setB(paras[2]); + setKernel(kern); + setC(paras[0]); + System.out.println("Index "+x+" maps to "+cPara+","+expPara+","+bPara); + } + } + + @Override + public String getParas() { //This is redundant really. + return getParameters(); + } + + @Override + public double getAcc() { + return res.getAcc(); + } + public enum KernelType {LINEAR,QUADRATIC,POLYNOMIAL,RBF}; + KernelType kernel; + public void debug(boolean b){ + this.debug=b; + } + + public void setKernelType(KernelType type) { + kernel = type; + switch (type) { + case LINEAR: + PolyKernel p=new PolynomialKernel(); + p.setExponent(1); + setKernel(p); + break; + case QUADRATIC: + PolyKernel p2=new PolynomialKernel(); + p2.setExponent(2); + setKernel(p2); + break; + case POLYNOMIAL: + PolyKernel p3=new PolynomialKernel(); + p3.setExponent(1); + setKernel(p3); + break; + case RBF: + RBFKernel kernel2 = new RBFKernel(); + setKernel(kernel2); + break; + } + } + + public void setParaSpace(double[] p){ + paraSpace1=p; + } + public void setStandardParaSearchSpace(){ + paraSpace1=new double[maxC-minC+1]; + for(int i=minC;i<=maxC;i++) + paraSpace1[i-minC]=Math.pow(2,i); + if(kernel==KernelType.RBF){ + paraSpace2=new double[maxC-minC+1]; + for(int i=minC;i<=maxC;i++) + paraSpace2[i-minC]=Math.pow(2,i); + } + else if(kernel==KernelType.POLYNOMIAL){ + paraSpace2=new double[maxExponent-minExponent+1]; + paraSpace3=new double[maxB-minB+1]; + for(int i=minExponent;i<=maxExponent;i++) + paraSpace2[i-minExponent]=i; + for(int i=minB;i<=maxB;i++) + paraSpace3[i-minB]=i; + } + } +/** + * + * @param n number of parameter values to try, spread across 2^minC and 2^maxC + on an exponential scale + */ + public void setLargePolynomialParameterSpace(int n){ + paraSpace1=new double[n]; + double interval=(maxC-minC)/(n-1); + double exp=minC; + for(int i=0;itrain.numInstances()) + folds=train.numInstances(); + + double minErr=1; + this.setSeed(rng.nextInt()); + + Instances trainCopy=new Instances(train); + CrossValidationEvaluator cv = new CrossValidationEvaluator(); + if (setSeed) + cv.setSeed(seed); + cv.setNumFolds(folds); + cv.buildFolds(trainCopy); + + + ArrayList ties=new ArrayList<>(); + ClassifierResults tempResults; + int count=0; + OutFile temp=null; + for(double p1:paraSpace1){ + for(double p2:paraSpace2){ + count++; + if(saveEachParaAcc){// check if para value already done + File f=new File(resultsPath+count+".csv"); + if(f.exists()){ + if(f.length()==0){//Empty, delete + f.delete(); + } + else + continue;//If done, ignore skip this iteration + } + } + SMO model = new SMO(); + RBFKernel kern = new RBFKernel(); + kern.setGamma(p2); + model.setKernel(kern); + model.setC(p1); + model.setBuildLogisticModels(true); + tempResults=cv.crossValidateWithStats(model,trainCopy); + + tempResults.setClassifierName("TunedSVM"+kernel); + tempResults.setDatasetName(train.relationName()); + tempResults.setFoldID(seed); + tempResults.setSplit("train"); + + tempResults.setParas("C,"+p1+",Gamma,"+p2); + +// Evaluation eval=new Evaluation(temp); +// eval.crossValidateModel(model, temp, folds, rng); + double e=1-tempResults.getAcc(); + accuracy.add(tempResults.getAcc()); + if(debug) + System.out.println(" C= "+p1+" Gamma = "+p2+" Acc = "+(1-e)); + if(saveEachParaAcc){// Save to file and close + res.writeFullResultsToFile(resultsPath+count+".csv"); + File f=new File(resultsPath+count+".csv"); + if(f.exists()) + f.setWritable(true, false); + + + } + else{ + if(e();//Remove previous ties + ties.add(new ResultsHolder(p1,p2,tempResults)); + } + else if(e==minErr){//Sort out ties + ties.add(new ResultsHolder(p1,p2,tempResults)); + } + } + } + } + double bestC; + double bestSigma; + minErr=1; + if(saveEachParaAcc){ +// Check they are all there first. + int missing=0; + for(double p1:paraSpace1){ + for(double p2:paraSpace1){ + File f=new File(resultsPath+count+".csv"); + if(!(f.exists() && f.length()>0)) + missing++; + } + } + + if(missing==0)//All present + { + combinedBuildTime=0; + // If so, read them all from file, pick the best + count=0; + for(double p1:paraSpace1){ + for(double p2:paraSpace1){ + count++; + tempResults = new ClassifierResults(); + tempResults.loadResultsFromFile(resultsPath+count+".csv"); + combinedBuildTime+=tempResults.getBuildTime(); + double e=1-tempResults.getAcc(); + if(e();//Remove previous ties + ties.add(new ResultsHolder(p1,p2,tempResults)); + } + else if(e==minErr){//Sort out ties + ties.add(new ResultsHolder(p1,p2,tempResults)); + } + //Delete the files here to clean up. + + File f= new File(resultsPath+count+".csv"); + if(!f.delete()) + System.out.println("DELETE FAILED "+resultsPath+count+".csv"); + } + } + ResultsHolder best=ties.get(rng.nextInt(ties.size())); + bestC=best.x; + bestSigma=best.y; + paras[0]=bestC; + setC(bestC); + ((RBFKernel)m_kernel).setGamma(bestSigma); + paras[1]=bestSigma; + res=best.res; + if(debug) + System.out.println("Best C ="+bestC+" best Gamma = "+bestSigma+" best train acc = "+res.getAcc()); + }else//Not all present, just ditch + System.out.println(resultsPath+" error: missing ="+missing+" parameter values"); + } + else{ + ResultsHolder best=ties.get(rng.nextInt(ties.size())); + bestC=best.x; + bestSigma=best.y; + paras[0]=bestC; + setC(bestC); + ((RBFKernel)m_kernel).setGamma(bestSigma); + paras[1]=bestSigma; + res=best.res; + } + + } +/** + * Searches the polynomial exponent and the C value + * @param train + * @throws Exception + */ + public void tunePolynomial(Instances train) throws Exception { + + paras=new double[3]; + int folds=MAX_FOLDS; + if(folds>train.numInstances()) + folds=train.numInstances(); + + double minErr=1; + this.setSeed(rng.nextInt()); + + Instances trainCopy=new Instances(train); + CrossValidationEvaluator cv = new CrossValidationEvaluator(); + if (setSeed) + cv.setSeed(seed); + cv.setNumFolds(folds); + cv.buildFolds(trainCopy); + + + ArrayList ties=new ArrayList<>(); + ClassifierResults tempResults; + int count=0; + OutFile temp=null; + for(double p1:paraSpace1){//C + for(double p2:paraSpace2){//Exponent + for(double p3:paraSpace3){//B + + count++; + if(saveEachParaAcc){// check if para value already done + File f=new File(resultsPath+count+".csv"); + if(f.exists()){ + if(CollateResults.validateSingleFoldFile(resultsPath+count+".csv")==false){ + System.out.println("Deleting file "+resultsPath+count+".csv because incomplete, size ="+f.length()); + } + else + continue;//If done, ignore skip this iteration + } + } + SMO model = new SMO(); + PolynomialKernel kern = new PolynomialKernel(); + kern.setExponent(p2); + kern.setB(p3); + model.setKernel(kern); + model.setC(p1); + model.setBuildLogisticModels(true); + tempResults=cv.crossValidateWithStats(model,trainCopy); + + // Evaluation eval=new Evaluation(temp); + // eval.crossValidateModel(model, temp, folds, rng); + double e=1-tempResults.getAcc(); + accuracy.add(tempResults.getAcc()); + if(debug) + System.out.println("C="+p1+",Exp="+p2+",B="+p3+", Acc = "+(1-e)); + if(saveEachParaAcc){// Save to file and close + res.writeFullResultsToFile(resultsPath+count+".csv"); + } + else{ + if(e();//Remove previous ties + ties.add(new ResultsHolder(p1,p2,p3,tempResults)); + } + else if(e==minErr){//Sort out ties + ties.add(new ResultsHolder(p1,p2,p3,tempResults)); + } + } + } + } + } + double bestC; + double bestExponent; + double bestB; + + minErr=1; + if(saveEachParaAcc){ +// Check they are all there first. + int missing=0; + for(double p1:paraSpace1){ + for(double p2:paraSpace2){ + for(double p3:paraSpace3){ + File f=new File(resultsPath+count+".csv"); + if(!(f.exists() && f.length()>0)) + missing++; + } + } + } + + if(missing==0)//All present + { + combinedBuildTime=0; + // If so, read them all from file, pick the best + count=0; + for(double p1:paraSpace1){//C + for(double p2:paraSpace2){//Exponent + for(double p3:paraSpace3){//B + count++; + tempResults = new ClassifierResults(); + tempResults.loadResultsFromFile(resultsPath+count+".csv"); + combinedBuildTime+=tempResults.getBuildTime(); + double e=1-tempResults.getAcc(); + if(e();//Remove previous ties + ties.add(new ResultsHolder(p1,p2,p3,tempResults)); + } + else if(e==minErr){//Sort out ties + ties.add(new ResultsHolder(p1,p2,p3,tempResults)); + } + //Delete the files here to clean up. + + File f= new File(resultsPath+count+".csv"); + if(!f.delete()) + System.out.println("DELETE FAILED "+resultsPath+count+".csv"); + } + } + } + ResultsHolder best=ties.get(rng.nextInt(ties.size())); + bestC=best.x; + bestExponent=best.y; + bestB=best.z; + paras[0]=bestC; + paras[1]=bestExponent; + paras[2]=bestB; + PolynomialKernel kern = new PolynomialKernel(); + kern.setExponent(bestExponent); + kern.setB(bestB); + setKernel(kern); + setC(bestC); + + res=best.res; + if(debug) + System.out.println("Best C ="+bestC+" best Gamma = "+bestExponent+" best train acc = "+res.getAcc()); + }else//Not all present, just ditch + System.out.println(resultsPath+" error: missing ="+missing+" parameter values"); + } + else{ + ResultsHolder best=ties.get(rng.nextInt(ties.size())); + bestC=best.x; + bestExponent=best.y; + bestB=best.z; + paras[0]=bestC; + paras[1]=bestExponent; + paras[2]=bestB; + PolynomialKernel kern = new PolynomialKernel(); + kern.setExponent(bestExponent); + kern.setB(bestB); + setKernel(kern); + setC(bestC); + res=best.res; + } + } + +/** + * This function assumes the Polynomial exponent is fixed and just searches + * for C values. I could generalise this to use with the exponent search, but + * the risk of introducing bugs is too large + * @param train + * @throws Exception + */ + public void tuneCForFixedPolynomial(Instances train) throws Exception { + paras=new double[1]; + int folds=MAX_FOLDS; + if(folds>train.numInstances()) + folds=train.numInstances(); + double minErr=1; + this.setSeed(rng.nextInt()); + + Instances trainCopy=new Instances(train); + CrossValidationEvaluator cv = new CrossValidationEvaluator(); + if (setSeed) + cv.setSeed(seed); + cv.setNumFolds(folds); + cv.buildFolds(trainCopy); + + + ArrayList ties=new ArrayList<>(); + ClassifierResults tempResults; + int count=0; + OutFile temp=null; + + for(double d: paraSpace1){ + count++; + if(saveEachParaAcc){// check if para value already done + File f=new File(resultsPath+count+".csv"); + if(f.exists() && f.length()>0) + continue;//If done, ignore skip this iteration + if(debug) + System.out.println("PARA COUNT ="+count); + } + + SMO model = new SMO(); + model.setKernel(m_kernel); + model.setC(d); + model.setBuildLogisticModels(true); + + tempResults=cv.crossValidateWithStats(model,trainCopy); +// Evaluation eval=new Evaluation(temp); +// eval.crossValidateModel(model, temp, folds, rng); + double e=1-tempResults.getAcc(); + accuracy.add(tempResults.getAcc()); + if(saveEachParaAcc){// Save to file and close + res.writeFullResultsToFile(resultsPath+count+".csv"); + } + if(e();//Remove previous ties + ties.add(new ResultsHolder(d,0.0,tempResults)); + } + else if(e==minErr){//Sort out ties + ties.add(new ResultsHolder(d,0.0,tempResults)); + } + } + if(saveEachParaAcc){// Read them all from file, if all donepick the best + int missing=0; + for(double p1:paraSpace1){ + File f=new File(resultsPath+count+".csv"); + if(!(f.exists() && f.length()>0)) + missing++; + } + if(missing==0)//All present + { + combinedBuildTime=0; + count=0; + for(double p1:paraSpace1){ + count++; + tempResults = new ClassifierResults(); + tempResults.loadResultsFromFile(resultsPath+count+".csv"); + combinedBuildTime+=tempResults.getBuildTime(); + double e=1-tempResults.getAcc(); + if(e();//Remove previous ties + ties.add(new ResultsHolder(p1,0.0,tempResults)); + } + else if(e==minErr){//Sort out ties + ties.add(new ResultsHolder(p1,0.0,tempResults)); + } + //Delete the files here to clean up. + File f= new File(resultsPath+count+".csv"); + if(!f.delete()) + System.out.println("DELETE FAILED "+resultsPath+count+".csv"); + } + ResultsHolder best=ties.get(rng.nextInt(ties.size())); + setC(best.x); + res=best.res; + paras[0]=best.x; + } + else{ + System.out.println(resultsPath+" error: missing ="+missing+" parameter values"); + } + } + else{ + ResultsHolder best=ties.get(rng.nextInt(ties.size())); + setC(best.x); + res=best.res; + paras[0]=best.x; + } + } + + public void selectKernel(Instances train) throws Exception { + KernelType[] ker=KernelType.values(); + double[] rbfParas=new double[2]; + double rbfCVAcc=0; + double linearBestC=0; + double linearCVAcc=0; + double quadraticBestC=0; + double quadraticCVAcc=0; + for(KernelType k:ker){ + TunedSVM temp=new TunedSVM(); + Kernel kernel; + switch(k){ + case LINEAR: + PolyKernel p=new PolyKernel(); + p.setExponent(1); + temp.setKernel(p); + temp.setStandardParaSearchSpace(); + temp.tuneCForFixedPolynomial(train); + linearCVAcc=temp.res.getAcc(); + linearBestC=temp.getC(); + break; + case QUADRATIC: + PolyKernel p2=new PolyKernel(); + p2.setExponent(2); + temp.setKernel(p2); + temp.setStandardParaSearchSpace(); + temp.tuneCForFixedPolynomial(train); + quadraticCVAcc=temp.res.getAcc(); + quadraticBestC=temp.getC(); + break; + case RBF: + RBFKernel kernel2 = new RBFKernel(); + temp.setKernel(kernel2); + temp.setStandardParaSearchSpace(); + temp.tuneRBF(train); + rbfCVAcc=temp.res.getAcc(); + rbfParas[0]=temp.getC(); + rbfParas[1]=((RBFKernel)temp.m_kernel).getGamma(); + break; + } + } +//Choose best, inelligantly + if(linearCVAcc> rbfCVAcc && linearCVAcc> quadraticCVAcc){//Linear best + PolyKernel p=new PolyKernel(); + p.setExponent(1); + setKernel(p); + setC(linearBestC); + paras=new double[1]; + paras[0]=linearBestC; + res.setAcc(linearCVAcc); + }else if(quadraticCVAcc> linearCVAcc && quadraticCVAcc> rbfCVAcc){ //Quad best + PolyKernel p=new PolyKernel(); + p.setExponent(2); + setKernel(p); + setC(quadraticBestC); + paras=new double[1]; + paras[0]=quadraticBestC; + res.setAcc(quadraticCVAcc); + }else{ //RBF + RBFKernel kernel = new RBFKernel(); + kernel.setGamma(rbfParas[1]); + setKernel(kernel); + setC(rbfParas[0]); + paras=rbfParas; + res.setAcc(rbfCVAcc); + } + } + +//TO DO: add the option to build from an incomplete parameter set, +// without deleting + public void buildFromFile() throws FileNotFoundException, Exception{ + combinedBuildTime=0; + int count=0; + ArrayList ties=new ArrayList<>(); + ClassifierResults tempResults; + double minErr=1; + if(kernel==KernelType.LINEAR || kernel==KernelType.QUADRATIC){ + for(double p1:paraSpace1){ + count++; + tempResults = new ClassifierResults(); + File f= new File(resultsPath+count+".csv"); + if(f.exists() && f.length()>0){ + tempResults.loadResultsFromFile(resultsPath+count+".csv"); + combinedBuildTime+=tempResults.getBuildTime(); + double e=1-tempResults.getAcc(); + if(e();//Remove previous ties + ties.add(new ResultsHolder(p1,0.0,tempResults)); + } + else if(e==minErr){//Sort out ties + ties.add(new ResultsHolder(p1,0.0,tempResults)); + } + } + } + }else if(kernel==KernelType.RBF){ + for(double p1:paraSpace1){ + for(double p2:paraSpace2){ + count++; + tempResults = new ClassifierResults(); + File f= new File(resultsPath+count+".csv"); + if(f.exists() && f.length()>0){ + tempResults.loadResultsFromFile(resultsPath+count+".csv"); + combinedBuildTime+=tempResults.getBuildTime(); + double e=1-tempResults.getAcc(); + if(e();//Remove previous ties + ties.add(new ResultsHolder(p1,p2,tempResults)); + } + else if(e==minErr){//Sort out ties + ties.add(new ResultsHolder(p1,p2,tempResults)); + } + } + } + } + }else if(kernel==KernelType.POLYNOMIAL){ + for(double p1:paraSpace1){ + for(double p2:paraSpace2){ + for(double p3:paraSpace3){ + count++; + tempResults = new ClassifierResults(); + File f= new File(resultsPath+count+".csv"); + if(f.exists() && f.length()>0){ + tempResults.loadResultsFromFile(resultsPath+count+".csv"); + combinedBuildTime+=tempResults.getBuildTime(); + double e=1-tempResults.getAcc(); + if(e();//Remove previous ties + ties.add(new ResultsHolder(p1,p2,p3,tempResults)); + } + else if(e==minErr){//Sort out ties + ties.add(new ResultsHolder(p1,p2,p3,tempResults)); + } + } + } + } + } + } + ResultsHolder best=ties.get(rng.nextInt(ties.size())); + setC(best.x); + res=best.res; + paras[0]=best.x; + if(kernel==KernelType.RBF){ + paras[1]=best.y; +//Set Gamma + }else if(kernel==KernelType.POLYNOMIAL){ + paras[1]=best.y; + paras[2]=best.z; + } + + } + private void setRBFParasFromPartiallyCompleteSearch() throws Exception{ + paras=new double[2]; + combinedBuildTime=0; + ArrayList ties=new ArrayList<>(); + // If so, read them all from file, pick the best + int count=0; + int present=0; + double minErr=1; + for(double p1:paraSpace1){//C + for(double p2:paraSpace2){//GAMMA + ClassifierResults tempResults = new ClassifierResults(); + count++; + if(new File(resultsPath+count+".csv").exists()){ + present++; + tempResults.loadResultsFromFile(resultsPath+count+".csv"); + combinedBuildTime+=tempResults.getBuildTime(); + double e=1-tempResults.getAcc(); + if(e();//Remove previous ties + ties.add(new TunedSVM.ResultsHolder(p1,p2,tempResults)); + } + else if(e==minErr){//Sort out ties + ties.add(new TunedSVM.ResultsHolder(p1,p2,tempResults)); + } + } + } + } +//Set the parameters + if(present>0){ + System.out.println("Number of paras = "+present); + System.out.println("Number of best = "+ties.size()); + TunedSVM.ResultsHolder best=ties.get(rng.nextInt(ties.size())); + double bestC; + double bestSigma; + bestC=best.x; + bestSigma=best.y; + paras[0]=bestC; + paras[1]=bestSigma; + setC(bestC); + ((RBFKernel)m_kernel).setGamma(bestSigma); + res=best.res; + } + else + throw new Exception("Error, no parameter files for "+resultsPath); + } + private void setPolynomialParasFromPartiallyCompleteSearch() throws Exception{ + paras=new double[3]; + combinedBuildTime=0; + ArrayList ties=new ArrayList<>(); + // If so, read them all from file, pick the best + int count=0; + int present=0; + double minErr=1; + for(double p1:paraSpace1){// + for(double p2:paraSpace2){// + for(double p3:paraSpace3){// + ClassifierResults tempResults = new ClassifierResults(); + count++; + if(new File(resultsPath+count+".csv").exists()){ + present++; + tempResults.loadResultsFromFile(resultsPath+count+".csv"); + combinedBuildTime+=tempResults.getBuildTime(); + double e=1-tempResults.getAcc(); + if(e();//Remove previous ties + ties.add(new TunedSVM.ResultsHolder(p1,p2,p3,tempResults)); + } + else if(e==minErr){//Sort out ties + ties.add(new TunedSVM.ResultsHolder(p1,p2,p3,tempResults)); + } + } + } + } + } +//Set the parameters + if(present>0){ + System.out.println("Number of paras = "+present); + System.out.println("Number of best = "+ties.size()); + TunedSVM.ResultsHolder best=ties.get(rng.nextInt(ties.size())); + double bestC; + double bestB; + bestC=best.x; + bestB=best.y; + paras[0]=bestC; + paras[1]=bestB; + setC(bestC); + ((PolynomialKernel)m_kernel).setB(bestB); + res=best.res; + } + else + throw new Exception("Error, no parameter files for "+resultsPath); + } + + + @Override + public void buildClassifier(Instances train) throws Exception { + res =new ClassifierResults(); + long t=System.currentTimeMillis(); +// if(kernelOptimise) +// selectKernel(train); + if(buildFromPartial){ + if(paraSpace1==null) + setStandardParaSearchSpace(); + if(kernel==KernelType.RBF) + setRBFParasFromPartiallyCompleteSearch(); +// else if(kernel==KernelType.LINEAR || kernel==KernelType.QUADRATIC) +// setFixedPolynomialParasFromPartiallyCompleteSearch(); + else if(kernel==KernelType.POLYNOMIAL) + setPolynomialParasFromPartiallyCompleteSearch(); + } + else if(tuneParameters){ + if(paraSpace1==null) + setStandardParaSearchSpace(); + if(buildFromFile){ + throw new Exception("Build from file in TunedSVM Not implemented yet"); + }else{ + if(kernel==KernelType.RBF) + tuneRBF(train); //Tunes two parameters + else if(kernel==KernelType.LINEAR || kernel==KernelType.QUADRATIC) + tuneCForFixedPolynomial(train);//Tunes one parameter + else if(kernel==KernelType.POLYNOMIAL) + tunePolynomial(train); + } + } +/*If there is no parameter search, then there is no train CV available. +this gives the option of finding one using 10xCV +*/ + else if(findTrainAcc){ + int folds=10; + if(folds>train.numInstances()) + folds=train.numInstances(); + SMO model = new SMO(); + model.setKernel(this.m_kernel); + model.setC(this.getC()); + model.setBuildLogisticModels(true); + model.setRandomSeed(seed); + CrossValidationEvaluator cv = new CrossValidationEvaluator(); + cv.setSeed(seed); //trying to mimick old seeding behaviour below + cv.setNumFolds(folds); + cv.buildFolds(train); + res = cv.crossValidateWithStats(model, train); + } + + + +//If both kernelOptimise and tuneParameters are false, it just builds and SVM +//With whatever the parameters are set to + super.buildClassifier(train); + + if(saveEachParaAcc) + res.setBuildTime(combinedBuildTime); + else + res.setBuildTime(System.currentTimeMillis()-t); + if(trainPath!=null && trainPath!=""){ //Save basic train results + res.setClassifierName("TunedSVM"+kernel); + res.setDatasetName(train.relationName()); + res.setFoldID(seed); + res.setSplit("train"); + + res.setParas(getParameters()); + res.writeFullResultsToFile(trainPath); + File x=new File(trainPath); + x.setWritable(true, false); + + } + } + + public static void jamesltest() { + try{ + + String dset = "zoo"; +// int fold = 0; + Instances all=DatasetLoading.loadDataNullable("C:/UCI Problems/"+dset+"/"+dset); + + for (int fold = 0; fold < 30; fold++) { + + + Instances[] split=InstanceTools.resampleInstances(all,fold,0.5); + Instances train=split[0]; + Instances test=split[1]; + + TunedSVM svml = new TunedSVM(); + svml.optimiseParas(true); + svml.optimiseKernel(false); + svml.setBuildLogisticModels(true); + svml.setSeed(fold); + svml.setKernelType(TunedSVM.KernelType.LINEAR); + // + // TunedSVM svmq = new TunedSVM(); + // svmq.optimiseParas(true); + // svmq.optimiseKernel(false); + // svmq.setBuildLogisticModels(true); + // svmq.setSeed(fold); + // svmq.setKernelType(TunedSVM.KernelType.QUADRATIC); + // + // TunedSVM svmrbf = new TunedSVM(); + // svmrbf.optimiseParas(true); + // svmrbf.optimiseKernel(false); + // svmrbf.setBuildLogisticModels(true); + // svmrbf.setSeed(fold); + // svmrbf.setKernelType(TunedSVM.KernelType.RBF); + + System.out.println("\n\nTSVM_L:"); + svml.buildClassifier(train); + System.out.println("C ="+svml.getC()); + System.out.println("Train: " + svml.res.getAcc() + " " + svml.res.stddev); + double accL=ClassifierTools.accuracy(test, svml); + System.out.println("Test: " + accL); + // + // + // System.out.println("\n\nTSVM_Q:"); + // svmq.buildClassifier(train); + // System.out.println("C ="+svmq.getC()); + // System.out.println("Train: " + svmq.res.acc + " " + svmq.res.stddev); + // double accQ=ClassifierTools.accuracy(test, svmq); + // System.out.println("Test: " + accQ); + // + // System.out.println("\n\nTSVM_RBF:"); + // svmrbf.buildClassifier(train); + // System.out.println("C ="+svmrbf.getC()); + // System.out.println("Train: " + svmrbf.res.acc + " " + svmrbf.res.stddev); + // double accRBF=ClassifierTools.accuracy(test, svmrbf); + // System.out.println("Test: " + accRBF); + } + }catch(Exception e){ + System.out.println("ffsjava"); + System.out.println(e); + e.printStackTrace(); + } + } + + public static void testKernel() throws Exception{ + TunedSVM svm= new TunedSVM(); + svm.setKernelType(KernelType.POLYNOMIAL); + svm.setParamSearch(false); + svm.setBuildLogisticModels(true); + + String dset = "balloons"; + svm.setSeed(0); + Instances all=DatasetLoading.loadDataNullable("C:\\Users\\ajb\\Dropbox\\UCI Problems\\"+dset+"\\"+dset); + Instances[] split=InstanceTools.resampleInstances(all,1,0.5); + svm.buildClassifier(split[0]); + } + + + public static void main(String[] args){ + cheatOnMNIST(); + System.exit(0); + try { + testKernel(); + } catch (Exception ex) { + Logger.getLogger(TunedSVM.class.getName()).log(Level.SEVERE, null, ex); + } + System.exit(0); + int min=-16, max=16; + int numParas=max-min; + if(max*min<0) + numParas++; + + for(int x=1;x<=1089;x++){ + int temp=min+(x-1)/numParas; + double c=Math.pow(2,temp); + int temp2=min+(x-1)%numParas; + double gamma=Math.pow(2,temp2); + System.out.println("c count ="+temp+" gamma count = "+ temp2+" c="+c+" gamma ="+gamma); + } + + System.exit(0); + + +// jamesltest(); + + + String sourcePath="C:\\Users\\ajb\\Dropbox\\TSC Problems\\"; + String problemFile="ItalyPowerDemand"; + DecimalFormat df = new DecimalFormat("###.###"); + Instances all=DatasetLoading.loadDataNullable(sourcePath+problemFile+"/"+problemFile+"_TRAIN"); + Instances[] split=InstanceTools.resampleInstances(all,0,0.5); + Instances train=split[0]; + Instances test=split[1]; + try{ + TunedSVM svml=new TunedSVM(); + svml.setPathToSaveParameters("C:\\Temp\\fold1_"); + svml.optimiseParas(true); + svml.optimiseKernel(false); + svml.setBuildLogisticModels(true); + svml.setSeed(0); + svml.setKernelType(TunedSVM.KernelType.RBF); + svml.debug=true; +/* TunedSVM svmq=new TunedSVM(); + kernel = new PolyKernel(); + kernel.setExponent(2); + svmq.setKernel(kernel); + TunedSVM svmrbf=new TunedSVM(); + RBFKernel kernel2 = new RBFKernel(); + kernel2.setGamma(1/(double)(all.numAttributes()-1)); + svmrbf.setKernel(kernel2); + svmq.buildClassifier(train); + System.out.println("BUILT QUAD"); + System.out.println(" Optimal C ="+svmq.getC()); + svmrbf.buildClassifier(train); + System.out.println("BUILT RBF"); + System.out.println(" Optimal C ="+svmrbf.getC()); + double accL=0,accQ=0,accRBF=0; + accQ=ClassifierTools.accuracy(test, svmq); + accRBF=ClassifierTools.accuracy(test,svmrbf); + + +*/ + svml.buildClassifier(train); + System.out.println("BUILT LINEAR = "+svml); + System.out.println(" Optimal C ="+svml.getC()); + + double accL=ClassifierTools.accuracy(test, svml); + + System.out.println("ACC on "+problemFile+": Linear = "+df.format(accL)); //+", Quadratic = "+df.format(accQ)+", RBF = "+df.format(accRBF)); + + }catch(Exception e){ + System.out.println(" Exception building a classifier = "+e); + e.printStackTrace(); + System.exit(0); + } + } + + + protected static class PolynomialKernel extends PolyKernel { +//Constant parameter to allow for (x.x+b)^m_exponent. The reason this wraps the +//Weka kernel is I dont think it possible to include this parameter in Weka + double b=0; + public void setB(double x){b=x;} + protected void setConstantTerm(double x){ b=x;} + @Override + protected double evaluate(int id1, int id2, Instance inst1) + throws Exception { + double result; + if (id1 == id2) { + result = dotProd(inst1, inst1); + } else { + result = dotProd(inst1, m_data.instance(id2)); + } + // // Replacing this + // if (m_lowerOrder) { + // result += 1.0; + // } + //Only change from base class to allow for b constant term, rather than 0/1 + result += b; + + if (m_exponent != 1.0) { + result = Math.pow(result, m_exponent); + } + return result; + } + } + + public static void cheatOnMNIST(){ + Instances train=DatasetLoading.loadDataNullable("\\\\cmptscsvr.cmp.uea.ac.uk\\ueatsc\\Data\\LargeProblems\\MNIST\\MNIST_TRAIN"); + Instances test=DatasetLoading.loadDataNullable("\\\\cmptscsvr.cmp.uea.ac.uk\\ueatsc\\Data\\LargeProblems\\MNIST\\MNIST_TEST"); + SMO svm=new SMO(); + RBFKernel k=new RBFKernel(); + svm.setKernel(k); + System.out.println("Data loaded ......"); + double a =ClassifierTools.singleTrainTestSplitAccuracy(svm, train, test); + System.out.println("Default acc = "+a); + int min=1;//These search values are used for all kernels with C. It is also used for Gamma in RBF, but not for the Polynomial exponent search + int max=6; + for(double c=min;c<=max;c++) + for(double r=min;r<=max;r++){ + svm.setC(Math.pow(2, c)); + k.setGamma(Math.pow(2, r)); + svm.setKernel(k);//Just in case ... + a =ClassifierTools.singleTrainTestSplitAccuracy(svm, train, test); + System.out.println("logC ="+c+" logGamma = "+r+" acc = "+a); + } + + } + + +} diff --git a/src/main/java/vector_classifiers/TunedXGBoost.java b/src/main/java/weka_uea/classifiers/tuned/TunedXGBoost.java similarity index 98% rename from src/main/java/vector_classifiers/TunedXGBoost.java rename to src/main/java/weka_uea/classifiers/tuned/TunedXGBoost.java index cc09e8d02..9417e9531 100644 --- a/src/main/java/vector_classifiers/TunedXGBoost.java +++ b/src/main/java/weka_uea/classifiers/tuned/TunedXGBoost.java @@ -11,7 +11,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package vector_classifiers; +package weka_uea.classifiers.tuned; import evaluation.evaluators.CrossValidationEvaluator; import evaluation.storage.ClassifierResults; @@ -26,17 +26,18 @@ import ml.dmlc.xgboost4j.java.XGBoostError; import timeseriesweka.classifiers.ParameterSplittable; import utilities.DebugPrinting; -import utilities.TrainAccuracyEstimate; import weka.classifiers.AbstractClassifier; import weka.core.Instance; import weka.core.Instances; import experiments.CollateResults; -import experiments.DataSets; +import experiments.data.DatasetLists; import experiments.Experiments; import java.util.Arrays; import java.util.Collections; import java.util.concurrent.TimeUnit; import timeseriesweka.classifiers.SaveParameterInfo; +import weka_uea.classifiers.SaveEachParameter; +import timeseriesweka.classifiers.TrainAccuracyEstimator; /** @@ -62,7 +63,7 @@ * * @author James Large (james.large@uea.ac.uk) */ -public class TunedXGBoost extends AbstractClassifier implements SaveParameterInfo,DebugPrinting, TrainAccuracyEstimate, SaveEachParameter, ParameterSplittable { +public class TunedXGBoost extends AbstractClassifier implements SaveParameterInfo,DebugPrinting, TrainAccuracyEstimator, SaveEachParameter, ParameterSplittable { int seed = 0; // Random rng = null; @@ -549,9 +550,9 @@ public static DMatrix wekaInstancesToDMatrix(Instances insts) throws XGBoostErro /** * TrainAccuracyEstimate interface - * @param string + * @param train */ - public void writeCVTrainToFile(String train) { + public void writeTrainEstimatesToFile(String train) { trainPath=train; findTrainAcc=true; } @@ -733,12 +734,12 @@ public double[] distributionForInstance(Instance inst) { public static void main(String[] args) throws Exception { // for (int fold = 0; fold < 15; fold++) { -// for (String dataset : DataSets.UCIContinuousFileNames) { +// for (String dataset : DatasetLists.UCIContinuousFileNames) { // Experiments.main(new String[] { "Z:/Data/UCIContinuous/", "Z:/CawpeResubmissionDump/XGBoostTimingsForHESCA/", "true", "XGBoostSingleThread", dataset, ""+(fold+1) }); // } // } // for (int fold = 15; fold < 30; fold++) { -// for (String dataset : DataSets.UCIContinuousFileNames) { +// for (String dataset : DatasetLists.UCIContinuousFileNames) { // Experiments.main(new String[] { "Z:/Data/UCIContinuous/", "Z:/CawpeResubmissionDump/XGBoostTimingsForHESCA/", "true", "XGBoostSingleThread", dataset, ""+(fold+1) }); // } // } @@ -781,7 +782,7 @@ public static void editTestFilesWithoutCorrespondingTrain() throws Exception { String safetyWritePath = "C:/Temp/XGBoostTestBackups/"; - for (String dataset : DataSets.UCIContinuousWithoutBigFour) { + for (String dataset : DatasetLists.UCIContinuousWithoutBigFour) { for (int fold = 0; fold < 30; fold++) { File trainFile = new File(path + dataset + "/trainFold" + fold + ".csv"); try { diff --git a/src/main/java/vector_clusterers/AbstractVectorClusterer.java b/src/main/java/weka_uea/clusterers/AbstractVectorClusterer.java similarity index 98% rename from src/main/java/vector_clusterers/AbstractVectorClusterer.java rename to src/main/java/weka_uea/clusterers/AbstractVectorClusterer.java index 93bd5b6f0..00717a1fa 100644 --- a/src/main/java/vector_clusterers/AbstractVectorClusterer.java +++ b/src/main/java/weka_uea/clusterers/AbstractVectorClusterer.java @@ -3,7 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package vector_clusterers; +package weka_uea.clusterers; import weka.clusterers.AbstractClusterer; import weka.core.DistanceFunction; diff --git a/src/main/java/vector_clusterers/DensityPeak.java b/src/main/java/weka_uea/clusterers/DensityPeak.java similarity index 99% rename from src/main/java/vector_clusterers/DensityPeak.java rename to src/main/java/weka_uea/clusterers/DensityPeak.java index 82f7ff236..ba0d1d70d 100644 --- a/src/main/java/vector_clusterers/DensityPeak.java +++ b/src/main/java/weka_uea/clusterers/DensityPeak.java @@ -1,5 +1,6 @@ -package vector_clusterers; +package weka_uea.clusterers; +import experiments.data.DatasetLoading; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -364,7 +365,7 @@ public static void main(String[] args) throws Exception{ } for (int i = 0; i < datasets.length; i++){ - Instances inst = ClassifierTools.loadData(datasets[i]); + Instances inst = DatasetLoading.loadDataNullable(datasets[i]); inst.setClassIndex(inst.numAttributes()-1); DensityPeak dp = new DensityPeak(); dp.setClusterCenterCutoff(cutoffs[i]); diff --git a/src/main/java/vector_clusterers/KMeans.java b/src/main/java/weka_uea/clusterers/KMeans.java similarity index 99% rename from src/main/java/vector_clusterers/KMeans.java rename to src/main/java/weka_uea/clusterers/KMeans.java index 0819f1a75..c6930ea01 100644 --- a/src/main/java/vector_clusterers/KMeans.java +++ b/src/main/java/weka_uea/clusterers/KMeans.java @@ -1,5 +1,6 @@ -package vector_clusterers; +package weka_uea.clusterers; +import experiments.data.DatasetLoading; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -515,7 +516,7 @@ public static void main(String[] args) throws Exception{ } for (int i = 0; i < datasets.length; i++){ - Instances inst = ClassifierTools.loadData(datasets[i]); + Instances inst = DatasetLoading.loadDataNullable(datasets[i]); inst.setClassIndex(inst.numAttributes()-1); KMeans kmeans = new KMeans(); kmeans.setFindBestK(true); diff --git a/src/main/java/vector_clusterers/PAM.java b/src/main/java/weka_uea/clusterers/PAM.java similarity index 99% rename from src/main/java/vector_clusterers/PAM.java rename to src/main/java/weka_uea/clusterers/PAM.java index b799658bf..ed9aee515 100644 --- a/src/main/java/vector_clusterers/PAM.java +++ b/src/main/java/weka_uea/clusterers/PAM.java @@ -1,5 +1,6 @@ -package vector_clusterers; +package weka_uea.clusterers; +import experiments.data.DatasetLoading; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -470,7 +471,7 @@ public static void main(String[] args) throws Exception{ } for (int i = 0; i < datasets.length; i++){ - Instances inst = ClassifierTools.loadData(datasets[i]); + Instances inst = DatasetLoading.loadDataNullable(datasets[i]); inst.setClassIndex(inst.numAttributes()-1); PAM pam = new PAM(); pam.setFindBestK(true);