diff --git a/ARCtrl.NET.sln b/ARCtrl.Querymodel.sln
similarity index 66%
rename from ARCtrl.NET.sln
rename to ARCtrl.Querymodel.sln
index b56f1b0..e3c2842 100644
--- a/ARCtrl.NET.sln
+++ b/ARCtrl.Querymodel.sln
@@ -15,10 +15,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
RELEASE_NOTES.md = RELEASE_NOTES.md
EndProjectSection
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ARCtrl.NET", "src\ARCtrl.NET\ARCtrl.NET.fsproj", "{A6324D54-1D9A-4EE8-BD57-FEB59132821B}"
-EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ARCtrl.NET.Tests", "tests\ARCtrl.NET.Tests\ARCtrl.NET.Tests.fsproj", "{74227D27-9ED9-45CC-BF80-1569C80719F7}"
-EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ARCtrl.QueryModel", "src\ARCtrl.QueryModel\ARCtrl.QueryModel.fsproj", "{1927F72B-180E-49C7-A189-96176E6067D3}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ARCtrl.Querymodel.Tests", "tests\ARCtrl.Querymodel.Tests\ARCtrl.Querymodel.Tests.fsproj", "{3907F71F-1F36-4164-A53A-68DBCB5DC22E}"
@@ -45,30 +41,6 @@ Global
{E7F453CD-BCCA-42EF-96A2-C74B9A09A593}.Release|x64.Build.0 = Release|Any CPU
{E7F453CD-BCCA-42EF-96A2-C74B9A09A593}.Release|x86.ActiveCfg = Release|Any CPU
{E7F453CD-BCCA-42EF-96A2-C74B9A09A593}.Release|x86.Build.0 = Release|Any CPU
- {A6324D54-1D9A-4EE8-BD57-FEB59132821B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A6324D54-1D9A-4EE8-BD57-FEB59132821B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A6324D54-1D9A-4EE8-BD57-FEB59132821B}.Debug|x64.ActiveCfg = Debug|Any CPU
- {A6324D54-1D9A-4EE8-BD57-FEB59132821B}.Debug|x64.Build.0 = Debug|Any CPU
- {A6324D54-1D9A-4EE8-BD57-FEB59132821B}.Debug|x86.ActiveCfg = Debug|Any CPU
- {A6324D54-1D9A-4EE8-BD57-FEB59132821B}.Debug|x86.Build.0 = Debug|Any CPU
- {A6324D54-1D9A-4EE8-BD57-FEB59132821B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A6324D54-1D9A-4EE8-BD57-FEB59132821B}.Release|Any CPU.Build.0 = Release|Any CPU
- {A6324D54-1D9A-4EE8-BD57-FEB59132821B}.Release|x64.ActiveCfg = Release|Any CPU
- {A6324D54-1D9A-4EE8-BD57-FEB59132821B}.Release|x64.Build.0 = Release|Any CPU
- {A6324D54-1D9A-4EE8-BD57-FEB59132821B}.Release|x86.ActiveCfg = Release|Any CPU
- {A6324D54-1D9A-4EE8-BD57-FEB59132821B}.Release|x86.Build.0 = Release|Any CPU
- {74227D27-9ED9-45CC-BF80-1569C80719F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {74227D27-9ED9-45CC-BF80-1569C80719F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {74227D27-9ED9-45CC-BF80-1569C80719F7}.Debug|x64.ActiveCfg = Debug|Any CPU
- {74227D27-9ED9-45CC-BF80-1569C80719F7}.Debug|x64.Build.0 = Debug|Any CPU
- {74227D27-9ED9-45CC-BF80-1569C80719F7}.Debug|x86.ActiveCfg = Debug|Any CPU
- {74227D27-9ED9-45CC-BF80-1569C80719F7}.Debug|x86.Build.0 = Debug|Any CPU
- {74227D27-9ED9-45CC-BF80-1569C80719F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {74227D27-9ED9-45CC-BF80-1569C80719F7}.Release|Any CPU.Build.0 = Release|Any CPU
- {74227D27-9ED9-45CC-BF80-1569C80719F7}.Release|x64.ActiveCfg = Release|Any CPU
- {74227D27-9ED9-45CC-BF80-1569C80719F7}.Release|x64.Build.0 = Release|Any CPU
- {74227D27-9ED9-45CC-BF80-1569C80719F7}.Release|x86.ActiveCfg = Release|Any CPU
- {74227D27-9ED9-45CC-BF80-1569C80719F7}.Release|x86.Build.0 = Release|Any CPU
{1927F72B-180E-49C7-A189-96176E6067D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1927F72B-180E-49C7-A189-96176E6067D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1927F72B-180E-49C7-A189-96176E6067D3}.Debug|x64.ActiveCfg = Debug|Any CPU
diff --git a/README.md b/README.md
index 5794cb5..9f02d46 100644
--- a/README.md
+++ b/README.md
@@ -1,45 +1,38 @@
-# ARCtrl.NET
+# ARCtrl.Querymodel
-
+> [!NOTE]
+> Filesystem Access has been implemented in ARCtrl since v2.3.0, even transpilable to JS and Python. ARCtrl.NET is therefore deprecated and this repository hosts only ARCtrl.Querymodel.
-This library functions as an IO wrapper for the [ARCtrl](https://github.com/nfdi4plants/ARCtrl) library in .NET.
+
+
+
+Adds querying functionality to the core [ARCtrl](https://github.com/nfdi4plants/ARCtrl) package in .NET.
The documentation for the actual functions for manipulating the ARC datamodel can be found [here](https://github.com/nfdi4plants/ARCtrl/tree/main/docs/scripts_fsharp).
## Usage
```fsharp
-#r "nuget: ARCtrl.NET"
-
-open ARCtrl.NET
open ARCtrl
+open ARCtrl.QueryModel
+open ARCtrl.ISA
+let i = ArcInvestigation("Dummy Investigation")
-let arcPath = ""
-
-let arc = ARC.load(arcPath)
-
-let isa = arc.ISA.Value
-
-isa.InitStudy("MyStudy")
+i.ArcTables.Values().WithName("Dummy Header").First.ValueText
-arc.Write(arcPath)
+i.GetAssay("Dummy Assay").LastSamples
```
## Development
-`./build.cmd runtests`
-
-## ARCtrl.Querymodel
+#### Requirements
-```fsharp
-open ARCtrl
-open ARCtrl.QueryModel
-open ARCtrl.ISA
+- [.NET SDK](https://dotnet.microsoft.com/en-us/download)
+ - verify with `dotnet --version` (Tested with 7.0.306)
-let i = ArcInvestigation("Dummy Investigation")
+#### Local Setup
-i.ArcTables.Values().WithName("Dummy Header").First.ValueText
+- Setup dotnet tools `dotnet tool restore`
-i.GetAssay("Dummy Assay").LastSamples
-```
+- Verify correct setup with `./build.cmd runtests` ✨
\ No newline at end of file
diff --git a/build/ProjectInfo.fs b/build/ProjectInfo.fs
index b3b1209..2b3425f 100644
--- a/build/ProjectInfo.fs
+++ b/build/ProjectInfo.fs
@@ -6,7 +6,7 @@ let project = "ARCtrl.NET"
let testProjects =
[
- "tests/ARCtrl.NET.Tests/ARCtrl.NET.Tests.fsproj"
+ //"tests/ARCtrl.NET.Tests/ARCtrl.NET.Tests.fsproj"
"tests/ARCtrl.Querymodel.Tests/ARCtrl.Querymodel.Tests.fsproj"
]
diff --git a/src/ARCtrl.NET/ARCtrl.NET.fsproj b/src/ARCtrl.NET/ARCtrl.NET.fsproj
deleted file mode 100644
index fcd2574..0000000
--- a/src/ARCtrl.NET/ARCtrl.NET.fsproj
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
- netstandard2.1
- true
- 3390;$(WarnOn)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- nfdi4plants, Lukas Weil
- Library for easy handling of ARC folders and files with file access in .NET.
- MIT
-
- F# FSharp dotnet .Net bioinformatics biology datascience metadata investigation study assay ISA XLSX ARC IO ARCtrl
- https://github.com/nfdi4plants/ARCtrl.NET
- https://github.com/nfdi4plants/ARCtrl.NET
- git
-
-
diff --git a/src/ARCtrl.NET/Arc.fs b/src/ARCtrl.NET/Arc.fs
deleted file mode 100644
index fe04a18..0000000
--- a/src/ARCtrl.NET/Arc.fs
+++ /dev/null
@@ -1,82 +0,0 @@
-namespace ARCtrl.NET
-
-open ARCtrl
-open Contract
-
-[]
-module ARCExtensions =
-
- type ARC with
-
- member this.Write(arcPath) =
- this.GetWriteContracts()
- |> Array.iter (Contract.fulfillWriteContract arcPath)
-
- static member load (arcPath : string) =
- let paths = Path.getAllFilePaths arcPath
- let arc = ARC.fromFilePaths paths
-
- let contracts = arc.GetReadContracts()
-
- let fulFilledContracts =
- contracts
- |> Array.map (fulfillReadContract arcPath)
-
- arc.SetISAFromContracts(fulFilledContracts)
- arc
-
- ///// Initializes the ARC-specific folder structure.
- //let initFolders (arcPath) =
- // subFolderPaths
- // |> List.iter (fun n ->
- // let dp = Path.Combine(arcPath,n)
- // let dir = Directory.CreateDirectory(dp)
- // File.Create(Path.Combine(dir.FullName, ".gitkeep")).Close()
- // )
-
- /// Initializes the ARC-specific git repository.
- static member initGit(workDir,?repositoryAddress : string,?branch : string) =
-
- let log = Logging.createLogger "ArcInitGitLog"
-
- log.Trace("Init Git repository")
-
- let branch = branch |> Option.defaultValue "main"
-
- try
-
- GitHelper.executeGitCommand workDir $"init -b {branch}"
-
- log.Trace("Add remote repository")
- match repositoryAddress with
- | None -> ()
- | Some remote ->
- GitHelper.executeGitCommand workDir $"remote add origin {remote}"
- //GitHelper.executeGitCommand workDir $"branch -u origin/{branch} {branch}"
-
- with
- | e ->
-
- log.Error($"Git could not be set up. Please try installing Git cli and run `arc git init`.\n\t{e}")
-
- ///// Initializes the ARC-specific folder structure, investigation file and git repository.
- //let init (workDir : string) (identifier : string) (repositoryAddress : string option) (branch : string option) =
-
- // let log = Logging.createLogger "ArcInitLog"
-
- // log.Info("Start Arc Init")
-
- // log.Trace("Create Directory")
-
- // Directory.CreateDirectory workDir |> ignore
-
- // log.Trace("Initiate folder structure")
-
- // initFolders workDir
-
- // log.Trace("Initiate investigation file")
-
- // let inv = ISADotNet.Investigation.create(Identifier=identifier)
- // Investigation.write workDir inv
-
- // initGit workDir repositoryAddress branch
diff --git a/src/ARCtrl.NET/Assay.fs b/src/ARCtrl.NET/Assay.fs
deleted file mode 100644
index 6b293f1..0000000
--- a/src/ARCtrl.NET/Assay.fs
+++ /dev/null
@@ -1,86 +0,0 @@
-namespace ARCtrl.NET
-
-open ARCtrl
-open ARCtrl
-open ARCtrl.Spreadsheet
-open FsSpreadsheet
-open FsSpreadsheet.Net
-open System.IO
-
-module Assay =
-
-
-
- module AssayFolder =
-
- /// Checks if an assay folder exists in the ARC.
- let exists (arc : string) (identifier : string) =
-
- Path.Combine([|arc;ARCtrl.ArcPathHelper.AssaysFolderName;identifier|])
- |> System.IO.Directory.Exists
-
-
- let readByFileName (arc : string) (assayFileName : string) =
- Path.Combine([|arc;assayFileName|]).Replace(@"\","/")
- |> FsWorkbook.fromXlsxFile
- |> ArcAssay.fromFsWorkbook
-
-
- let readByIdentifier (arc : string) (identifier : string) =
- Helper.Identifier.Assay.fileNameFromIdentifier identifier
- |> readByFileName arc
-
- //let tryReadFromFolder (folderPath : string) =
- // try
- // readFromFolder folderPath |> Some
- // with | _ -> None
-
- //let tryReadByFileName (arc : string) (assayFileName : string) =
- // try
- // readByFileName arc assayFileName |> Some
- // with | _ -> None
-
- //let tryReadByName (arc : string) (assayName : string) =
- // try
- // readByName arc assayName |> Some
- // with | _ -> None
-
- //let writeToFolder (folderPath : string) (contacts : Person list) (assay : Assay) =
- // let ap = Path.Combine (folderPath,assayFileName)
- // AssayFile.Assay.toFile ap contacts assay
-
- //let write (arc : string) (contacts : Person list) (assay : Assay) =
- // if assay.FileName.IsNone then
- // failwith "Cannot write assay to arc, as it has no filename"
- // let ap = Path.Combine ([|arc;"assays";assay.FileName.Value|])
- // AssayFile.Assay.toFile ap contacts assay
-
-
- //let add (arc : string) (assay : ArcAssay) =
-
- // if assay.FileName.IsNone then
- // failwith "Given assay does not contain filename"
-
- // let assayIdentifier = identifierFromFileName assay.FileName.Value
-
- // if AssayFolder.exists arc assayIdentifier then
- // printfn $"Assay folder with identifier {assayIdentifier} already exists."
- // else
- // subFolderPaths
- // |> List.iter (fun n ->
- // let dp = Path.Combine([|arc;rootFolderName;assayIdentifier;n|])
- // let dir = Directory.CreateDirectory(dp)
- // File.Create(Path.Combine(dir.FullName, ".gitkeep")).Close()
- // )
-
- // let assayFilePath = Path.Combine([|arc;rootFolderName;assay.FileName.Value|])
-
- // AssayFile.Assay.toFile assayFilePath [] assay
-
-
- //let init (arc : string) (assayName : string) =
-
- // let assay = Assay.create(FileName = nameToFileName assayName)
-
- // init arc assay
-
diff --git a/src/ARCtrl.NET/Contract.fs b/src/ARCtrl.NET/Contract.fs
deleted file mode 100644
index cf7afe0..0000000
--- a/src/ARCtrl.NET/Contract.fs
+++ /dev/null
@@ -1,49 +0,0 @@
-module ARCtrl.NET.Contract
-
-open ARCtrl.Contract
-open FsSpreadsheet
-open FsSpreadsheet.Net
-
-let fulfillReadContract basePath (c : Contract) =
- let log = Logging.createLogger("ReadContractHandler")
- match c.DTOType with
- | Some DTOType.ISA_Assay
- | Some DTOType.ISA_Investigation
- | Some DTOType.ISA_Study ->
- let path = System.IO.Path.Combine(basePath, c.Path)
- let wb = FsWorkbook.fromXlsxFile path |> box |> DTO.Spreadsheet
- {c with DTO = Some wb}
- | Some DTOType.PlainText ->
- let path = System.IO.Path.Combine(basePath, c.Path)
- let text = System.IO.File.ReadAllText(path) |> DTO.Text
- {c with DTO = Some text}
- | _ ->
- log.Info(sprintf "Contract %s is not an ISA contract" c.Path)
- c
-
-let fulfillWriteContract basePath (c : Contract) =
- let log = Logging.createLogger("WriteContractHandler")
- match c.DTO with
- | Some (DTO.Spreadsheet wb) ->
- let path = System.IO.Path.Combine(basePath, c.Path)
- Path.ensureDirectory path
- FsWorkbook.toXlsxFile path (wb :?> FsWorkbook)
- | Some (DTO.Text t) ->
- let path = System.IO.Path.Combine(basePath, c.Path)
- Path.ensureDirectory path
- System.IO.File.WriteAllText(path,t)
- | None ->
- let path = System.IO.Path.Combine(basePath, c.Path)
- Path.ensureDirectory path
- System.IO.File.Create(path).Close()
- | _ ->
- log.Info(sprintf "Contract %s is not an ISA contract" c.Path)
-
-//let fulfillExecuteContract basePath (c : Contract) =
-// let log = Logging.createLogger("ExecuteContractHandler")
-// match c.DTO with
-// | Some (DTO.CLITool tool) ->
-// let path = System.IO.Path.Combine(basePath, c.Path)
-// Path.ensureDirectory path
-// FsWorkbook.toFile path (wb :?> FsWorkbook)
-// | _ -> log.Info(sprintf "Contract %O is not an Execute contract" c)
\ No newline at end of file
diff --git a/src/ARCtrl.NET/Converter.fs b/src/ARCtrl.NET/Converter.fs
deleted file mode 100644
index 8833269..0000000
--- a/src/ARCtrl.NET/Converter.fs
+++ /dev/null
@@ -1,40 +0,0 @@
-namespace ARCtrl.NET.Converter
-
-//open ISADotNet
-//open ISADotNet.QueryModel
-//open FsSpreadsheet.DSL
-//open LitXml
-//open JsonDSL
-//open System.Text.Json
-
-//type ARCconverter =
-//| ARCtoCSV of (QInvestigation -> QStudy -> QAssay -> SheetEntity)
-//| ARCtoTSV of (QInvestigation -> QStudy -> QAssay -> SheetEntity)
-//| ARCtoXLSX of (QInvestigation -> QStudy -> QAssay -> SheetEntity)
-//| ARCtoXML of (QInvestigation -> QStudy -> QAssay -> LitXml.XmlPart)
-//| ARCtoJSON of (QInvestigation -> QStudy -> QAssay -> JEntity)
-
-// member this.ConvertCSV(i,s,a) =
-// match this with
-// | ARCtoCSV f -> f i s a
-// | _ -> failwith "could not convert to csv"
-
-// member this.ConvertTSV(i,s,a) =
-// match this with
-// | ARCtoTSV f -> f i s a
-// | _ -> failwith "could not convert to tsv"
-
-// member this.ConvertXLSX(i,s,a) =
-// match this with
-// | ARCtoXLSX f -> f i s a
-// | _ -> failwith "could not convert to xlsx"
-
-// member this.ConvertXML(i,s,a) =
-// match this with
-// | ARCtoXML f -> f i s a
-// | _ -> failwith "could not convert to xml"
-
-// member this.ConvertJsn(i,s,a) =
-// match this with
-// | ARCtoJSON f -> f i s a
-// | _ -> failwith "could not convert to xml"
diff --git a/src/ARCtrl.NET/GitHelper.fs b/src/ARCtrl.NET/GitHelper.fs
deleted file mode 100644
index 09b3d4e..0000000
--- a/src/ARCtrl.NET/GitHelper.fs
+++ /dev/null
@@ -1,135 +0,0 @@
-namespace ARCtrl.NET
-
-open System.Diagnostics
-open System.Runtime.InteropServices
-open System.IO
-
-module GitHelper =
-
- /// Executes Git command and returns git output.
- let executeGitCommandWithResponse (repoDir : string) (command : string) =
-
- let log = Logging.createLogger "ExecuteGitCommandLog"
-
- log.Trace($"Run git {command}")
-
- let procStartInfo =
- ProcessStartInfo(
- WorkingDirectory = repoDir,
- RedirectStandardOutput = true,
- RedirectStandardError = true,
- UseShellExecute = false,
- FileName = "git",
- Arguments = command
- )
-
- let outputs = System.Collections.Generic.List()
- let outputHandler (_sender:obj) (args:DataReceivedEventArgs) =
- if (args.Data = null |> not) then
- if args.Data.ToLower().Contains ("error") then
- log.Error($"GIT: {args.Data}")
- elif args.Data.ToLower().Contains ("trace") then
- log.Trace($"GIT: {args.Data}")
- else
- outputs.Add(args.Data)
- log.Info($"GIT: {args.Data}")
-
- let errorHandler (_sender:obj) (args:DataReceivedEventArgs) =
- if (args.Data = null |> not) then
- let msg = args.Data.ToLower()
- if msg.Contains ("error") || msg.Contains ("fatal") then
- log.Error($"GIT: {args.Data}")
- elif msg.Contains ("trace") then
- log.Trace($"GIT: {args.Data}")
- else
- outputs.Add(args.Data)
- log.Info($"GIT: {args.Data}")
-
- let p = new Process(StartInfo = procStartInfo)
-
- p.OutputDataReceived.AddHandler(DataReceivedEventHandler outputHandler)
- p.ErrorDataReceived.AddHandler(DataReceivedEventHandler errorHandler)
- p.Start() |> ignore
- p.BeginOutputReadLine()
- p.BeginErrorReadLine()
- p.WaitForExit()
- outputs
-
- /// Executes Git command.
- let executeGitCommand (repoDir : string) (command : string) =
-
- executeGitCommandWithResponse repoDir command |> ignore
-
- let formatRepoString username pass (url : string) =
- let comb = username + ":" + pass + "@"
- url.Replace("https://","https://" + comb)
-
- let setLocalEmail (dir : string) (email : string) =
- executeGitCommand dir (sprintf "config user.email \"%s\"" email)
-
- let tryGetLocalEmail (dir : string) =
- let r = executeGitCommandWithResponse dir "config --local --get user.email"
- if r.Count = 0 then None
- else Some r.[0]
-
- let setGlobalEmail (email : string) =
- executeGitCommand "" (sprintf "config --global user.email \"%s\"" email)
-
- let tryGetGlobalEmail () =
- let r = executeGitCommandWithResponse "" "config --global --get user.email"
- if r.Count = 0 then None
- else Some r.[0]
-
- let setLocalName (dir : string) (name : string) =
- executeGitCommand dir (sprintf "config user.name \"%s\"" name)
-
- let tryGetLocalName (dir : string) =
- let r = executeGitCommandWithResponse dir "config --local --get user.name"
- if r.Count = 0 then None
- else Some r.[0]
-
- let setGlobalName (name : string) =
- executeGitCommand "" (sprintf "config --global user.name \"%s\"" name)
-
- let tryGetGlobalName () =
- let r = executeGitCommandWithResponse "" "config --global --get user.name"
- if r.Count = 0 then None
- else Some r.[0]
-
- let clone dir url =
- executeGitCommand dir (sprintf "clone %s" url)
-
- let noLFSConfig = "-c \"filter.lfs.smudge = git-lfs smudge --skip -- %f\" -c \"filter.lfs.process = git-lfs filter-process --skip\""
-
- let cloneNoLFS dir url =
- executeGitCommand dir (sprintf "clone %s %s" noLFSConfig url)
-
- let add dir =
- executeGitCommand dir "add ."
-
- let commit dir message =
- executeGitCommand dir (sprintf "commit -m \"%s\"" message)
-
- let push dir =
- executeGitCommand dir "push"
-
- /// Set containing all the paths and path rules that should be tracked using git lfs
- type LFSRuleSet = Set
-
- /// Checks the .gitattributes file in the repo for all git lfs paths and path rules
- let retrieveLFSRules repoDir : LFSRuleSet =
- let gitAttributesFilePath = Path.Combine(repoDir,".gitattributes")
- let lfsRulePattern = ".*(?= filter=lfs diff=lfs merge=lfs -text)"
- if File.Exists gitAttributesFilePath then
- File.ReadAllLines(gitAttributesFilePath)
- |> Array.choose (fun l ->
- let r = System.Text.RegularExpressions.Regex.Match(l,lfsRulePattern)
- if r.Success then
- Some r.Value
- else None
- )
- |> set
- else Set.empty
-
- let containsLFSRule (ruleSet : LFSRuleSet) (path : string) =
- ruleSet.Contains path
diff --git a/src/ARCtrl.NET/Investigation.fs b/src/ARCtrl.NET/Investigation.fs
deleted file mode 100644
index 3c8cea5..0000000
--- a/src/ARCtrl.NET/Investigation.fs
+++ /dev/null
@@ -1,178 +0,0 @@
-namespace ARCtrl.NET
-
-//open ISADotNet
-//open ISADotNet.XLSX
-//open System.IO
-
-//module Investigation =
-
-// let investigationFileName = "isa.investigation.xlsx"
-
-// /// Creates an investigation file in the ARC.
-// let write (arcDir : string) (investigation : ISADotNet.Investigation) =
-
-// let log = Logging.createLogger "InvestigationWriteLog"
-
-// log.Info("Start Investigation Write")
-
-// if System.IO.File.Exists(Path.Combine(arcDir,investigationFileName)) then
-// log.Error("Investigation file does already exist.")
-
-// else
-// let investigationFilePath = Path.Combine(arcDir,investigationFileName)
-// Investigation.toFile investigationFilePath investigation
-
-// /// Creates an investigation file in the ARC.
-// let overWrite (arcDir : string) (investigation : ISADotNet.Investigation) =
-
-// let log = Logging.createLogger "InvestigationWriteLog"
-// log.Info("Start Investigation Write")
-
-// let investigationFilePath = Path.Combine(arcDir,investigationFileName)
-
-// if System.IO.File.Exists(investigationFilePath) then
-// try
-// let cache = File.ReadAllBytes(investigationFilePath)
-// File.Delete(investigationFilePath)
-// try
-// Investigation.toFile investigationFilePath investigation
-// with
-// | err ->
-// File.WriteAllBytes(investigationFilePath,cache)
-// log.Error($"Investigation file could not be overwritten: {err.Message}")
-// with
-// | err ->
-// log.Error($"Investigation file could not be overwritten: {err.Message}")
-// else
-// Investigation.toFile investigationFilePath investigation
-
-// /// Reads an investigation from the ARC.
-// let read (arcDir : string) =
-
-// let log = Logging.createLogger "InvestigationReadLog"
-
-// log.Info("Start Investigation Read")
-
-// if System.IO.File.Exists(Path.Combine(arcDir,investigationFileName)) then
-// let investigationFilePath = Path.Combine(arcDir,investigationFileName)
-// Investigation.fromFile investigationFilePath
-
-// else
-// log.Error("Investigation file does not exist.")
-// raise (System.SystemException())
-
-// /// Reads and combines all ISA components of the ARC into the ISA object
-// let fromArcFolder (arcDir : string) =
-// let log = Logging.createLogger "InvestigationFromArcFolderLog"
-
-// // read investigation from investigation file
-// let ip = Path.Combine(arcDir,investigationFileName).Replace(@"\","/")
-// let i = Investigation.fromFile ip
-
-// // get study list from study files and assay files
-// let istudies =
-// i.Studies
-// |> Option.map (List.map (fun study ->
-// //// read study from file
-// match study.Identifier with
-// | Some id ->
-// let studyFromFile = Study.readByIdentifier arcDir id
-// let mergedStudy = API.Update.UpdateByExistingAppendLists.updateRecordType study studyFromFile
-// // update study assays and contacts with information from assay files
-// match study.Assays with
-// | Some assays ->
-// let scontacts,sassays =
-// assays
-// |> List.fold (fun (cl,al) assay ->
-// match assay.FileName with
-// | Some fn ->
-// let contactsFromFile,assayFromFile = Assay.readByFileName arcDir assay.FileName.Value
-// cl @ contactsFromFile, al @ [assayFromFile]
-// | None ->
-// log.Warn("Study \'" + id + "\' contains Assay without filename.")
-// cl, al @ [assay]
-// ) (mergedStudy.Contacts |> Option.defaultValue [],[])
-// {mergedStudy with
-// Contacts = Some (scontacts |> List.distinct)
-// Assays = Some sassays
-// }
-// | None ->
-// mergedStudy
-// | None ->
-// log.Warn("Investigation file contains study without identifier.")
-// study
-// ))
-
-// // construct complete process list from studies and assays, then update by itself
-// let iprocesses =
-// istudies
-// |> Option.map (List.fold (fun pl study ->
-// let sprocesses = study.ProcessSequence |> Option.defaultValue []
-// let aprocesses =
-// study.Assays
-// |> Option.map (List.fold (fun spl assay ->
-// let ap = assay.ProcessSequence |> Option.defaultValue []
-// spl @ ap
-// ) [] )
-// |> Option.defaultValue []
-// pl @ sprocesses @ aprocesses
-// ) [] )
-// |> Option.defaultValue []
-// let ref = iprocesses |> ProcessSequence.updateByItself
-
-// // update investigation processes
-// let istudies' =
-// istudies
-// |> Option.map (List.map (fun study ->
-// {study with
-// Assays = study.Assays |> Option.map (List.map (fun a -> {a with ProcessSequence = a.ProcessSequence |> Option.map (ProcessSequence.updateByRef ref)}))
-// ProcessSequence = study.ProcessSequence |> Option.map (ProcessSequence.updateByRef ref)
-// }
-// ))
-
-// // fill investigation with information from study files and assay files
-// {i with Studies = istudies'}
-// |> API.Investigation.update
-
-// /// Registers an assay to the investigation arc registry
-// let registerAssay arcDir studyName (assayName) =
-
-// let log = Logging.createLogger "RegisterAssayLog"
-
-// let _, assay = Assay.readByName arcDir assayName
-
-// let investigation = read arcDir
-
-// match investigation.Studies with
-// | Some studies ->
-// match API.Study.tryGetByIdentifier studyName studies with
-// | Some study ->
-// match study.Assays with
-// | Some assays ->
-// match Assay.tryReadByName arcDir assayName with
-// | Some _ ->
-// log.Error($"Assay with the identifier {assayName} already exists in the investigation file.")
-// assays
-// | None ->
-// API.Assay.add assays assay
-// | None ->
-// [assay]
-// |> API.Study.setAssays study
-// |> fun s -> API.Study.updateByIdentifier API.Update.UpdateAll s studies
-// | None ->
-// log.Info($"Study with the identifier {studyName} does not exist yet, creating it now.")
-// let study = Study.create(Identifier = studyName, Assays = [assay])
-// Study.init arcDir study
-// API.Study.add studies study
-// | None ->
-// log.Info($"Study with the identifier {studyName} does not exist yet, creating it now.")
-// let study = Study.create(Identifier = studyName, Assays = [assay])
-// Study.init arcDir study
-// [study]
-// |> API.Investigation.setStudies investigation
-// |> write arcDir
-
-// /// Update investigation file with information from the different ISA components of the ARC
-// let updateRegistry arcDir =
-// fromArcFolder arcDir
-// |> overWrite arcDir
\ No newline at end of file
diff --git a/src/ARCtrl.NET/Logging.fs b/src/ARCtrl.NET/Logging.fs
deleted file mode 100644
index b5c3fb3..0000000
--- a/src/ARCtrl.NET/Logging.fs
+++ /dev/null
@@ -1,39 +0,0 @@
-module ARCtrl.NET.Logging
-
-open System
-open NLog
-open NLog.Config
-open NLog.Targets
-open NLog.Conditions
-
-
-/// Creates a new logger with the given name. Configuration details are obtained from the generateConfig function.
-let createLogger (loggerName : string) =
-
- // new instance of "Logger" with activated config
- let logger = LogManager.GetLogger(loggerName)
-
- logger
-
-/// Takes a logger and an exception and separates usage and error messages. Usage messages will be printed into the console while error messages will be logged.
-let handleExceptionMessage (log : NLog.Logger) (exn : Exception) =
- // separate usage message (Argu) and error messages. Error messages shall be logged, usage messages shall not, empty error message shall not appear at all
- let isUsageMessage = exn.Message.Contains("USAGE") || exn.Message.Contains("SUBCOMMANDS")
- let isErrorMessage = exn.Message.Contains("ERROR")
- let isEmptyMessage = exn.Message = ""
- match isUsageMessage, isErrorMessage, isEmptyMessage with
- | true,true,false -> // exception message contains usage AND error messages
- let eMsg, uMsg =
- exn.Message.Split(Environment.NewLine) // '\n' leads to parsing problems
- |> fun arr ->
- arr |> Array.find (fun t -> t.Contains("ERROR")),
- arr |> Array.filter (fun t -> t.Contains("ERROR") |> not) |> String.concat "\n" // Argu usage instruction shall not be logged as error
- log.Error(eMsg)
- printfn "%s" uMsg
- | true,false,false -> printfn "%s" exn.Message // exception message contains usage message but NO error message
- | false,false,true -> () // empty error message
- | _ -> log.Error(exn) // everything else will be a non-empty error message
-
-/// Checks if a message (string) is empty and if it is not, applies a logging function to it.
-let checkNonLog s (logging : string -> unit) = if s <> "" then logging s
-
\ No newline at end of file
diff --git a/src/ARCtrl.NET/Path.fs b/src/ARCtrl.NET/Path.fs
deleted file mode 100644
index 58da8a0..0000000
--- a/src/ARCtrl.NET/Path.fs
+++ /dev/null
@@ -1,27 +0,0 @@
-module ARCtrl.NET.Path
-
-open System.IO
-
-let ensureDirectory (filePath : string) =
- let file = new System.IO.FileInfo(filePath);
- file.Directory.Create()
-
-/// Return the absolute path relative to the directoryPath
-let makeRelative directoryPath (path : string) =
- if directoryPath = "." || directoryPath = "/" || directoryPath = "" then path
- else
- if path.StartsWith(directoryPath) then
- path.Substring(directoryPath.Length)
- else path
-
-let standardizeSlashes (path : string) =
- path.Replace("\\","/")
-
-let getAllFilePaths (directoryPath : string) =
- let rec allFiles dirs =
- if Seq.isEmpty dirs then Seq.empty else
- seq { yield! dirs |> Seq.collect Directory.EnumerateFiles
- yield! dirs |> Seq.collect Directory.EnumerateDirectories |> allFiles }
-
- allFiles [directoryPath] |> Seq.toArray
- |> Array.map (makeRelative directoryPath >> standardizeSlashes)
diff --git a/src/ARCtrl.NET/Run.fs b/src/ARCtrl.NET/Run.fs
deleted file mode 100644
index 80ba1ae..0000000
--- a/src/ARCtrl.NET/Run.fs
+++ /dev/null
@@ -1,6 +0,0 @@
-namespace ARCtrl.NET
-
-module Run =
-
- let rootFolderName = "runs"
-
diff --git a/src/ARCtrl.NET/Study.fs b/src/ARCtrl.NET/Study.fs
deleted file mode 100644
index d7a59a5..0000000
--- a/src/ARCtrl.NET/Study.fs
+++ /dev/null
@@ -1,245 +0,0 @@
-namespace ARCtrl.NET
-
-//open ISADotNet
-//open ISADotNet.XLSX
-//open System.IO
-
-
-//module Study =
-
-// let rootFolderName = "studies"
-
-// let studyFileName = "isa.study.xlsx"
-
-// let subFolderPaths =
-// ["resources";"protocol"]
-
-// module StudyFolder =
-
-// /// Checks if a Study folder exists in the ARC.
-// let exists (arc : string) (identifier : string) =
-// Path.Combine([|arc;rootFolderName;identifier|])
-// |> System.IO.Directory.Exists
-
-// /// Returns the Study identifiers of the Study Files located in each Study's folder of a given path to an ARC.
-// let findStudyIdentifiers arcDir =
-// let log = Logging.createLogger "findStudyIdentifiersLog"
-// let studiesPath = Path.Combine(arcDir, rootFolderName)
-// try
-// let studyFolders = Directory.GetDirectories studiesPath
-// studyFolders
-// |> Array.collect (
-// fun sf ->
-// let studyIdentifier = (DirectoryInfo sf).Name
-// Directory.GetFiles sf
-// |> Array.choose (fun s ->
-// if s.EndsWith "isa.study.xlsx" then
-// Some studyIdentifier
-// elif s.EndsWith "_isa.study.xlsx" then
-// log.Warn $"The Study File of Study {studyIdentifier} has a deprecated File Name: {s}"
-// Some studyIdentifier
-// else
-// None
-// )
-// )
-// with e ->
-// log.Error e.Message
-// [||]
-
-// let readFromFolder (arc : string) (folderPath : string) =
-// let sp = Path.Combine(folderPath,studyFileName).Replace(@"\","/")
-// let study = StudyFile.Study.fromFile sp
-// match study.Assays with
-// | Some assays ->
-// let contacts,ps,assays =
-// assays
-// |> List.fold (fun (contacts,processSequence,assays) a ->
-// let c,a = Assay.readByFileName arc a.FileName.Value
-// contacts @ c, processSequence @ (a.ProcessSequence |> Option.defaultValue []), assays @ [a]
-// ) (study.Contacts |> Option.defaultValue [],study.ProcessSequence |> Option.defaultValue [],[])
-// let ref = ps |> ProcessSequence.updateByItself
-// let updatedAssays =
-// assays
-// |> List.map (fun a ->
-// {a with ProcessSequence = a.ProcessSequence |> Option.map (ProcessSequence.updateByRef ref)}
-// )
-// {study with
-// ProcessSequence = study.ProcessSequence |> Option.map (ProcessSequence.updateByRef ref)
-// Assays = Some updatedAssays
-// Contacts = Option.fromValueWithDefault [] (contacts |> List.distinct)
-// }
-// | None ->
-// {study with ProcessSequence = study.ProcessSequence |> Option.map ProcessSequence.updateByItself}
-
-// let readByIdentifier (arc : string) (studyIdentifier : string) =
-// Path.Combine ([|arc;rootFolderName;studyIdentifier|])
-// |> readFromFolder arc
-
-// /// Writes a study to the given folder. Fails, if the file already exists
-// let writeToFolder (folderPath : string) (study : Study) =
-
-// let log = Logging.createLogger "StudyWriteLog"
-
-// log.Info("Start Study Write")
-
-// let studyFilePath = Path.Combine (folderPath,studyFileName)
-
-// if System.IO.File.Exists(studyFilePath) then
-// log.Error("Study file does already exist.")
-
-// else
-// StudyFile.Study.toFile studyFilePath study
-
-// /// Writes a study to the given folder. Overwrites it, if the file already exists
-// let overWriteToFolder (folderPath : string) (study : Study) =
-
-// let log = Logging.createLogger "StudyWriteLog"
-// log.Info("Start Study Write")
-
-// let studyFilePath = Path.Combine (folderPath,studyFileName)
-
-// if System.IO.File.Exists(studyFilePath) then
-// try
-// let cache = File.ReadAllBytes(studyFilePath)
-// File.Delete(studyFilePath)
-// try
-// StudyFile.Study.toFile studyFilePath study
-// with
-// | err ->
-// File.WriteAllBytes(studyFilePath,cache)
-// log.Error($"Study file could not be overwritten: {err.Message}")
-// with
-// | err ->
-// log.Error($"Study file could not be overwritten: {err.Message}")
-// else
-// StudyFile.Study.toFile studyFilePath study
-
-// /// Writes a study to the arc. Fails, if the file already exists
-// let write (arc : string) (study : Study) =
-
-// let log = Logging.createLogger "StudyWriteLog"
-
-// log.Info("Start Study Write")
-
-// if study.FileName.IsNone then
-// log.Error("Cannot write study to arc, as it has no filename")
-// else
-
-// let studyFilePath = Path.Combine ([|arc;rootFolderName;study.FileName.Value|])
-
-// if System.IO.File.Exists(studyFilePath) then
-// log.Error("Study file does already exist.")
-
-// else
-// StudyFile.Study.toFile studyFilePath study
-
-// /// Writes a study to the arc. Overwrites it, if the file already exists
-// let overWrite (arc : string) (study : Study) =
-// let log = Logging.createLogger "StudyWriteLog"
-
-// log.Info("Start Study Write")
-
-// if study.FileName.IsNone then
-// log.Error("Cannot write study to arc, as it has no filename")
-// else
-// let studyFilePath = Path.Combine ([|arc;rootFolderName;study.FileName.Value|])
-// if System.IO.File.Exists(studyFilePath) then
-// try
-// let cache = File.ReadAllBytes(studyFilePath)
-// File.Delete(studyFilePath)
-// try
-// StudyFile.Study.toFile studyFilePath study
-// with
-// | err ->
-// File.WriteAllBytes(studyFilePath,cache)
-// log.Error($"Study file could not be overwritten: {err.Message}")
-// with
-// | err ->
-// log.Error($"Study file could not be overwritten: {err.Message}")
-// else
-// StudyFile.Study.toFile studyFilePath study
-
-// let init (arc : string) (study : Study) =
-
-// if study.Identifier.IsNone || study.FileName.IsNone then
-// failwith "Given study does not contain identifier or filename"
-
-// let studyIdentifier = study.Identifier.Value
-
-// if StudyFolder.exists arc studyIdentifier then
-// printfn $"Study folder with identifier {studyIdentifier} already exists."
-// else
-// subFolderPaths
-// |> List.iter (fun n ->
-// let dp = Path.Combine([|arc;rootFolderName;studyIdentifier;n|])
-// let dir = Directory.CreateDirectory(dp)
-// File.Create(Path.Combine(dir.FullName, ".gitkeep")).Close()
-// )
-
-// let studyFilePath = Path.Combine([|arc;rootFolderName;study.FileName.Value|])
-
-// StudyFile.Study.toFile studyFilePath study
-
-
-// let initFromName (arc : string) (studyName : string) =
-
-// let studyFileName = Path.Combine(studyName,studyFileName).Replace(@"\","/")
-
-// let study = Study.create(FileName = studyFileName, Identifier = studyName)
-
-// init arc study
-
-// /// Takes the path to an ARC and lists all study identifiers registered in this ARC's investigation file.
-// let list (arcDir : string) =
-
-// let log = Logging.createLogger "StudyListLog"
-
-// log.Info("Start Study List")
-
-// (* the following part is _not nice_: The functionality for this already exists in Investigation.fs. Unfortunately, Investigation.fs is compiled *AFTER*
-// Study.fs and, thus, we cannot use functions from there. Moving Study.fs after Investigation.fs in compilation order also does not work due to
-// Investigation.fs using functions from Study.fs.
-// If someone finds a solution for this F#-specific compilation problem, feel free to fix :) *)
-// let investigationFilePath = Path.Combine(arcDir, "isa.investigation.xlsx")
-// log.Trace($"InvestigationFile: {investigationFilePath}")
-// let investigation = Investigation.fromFile investigationFilePath
-// // end of part
-
-// let studyFileIdentifiers = set (StudyFolder.findStudyIdentifiers arcDir)
-
-// let studyIdentifiers =
-// investigation.Studies
-// |> Option.defaultValue []
-// |> List.choose (fun s ->
-// match s.Identifier with
-// | None | Some "" ->
-// log.Warn("Study does not have identifier")
-// None
-// | Some i -> Some i
-// )
-// |> set
-
-// let onlyRegistered = Set.difference studyIdentifiers studyFileIdentifiers
-// let onlyInitialized = Set.difference studyFileIdentifiers studyIdentifiers
-// let combined = Set.union studyIdentifiers studyFileIdentifiers
-
-// if not onlyRegistered.IsEmpty then
-// log.Warn("The ARC contains following registered studies that have no associated file:")
-// onlyRegistered
-// |> Seq.iter ((sprintf "%s") >> log.Warn)
-// log.Info($"You can init the study file using \"arc s init\"")
-
-// if not onlyInitialized.IsEmpty then
-// log.Warn("The ARC contains study files with the following identifiers not registered in the investigation:")
-// onlyInitialized
-// |> Seq.iter ((sprintf "%s") >> log.Warn)
-// log.Info($"You can register the study using \"arc s register\"")
-
-// if combined.IsEmpty then
-// log.Error("The ARC does not contain any studies.")
-
-// combined
-// |> Seq.map (fun identifier ->
-// //log.Debug(sprintf "Study: %s" identifier)
-// sprintf "Study: %s" identifier
-// )
\ No newline at end of file
diff --git a/src/ARCtrl.NET/Workflow.fs b/src/ARCtrl.NET/Workflow.fs
deleted file mode 100644
index 540e9d9..0000000
--- a/src/ARCtrl.NET/Workflow.fs
+++ /dev/null
@@ -1,6 +0,0 @@
-namespace ARCtrl.NET
-
-module Workflow =
-
- let rootFolderName = "workflows"
-
diff --git a/src/ARCtrl.QueryModel/ARCtrl.QueryModel.fsproj b/src/ARCtrl.QueryModel/ARCtrl.QueryModel.fsproj
index d9f0ffc..4ba7c82 100644
--- a/src/ARCtrl.QueryModel/ARCtrl.QueryModel.fsproj
+++ b/src/ARCtrl.QueryModel/ARCtrl.QueryModel.fsproj
@@ -27,7 +27,7 @@
-
+
diff --git a/src/ARCtrl.QueryModel/ArcTables.fs b/src/ARCtrl.QueryModel/ArcTables.fs
index b9c0570..3cb6993 100644
--- a/src/ARCtrl.QueryModel/ArcTables.fs
+++ b/src/ARCtrl.QueryModel/ArcTables.fs
@@ -709,16 +709,16 @@ module ArcTables =
ArcTables.getFinalOutputsBy (fun (io : IOType) -> io.isData) this
/// One Node of an ISA Process Sequence (Source, Sample, Data)
- type QNode(Name : string, IOType : IOType, ?ParentProcessSequence : ArcTables) =
+ type QNode(name : string, ioType : IOType, ?parentProcessSequence : ArcTables) =
/// Returns the process sequence in which the node appears
- member this.ParentProcessSequence = ParentProcessSequence |> Option.defaultValue (ArcTables(ResizeArray []))
+ member this.ParentProcessSequence = parentProcessSequence |> Option.defaultValue (ArcTables(ResizeArray []))
/// Identifying name of the node
- member this.Name = Name
+ member this.Name = name
/// Type of node (source, sample, data, raw data ...)
- member this.IOType : IOType = IOType
+ member this.IOType : IOType = ioType
interface System.IEquatable with
member this.Equals other = other.Name.Equals this.Name
diff --git a/tests/ARCtrl.NET.Tests/ARCtrl.NET.Tests.fsproj b/tests/ARCtrl.NET.Tests/ARCtrl.NET.Tests.fsproj
deleted file mode 100644
index e07d1b4..0000000
--- a/tests/ARCtrl.NET.Tests/ARCtrl.NET.Tests.fsproj
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
- Exe
- net8.0
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/ARCtrl.NET.Tests/Arc.fs b/tests/ARCtrl.NET.Tests/Arc.fs
deleted file mode 100644
index e3b980b..0000000
--- a/tests/ARCtrl.NET.Tests/Arc.fs
+++ /dev/null
@@ -1,155 +0,0 @@
-module Arc.Tests
-
-open Expecto
-open ARCtrl.NET
-open System.IO
-open ARCtrl
-
-let testInputFolder = System.IO.Path.Combine(__SOURCE_DIRECTORY__,@"TestObjects")
-let testOutputFolder = System.IO.Path.Combine(__SOURCE_DIRECTORY__,@"TestResults")
-
-let testLoad =
-
- testList "Load" [
- testCase "simpleARC" (fun () ->
- let p = System.IO.Path.Combine(testInputFolder,"ARC_SimpleARC")
- let result = ARC.load(p)
-
- Expect.isSome result.ISA "Should contain an ISA part"
- Expect.isNone result.CWL "Should not contain a CWL part"
-
- let isa = result.ISA.Value
- Expect.equal isa.StudyCount 1 "Should contain 1 study"
- Expect.equal isa.AssayCount 1 "Should contain 1 assay"
- Expect.equal isa.RegisteredStudies.Count 1 "Should contain 1 registered study"
-
- let s = isa.Studies.[0]
- Expect.equal s.RegisteredAssayCount 1 "Should contain 1 registered assay"
- Expect.equal s.TableCount 3 "Study should contain 3 tables"
-
- let a = s.RegisteredAssays.[0]
- Expect.equal a.TableCount 4 "Assay should contain 4 tables"
-
- )
- ]
-
-
-let testWrite =
-
- testList "Write" [
- testCase "empty" (fun () ->
- let p = System.IO.Path.Combine(testOutputFolder,"ARC_Write_Empty")
- let a = ARC()
- a.Write(p)
-
- let expectedPaths =
- [
- "/isa.investigation.xlsx";
- "/assays/.gitkeep";
- "/studies/.gitkeep";
- "/runs/.gitkeep";
- "/workflows/.gitkeep"
- ]
- |> List.sort
-
-
- let paths =
- Path.getAllFilePaths p
- |> Array.sort
-
- Expect.sequenceEqual paths expectedPaths "Files were not created correctly."
- )
- testCase "SimpleARC" (fun () ->
- let p = Path.Combine(testOutputFolder,"ARC_Write_SimpleARC")
- let arc = ARC()
-
- let i = ArcInvestigation("MyInvestigation")
- let studyName = "MyStudy"
- let s = ArcStudy(studyName)
- i.AddRegisteredStudy(s)
- let assayName = "MyAssay"
- let a = ArcAssay(assayName)
- s.AddRegisteredAssay(a)
- arc.ISA <- Some i
- arc.UpdateFileSystem()
- arc.Write(p)
-
- let expectedPaths =
- [
- "/isa.investigation.xlsx";
- "/studies/.gitkeep";
- $"/studies/{studyName}/isa.study.xlsx"
- $"/studies/{studyName}/README.md"
- $"/studies/{studyName}/protocols/.gitkeep";
- $"/studies/{studyName}/resources/.gitkeep";
- "/assays/.gitkeep";
- $"/assays/{assayName}/isa.assay.xlsx"
- $"/assays/{assayName}/README.md"
- $"/assays/{assayName}/protocols/.gitkeep"
- $"/assays/{assayName}/dataset/.gitkeep"
- "/runs/.gitkeep";
- "/workflows/.gitkeep"
- ]
- |> List.sort
-
-
- let paths =
- Path.getAllFilePaths p
- |> Array.sort
-
- Expect.sequenceEqual paths expectedPaths "Files were not created correctly."
- )
- testCase "LoadSimpleARCAndAddAssay" (fun () ->
- let p = System.IO.Path.Combine(testOutputFolder,"ARC_Write_SimpleARC")
- let arc = ARC.load(p)
-
- let i = arc.ISA.Value
-
- let existingStudyName = "MyStudy"
- let existingAssayName = "MyAssay"
-
- let assayName = "YourAssay"
- i.InitAssay(assayName) |> ignore
- arc.ISA <- Some i
-
- arc.UpdateFileSystem()
- arc.Write(p)
-
- let expectedPaths =
- [
- "/isa.investigation.xlsx";
- "/studies/.gitkeep";
- $"/studies/{existingStudyName}/isa.study.xlsx"
- $"/studies/{existingStudyName}/README.md"
- $"/studies/{existingStudyName}/protocols/.gitkeep";
- $"/studies/{existingStudyName}/resources/.gitkeep";
- "/assays/.gitkeep";
- $"/assays/{existingAssayName}/isa.assay.xlsx"
- $"/assays/{existingAssayName}/README.md"
- $"/assays/{existingAssayName}/protocols/.gitkeep"
- $"/assays/{existingAssayName}/dataset/.gitkeep"
- $"/assays/{assayName}/isa.assay.xlsx"
- $"/assays/{assayName}/README.md"
- $"/assays/{assayName}/protocols/.gitkeep"
- $"/assays/{assayName}/dataset/.gitkeep"
- "/runs/.gitkeep";
- "/workflows/.gitkeep"
- ]
- |> List.sort
-
-
- let paths =
- Path.getAllFilePaths p
- |> Array.sort
-
- Expect.sequenceEqual paths expectedPaths "Files were not created correctly."
- )
- |> testSequenced
- ]
-
-[]
-let main =
- testList "ARC_Tests" [
- testLoad
- testWrite
- ]
\ No newline at end of file
diff --git a/tests/ARCtrl.NET.Tests/AssayTests.fs b/tests/ARCtrl.NET.Tests/AssayTests.fs
deleted file mode 100644
index 769612e..0000000
--- a/tests/ARCtrl.NET.Tests/AssayTests.fs
+++ /dev/null
@@ -1,14 +0,0 @@
-module AssayTests
-
-open Expecto
-open System.Text.Json
-
-//[]
-let testComponentCasting =
-
- testList "Test" [
- testCase "WillFail" (fun () ->
- Expect.isTrue true "Test if the test will test."
-
- )
- ]
\ No newline at end of file
diff --git a/tests/ARCtrl.NET.Tests/Contract.fs b/tests/ARCtrl.NET.Tests/Contract.fs
deleted file mode 100644
index b1b6c9a..0000000
--- a/tests/ARCtrl.NET.Tests/Contract.fs
+++ /dev/null
@@ -1,107 +0,0 @@
-module Contract.Tests
-
-open ARCtrl.NET.Contract
-open ARCtrl.Contract
-open Expecto
-open System.IO
-open FsSpreadsheet
-open FsSpreadsheet.Net
-
-let testInputFolder = System.IO.Path.Combine(__SOURCE_DIRECTORY__,@"TestObjects/Contracts")
-let testOutputFolder = System.IO.Path.Combine(__SOURCE_DIRECTORY__,@"TestResults/Contracts")
-
-let testRead =
-
- testList "Read" [
- testCase "TextFile" (fun () ->
- let fileName = "TestReadMe.txt"
- let contract = Contract.createRead(fileName,DTOType.PlainText)
- let dto = DTO.Text "This is a test"
- let expected =
- {contract with DTO = Some dto}
- let result = fulfillReadContract testInputFolder contract
- Expect.equal result expected $"Text was not read correctly"
- )
- testCase "XLSXFile" (fun () ->
- let fileName = "TestWorkbook.xlsx"
- let contract = Contract.createRead(fileName,DTOType.ISA_Study)
- let result = fulfillReadContract testInputFolder contract
- let dto = Expect.wantSome result.DTO "DTO was not read correctly"
- Expect.isTrue dto.isSpreadsheet "DTO was not read correctly"
- let wb = dto.AsSpreadsheet() :?> FsSpreadsheet.FsWorkbook
- let ws = Expect.wantSome (wb.TryGetWorksheetByName "TestSheet") "Workbook does not contain worksheet"
- let row1 = Expect.wantSome (ws.TryGetRowValuesAt 1) "Worksheet does not contain row 1"
- let row1AsInts = row1 |> Seq.map (string >> int)
- let expected = [1;2;3]
- Expect.sequenceEqual row1AsInts expected "Worksheet does not contain correct values"
- let row2 = Expect.wantSome (ws.TryGetRowValuesAt 2) "Worksheet does not contain row 2"
- let expected = ["A";"B";"C"] |> Seq.map box
- Expect.sequenceEqual row2 expected "Worksheet does not contain correct values"
- )
- ]
-
-
-let testWrite =
-
- testList "Write" [
- testCase "TextFileEmpty" (fun () ->
- let fileName = "TestEmpty.txt"
- let contract = Contract.createCreate(fileName,DTOType.PlainText)
-
- fulfillWriteContract testOutputFolder contract
-
- let filePath = Path.Combine(testOutputFolder,fileName)
- Expect.isTrue (System.IO.File.Exists filePath) $"File {filePath} was not created"
- Expect.equal (File.ReadAllText filePath) "" $"File {filePath} was not empty"
- )
- testCase "TextFile" (fun () ->
-
- let testText = "This is a test"
- let fileName = "TestReadMe.txt"
- let dto = DTO.Text testText
- let contract = Contract.createCreate(fileName,DTOType.PlainText,dto)
-
- fulfillWriteContract testOutputFolder contract
-
- let filePath = Path.Combine(testOutputFolder,fileName)
- Expect.isTrue (System.IO.File.Exists filePath) $"File {filePath} was not created"
- Expect.equal (File.ReadAllText filePath) testText $"File {filePath} was not empty"
- )
- testCase "XLSXFile" (fun () ->
-
- let worksheetName = "TestSheet"
- let testWB = new FsWorkbook()
- let testSheet = testWB.InitWorksheet (worksheetName)
- testSheet.Row(1).Item(1).Value <- "A1"
- testSheet.Row(1).Item(2).Value <- "B1"
- testSheet.Row(1).Item(3).Value <- "C1"
- let fileName = "TestWorkbook.xlsx"
- let dto = DTO.Spreadsheet testWB
- let contract = Contract.createCreate(fileName,DTOType.ISA_Assay,dto)
-
- fulfillWriteContract testOutputFolder contract
-
- let filePath = Path.Combine(testOutputFolder,fileName)
-
- let wb = FsWorkbook.fromXlsxFile filePath
- let ws = Expect.wantSome (wb.TryGetWorksheetByName worksheetName) "Workbook does not contain worksheet"
- let row1 = Expect.wantSome (ws.TryGetRowValuesAt 1) "Worksheet does not contain row 1"
- let expected = ["A1";"B1";"C1"] |> Seq.map box
- Expect.sequenceEqual row1 expected "Worksheet does not contain correct values"
- )
- ]
-
-let testExecute =
-
- testList "Write" [
- testCase "Implement" (fun () ->
- Expect.isTrue false "ImplementTest"
- )
- ]
-
-[]
-let main =
- testList "ContractTests" [
- testRead
- testWrite
- ]
diff --git a/tests/ARCtrl.NET.Tests/Main.fs b/tests/ARCtrl.NET.Tests/Main.fs
deleted file mode 100644
index 224049e..0000000
--- a/tests/ARCtrl.NET.Tests/Main.fs
+++ /dev/null
@@ -1,14 +0,0 @@
-module arcIO.NET.Tests
-
-open Expecto
-
-
-let all = testSequenced <| testList "All" [
- Path.Tests.main
- Arc.Tests.main
- ]
-
-[]
-let main argv =
-
- Tests.runTestsWithCLIArgs [] argv all
diff --git a/tests/ARCtrl.NET.Tests/Path.fs b/tests/ARCtrl.NET.Tests/Path.fs
deleted file mode 100644
index b480aa7..0000000
--- a/tests/ARCtrl.NET.Tests/Path.fs
+++ /dev/null
@@ -1,30 +0,0 @@
-module Path.Tests
-
-open Expecto
-open ARCtrl.NET
-open System.Text.Json
-
-
-let getAllFilePaths =
-
- testList "GetAllFilePaths" [
- testCase "simple" (fun () ->
- let p = System.IO.Path.Combine(__SOURCE_DIRECTORY__,@"TestObjects\Path_findSubPaths")
- let result = Path.getAllFilePaths p
- let expected =
- [
- "/File1.txt"
- "/File2.csv"
- "/SubFolder/File3.xlsx"
- "/SubFolder/SubSubFolder/File4"
- ]
- Expect.sequenceEqual result expected "File Paths were not found correctly."
-
- )
- ]
-
-[]
-let main =
- testList "PathTests" [
- getAllFilePaths
- ]
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/.arc/.gitkeep b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/.arc/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/.gitkeep b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/README.md b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/README.md
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/.gitkeep b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/proteomics_result.csv b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/proteomics_result.csv
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/sample1.raw b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/sample1.raw
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/sample2.raw b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/sample2.raw
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/sample3.raw b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/sample3.raw
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/sample4.raw b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/sample4.raw
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/sample5.raw b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/sample5.raw
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/sample6.raw b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/sample6.raw
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/sample7.raw b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/sample7.raw
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/table.csv b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/table.csv
deleted file mode 100644
index a3c13b4..0000000
--- a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/dataset/table.csv
+++ /dev/null
@@ -1,651 +0,0 @@
-Index,value_1,quant_1,value_2,quant_2,value_3,quant_3,value_4,quant_4,value_5,quant_5,value_6,quant_6
-0,20.60917636,2.366800063,31.76575111,2.51972112,31.239141,2.994118452,38.54463269,2.235910104,26.74437584,3.351820025,18.87709616,3.408542256
-1,20.2667511,3.45287336,10.44136185,3.04179784,24.76736657,2.912656477,36.16958385,3.430737189,24.20981945,3.122776939,-5.253242754,2.186538738
-2,17.36828141,3.73863731,25.9790139,3.498130345,28.59307579,3.049276271,39.80151617,2.05657019,13.29576986,3.752299254,31.94888467,3.28870028
-3,9.917464634,3.41392671,22.41344542,3.811982726,27.02827473,2.871323801,27.91095666,3.401721228,31.75968784,3.099053447,22.38381643,2.944344071
-4,41.79881325,3.479405118,27.03382081,3.496490729,16.14388422,2.811865235,45.12616701,3.004925209,43.44154067,3.512141495,13.92163384,3.265526505
-5,17.14758253,2.286495209,33.79567127,2.848821097,29.53447225,3.594532936,41.29957184,3.208352043,18.97964211,2.943254771,7.00021151,3.023056376
-6,39.36514967,2.623481095,43.34430733,3.253270352,37.65244428,3.340323609,15.02595487,3.174360915,59.08649438,3.116179827,32.12707181,3.128946216
-7,24.67531734,3.005013639,21.14050562,2.909298401,27.58292887,3.076099914,25.44390985,2.409556765,24.41151962,3.80626409,34.54725553,3.632621756
-8,24.36182152,3.188425192,24.96747128,3.491500103,36.83422896,3.653180394,28.5746082,3.036992103,22.66157764,2.908729803,36.05784788,1.696238827
-9,8.17927182,3.152130596,6.865294845,2.739631151,28.26505134,2.672745865,32.78770943,3.04109728,24.51318045,3.405063636,47.01077115,2.836521016
-10,23.89515294,3.061123404,18.68652245,2.455147043,46.97485465,3.68918597,26.88184583,3.358516996,24.70883965,3.448101321,25.28267201,2.277448641
-11,19.23462713,3.178167021,42.25565794,3.544084566,5.496309228,2.40837214,19.26703661,3.665371223,15.46755864,2.933841019,35.49115953,3.39372516
-12,29.2464254,3.009975576,32.23685962,2.482772452,21.89530136,3.218307613,4.223189095,2.770498673,20.16137388,2.692457687,42.99818546,3.643681991
-13,21.92369808,3.447973514,11.59162699,3.480650329,33.96074837,2.95468097,19.57986705,3.766877677,41.12660294,3.427034792,21.62259742,3.443194242
-14,15.96474227,3.061203691,23.06283077,3.42444171,25.98426886,3.576125139,21.49532558,2.224421571,16.28495731,2.972966931,13.2045675,2.700833556
-15,25.24765674,3.554892466,32.56730516,3.622277772,36.53095697,3.228979032,28.31952741,3.184153175,39.41000706,2.983383051,23.43532653,1.420588925
-16,24.81316281,3.490788584,16.67112529,3.191237197,24.12307012,3.96816438,45.98150201,3.235178562,22.57703174,2.711702377,27.44075624,3.513032992
-17,44.08286738,3.296324853,18.88658857,3.322930292,31.38405354,3.816661909,32.82428929,3.430822911,26.80402725,3.415673275,25.13325396,3.413904541
-18,23.85666276,3.128851776,32.22763419,2.796953488,45.17888136,2.756213389,23.53408123,3.294350412,30.5549607,3.450311441,36.13674601,3.013595846
-19,34.51145393,3.206745385,41.50326891,2.810570405,24.80342829,3.360357476,12.10297986,3.552163786,28.30342187,3.521498551,14.3955304,1.440841411
-20,22.10854005,3.33854044,17.60659316,3.424198717,34.15457895,2.157162526,34.50498387,3.123786212,23.43427294,3.082016061,13.6249119,2.782179131
-21,34.44765198,3.596613648,38.87198488,3.438231695,36.46154941,3.249408847,22.95215379,2.510152553,21.83809641,3.394245845,40.94563426,3.025732545
-22,36.63022387,3.342592993,30.39640632,3.783198972,19.3636592,3.096327448,11.91082904,3.496797366,21.38293085,3.171900024,39.08628238,3.795622852
-23,27.07855567,3.812380691,29.81001463,3.442106021,24.2599697,3.400543914,32.57173186,3.376729351,34.720929,2.450155236,32.95509159,2.951217781
-24,22.22450547,2.517942833,26.18650541,2.703049593,17.47141535,2.888110621,16.94781063,3.220523464,28.08883401,3.589119865,20.19751678,3.468856947
-25,33.72343818,3.40174576,36.4584919,3.002611613,17.03641428,3.917758498,18.21973668,3.800800816,35.31534639,2.747726586,33.30657157,3.206567311
-26,5.968099441,3.564184284,12.08788366,3.098450762,7.836571927,3.036421686,34.10008403,2.597896214,43.63721942,3.046321677,35.00081181,3.078246621
-27,25.10825562,3.464433432,10.11000141,3.488205519,21.47266954,2.904994286,12.40850104,3.788932017,21.18601112,3.89148464,6.737994176,3.140522503
-28,18.09333759,3.091071068,8.746817871,3.920155065,23.83582285,2.822370744,18.86604924,2.98091841,23.35955583,2.706377418,24.52094976,3.22691115
-29,32.46633105,2.96197856,39.91942193,3.540263057,30.88271643,3.167635665,25.90363595,3.293508694,28.87080505,2.599489549,24.63950169,2.641400212
-30,16.42492898,2.478240228,27.54774241,3.288378368,30.0514856,3.39623439,24.46778634,3.322674114,16.11623232,3.16791363,23.45238495,3.07292471
-31,28.65125637,2.730139646,15.42732978,3.132744456,19.20841752,3.31213107,27.70768989,2.702571278,30.94306601,3.711177291,33.11773628,2.907266827
-32,24.37799414,3.20804831,29.56041526,-0.139610586,35.55479845,2.561175589,34.8445276,3.128937581,35.35928363,3.273098852,17.78099675,1.905911827
-33,10.62230927,3.57999766,32.77317909,3.021654271,16.3030726,2.45668172,48.46767452,3.073207712,21.01321527,3.446959753,32.77150279,3.682618207
-34,12.91389117,3.140340926,15.80994609,2.611820081,42.25851995,2.329097582,31.67511374,2.346430502,20.76910847,2.948779825,33.22470367,2.164800454
-35,27.86699924,3.266887331,26.19448085,3.507437752,32.9002868,3.435957211,27.49728144,3.590400923,16.09384527,3.651085597,29.38498699,3.135808778
-36,16.88605519,3.033284474,41.64243863,3.137665504,31.76601668,2.716378366,29.70541284,3.217272992,45.74884088,3.543674858,36.65948256,3.612869186
-37,15.0610888,3.185101951,37.17574998,3.469305554,33.52091805,3.811023275,29.66945732,3.135192666,42.38030763,2.874206516,15.66452908,0.907097635
-38,39.97363659,3.161315695,16.91937791,2.919056752,9.462822931,3.050492712,15.88427824,3.518612497,34.20252776,3.493428981,14.16181464,3.226026909
-39,41.02812418,2.7732624,15.49724184,3.339399641,25.10294484,3.172906446,22.19257601,3.211969462,6.408272032,3.377294413,20.46460527,3.452143893
-40,30.32795224,3.164217484,28.62777628,3.265322128,9.782081539,3.137228273,38.40777842,2.566254383,-2.222074486,2.923678288,26.84180022,3.523434988
-41,14.36828159,3.185506125,32.07611361,3.093838885,40.63067086,3.501549851,9.876755777,2.945255426,36.11385625,3.477409392,35.80878946,2.687730366
-42,13.58762729,2.157281252,25.68178319,3.231361083,13.21044936,3.42830451,46.72279919,3.295394239,27.192841,2.58739696,14.91534661,3.398582762
-43,23.60292601,3.334716637,20.82039889,2.953515827,22.9105469,1.818206004,11.6841137,3.940747875,34.83013908,3.682339562,8.413412527,2.471014773
-44,11.60949513,3.370558791,7.901267537,2.867029199,13.21794599,3.02310825,26.55403753,3.766376009,30.28063738,3.639710454,18.77319768,2.132998026
-45,30.85285523,3.885913232,17.8196691,3.30602411,36.31386084,2.614818494,25.61119166,2.830339215,21.63804018,3.371687267,37.37272672,2.922609494
-46,22.18392142,2.907889902,42.7494121,3.241511504,11.36263677,3.14685158,10.51442268,1.956598932,26.33190565,3.578230526,-2.141454626,3.236098167
-47,31.39044542,3.292671329,29.36012387,3.013594008,19.52291834,3.721420879,10.94551141,2.564235116,27.8600769,2.812409683,18.82904191,3.220421478
-48,34.18387858,2.971870442,11.33280692,3.047066451,20.22455315,2.470675753,3.86911054,3.413816634,23.17444279,4.002321378,21.67512609,3.270079298
-49,17.51376691,3.525339312,29.10956717,3.209998305,18.14863463,3.203169991,19.47956295,3.499029799,2.485149349,3.257298875,44.70375408,3.136744084
-50,42.42865019,1.540684066,33.8419035,3.858634073,20.85350494,3.642711487,38.91303268,2.905148645,22.86078214,3.568857086,28.96181033,3.23001123
-51,19.36794077,3.510032185,10.56607062,3.553945851,-3.400625654,2.794294148,14.20105364,3.129057971,30.52039566,3.593830626,25.33870781,
-52,27.85046482,3.093063513,22.4250409,3.701695639,20.51736138,3.339693961,24.36326823,3.280961733,17.01715142,3.365392568,25.34764749,3.070516736
-53,30.51969923,3.575569491,10.05280118,3.508819867,27.33943807,3.268660906,27.0037118,2.920648215,29.34444463,2.800734318,27.79686163,3.04729657
-54,34.01123534,3.39749369,21.4975815,1.837559879,20.9064718,1.884919731,42.1166379,2.883840013,31.90331739,3.335654809,15.94613387,2.898350014
-55,24.75862805,3.770533208,19.08595675,3.362855987,16.04172404,3.681986875,22.31341188,2.291727097,22.71995232,3.166936989,25.42921429,3.47937379
-56,29.86505997,3.501184957,27.4337937,3.706565484,28.83529093,2.796550164,26.09004881,3.861491003,22.08929576,2.752441598,17.51996755,3.554385189
-57,21.08232857,3.445537308,17.63939421,3.271286888,12.99554996,3.269942836,29.69342553,3.422760002,24.43867487,2.40741653,23.81017339,3.027190552
-58,17.1029576,3.213781085,32.60447497,2.716184911,22.59376774,2.870465518,36.17899884,2.909668345,20.01299958,2.927544236,25.10559119,3.826869463
-59,22.32883761,3.584126606,26.05486915,2.333320991,17.78441137,2.623281348,32.54735663,3.705331891,10.09909231,2.752045112,22.30082692,4.021415767
-60,32.76898208,3.352249563,41.10462878,3.717344173,26.38394648,3.317274171,15.67387751,3.194911881,17.86938352,2.905417086,50.12142555,3.247573133
-61,18.69777835,3.574280553,37.88201959,3.541130165,19.83565935,3.414324578,11.04490751,3.39202963,25.36342315,3.253182652,31.13244214,2.693308235
-62,31.65590501,3.803208003,17.91775204,2.612998241,22.55830883,2.896363422,26.52554715,2.891798487,29.12644247,3.340520554,32.7946059,2.918472108
-63,55.58123391,2.965266062,19.35970269,3.513107761,21.77432336,3.391086834,17.8002179,3.419493978,14.63714829,3.640885564,25.1614804,3.652331427
-64,25.01026891,3.701483808,23.87938665,2.939226952,19.0968907,3.565067647,22.89629056,3.39513402,29.88378715,2.355854918,15.00457138,3.429584102
-65,5.541910485,3.034133974,6.067723937,2.417872207,30.14403817,2.697180798,34.56588943,2.944901485,19.4229206,3.347017044,29.69311883,3.236455561
-66,8.878693753,1.830625309,30.7969996,1.778576904,33.22868979,2.770629669,13.95994477,2.5889993,21.51138252,3.638111362,21.69364556,3.08938999
-67,8.158890153,2.153402867,21.64560939,3.254702695,7.14881748,2.790254661,26.71711154,3.679392896,26.08281361,3.057542532,35.94978606,1.9467741
-68,20.84193703,2.042390774,23.12299877,2.924316467,20.89042974,3.449086877,16.60938663,3.129120972,27.90615562,3.090946753,12.19128311,3.264470879
-69,16.62975972,3.767697064,18.42726701,3.625192968,28.75164921,3.248840087,5.809141676,3.207880413,16.21913062,3.70183613,42.97111803,3.347393035
-70,13.21465726,3.676384008,24.41065395,3.60183844,12.90733091,2.316367248,23.22902159,3.797453311,10.01356323,3.293962574,17.14881318,3.459056851
-71,48.93734814,3.831540259,28.54415522,3.371278403,20.14529152,2.946665933,29.34453418,2.885115502,18.65676189,3.917805496,28.23536782,3.192338736
-72,21.5024017,3.006506534,20.21176795,3.387970073,18.65687998,3.401270517,21.30060422,3.525986777,18.42981393,3.363400669,5.269352283,3.340326043
-73,25.47655492,2.170559177,27.42840046,3.13794708,19.698687,3.545437051,20.08386568,2.894437853,28.70924651,3.549228237,28.312648,3.382378154
-74,23.50187384,2.143679994,11.86503655,3.377638807,15.17880729,3.1225233,25.60926437,1.22596116,34.95649141,-0.116205259,42.60320676,3.204020654
-75,34.35647513,3.947585961,4.809771484,2.320587819,7.316102932,2.987661833,24.01539056,2.728887261,23.08151627,3.511693075,17.19109236,3.623727734
-76,34.35199655,3.056287878,18.67208887,3.536497778,17.87047182,3.669793918,22.95778864,2.744522014,34.75115211,2.468096137,12.73883719,3.504360394
-77,1.277389077,3.337901228,5.854837443,2.810635167,26.62508279,3.157204571,23.1991535,2.664286525,19.94160236,3.235739589,15.05863456,1.704330146
-78,19.64269442,2.417420044,34.41701929,2.263432484,20.33169191,2.91432843,-0.504042904,3.698565542,17.06264298,3.285165651,31.64781799,3.29224399
-79,24.04819577,3.71968903,14.43911577,3.480233975,9.082470836,3.361430519,19.72054596,3.028300961,40.637734,3.716599185,13.94643836,3.088554276
-80,30.87618417,3.513415768,48.90242783,2.946697503,10.81318001,2.575466693,18.8643803,3.565768575,19.01313852,3.300520505,18.00031699,2.908207717
-81,31.74307692,2.85966603,17.849893,1.820422674,29.11110336,3.53379798,18.88630705,3.204467305,34.6249848,3.006722523,9.855693887,0.307434882
-82,21.47268496,3.327725354,21.38926124,3.192453546,20.85628761,3.390815969,27.01702401,3.505878295,36.74052889,2.929690747,26.19348735,2.965470512
-83,29.58396029,3.253829595,33.9998407,2.403011333,2.461359989,3.078383167,13.04232143,3.80142497,43.31192922,3.600856611,22.98020073,1.762847788
-84,49.53219987,3.589484496,31.55240084,3.326486889,14.74300569,3.383008258,11.28273189,3.445568537,14.39345614,3.658884901,38.17347017,2.613454207
-85,6.345090711,3.305939744,23.21774335,3.118580546,22.16150615,2.880603437,30.62740871,3.249576445,38.38915209,2.932028899,30.14143115,4.050907151
-86,25.39438148,3.680233409,29.573543,2.664007736,32.46201458,2.758818888,0.644816513,3.288220611,17.85197257,3.386105851,38.25558579,3.103160353
-87,21.65390026,2.727848312,35.15953701,1.486911657,46.84487637,3.814977623,24.5958357,2.988231718,7.880048155,3.150297663,27.87425785,3.031657446
-88,19.40787789,3.505987959,31.22690977,3.033019865,32.16181539,2.591114063,25.40815407,3.258928576,38.46772637,0.160645238,24.35784036,3.402630918
-89,10.96123932,3.567149729,34.87452194,3.678833523,32.1877465,2.948726641,17.77535497,3.69932098,15.57803022,3.164251985,10.67294142,3.214284079
-90,37.98258121,3.442685822,15.68722468,3.221651571,4.402378487,2.262586417,25.42332068,2.899679357,16.51350434,3.238277462,25.88209593,3.159873275
-91,23.63358866,3.315103044,4.170493808,3.366863786,29.1958225,3.32587226,29.45288032,3.294642693,33.35036346,3.268589525,23.06350264,3.052510522
-92,32.43437604,3.069192389,29.85867935,3.587778679,18.51421424,2.263797321,13.24275424,2.642966176,34.73120595,3.156435827,14.77024206,3.438244198
-93,13.57200481,3.184953602,29.36165657,2.421686504,20.7801454,3.679586378,27.02150807,3.192606517,31.81515369,2.603905124,18.10955642,3.546010526
-94,12.20807648,2.895005057,22.7468016,3.440772329,22.00941392,3.00290596,18.4736933,3.286690842,26.1998786,3.010173175,8.50123469,3.4098389
-95,21.7221715,4.018341577,43.16366439,3.475610642,24.89785282,3.420440794,15.85504971,3.417513842,25.2518724,2.519896743,29.32216486,2.879881301
-96,39.2536373,3.484099735,18.28541377,2.728736436,24.28838073,3.543253533,11.13692596,3.29856621,17.8840347,3.74325959,25.13675483,3.472216892
-97,33.61909403,2.972481293,-0.079765796,3.49836324,39.75597953,2.593172554,29.21823086,3.114021582,22.80051627,2.697837411,30.20057566,3.14383623
-98,36.60141335,3.570571932,33.3777238,3.393186654,31.00863541,3.143445812,24.4708575,3.413595907,23.24674891,2.295827469,33.48985978,3.762395731
-99,27.1131471,3.11448183,0.900252012,3.542852483,22.89471154,3.066611276,35.88995756,2.788942952,23.64688433,2.899318933,34.08908804,2.908666513
-100,13.21208126,3.56848401,22.3554019,3.053973786,30.16866757,3.266910328,21.61997084,2.868045396,41.90856517,3.506809873,27.26543472,3.221754334
-101,25.6218394,2.708188439,10.69132021,3.041757846,27.61685823,3.423819219,23.64393162,2.703601764,51.94916746,3.358445147,10.73129652,3.053520072
-102,4.917668519,2.885129643,20.83649093,2.675513331,36.26304155,3.19762989,11.60318979,3.42520383,19.6624868,3.733162463,27.09874025,2.633095903
-103,27.36896005,3.247580455,35.25392512,3.286095256,11.03079801,3.552332973,26.01288162,3.379992738,15.3744042,2.993287208,15.43251024,3.353558005
-104,14.04303551,2.500084656,38.03556582,2.832677887,22.66496238,3.318094601,41.53709198,3.494390704,11.94068328,3.545669865,24.81391197,3.592785209
-105,34.94213243,3.073151793,48.04995425,3.05304031,-3.180032651,3.421779897,39.7618239,3.049364514,36.70016308,3.221203414,31.66867063,
-106,41.50117924,3.259588305,21.60689642,3.093773882,25.96173165,2.525153838,34.71806032,1.545739111,21.41118496,2.657883129,20.37738089,3.275175868
-107,13.82178792,3.492215617,34.71559883,3.685152316,15.83294595,3.031747306,17.43431298,3.58070361,20.73080233,2.705600218,28.70584745,2.724675513
-108,48.57687237,3.462175283,23.51127356,3.633797827,29.08520266,3.104155636,16.61647226,2.961725879,8.899226136,3.408460657,32.14293096,3.555714908
-109,30.16027183,2.505651863,17.54848412,2.220443576,4.811633068,3.405055324,35.31050973,3.172669383,3.270110679,3.45161973,28.6387453,2.512141629
-110,26.60058223,2.847711046,23.48076989,2.811155201,18.70113488,2.870224378,7.261866901,3.066338987,7.320230589,3.157600657,27.3124109,3.402795217
-111,16.82448426,3.385828067,29.35465831,3.355136087,18.2323699,3.347909224,27.63210873,3.677352607,27.95836275,3.38244515,28.965912,3.062712515
-112,35.76826303,3.434530919,38.96432097,3.569394835,31.23696546,3.267537631,26.37895637,3.070465938,16.08363521,3.167987881,36.11250526,3.168632271
-113,20.54182743,3.304133297,33.15516786,3.035491143,15.85469671,1.093386382,22.36554426,3.311692268,46.40792951,3.412960737,24.43576993,3.45944396
-114,17.74887859,3.450323927,32.38111421,3.40129489,21.91951667,2.816410925,22.75584751,3.155432431,8.934002857,3.226600474,22.43144244,3.51044261
-115,18.14819838,3.435735704,-1.107614914,2.175382402,18.32940441,3.172299107,35.92073809,3.490674579,43.2035167,3.598221748,25.31755265,3.630315895
-116,45.57612771,-0.141069363,35.31105066,2.836373286,27.39412699,3.167715581,28.66030167,3.909912862,37.60624857,3.179071228,28.73968177,2.376640259
-117,24.87735765,,15.14347544,1.950296836,20.13925588,2.519173541,22.2710023,3.264474646,24.15005472,3.07180586,41.40236131,3.587854747
-118,31.16878771,3.121855841,17.85326194,3.023420602,24.77748309,0.169424759,11.64528819,3.751109036,33.54494755,3.171412463,26.6287325,3.432306372
-119,22.09074746,3.755723105,27.02569104,3.204178962,31.03765562,2.585908408,25.51322254,3.342522362,43.82428348,3.23194553,41.00267685,2.918596426
-120,11.36968376,2.598811417,27.0985425,3.492613904,8.432109862,3.221973148,21.29323848,3.650675154,17.33855313,3.450373367,42.11242562,3.450431076
-121,24.75341347,2.794165109,4.381416229,3.815939312,37.58797251,3.63557802,22.89369173,3.436145345,14.82198564,3.698147428,32.08095552,3.673414757
-122,19.78142015,3.242984755,0.540861624,2.800577602,18.67071466,3.264781255,44.29639094,2.865647669,34.6439801,2.703090807,-5.013606373,2.992684313
-123,22.29470407,3.291657709,26.8910728,3.181682885,20.72131035,2.435754342,7.532795454,2.574783125,20.20598392,2.76000685,20.33096284,3.291347725
-124,19.69167488,2.937485458,33.61670737,3.455365135,23.06696242,2.651116564,6.76423913,3.59081116,27.78687836,3.609118268,4.803566774,3.09424999
-125,13.19688529,2.352768882,31.90219923,1.617523602,26.48074938,3.56336749,27.40431698,2.950296498,26.86972406,3.373409904,19.45791096,3.374469275
-126,24.69128206,2.561419854,41.11704268,3.699385438,19.0359262,2.874164234,23.16015361,3.354455038,16.04743326,1.744662277,44.38534585,3.419291154
-127,31.68611461,,27.86303118,3.611706749,34.26716994,3.37086045,27.05927928,2.732727745,32.12645869,3.530044096,35.39819355,3.71269598
-128,32.3833726,2.903983382,17.66483999,3.692647175,35.5350708,2.8363572,29.55925408,2.850400558,39.31175723,3.155968458,28.37685011,2.825764669
-129,1.979640257,3.076833082,24.10310884,3.091264162,37.72078056,3.502627614,21.78992434,2.381860777,34.3992151,3.064917573,42.9898471,3.789473119
-130,37.46823293,3.65829805,42.65606923,3.564002903,62.88416834,3.3231614,35.77011192,3.116254041,27.91095465,2.492477661,29.22321763,
-131,24.78790273,3.8431349,30.97881938,3.369712291,31.53360084,3.25578569,24.93003825,2.549182644,47.03077058,2.748823836,28.47601024,3.439855062
-132,22.91670281,3.473966044,46.26411537,2.870768811,8.621419461,3.214822782,49.51521718,3.297202359,18.30613838,,30.973301,2.779903577
-133,27.0851482,2.906389077,33.75177511,3.385292952,13.6951479,3.378991491,22.95595697,3.625566422,7.383625279,3.477281775,29.15976549,2.96290361
-134,31.4074827,3.114078474,21.05574634,2.244574465,21.64836299,3.76266112,27.47933614,2.548865951,15.75308465,,16.80797225,3.179889221
-135,15.72400474,3.14996192,35.30213061,3.138003826,36.43789198,3.671874918,18.01740052,3.337930513,13.38457998,3.361252371,22.48896224,3.532298388
-136,12.36671051,2.233530239,18.94881387,2.724848662,18.74918841,2.828118283,17.02091138,2.001635397,22.26687223,3.739934635,27.6546925,3.567692031
-137,25.79358378,2.647639362,25.52865379,3.643589464,25.24022144,3.238447386,32.96710559,3.590160418,26.99957784,3.607873299,32.71239651,2.650185322
-138,27.08428812,3.084349417,6.845461401,3.096486234,16.79231783,3.228472071,16.16743584,2.652129534,21.10000767,3.430343878,59.84982042,3.699586773
-139,24.45881177,2.979769567,12.06705406,3.504094892,18.93148987,3.15918119,23.9345161,3.643513052,15.43768567,3.172337609,15.10662878,2.950986894
-140,15.03507494,2.940447019,17.32620315,2.883983777,38.3442887,3.402276131,15.68806625,2.881445898,12.15429231,3.582825286,4.478656775,3.34477925
-141,22.32299335,3.322653244,22.53257972,3.678470234,21.05272196,3.379236572,45.1343692,2.835447236,33.3481551,3.08363217,30.53835499,3.770424456
-142,46.74156486,3.294704092,12.68024627,3.079556533,14.85857651,2.349346648,30.25180192,3.637358321,47.06146033,3.487364033,34.82418799,3.343662557
-143,0.049896863,2.918365687,23.23614952,3.310791877,10.28697679,3.082429107,33.74776868,3.411129916,32.60488341,3.151810909,25.08287336,3.652656332
-144,21.501268,2.349316674,36.35257824,3.749022686,17.57677646,2.682274141,13.95551379,3.504807844,24.82827931,3.287764837,10.19299058,2.850839466
-145,-6.574914752,3.439919468,24.60753805,2.730964246,15.18055961,3.178620863,29.0904636,3.652697724,24.91324887,3.421869149,42.15238988,3.220370509
-146,28.63120583,2.267631092,20.36936429,2.839359743,32.06373484,3.114302278,33.15022351,1.922092509,25.95141932,3.244368764,27.0125713,3.549104219
-147,40.36899337,2.67268464,6.831623354,2.931468405,32.1244601,2.791091365,37.88378525,3.08221806,22.77355598,2.940786801,10.82404166,3.299580137
-148,28.7968647,2.861630809,29.31440875,3.569395417,23.51006069,1.043819954,4.075100784,3.42474823,21.42684123,2.833069405,29.82334136,3.229070894
-149,28.4809215,2.906885445,20.47903989,3.162630964,31.92018468,3.226973487,27.42238456,3.216886778,7.346777662,3.289115434,38.13978643,3.741632946
-150,15.68267136,3.773587728,10.16502096,3.874664326,16.08656166,3.667887562,32.72588348,3.485941802,23.92847864,2.436640553,13.47738343,3.557719789
-151,17.38880891,2.662636447,12.32550131,2.087059484,21.58778077,3.859338403,6.752131387,1.85661326,16.10896497,2.98570223,31.19202537,2.992699143
-152,34.76321044,3.279123149,18.37384534,3.043721697,20.95933382,3.408380823,29.31749829,3.613607337,30.4164032,2.409088267,54.4302037,3.182968261
-153,34.01931495,3.172853439,31.39672983,3.308109724,32.17977734,3.45020793,40.69847207,3.343400881,22.09039366,3.220239015,50.08982634,2.968677901
-154,31.76960278,3.490379365,24.70134301,3.017579129,38.31596462,3.181030383,41.4545346,3.211254251,5.029064465,3.404600667,18.13634379,3.562957941
-155,29.88183433,3.087215903,25.37194617,1.96033124,32.15392556,3.024798372,39.32030009,2.836704951,28.8674779,2.547576453,20.50219079,2.737931996
-156,17.99642978,3.345904549,14.15880202,3.452196681,14.8414791,3.867592046,36.84126044,2.715047589,13.28173055,3.102237092,26.0316108,2.821809657
-157,34.89501499,3.253459978,36.96491025,3.514484622,4.376304002,3.518711058,35.09162402,-2.785522826,-7.529314522,2.495717855,24.81747943,3.185569688
-158,7.682622337,3.258167688,36.75904328,3.244488006,47.67496324,3.572845255,24.21574227,2.866467736,39.73517361,1.742910186,30.59440415,1.491548734
-159,-4.466460683,3.027964669,21.35225464,3.96122275,26.67749122,3.474758,28.80036165,3.194955922,23.95817229,3.233186214,19.60732169,2.995296233
-160,23.35120111,3.260862049,27.39702176,3.299986619,29.57229168,3.33075929,39.51092507,1.75824373,24.95500319,3.492970435,27.19740688,3.14830121
-161,28.4969954,3.023584346,12.9086867,3.413357049,24.69161596,3.520940482,25.65609866,3.338540746,37.66072088,3.256191682,-2.90375211,3.395557724
-162,20.1467634,3.110012265,34.88258771,3.31703613,22.44846448,2.474680853,31.67821921,3.646365067,37.09701916,2.411182594,26.95259078,3.188977364
-163,46.46466707,3.547116644,29.911743,2.908936023,29.94353681,2.729512505,25.80055716,3.281768509,2.453231246,3.531962477,24.47804895,2.52080202
-164,43.01305235,2.897297931,18.50591874,2.117703468,21.43703028,3.189847114,29.65117763,2.753285621,7.503503036,3.032352964,47.60516383,3.599503114
-165,33.57502371,3.070205503,18.14660444,3.054242531,32.66451656,3.048633251,26.26342008,3.426773089,12.18688155,3.151373683,24.69281652,3.655966373
-166,22.80441374,,23.91740204,3.659706141,35.82450485,3.26996112,30.73174139,3.162708625,48.86083066,3.467814488,32.94313286,3.282428488
-167,11.19371937,2.691050167,17.44522716,3.472913663,21.2811646,3.408549786,17.57239632,3.539723932,20.65003711,3.026553144,18.04212354,3.697630088
-168,21.27225019,2.393682309,25.61055708,3.292621961,41.71806512,3.550705386,4.879435923,3.781255208,10.70368744,2.987935379,41.81880605,3.595667092
-169,42.7047958,3.321307271,25.63877479,2.30441839,11.33223731,3.256400614,15.9419476,2.367565937,35.20374997,3.28856977,22.73672975,3.345519473
-170,28.27167383,3.301239335,24.90488698,3.288955881,20.03071766,3.732200514,28.93481171,3.043859495,42.78922182,2.693865339,36.40325211,3.73928117
-171,40.74303857,3.227734221,23.37973984,2.516952228,13.76360948,2.764299414,30.04275589,3.425986098,13.51119069,2.357964189,10.27954109,3.139052133
-172,23.42789567,1.89014849,39.00942313,3.184171066,13.9738096,3.499479076,25.12769505,3.225688796,39.49245992,3.391512875,40.81124601,3.06576041
-173,29.89971866,2.487063511,31.58057966,3.063745951,17.81724057,3.042979087,23.40616979,3.208035658,22.74515983,3.597698566,30.65953889,3.369162877
-174,22.45082543,,30.97762179,3.161690799,30.96300249,3.300690304,26.37159092,3.086778419,33.23479215,-4.591944823,27.61353648,2.790623809
-175,23.07066319,3.331191969,14.58081104,2.936665711,28.00968205,3.463688356,19.29303919,3.54125822,10.23181225,3.165682183,39.05679004,2.555936985
-176,37.8118852,3.239883768,5.987148853,3.557779013,22.26629711,3.417003596,33.35767603,3.325811544,16.29018421,2.856063823,25.40568842,3.286325011
-177,12.56855609,2.47002412,32.58198386,3.386317045,7.422280508,2.985195462,23.17733337,3.812537854,32.40983723,3.104521274,36.36316192,2.838042445
-178,21.16674845,3.15274575,8.192956971,3.000381591,33.95763633,3.288105063,44.29399334,2.924474391,23.66784858,3.251493208,41.76576699,2.859066175
-179,37.64967314,2.973980305,39.81264443,2.699145216,24.52050859,3.349277117,29.15805454,2.303911391,10.99981565,1.887854977,28.43428019,3.106765839
-180,21.74181928,3.138201583,12.57912614,3.703586145,23.32573672,3.362328155,26.09980043,3.292858493,29.64264602,3.376196493,35.1677648,3.45484655
-181,39.40029638,3.2525859,11.42609528,3.162748742,41.40513808,3.255858588,13.67465026,3.167125661,4.363229881,1.717338495,32.81044228,3.468702253
-182,8.452653368,2.761894327,10.21976929,3.610969875,22.58649515,2.626612022,40.88664413,3.50711242,30.4475003,3.862773961,34.85117497,2.870784107
-183,27.54718171,2.750304762,26.98666088,3.293931793,7.100314018,3.468176445,44.90621163,3.510851292,19.88952645,3.042640659,13.67059271,3.394763756
-184,9.596587529,3.411541672,39.66646486,3.7630868,22.95624434,3.44210021,18.91003253,-0.535054401,23.89974643,3.354313953,26.62986326,2.802709161
-185,7.761691483,3.505801395,7.252559086,2.96974827,12.54836944,3.899763212,26.72680903,2.739636094,4.193936379,3.299697446,25.85210306,3.645074882
-186,37.18205094,3.776898124,22.45521219,1.974859212,34.72722055,3.922180262,22.80525088,3.23608073,32.84651255,3.222790205,46.70374367,3.316520803
-187,39.44367782,3.154481475,36.19787817,3.809552592,18.23058826,2.854601674,26.96559753,3.420109494,35.45682401,2.779196564,24.57494736,3.402924787
-188,24.46518114,3.58158575,8.509483147,3.101645668,-1.506363529,2.649715958,10.51935153,2.907904979,35.25621896,3.25343566,24.95647027,2.052979763
-189,38.65199032,3.576345046,22.26315724,3.129717123,22.06242432,3.553142459,25.90703352,2.928531174,25.48540498,3.793372109,43.74643183,3.623328967
-190,15.12746075,3.706116015,20.84705869,2.806563794,39.12864681,3.119456619,23.81156055,3.670910998,26.86758943,3.310179196,12.59322874,3.181888551
-191,35.91330718,2.439533265,41.88869496,3.752042904,17.01983719,3.598875373,20.29977074,3.837405798,5.488147087,1.501368503,32.0440531,1.878507145
-192,29.05935204,3.04669124,30.01734973,3.366606688,15.70170491,3.009069109,33.55991366,2.958751108,27.08075334,3.120144088,5.955708307,2.568386735
-193,18.25730398,2.769239933,16.09299121,3.234407656,20.96683763,3.200571458,23.76276384,2.416857,5.449754088,3.309017366,17.36490159,3.142221432
-194,21.62628778,,20.98900008,3.365872646,32.5078305,2.904806797,26.99065042,3.273163417,20.79716404,2.688703619,46.62646424,3.098594548
-195,29.93236532,3.282915982,39.67285318,3.354138696,30.70443776,3.569713901,32.05815548,2.244855089,11.92737808,2.938463281,31.0981971,2.739987524
-196,12.67987284,3.359266131,18.9475175,3.512642088,12.64158318,2.773999345,31.08056301,3.01268272,34.45459485,3.3268936,33.43007546,2.134714417
-197,41.22608896,2.977491923,33.76611859,3.584139081,22.88750911,3.475023604,10.12836782,1.371540936,3.251413049,3.349522971,17.65455484,3.295431012
-198,25.75090031,3.717113498,32.45014345,3.096221977,28.49151421,2.975070765,23.32074596,3.611451286,14.75777358,3.682781194,24.4432094,3.110918966
-199,1.127539924,3.267892896,29.7476573,3.540627994,22.58356709,1.987253065,29.3966133,3.435039801,44.66379155,2.694451338,11.17735585,3.21120557
-200,32.69102821,3.10867042,13.85600816,3.514556811,28.54183112,3.46661816,20.57553057,3.425419939,33.19766634,3.434777484,27.04839718,3.652070972
-201,18.52503071,3.511333456,30.71207015,3.309551352,31.2689462,2.848443859,17.83916157,3.219493248,29.27074975,2.908194436,11.33318946,2.994691979
-202,23.29149024,0.552107939,18.99105356,1.86923791,19.93040201,3.129754197,35.49354332,3.480337698,9.559754369,3.086798158,22.35307969,2.701912292
-203,37.44818863,3.272910902,31.75516697,3.600620991,29.06120263,2.280445461,13.4418833,3.348504486,10.59844259,1.932603616,15.97221281,3.161971826
-204,6.585303521,3.042174167,16.99116201,2.906848062,16.34464283,3.556107888,22.48106417,3.534870477,21.0384416,2.803056359,29.22246503,3.26155232
-205,12.21622831,1.174703462,17.13773647,2.877904112,30.55213387,2.700438971,14.03807816,3.485227643,34.1151979,3.116144612,23.96761669,2.564900787
-206,36.71702919,2.640333168,15.24662109,3.36368394,19.81767604,3.303113007,30.65001273,3.314104075,17.72937175,3.252943045,37.72388429,2.983574209
-207,27.70046067,2.844275679,29.07733525,3.096092757,30.27112876,3.68825863,3.005182762,3.419982284,47.12181774,2.745865584,46.56714376,3.038632247
-208,14.83506775,3.004854783,42.63161134,3.617372105,29.01830536,3.534219302,17.30755664,3.164775825,27.52165182,3.470782668,26.76867707,2.315903944
-209,23.34423849,3.558513073,17.19291564,3.23457073,32.89438417,3.575601624,21.88891121,3.452168622,19.80118033,2.832357662,22.91276654,3.830442164
-210,26.50821129,3.83415156,27.22541182,3.720364156,23.87393315,2.722417681,8.158533282,3.525954559,29.54373905,2.139721506,34.03752703,3.172502608
-211,23.70961041,3.557038819,10.99504409,2.677876637,35.22012727,3.185109952,24.57250421,3.371695699,8.008443714,2.381906177,8.129412772,1.588762088
-212,39.58584593,3.463464411,22.60983526,3.486660491,42.97442948,3.668114911,26.55974445,1.882215484,17.29281712,3.52399999,11.41087351,2.931991337
-213,25.21376979,3.631731983,24.71464521,2.651930958,29.9765435,3.812197965,24.79296792,2.540740978,26.76983534,3.32966384,35.06358643,3.339578713
-214,24.78490576,3.27754614,25.65526564,3.276871177,23.45507032,3.296620521,36.78041112,2.616651593,33.33558881,3.390381784,23.95751701,2.896656128
-215,38.99510937,3.440754005,33.5450901,3.189032848,45.52433902,2.593417549,18.2684362,3.238763247,22.83309899,3.061154441,29.88241837,3.234283083
-216,28.97882197,3.442921057,12.81870604,3.387781696,41.27067005,3.55803394,-1.831383809,3.093733942,9.761148415,2.82927486,45.73101603,3.100571748
-217,21.62510221,2.858874876,11.1267233,3.174838065,22.9910967,3.092819474,26.74732496,3.480902694,19.66978493,3.463687395,39.82319601,3.147064881
-218,17.82057117,3.329484377,32.49716003,3.72985772,23.12332889,3.281121249,15.99537351,3.700320154,10.12274356,2.509443106,32.68852715,2.992978082
-219,27.69044882,3.351624672,22.9128759,2.230104237,10.32884237,3.075276372,41.78265896,3.041853927,36.03060026,3.317221486,27.87554978,
-220,20.25944473,3.736687175,9.394550749,3.235804061,17.09568101,3.367888284,43.55241,3.425376073,37.06777143,3.307973472,29.53532548,2.970737431
-221,18.69389895,3.233720288,25.66937844,3.296054955,19.77987982,3.211141059,22.0625192,2.376688467,36.24646484,3.334594983,28.75631759,3.048237762
-222,24.09897886,3.418220971,21.90309884,3.238635852,33.99245481,2.89738569,12.26104965,2.935165794,32.34848147,3.142302847,25.85625248,3.203418349
-223,21.74322543,3.394706608,28.12313451,2.420224566,25.40490368,3.204511809,21.82832932,2.469599427,22.68612655,3.272873976,50.8798661,2.908038064
-224,20.41753092,3.136174369,34.6470719,3.474878166,22.81715407,2.558181248,20.71185606,3.159594778,19.87534833,3.059362101,22.94186175,2.894103932
-225,20.0869439,3.149985437,18.3774802,1.974613366,28.80729038,2.729917626,18.32435454,3.713817571,31.07371945,2.986159299,24.73476316,3.264609439
-226,39.77259933,3.540652352,32.2008481,3.303070074,27.65627088,2.372898429,15.4319384,2.463052162,32.9263056,2.425966558,12.42423425,3.81310548
-227,23.13294011,2.791343872,10.02333226,3.752700309,16.73759083,3.692304858,14.04088697,3.637727244,27.20346408,3.383539434,30.9931381,3.362295155
-228,4.23451442,3.053658218,25.05032184,3.012938069,12.35146336,3.704435496,19.36622245,3.121081021,39.06843053,3.763136653,16.9935182,2.440324634
-229,30.61451995,2.27493869,11.56790607,3.256016249,36.36251973,3.351969784,46.41888884,3.479820484,11.75486836,3.138292723,27.07453969,3.132823026
-230,37.64218647,3.354131024,18.55905703,3.644056647,16.03619044,2.572070169,14.05995267,2.812499383,48.99034958,2.709094269,40.11079062,3.340372217
-231,36.00877851,2.914915852,26.83989382,3.355070449,30.30046354,2.488983895,19.86798646,2.892606874,19.32501213,3.289839464,38.77075409,3.340907089
-232,33.72807891,3.468363751,35.72242376,3.029779584,20.44378318,2.625007674,16.55158442,2.653401698,26.12966338,2.933078045,25.97117695,3.079760539
-233,17.77764702,3.922347886,24.74234128,3.467533074,29.30049954,2.305357977,27.94977129,3.854419762,20.14022246,3.615246078,19.35732151,2.971370057
-234,27.41165489,1.113280425,31.12646894,3.397520214,31.42333986,2.873947697,29.74607811,,48.77571989,3.050088935,26.7896602,
-235,35.48489973,3.757427045,32.39187045,3.325587187,26.19184114,3.596702298,3.332198048,3.397833016,24.55844375,3.593529883,44.68379355,3.212562141
-236,22.52305586,3.604493131,19.76105805,3.689267255,16.90218148,0.791352029,9.784914203,3.320907933,44.42378735,2.834947097,21.49886786,3.190354096
-237,23.41347503,3.468350545,25.30988727,3.66386939,31.88825421,3.397597303,25.81627419,3.040883025,8.058957677,4.035143187,41.6856466,3.189789835
-238,26.30681731,2.480509967,44.93242059,3.162158867,25.66639164,3.703918145,28.12518951,3.173028418,23.4466601,3.334734483,19.93607493,3.214882511
-239,11.40314092,2.761892457,29.93223979,3.157208142,24.88797505,3.34239092,6.623920168,3.437646048,23.15521821,3.922744533,30.2517873,3.816262614
-240,40.33664528,3.330282964,27.66152161,2.947589818,30.65050426,1.63451551,34.59367056,3.001716666,28.09144402,2.932700879,17.81759912,3.115242134
-241,22.45543162,3.268012074,22.28351702,3.308447224,38.63748371,3.728371894,37.30907591,3.530986563,29.68929219,3.356052854,31.61166786,3.703187782
-242,11.61154626,3.74998599,27.76124311,2.832885177,16.18296999,2.960671147,10.89007875,3.179464442,26.72618442,3.480741875,19.16182122,2.655500324
-243,27.38752251,3.132126839,16.69781483,3.257284662,37.06623735,2.672475903,31.87398041,1.559311496,28.60114835,3.085696183,41.00957886,3.354486471
-244,30.41588631,3.056681108,32.19502727,3.11420339,25.03834896,1.96591355,9.967241497,3.600609264,22.22495273,2.276188719,26.8911491,3.225317151
-245,6.894352639,3.752254367,33.33239932,1.998960923,30.07044535,2.475018887,38.11982851,3.207401319,32.98130786,3.296572467,11.71072404,3.389437722
-246,20.24785588,3.25729385,24.08100678,3.230300338,36.64929768,3.407240204,22.65369498,3.710198995,26.0225569,3.291726441,51.00320439,2.0608419
-247,13.90453027,2.93891455,15.78331398,3.141768867,1.620925062,3.188130895,13.28173467,3.461557309,34.84527183,3.604628491,22.23564255,3.254881099
-248,24.96806647,3.72955798,27.99553139,3.621085729,34.84713094,2.810719479,31.75254741,2.482206863,24.69442706,2.430334099,38.83437227,1.485227804
-249,23.22007454,3.882357337,23.17923061,3.067557566,29.07167114,3.689767291,34.91211803,3.246924218,18.96659155,3.572979749,27.69154538,2.864774161
-250,18.29387498,2.951868168,33.50278952,3.158701637,16.94605907,2.723607876,24.94503769,3.361135941,16.08590415,3.481702964,46.79276691,2.938824462
-251,20.92319904,2.805933882,29.8767667,2.768659512,19.18594038,3.229398009,12.79647911,3.309293991,22.1794518,3.38881771,13.82885302,3.432477395
-252,14.83518853,3.436571085,19.76667502,2.865794953,23.01720756,3.107507348,22.53379501,3.373894438,17.97522627,2.583692668,14.68262458,3.652630602
-253,42.32392565,2.999248164,30.84094506,3.468881527,26.2867217,3.29618827,18.42776887,3.663252187,16.24482055,3.73163649,25.29950769,3.746840506
-254,29.81307582,3.41084464,9.021067445,3.29600838,27.61051893,0.028561229,26.6287809,3.677399847,25.41410068,3.363267689,36.12120859,2.996504021
-255,20.3898354,2.653898861,30.35822009,3.321104671,20.80915285,3.471421277,22.84438209,3.435035357,22.63439778,3.15273451,28.99910079,3.204240756
-256,27.9314534,3.726352739,30.51281864,3.592993789,10.96320625,3.523831709,20.86692467,3.401978665,24.03981666,3.383164481,34.45257856,3.202337049
-257,15.04205349,3.518368231,8.459093244,3.531781304,29.99282646,3.590832082,49.2723363,3.450240259,23.91054138,3.527473,27.80022785,3.40276902
-258,32.73182075,3.65286129,28.87323905,2.255795303,6.526190105,3.39261471,26.32474814,3.316351231,22.21218074,3.095293526,19.68452958,2.634405585
-259,1.129849022,2.483809565,23.20541881,3.495869381,26.8523549,3.467622123,28.36170424,2.876018967,19.1696402,2.939832418,23.4724869,3.071255321
-260,21.12655148,2.543907413,23.83818921,2.538657292,30.42194014,3.383198773,34.49538,3.728900393,30.52265201,3.076124419,29.88171806,3.322190975
-261,23.03898759,3.660781238,18.99587831,3.252865693,47.19998643,2.93194527,16.52835759,2.841326055,17.19315763,3.5508893,30.21833191,3.257485624
-262,21.06101819,2.991274751,7.156966485,2.951483184,46.89258798,3.520999482,1.526310501,3.477577101,28.16205659,3.795294767,28.75886934,3.26967867
-263,45.39011599,3.802803294,20.99841601,3.45193855,20.74491014,3.13577203,17.56017579,3.588044645,7.337882572,2.364976271,33.02974613,3.550892578
-264,2.058357607,3.080603577,29.69303305,2.77281849,41.09260427,3.877038599,24.48215471,3.431841023,25.07906123,2.015989776,31.74906441,2.765506279
-265,21.07079526,2.775912755,12.17948939,2.58029236,14.41439414,3.196133238,9.336433572,3.42457759,34.94109538,3.290476723,21.32160537,2.538437282
-266,21.67205098,3.321046111,56.52027824,2.763195564,34.25611763,2.446187217,27.04766383,3.18581087,42.6800762,3.04777527,23.40295868,3.21660116
-267,33.70012121,3.363370463,28.06158013,2.648673787,20.89434698,2.862579339,37.85610942,3.563471755,26.93279089,3.133741554,15.81762995,2.727409497
-268,26.62718559,3.745539186,28.30652588,2.648371957,24.40855786,2.308998506,32.21981213,3.344632523,33.4016606,2.970490799,15.46311838,3.570939172
-269,17.96304029,2.301759033,28.72457307,3.02618862,20.5131906,3.291102346,31.16580059,3.274662779,24.39001806,3.289999825,17.93969111,2.285770064
-270,6.764324725,3.044745799,6.676982624,3.417455237,20.7204288,3.13030711,10.016103,2.662132027,44.40220343,3.494272673,32.2856915,2.475696559
-271,35.53814546,2.984904365,22.86146596,3.29263813,39.71219323,3.096650997,13.13019706,3.79183224,26.1598791,2.877614672,36.92762364,3.539713833
-272,27.78901345,2.900894292,20.99998758,-1.447578956,32.16699461,2.589181748,25.64383739,3.625869659,28.04458486,3.832100898,20.78792142,3.089106371
-273,30.17168161,3.764466311,24.24200479,2.929713312,5.062358063,3.510287677,13.40646763,2.576536523,21.97771732,2.802845782,14.9645243,2.554965444
-274,14.52388211,3.443779178,33.27476349,2.970449677,37.87157215,3.551898448,25.2337439,3.13081693,32.99718668,3.533582411,31.97443885,3.522090092
-275,20.46263975,3.121772874,40.51141341,3.464987506,13.62090641,3.712184919,29.88836188,3.146955386,23.36397092,3.700195166,-2.353582088,2.37250696
-276,33.03351221,3.554094685,13.06167562,2.972055951,14.88175721,3.107632018,27.65601476,3.148919369,18.34334057,3.414242865,21.49585556,2.677225389
-277,39.46467951,3.221951528,38.27140056,3.284308254,18.29735265,3.510603205,26.86505661,3.091055577,18.78742436,3.220788719,16.37443936,2.850966633
-278,10.50522212,3.344627999,34.8776137,3.016858657,20.21637613,3.110260705,15.80958098,3.554436152,23.36156149,4.005108532,21.81637171,2.904099471
-279,30.47608978,3.664714388,32.73444286,3.49912963,23.87382024,3.130361698,20.09984507,2.352818289,17.44636048,3.229218093,14.92052196,3.295296231
-280,43.75541981,3.543905206,38.46295859,0.797057438,17.49275914,3.178311418,22.69888948,2.276976609,10.7624542,3.586364372,34.52358771,2.479521363
-281,21.57237021,2.382988084,8.062565427,3.190288875,19.49214095,3.521473233,16.70062264,2.434905086,18.97792642,3.776972134,47.33858297,3.222086019
-282,13.61974776,3.637997417,31.09780403,2.851028687,24.83103929,3.187641956,21.75040711,2.665553633,20.941403,3.261994388,31.83205143,3.707352508
-283,38.07380663,2.88914877,19.09218864,3.167702508,16.42169231,2.972842249,49.16745011,3.461335527,21.14940063,3.663599268,38.54061804,3.304014119
-284,21.07835296,3.096899319,33.61746141,2.988032599,24.58392254,3.383053623,19.0891209,2.159776643,34.07053109,3.320836198,30.06572457,2.617303814
-285,18.66690833,3.59389249,28.09012048,3.233231163,14.05058119,3.303896729,3.769077625,3.489114649,43.47621912,3.574186381,10.72503152,3.02287306
-286,16.18135468,2.779849808,14.81319946,3.256937512,21.66011957,3.479865492,33.0837188,3.136503696,32.2060883,2.123069764,19.99603124,3.36112455
-287,19.27816027,3.426367607,36.49738842,2.720345331,31.30798339,3.577603234,4.972160068,2.910353938,28.03006492,3.808359686,17.68159902,2.241039412
-288,16.42032839,3.066886386,17.79543586,2.844132551,-1.945502173,3.251623522,28.66096619,3.465321207,12.73401098,3.440256629,22.4640623,3.164051766
-289,39.42820682,2.557820247,41.88252716,3.512688854,21.11013274,3.756140699,23.03559625,3.557928408,11.74586511,3.144287709,18.61665831,3.852459619
-290,28.57748456,3.778374944,30.42393225,2.565087655,33.72942554,3.348251377,34.4249719,3.517815057,17.97748166,2.873882217,4.891759325,3.550113741
-291,17.77505063,3.497849261,28.30467755,3.283116697,25.13437354,3.315807997,28.22421151,2.866922048,28.11532447,3.476217639,19.96549198,2.230443134
-292,27.18538,2.80153008,14.93165192,2.669654766,35.15784835,2.79628299,14.6949392,2.744447523,16.3143178,3.414302786,27.36250621,3.273202441
-293,26.97069938,3.250984793,21.19138048,3.416066097,13.31634943,1.374569788,34.36455738,3.009223238,28.08675579,3.011437225,31.92609979,2.530986651
-294,31.10818124,3.326173958,26.5426017,3.132994346,28.49982159,3.390713435,20.73169444,3.149341845,20.20540739,3.444554861,14.64118354,2.872445996
-295,34.96542533,2.717252248,9.770535975,3.737308086,31.8679033,3.189607107,29.41758557,1.092322743,18.11246813,3.822881019,33.76141874,2.58295566
-296,36.50074048,1.948851715,23.24442008,3.076323022,20.19878959,3.330034033,41.79309882,3.671689373,41.81841378,3.163895925,13.37637357,2.994381874
-297,19.89065104,2.257636991,35.14849092,3.568712957,26.26246991,2.789282605,13.68176383,2.035743523,22.35560758,3.28785846,24.92041072,3.812310572
-298,23.10755525,2.880393971,29.06268896,3.034663605,20.66994347,2.431071705,33.20529348,2.0323121,17.71693189,3.587842665,27.89727245,3.621106269
-299,19.04106854,2.942083766,11.10764083,3.145801106,24.15091492,2.329279471,26.35348634,2.476768508,20.25251083,,26.26515796,3.108942873
-300,13.83225368,3.427818335,22.23422059,3.743698543,22.86847402,3.609855203,26.12290504,2.904024682,8.435886208,3.71907935,27.48804056,2.910871612
-301,19.37758692,3.483952444,35.33906466,2.966801212,14.28748599,3.230724072,15.78750897,2.858028131,22.49066484,3.525115109,15.92744495,2.690331576
-302,10.82543481,3.34922073,14.14162974,3.332630717,39.94787096,3.141489834,15.05538172,3.296223271,47.88906466,3.393176607,40.71835541,2.390783666
-303,25.59696827,3.580540096,25.24670488,3.320033307,26.32158312,3.401236413,28.4853844,3.550726479,28.0854902,3.335356272,24.16409305,2.616381968
-304,41.61659005,3.215741433,20.68122133,3.066555564,21.04778399,3.497480052,37.30401796,3.252309198,26.0244623,3.4693109,32.2745326,3.402551046
-305,26.67958544,3.64161623,22.81651371,3.077611097,41.640256,3.441585817,42.38495621,3.46638961,8.047074886,3.106254965,42.59691537,3.014630969
-306,14.70127505,3.27030029,8.884029778,2.585974263,23.72620082,3.1865253,24.73597338,3.630588972,38.10991036,3.583328617,36.98441186,2.977588139
-307,12.87273724,3.277115431,39.01599498,3.792328155,28.34927057,2.897730975,23.43852175,2.841839786,42.24439782,2.942529101,15.7400759,2.537336305
-308,20.82020697,3.361975008,25.49307231,3.48513178,36.08297832,3.363578118,27.43383402,3.456197331,23.20248261,3.432802587,3.754336847,3.040066677
-309,11.48985319,2.478055601,44.36092564,3.177631577,20.92058755,3.830055412,41.06472181,3.519731833,24.36431212,3.665487196,33.00621304,3.148052187
-310,8.748592802,3.207241376,13.64487211,3.030427518,25.69477298,3.732127576,6.658739172,3.633209334,31.67473013,3.349644412,9.930649706,3.32564077
-311,21.16632682,3.523953827,34.89229461,3.455503766,18.82686189,3.350446467,23.34499477,2.989497763,59.16153923,3.613203089,19.39747961,3.528653336
-312,28.9976339,3.697456336,23.72029009,3.064008499,17.81951192,3.097593223,31.77885581,3.597206256,23.43533911,2.979317681,30.09412899,3.453641175
-313,42.24006353,3.309843526,35.42201047,3.815961391,31.39789055,2.969490551,9.059163165,3.150731138,18.77193042,3.133563902,23.82025083,3.756411939
-314,14.18310836,3.307439542,19.81742481,3.013019868,31.21979113,3.33721501,33.20600822,3.385156542,8.056796524,3.725404953,26.36737279,3.153528216
-315,10.42119612,2.849646783,3.693910042,2.812819201,28.36856918,3.060366335,34.21301381,3.544923623,31.35051534,2.727900225,20.58958725,2.799691209
-316,41.45442894,3.498786757,34.1457811,3.111450211,4.612065252,1.700260796,12.66997981,3.559308367,20.37627903,3.394384774,32.37885994,2.976573132
-317,24.55989242,3.162593429,12.24659828,3.263834793,21.4538837,3.452202324,31.74565824,3.516436955,24.65602414,3.283728429,20.18971932,3.544579378
-318,24.00629031,2.737120288,28.83418856,2.785627642,42.96089009,2.952308598,26.62150871,3.693343707,38.92569197,3.02671313,39.11698713,3.822278498
-319,16.56472716,3.045830561,8.989394118,3.247821061,32.26899455,2.468102193,31.04717737,2.91478113,13.80581737,3.336122035,19.06602628,3.264793699
-320,9.088381547,3.354045257,9.211001729,3.641685365,22.01881418,2.547563235,15.5499052,3.026556827,11.18326635,2.604864717,44.7765241,2.921473099
-321,7.539406075,2.950681824,32.34545264,3.760644943,21.61688569,3.48705504,10.97755931,1.939633492,24.21986277,3.311294251,8.557041132,3.411125009
-322,37.3874278,3.17548839,36.88742064,3.342438209,34.59628228,3.006512662,58.35936238,3.583159766,29.28751973,3.588325823,9.002444274,3.444863746
-323,27.95772521,3.407473441,29.72388503,2.937518856,26.02044141,3.195786802,24.71720903,3.585265461,34.63776382,3.172673086,32.27929369,2.767287521
-324,18.15245214,1.302548329,30.71829634,2.560794346,34.93864418,3.128716753,8.220564182,3.12327992,22.41162055,2.996433948,28.06715656,3.425223713
-325,25.60032772,2.023478253,31.21129909,3.343836267,32.62396222,2.921553656,22.9136304,2.706477792,25.27275686,3.51679026,37.00422319,3.132420781
-326,25.27437522,2.954672728,15.04915405,3.382606492,18.05012215,3.049828274,46.79882129,3.450238181,37.29061283,3.074518558,26.86577223,3.31012247
-327,22.75801235,3.032983527,41.26988526,2.943919249,30.81916602,3.015047837,24.09174891,3.602172998,34.03623096,1.104444676,29.24014023,1.984958931
-328,27.64003222,3.595996699,27.10962481,3.646829494,32.75378786,2.861016506,17.57078335,3.101312309,21.43578759,3.997308675,32.40726756,3.431712323
-329,33.58598732,3.28017276,32.5211054,3.578094096,19.65381258,3.342564348,36.26274705,3.467237625,34.84840014,2.355333499,11.48419246,3.41815383
-330,38.33162131,3.651827547,33.97137985,3.263853849,18.34008592,3.263117612,37.78733453,3.086276709,29.38608179,3.064813293,20.04510853,3.144880687
-331,40.43066047,2.670154533,20.51186521,2.972505219,40.883614,3.61232119,16.31475488,2.8027658,4.845853277,3.449094742,22.73956181,3.651652734
-332,29.27648123,3.156566057,24.83867484,3.099665191,26.88033581,3.714434376,23.36751719,3.560628642,55.04583486,3.33331146,20.64260403,3.092061166
-333,24.29680249,3.461214648,40.01237867,3.57882556,19.92428087,2.768370366,24.63487521,3.617119527,15.73431011,3.047965588,32.38836589,2.847093504
-334,21.35598666,3.134413161,21.39753727,2.586764887,35.28801784,3.662292978,34.07624299,3.884667248,25.26837076,3.610377761,16.0788532,3.529257723
-335,19.58222573,2.977783291,42.38044636,2.690006898,23.66252469,3.501751647,34.84534332,3.038124529,15.97194307,3.229235219,30.96026014,3.300032358
-336,28.86825655,3.655509803,28.13070953,3.05708181,22.13863713,3.620964533,10.41483724,3.025736382,20.65966507,3.69588093,25.43530471,2.897264
-337,33.28615311,3.021140897,32.74594021,3.505096801,21.06207386,3.594895037,21.75382316,2.814597492,35.51604481,1.435492319,42.58257042,2.684434963
-338,27.81562286,1.466588334,46.44288509,2.651846545,33.72733013,3.36000562,32.20620305,-0.797491637,37.78147919,2.442408601,31.58017638,3.023621358
-339,24.41629417,3.629757007,15.44817273,2.569273013,27.57523923,2.561009498,30.5960358,3.647088888,18.10820729,3.081249798,27.41566777,3.429506955
-340,20.96404786,3.656910597,24.22351424,3.186379091,27.0596176,2.622071542,12.70245257,2.497372507,10.46042099,3.255256445,41.37917699,3.29283345
-341,19.95176949,2.158811473,27.07303912,3.575203948,11.11147403,2.768371797,16.03860158,3.253484309,26.27869927,2.939695459,17.80603567,3.065312302
-342,29.16028458,3.451585113,49.38866229,3.551755864,21.26368774,3.149151465,26.72870282,3.247615015,21.08985794,3.539714715,46.01736077,3.626711428
-343,27.8289226,3.583857303,23.83744913,3.090274693,14.54089898,3.170954905,27.60303167,3.634493609,3.195713102,3.753905822,14.38062148,3.24489909
-344,41.35662766,2.895706324,39.18198291,3.294964306,34.50316829,3.323797455,31.22978231,3.341568596,15.58436545,2.713810757,37.23494032,3.65489069
-345,41.74541517,3.672693203,17.43863264,3.89176299,37.52271151,2.537422591,21.89414537,3.258388344,37.53359787,1.804422579,22.25789654,3.50241529
-346,31.23395032,3.31799746,18.34975518,3.317566528,12.23308302,3.665307721,43.59108559,3.42569841,23.98965066,2.806454175,31.81799162,3.524261439
-347,20.56123096,2.066785081,16.44860628,2.517940752,37.56291513,2.551884399,23.29676201,3.935010559,6.645898794,3.357032092,14.37149205,3.602015489
-348,21.18592494,3.004350493,26.08189708,2.848785428,24.25071303,3.512020109,34.44163597,3.727148665,28.44046239,3.046714849,18.67087639,3.501323008
-349,22.68804948,3.310886414,25.75232652,3.578587747,33.07267509,3.587303957,15.64096871,2.986563871,31.88908142,3.37197698,12.42339917,2.809050788
-350,41.14595983,3.260456026,27.1616523,2.495465695,24.76150105,3.861249434,4.421850863,2.830836314,32.69584262,3.264306997,18.46290577,1.730520463
-351,30.71103234,0.148211102,20.31204235,2.766056586,32.34246487,2.816875314,11.10590037,2.989516032,21.86743135,3.227361425,45.49603457,3.354362091
-352,35.97066941,3.076502493,28.02293603,3.812614406,23.51398212,2.805839276,26.01381029,3.285039588,21.81113624,3.243976842,28.11015625,3.327427542
-353,35.51674249,3.084697488,25.02743788,3.511384994,23.06086178,3.123877277,16.42464457,2.483002573,24.74570927,3.268113734,20.76497776,3.455796672
-354,13.24397163,3.374314055,32.08511796,3.349478176,22.28434425,3.111658093,41.06376912,3.148828539,34.82042055,3.367862478,24.01628121,2.84751969
-355,33.56511871,2.900811517,11.04685106,3.405671972,42.96461498,3.357579249,14.23042538,2.470307793,32.60938777,2.932785176,19.42127461,3.319740628
-356,32.21860434,3.622875043,24.216265,3.820268634,15.91407639,2.70695322,21.43805812,2.91225188,16.73653674,3.415866518,40.44190622,3.043526353
-357,29.07255195,2.466803258,38.5515348,2.67637374,22.48776982,3.698054639,46.42905173,2.917852488,22.2334323,3.142037496,36.5042127,2.700533766
-358,32.36464001,2.935235056,26.81194514,3.044880938,8.043484973,2.667208076,25.82366009,3.217112203,25.84020717,3.38986542,31.77394664,3.524640893
-359,34.01193809,3.192451608,34.50196755,3.792640518,32.52995136,3.483773962,37.9908872,3.345113572,10.45462025,3.522381947,35.61262731,3.319777755
-360,28.15631316,3.028372413,40.67408847,3.601329996,28.17252146,3.089164756,13.20519094,3.39017716,27.02735619,3.156398705,20.28539834,3.372699085
-361,13.97475201,3.395230978,6.644813607,3.086918651,35.85787446,2.792826899,40.97708805,2.771175975,22.66439789,3.386151334,41.24677677,3.26997156
-362,19.14333123,2.968917878,26.14265901,3.490017265,10.95072584,3.29739337,30.11550916,3.242298246,27.67409799,3.562397553,16.46434877,2.476449787
-363,21.41825994,3.339876574,29.34983288,3.365159302,23.16699592,3.74724531,27.76106931,3.342966743,31.8602927,3.110964729,33.47687183,3.421879962
-364,20.64631288,3.417122824,21.96925713,2.92360504,12.62098025,3.318017409,34.40296762,2.552123445,25.00185983,3.830939897,8.647831441,3.229539358
-365,28.23108368,1.838294084,29.56015679,3.063879586,-2.860175653,2.828716486,21.09968132,3.708757325,16.46984764,3.181926821,18.17257087,1.722742961
-366,18.74842846,2.435287785,44.55252913,3.606928517,35.64239623,3.511818776,20.40194717,2.351147835,27.8964687,2.233131095,23.91403688,2.507764296
-367,35.08413655,3.187909745,21.2380856,3.521012875,17.64598033,,26.89547221,3.324918111,24.55186793,3.321516317,12.56462455,2.736702474
-368,18.79290948,3.15491565,20.68589598,3.021730443,12.77046917,3.635096231,28.46978618,3.403362717,42.61941386,3.738181512,11.31858865,2.994090419
-369,25.20870648,3.76095472,23.9804201,3.429932404,25.83253245,3.462697631,25.05312678,3.188004959,24.99360971,2.903257609,34.08622119,3.470493956
-370,3.100569321,3.515865706,39.81983484,3.346512285,52.77255744,2.092479962,29.18087145,3.482755801,27.0090446,2.728975793,25.33406443,3.369584404
-371,42.22883909,3.20389075,-3.204891524,2.677937969,24.34621144,3.097728874,26.58838715,3.348370114,24.78726768,3.126027451,19.5924117,3.48672567
-372,13.64290767,3.185912436,31.77430953,3.036498625,31.15680748,3.24396279,39.76493459,3.267869258,20.67875363,2.426446638,21.54667578,2.18557958
-373,12.20671783,3.208828546,10.08934775,3.690412632,20.0648663,3.68592971,11.74747765,3.433382775,34.74026447,3.069242286,25.33063261,3.844321392
-374,24.79817539,2.830500874,22.26817034,2.91752192,33.70320583,3.067098643,14.81504568,3.488654563,8.543579795,3.671657039,9.861814585,2.69302012
-375,25.38196367,3.382983654,30.38052096,3.503898986,23.26735242,2.165540455,9.456581644,3.619708929,7.97396698,2.404912464,24.39051447,3.334017632
-376,35.48821099,3.439347321,24.7651034,2.861196514,30.15005755,3.419979916,17.13402814,2.853524864,32.1696889,3.020158948,18.62929863,3.106491056
-377,18.17449213,3.436953782,19.39419041,3.125533006,23.66429691,3.304217914,26.8355663,3.330698819,49.17134428,3.494037484,20.33961308,3.109915101
-378,29.21795625,3.579955417,38.56463778,3.807478454,25.03859406,3.18842096,21.18102726,2.641809788,39.22107166,3.838250126,40.16103736,3.552414925
-379,29.44301457,3.753689399,26.29445335,3.61639467,27.34194846,3.018589342,31.25391201,3.443714473,4.379137737,3.26139047,27.24528192,3.653218778
-380,40.38884075,3.987186325,30.99878482,3.770647234,9.186005451,3.644232746,31.43080549,3.711747139,21.2357588,2.991038709,37.8315326,3.919159243
-381,26.13358339,3.319040665,20.49707111,3.048952163,7.752586964,2.714007986,12.87613485,3.070027263,30.87128587,2.970347768,12.36725789,3.488497729
-382,28.12730056,3.308754282,28.6313514,3.150955694,16.80381557,3.206488378,8.035639115,3.181587603,15.14749649,3.437680593,25.02236279,2.243591262
-383,23.66672277,3.321529914,39.01550775,2.704615229,8.059499161,3.168264171,23.82478982,3.494452951,30.07535141,3.501230635,6.892996515,3.303150065
-384,35.97758127,3.412740565,9.119671761,2.557025486,29.15426322,3.718856896,44.35749157,3.33565142,23.32797063,3.305332026,33.85768814,2.953062471
-385,35.17680932,3.23196015,43.40888158,3.297448208,24.43325235,3.3765563,35.5609804,3.493481848,16.02466802,3.064697037,35.52871143,3.254135966
-386,22.84824478,2.344723614,32.7794764,3.526468454,28.89406506,3.585961014,32.74156917,3.839985298,44.21968804,2.527612563,24.06748991,3.056209578
-387,17.23609236,3.40289924,44.77473311,3.567624743,30.16390191,2.525634006,31.55962372,3.194221718,30.86854334,3.457242676,33.67391914,3.84281862
-388,17.89337939,3.578247709,31.64329871,3.231152201,21.47431077,2.916604005,32.85898945,3.407498337,20.43220886,3.112957141,52.21248016,3.335810996
-389,-0.574510413,3.253437892,5.487938273,3.426731379,27.17627177,0.762718639,22.02300681,2.821223923,23.36454363,3.793125326,24.76871544,2.062350349
-390,14.0901199,3.425247518,46.42653629,3.486735991,26.87247227,2.874798528,5.614016858,3.424281556,24.05689781,3.081344703,22.66636627,3.51804674
-391,36.61510404,2.017497592,24.26097643,3.085514962,24.48690174,3.419688157,30.16860276,3.444267521,25.361698,4.007234679,22.08617008,3.419527736
-392,6.354172673,3.558768314,26.09619879,1.884696886,24.76493646,3.204139942,24.03071798,2.685682235,20.16574167,3.588517151,22.68910694,3.190077328
-393,21.78384206,2.604078539,17.26566363,2.340517128,36.87156715,2.795679131,28.15081989,3.119073964,23.09502323,3.610626266,38.20389767,2.927163109
-394,20.43062352,3.29929702,17.32144715,2.914010395,20.87398877,3.458986493,24.56073673,3.461113689,26.5906725,3.563676436,31.49261947,3.463719817
-395,23.03148,3.544162395,34.37273229,3.11932429,34.99078733,3.136373831,30.32156684,2.987588337,16.94226972,3.791150168,17.99996648,-4.24820402
-396,34.68299898,2.982413516,18.91562255,3.918006552,27.36598173,3.019543535,26.43231652,3.391872663,30.003055,3.154072426,25.72798958,1.246807193
-397,30.38829269,2.995866023,18.91853841,2.938847743,27.93654898,2.587443106,13.30263261,3.548818082,13.37965634,3.755687093,32.63068269,2.766003353
-398,11.57366825,3.063325141,29.93092025,3.728734687,28.99804973,3.178195961,14.65158328,3.500436064,17.21071948,3.031749351,19.22090298,3.24869347
-399,33.19854647,3.800143858,14.83844208,3.326131345,20.74922887,3.402165309,21.75159476,3.228962281,31.68297457,3.372819471,8.176210229,3.142348942
-400,37.68844566,3.802403219,18.98503525,3.397095379,30.66321472,2.988269177,14.86763062,3.423751484,13.80173002,3.264421742,26.3038287,2.881601688
-401,23.48545427,3.326029993,21.44316291,2.429945969,37.41295924,2.749548798,20.61535395,2.699453903,37.07450397,3.417192555,13.36869651,3.86048603
-402,27.45343489,3.489298018,28.90562662,2.888661737,32.80752468,,26.70346905,3.592641753,12.88745647,3.219849699,19.39922194,2.036168432
-403,23.94053044,3.204468836,37.05242683,3.841286025,17.96742122,3.237231064,19.15305327,3.080462095,28.21072962,3.169438474,21.33616226,3.285732349
-404,27.84819663,3.459708799,31.18567876,2.890926122,37.52886191,2.978893565,14.00251902,3.56055484,23.20115001,2.298952209,29.16486851,2.780784317
-405,32.56092062,3.590384678,19.32208622,3.024258918,20.80660165,2.892636566,22.26615755,3.552890787,2.89026183,3.725731119,17.75144514,3.614184604
-406,28.50874755,3.234879597,2.144240347,0.155215082,26.37834555,2.540878638,26.70302619,2.979280916,4.397637936,3.10259417,25.65217455,2.846981558
-407,20.603465,3.249296194,27.80022673,3.690178415,15.57846247,3.352580126,25.24488112,3.118562012,25.96542581,3.274884861,19.86576653,3.650857907
-408,52.85836521,3.764565666,40.21665629,2.208047576,40.39151697,3.427349329,32.23456593,2.157722157,17.30871969,3.145115283,38.17813132,3.661452936
-409,11.54834514,2.406328963,26.08914724,3.128287354,17.60835601,2.899617994,18.77808557,3.365221683,31.17195839,3.483821232,36.61300751,3.13391017
-410,15.25203239,3.413577289,20.93333305,3.153369983,38.3336785,3.12446392,40.39466157,3.578529524,17.70675616,2.677368902,5.508153684,3.636904998
-411,32.39699293,3.378281337,13.69421952,3.527003955,16.24462747,2.533478523,27.23075574,3.451033364,30.44869779,3.221752328,31.964472,3.541022421
-412,34.54248273,3.027387203,11.84480111,3.003313079,43.10432697,3.398085473,9.824732477,3.368362265,26.96116939,3.932645675,31.87164385,3.811085281
-413,38.01852576,3.029077915,21.57331732,3.577093693,16.96802322,3.190444641,35.36275597,3.012469188,15.33756214,3.312206751,20.88002318,3.704395805
-414,23.55876962,2.446501437,29.92074849,3.440687397,26.87617194,2.274865348,18.46314281,2.959692413,34.30857362,3.310078013,4.507561753,3.375893581
-415,24.37411378,3.243484434,30.83117473,3.405665486,12.681989,3.262699753,29.51022518,3.390003109,13.02873672,3.347277952,23.99403247,3.30472701
-416,13.818032,3.569223846,25.23543388,2.143731263,39.16056666,3.460922519,18.47569111,3.444328584,38.44901351,3.039170681,13.2418113,2.45479954
-417,16.55927835,3.345340262,23.62775346,2.892957212,12.31826255,2.045403455,32.92044827,3.148667407,35.11069727,2.984969417,27.09551561,3.189558235
-418,30.03660545,2.849625474,26.51996934,3.554343786,16.80737156,3.516817861,27.96724477,3.412855017,31.07729965,3.159629806,37.41091803,3.541174259
-419,7.554954456,3.580011923,14.36782339,3.198865684,28.20481776,2.311156002,27.28450352,3.332945301,19.12021338,3.790757474,-3.382838538,3.35389144
-420,12.28294782,3.76595863,28.17007384,3.704527524,24.20295345,3.542048461,10.44340827,3.381382288,19.1139266,3.582304967,15.10776033,3.414978933
-421,12.96804981,3.21771816,41.74364811,3.02363205,20.73410506,2.68200391,28.55777555,2.940158298,27.59584907,3.154024045,19.51622988,3.322909951
-422,7.154749273,3.082206492,27.2004372,1.903623087,13.11558743,3.817229469,10.85142541,2.875004764,32.03547931,3.51938953,19.59058491,3.389248284
-423,30.62828455,3.07581911,17.94565896,3.777852657,21.45175132,1.783396675,23.80442267,3.289730071,30.29168909,3.705385073,42.59237418,2.969257186
-424,24.40741233,2.828565349,27.95630641,2.749451486,19.47830729,3.286764382,6.884636989,3.382742465,36.06398412,3.725243039,22.81332016,2.805329682
-425,25.4905446,3.135776024,21.45052043,3.726837582,19.04519447,2.360261091,40.99218601,3.474101629,37.81429639,2.538846145,27.11500606,3.593895236
-426,10.88354021,2.7313372,28.41056305,2.638717421,18.14493008,3.377434813,11.29713088,3.873470063,28.59782933,3.281539186,35.35851065,2.562514709
-427,19.26151931,3.506869337,14.55530553,3.228415962,23.48048166,3.481508724,24.7149357,3.219169077,14.57486603,3.126871164,34.09415276,2.572621428
-428,29.76623136,3.845542758,14.48445794,3.409720948,29.54898439,3.540069591,40.18918243,3.41254205,14.35423169,3.799130689,37.36792911,3.102514444
-429,33.49774111,3.181010666,10.57641505,2.800627136,7.04185144,3.29883185,19.70299102,2.992827515,25.5294096,3.025368421,0.534108143,2.986630179
-430,22.84926016,2.467724537,26.09813721,3.521951673,34.93939405,3.201550982,9.982672588,2.510801052,22.80622561,2.953816659,41.96686635,3.23192119
-431,33.16169714,3.123215165,28.6964236,3.811432501,23.73407578,3.362649645,37.57794518,2.948021184,24.48704082,2.839951448,13.0969944,2.861313486
-432,18.25239888,3.909046407,28.32926334,2.59405625,45.82689354,2.959149754,17.03522758,3.4114825,26.76510325,3.196523343,35.66709883,1.907550423
-433,18.57077061,3.244649861,16.33317091,3.213588089,34.97209436,3.104119228,17.60880088,3.517754758,26.82830317,2.859661972,30.53844009,3.284307305
-434,28.95639427,3.284259967,20.35862836,2.841855896,25.36669992,2.600995795,14.69626551,3.221970598,27.82412036,3.273292553,33.24325568,3.147946494
-435,28.23195395,3.379850887,37.36755586,2.858765262,20.45023868,2.480077501,41.76328165,2.65554321,28.57457613,2.334312973,22.71129988,3.33189838
-436,16.6871276,1.828786835,22.80927226,3.74867569,8.602285617,2.62160352,27.41502566,2.387475584,37.36651666,3.306587348,38.22006752,3.544289741
-437,17.0477973,2.061729869,30.69885244,2.442781519,32.09528452,3.260532309,6.011539155,3.092795045,42.3217877,3.301466102,18.82667985,3.479506657
-438,14.24071461,3.595924079,10.84134728,3.236010889,23.43811222,3.539273362,12.61069144,2.921696697,18.18807284,3.396670854,6.78090339,3.524840218
-439,19.937524,3.953354824,19.37263826,2.885165496,24.3272591,2.969656698,36.20922135,3.876752316,38.36313951,2.098476251,14.5431273,3.098852633
-440,20.95050004,3.878543382,28.91146636,,29.95425976,2.948407855,27.12922865,3.482134854,16.06771411,3.631180311,20.14345362,3.283927811
-441,28.27309816,3.054650586,32.36071578,3.336491991,20.26967831,3.493973143,26.49805876,2.828248666,24.32273606,3.317524766,27.84923979,3.620621524
-442,32.28822298,3.255471275,39.00546215,3.248678473,44.76258483,3.656720262,31.95037552,3.133456831,46.13701267,3.554944918,10.46843778,2.065675371
-443,31.30411486,3.459450726,27.15759753,3.578074142,7.09001012,2.039895051,23.25865001,3.287256204,26.77287968,3.675344862,29.48180396,3.492470967
-444,8.533756501,3.056312179,34.88550589,3.579576898,28.95466194,3.445223187,41.6870877,3.282580594,29.10668414,2.680186115,20.95999962,2.407785624
-445,31.9660669,3.096793861,26.94552941,3.34905694,38.17841969,2.955530019,9.497422262,3.125335724,28.9445719,3.234366096,33.16766691,3.273754387
-446,13.85770351,2.28434917,17.20731769,3.247778656,12.50067878,3.630772763,29.41253722,2.948120881,18.14427647,2.760411834,47.71825173,3.477486694
-447,29.87980851,3.787935198,32.55258801,3.209275346,35.32012064,3.204457696,38.97646841,3.27025826,21.91098842,3.299056115,38.88184147,3.274428203
-448,42.29557994,3.662331442,19.66946213,3.091432208,36.80240851,3.024374414,22.41520022,3.487640271,21.15488492,2.883720054,34.28285004,3.373469859
-449,32.45870154,3.039709194,24.77941063,3.562232288,28.98535082,3.788790541,32.53406644,3.647656464,18.61887428,3.300323912,24.08632827,3.198497689
-450,29.30058866,3.545681429,19.23983712,3.555766545,29.29894423,3.579054004,28.95337493,3.182257685,19.84941146,3.553266283,8.201771666,2.72661531
-451,12.13252814,3.345137529,29.79851885,3.109956956,22.34997088,3.43516459,28.60942737,3.461729062,22.3454705,2.840511118,33.74792108,3.156699902
-452,31.39264995,2.832903461,18.56203972,3.455023922,28.46626389,3.871522696,22.18231578,3.393312725,27.2042023,3.391734545,9.678495684,3.582016558
-453,31.76902329,3.021271092,1.621859195,3.421804848,13.77953601,2.225329174,12.59470398,3.144510959,19.46386639,2.8984156,23.09189214,3.115908651
-454,28.12406138,3.497484899,34.39831727,3.748792613,14.44281669,3.570394885,27.07809879,3.537262786,19.13434486,2.939106144,20.32460403,3.623122448
-455,35.91540501,3.630303571,21.33797206,2.884072455,12.5931601,3.168084242,18.55048342,0.646962221,17.28158461,3.477944918,32.74087867,3.932171401
-456,43.08299869,3.396292387,31.75688145,3.836976904,26.98753015,1.522778933,26.21356369,2.440079387,11.02042558,1.065537137,27.29464021,2.558383712
-457,33.06477321,3.156199939,33.49429837,2.740007604,25.95804122,3.03959221,18.75257729,2.989765381,29.00820333,3.662927897,12.07566199,3.775429191
-458,26.08100047,3.426355553,4.912191348,3.436570572,9.476246132,3.798824281,23.40635364,3.161509011,24.56334574,2.815393721,38.92867448,3.135643171
-459,35.46139317,1.085209759,34.65134009,3.390658427,9.615329035,2.78020221,27.12713758,3.14062559,28.77615058,3.394785139,32.10314134,3.185907428
-460,14.56135595,2.973061504,28.87032208,3.671653291,21.1871591,3.748008706,20.7896541,3.536570925,32.30331696,3.09542595,8.404592649,3.224781517
-461,26.49907926,2.816516119,47.87229216,3.324619771,34.21455113,3.320983495,8.055192528,2.688451436,27.02511073,2.914737978,15.65076855,3.797645819
-462,28.35988519,3.436069285,39.05852051,3.091807575,7.818850369,2.290324988,19.86807266,1.226352218,24.68563151,3.037762723,21.44335315,3.269356823
-463,28.08963038,3.021463108,23.56639978,3.101568561,14.61774856,3.039803367,33.9017808,1.606728971,26.75355319,3.143468428,20.8999657,3.426950836
-464,36.37896225,3.368873232,5.219240282,3.075962654,62.67465833,3.652004823,28.54515609,3.422380364,16.79747132,3.219874036,18.44440143,3.700451799
-465,24.97691012,2.873313307,23.35207935,3.658720114,20.77110296,3.747328347,31.5363537,3.32405356,9.574845871,3.20044909,32.14567639,2.595859038
-466,14.04281639,2.947736952,14.69828546,3.100755094,38.79166452,2.375781155,29.96647011,3.005673501,14.99688806,3.176562857,33.68251771,3.569587048
-467,6.240550551,3.280492597,27.53777476,2.960490455,9.2197053,3.41718195,21.12613291,3.671012318,27.95726839,3.737145325,25.32153866,3.006895543
-468,40.10496149,1.351901193,26.96530208,3.263705353,14.32457302,3.53675421,17.23059951,3.633446672,18.2720823,3.810013451,26.51745142,2.932850186
-469,24.11123904,3.019833206,24.47519763,3.370129437,24.50152845,3.091638012,21.67683655,2.125310697,33.39276377,3.280801865,24.5262983,3.237553469
-470,23.90385554,3.142848937,18.96728815,2.620425093,2.811398389,2.261151688,23.1196808,2.835740748,24.59781842,3.482267412,18.35836049,3.345551705
-471,32.9303291,3.355565883,37.61257611,2.710351129,46.11555211,3.624910431,13.15222084,2.628928828,47.42955641,3.327814624,20.68959916,3.705332572
-472,15.66271959,3.435618396,15.48675118,1.463317181,51.92937427,3.115642597,26.73010604,2.036374134,2.516850341,3.514485518,13.37842595,
-473,13.92028586,3.821473872,19.06957568,2.927141308,37.01725535,3.413614185,16.44106887,2.78983288,32.43438276,1.803295761,31.41640414,3.104779002
-474,28.67732711,3.055809555,21.25814945,3.283431244,27.03221964,3.762250969,33.38675633,3.094653339,27.52992028,2.946627088,20.13006069,3.300251014
-475,39.77366083,2.970152376,18.77127755,3.206260573,32.12383965,3.394792084,24.85468279,3.37484828,16.01513699,3.14978626,38.11907115,3.063056076
-476,29.74751542,3.527662451,38.24835021,2.842492481,26.84216474,3.242096903,17.47441324,2.569258345,31.32402727,2.827962569,9.100959942,3.521119884
-477,23.24586872,3.78193676,17.83885016,3.564251613,21.25583437,3.350271937,28.63315272,2.73207795,21.01510713,3.671722349,8.591084008,2.907682105
-478,22.19530817,3.208540999,40.40549637,3.171592261,12.92857608,3.232934834,28.80579655,3.715754591,18.40338414,3.574593455,25.07757713,3.022209688
-479,41.87161606,3.060043342,21.13219306,3.19375855,31.36233438,3.83405429,11.48547974,3.354187463,25.29148418,3.320656949,27.08105533,3.317094651
-480,16.56210766,3.541238324,27.39698539,3.240474639,10.72753722,3.44649707,27.02578143,2.59522954,26.01409531,3.354971363,52.80942069,2.751916183
-481,41.46654991,2.08505444,53.57294794,3.481074005,23.02324078,2.785929034,20.4082724,3.095284347,18.51250143,3.507487363,18.48832638,3.070933721
-482,25.87385803,2.948007549,25.76123618,3.202354644,21.31533681,3.193324406,18.25458982,2.772195526,8.367859401,2.639507739,29.51018368,3.284219125
-483,25.0355976,3.299081931,17.55901993,1.871347776,34.62740496,2.445208838,7.599394961,2.880127184,16.10436801,3.400120134,28.04695631,3.035985735
-484,21.60806406,2.604924115,35.1303899,3.306529503,8.310237436,3.486037103,13.46307151,2.963913227,31.0611284,1.72646988,3.394114868,3.226798366
-485,38.29950999,3.067834777,18.17337575,2.884840768,17.57281176,3.534922444,37.54822564,2.985376012,33.94068281,2.730957479,33.7725797,3.386793295
-486,42.48573357,3.675741992,29.96909606,3.613344896,17.89680726,2.634439192,27.04955303,2.904353067,1.513574906,3.695283872,24.85478807,3.398071113
-487,14.32053113,3.634384054,40.07026679,3.232618641,31.61178742,2.911831571,36.33481836,3.653454853,24.84866535,3.587263637,30.48183392,3.734849141
-488,32.02327529,3.501602767,33.11246485,3.322797626,7.765809863,3.276161103,14.24390791,3.518532327,25.33463199,3.316674856,37.86174156,2.728178237
-489,40.91133334,3.530286241,29.22743942,2.939304245,21.59182615,2.490444547,7.517589463,,31.68090139,3.317471188,25.37193424,3.613116706
-490,14.11108449,2.392471656,31.16448646,3.62852685,28.4759152,2.647553589,7.883628652,3.605729562,23.56509874,3.250250744,17.86841313,2.377375425
-491,19.29959743,3.663824527,35.16475666,2.897787703,5.719605518,3.424084421,22.30933488,3.59870865,26.24265565,3.01124815,13.49156011,2.912654414
-492,13.63291936,3.221036444,14.6300802,3.282167616,46.19332579,2.624720796,13.54631036,3.195694691,15.71744731,1.280661825,27.05441076,3.231226173
-493,24.00301947,3.418358722,39.97869983,3.320717703,25.36594604,3.490349198,28.23135494,3.484216318,28.50387829,3.44005041,21.15798979,3.026232472
-494,20.32374864,2.992992777,21.52481253,3.12704772,10.41562683,3.619714134,22.76266695,3.643281068,19.50005868,1.683236738,42.49056684,3.790989654
-495,21.41979592,3.498555407,34.19530598,2.129441415,25.66272474,2.49042286,27.04273996,3.44737187,19.69261194,3.685045035,11.23166314,3.435894022
-496,14.49168211,2.892244501,20.95651723,3.421228497,27.154678,3.154995986,15.14077528,3.051183697,26.54311719,3.543268656,14.94024254,3.332616615
-497,36.97748014,3.5155828,49.93394565,3.497073236,37.26331957,2.764821777,32.38517881,2.864513604,14.37138908,2.62781942,5.871879361,3.079506727
-498,14.60633234,2.690794404,29.63618127,3.066496786,23.23640888,3.342308875,14.56359678,2.539921769,26.19301381,3.216305981,25.982689,3.126756138
-499,11.88261821,3.151652151,20.79456037,3.341852636,20.23213522,2.978022695,31.80229668,2.785794707,15.6599317,1.177755212,20.86958124,2.943728913
-500,26.19405401,3.567961613,14.25892043,2.538898597,36.99080645,3.833457818,17.43579838,2.861260352,11.25766319,2.976958385,33.43534606,3.133684803
-501,29.90377506,2.578154339,4.482677111,2.170757244,28.4112966,3.248064324,29.30819746,3.091209372,40.66805532,3.5508739,33.85151804,3.711387191
-502,27.0948767,3.343464803,25.8822552,3.618902713,28.69253907,3.62312151,26.31231189,3.32016274,26.00004624,2.910402657,26.17445911,3.775876834
-503,44.78593335,2.696598567,20.18040877,3.130920496,12.64788818,3.26853825,23.57494658,3.52434179,35.23295631,3.229092815,35.51605575,3.34327712
-504,14.83553947,1.542822845,24.70173697,2.792608997,32.02959506,3.197003297,20.49602687,2.667455788,15.90619137,3.848189087,19.07977509,2.552187671
-505,31.96531798,3.140510258,25.56558847,2.825279356,15.67890983,3.104320777,27.18369525,3.369333508,26.02057539,2.598327662,28.01200737,3.32157862
-506,35.86466311,1.799293891,18.48037494,3.115377682,17.4085372,2.013894607,19.6521144,2.942312843,13.52932151,3.040528211,21.56852373,2.419889787
-507,21.8588379,3.210076285,33.67798012,3.43827268,17.06712856,3.165567848,12.38543335,3.061090032,18.10945557,2.862820361,14.22163252,3.081671118
-508,12.29812792,3.371701024,43.70111406,2.960539465,30.26556058,2.876772419,34.88821681,3.279387797,27.01252395,3.201149389,32.38551045,3.28283257
-509,19.08151612,3.009971439,26.08555961,3.600140126,22.9852793,2.177771456,30.14807211,3.565218011,35.52071466,2.998368624,4.804965274,2.777838015
-510,9.876570653,3.212930401,30.49595154,3.392490165,19.1250296,2.863307386,30.52090923,3.139193011,22.302165,3.386161481,23.29472647,2.383047036
-511,7.218711163,2.82047858,14.99632925,3.5275525,19.79030709,2.76541145,25.08982923,3.594452278,22.38135823,3.845975687,15.51624305,2.929072939
-512,29.41001493,3.075133381,15.95632042,3.176376927,20.20679435,3.848740473,16.39183554,2.787240619,39.06340648,3.042222523,19.11940993,3.92335259
-513,38.22504221,3.470266417,11.34263561,3.08483464,14.29668,2.688500594,26.62376548,3.3861495,27.06641055,2.819453123,14.27079233,3.142610668
-514,24.0976677,3.47888404,24.68181089,3.054984166,16.06383319,3.118716261,24.32445685,3.631689152,25.4420651,2.734271231,28.09239009,1.542104876
-515,12.11830954,3.423499706,18.04096491,3.125330151,36.44664495,3.701920152,18.04011187,3.125126931,25.62708434,3.62930703,53.9351913,3.467120819
-516,29.86711677,2.731752219,26.69464527,2.249422191,22.91611631,3.139960025,31.14846208,3.236133271,24.65742617,3.348000702,13.22150361,3.009622449
-517,47.72003911,3.384649048,20.71486342,3.176192882,47.12315568,3.055309309,21.1426369,3.085314888,19.18410177,3.325144327,55.26184652,2.705423478
-518,17.02377995,2.815333154,19.21251753,3.314227923,34.86621037,3.260109713,22.53807215,3.019781669,15.90093782,2.047169582,35.68225191,3.410698739
-519,19.57307341,2.855209046,15.91496713,2.823694328,6.178064588,3.310891568,63.03693297,3.566073969,23.50759227,3.510897502,21.37963728,3.252420815
-520,44.11147529,2.496252474,33.36074438,3.579767361,38.58944805,3.743751981,23.26878392,2.075417377,33.13495737,3.412492676,42.36683435,3.09431859
-521,20.55941027,2.92548193,18.43037361,3.322346817,26.47270812,3.102623668,37.09131308,2.656222845,38.90770329,3.484570475,26.24427255,2.817089074
-522,17.5199055,3.404919853,21.88291631,3.384570784,13.75271812,3.689727295,21.82747518,1.92132338,30.70178582,3.458425617,20.15430385,3.075592004
-523,18.41539858,3.554847313,49.90226905,3.50468559,40.21185661,3.097093001,25.39803875,2.358387962,14.70044414,3.436715026,12.35835179,3.808148436
-524,36.36981537,3.251364828,38.85955181,3.876572052,21.28075097,3.164932847,22.8740113,3.207946547,30.70810185,3.259299049,24.63539168,3.168183063
-525,20.56099602,3.927441582,32.85889413,3.139671867,35.97116626,3.222335806,11.98328952,3.150632827,13.15805924,3.317424423,12.92578526,3.310359134
-526,37.73187378,3.012665622,22.44170855,2.808419872,24.77655788,2.274321227,25.60783075,2.37314341,17.73916872,2.086963896,28.64702868,3.318016636
-527,19.09631534,2.891356346,7.113530155,2.776426442,26.43079571,3.331379728,8.313554676,3.571196135,24.64779243,3.20601982,22.03203697,2.637967567
-528,23.91089862,3.272959876,24.44641594,3.198707697,18.4595573,3.610045168,9.151541132,3.644386494,31.57186074,3.505452808,24.04832154,3.277552879
-529,14.15421793,3.202238394,15.57361542,0.042018378,22.22875454,3.378864685,33.57588654,2.892269502,13.62678898,3.300227671,12.43587412,3.077150671
-530,27.08341141,3.291862304,11.06453559,3.267975509,26.13081838,3.565088653,20.58970107,3.53155331,17.09871837,2.975707906,57.54149977,1.930263187
-531,41.93490958,3.563077314,25.95523278,3.308317202,19.15386569,2.699338223,18.16189027,3.797976643,32.84881801,2.704794598,30.62878054,3.4635976
-532,12.97026181,3.036684343,9.824135282,2.617698798,36.0114921,3.247307046,14.57966766,4.047819685,28.19378316,3.222604821,46.79732908,3.629563308
-533,24.61116709,2.924375632,6.942916888,2.704136644,39.65173017,2.961399482,32.79758847,2.823131163,36.08203834,2.592314755,29.14959123,3.576453199
-534,38.88088224,2.856793629,19.5436505,3.146460618,14.09536189,1.88287747,22.70468882,3.513329633,30.22701586,3.691434916,15.8356562,2.900061759
-535,27.13654215,3.250757855,19.17029203,2.898171192,11.09199003,2.951576708,19.1096873,2.57817155,28.93030531,3.366143482,23.95025475,3.4606646
-536,32.22189221,3.190871607,27.43403961,3.786991832,25.04625205,3.672858816,33.22550299,2.832336283,31.55635187,3.727598647,41.8444125,3.746589017
-537,31.95818351,3.232128042,23.37253659,3.41015317,28.44257865,3.370819119,25.23436047,1.731995811,30.81995355,3.239830966,13.68327639,3.399102733
-538,37.35044277,3.042161812,16.90772848,3.669358723,9.016415578,3.385621977,40.01990379,3.224193529,22.87578842,3.808215404,25.89878781,3.424853564
-539,18.31009893,2.857596902,13.27279458,3.421184003,44.48321275,2.161577793,36.67400966,3.445898117,25.16860563,3.040305272,13.80133501,2.402414287
-540,37.73402576,3.689219202,3.578591716,2.704081083,42.66525224,3.403164488,23.53332989,2.848787961,32.42755997,3.447971397,40.60940916,3.13942259
-541,40.45452708,2.889584161,33.310752,2.905833643,33.74744626,3.51901474,19.95562963,3.451503525,22.25099499,2.453468339,37.00953305,3.008609391
-542,34.97621041,3.133440647,18.52473987,2.90652317,7.116508546,3.892139128,23.22959091,3.691541768,35.06437946,3.301955666,18.77587853,2.82859574
-543,41.76091179,2.678518982,33.16173077,3.612483436,19.63814691,3.277146296,24.71030541,3.205286969,39.80228745,3.559885889,16.62140509,3.482394945
-544,27.27913294,3.585040954,19.04473441,3.169159079,28.74504893,3.224950679,28.78169907,2.81894693,28.51371418,2.048071739,30.2978492,3.274271249
-545,35.3565368,3.208818318,18.29146926,3.382144827,35.74522735,3.329245926,15.9824159,0.225551461,23.45485271,3.445988532,30.67648506,3.258539392
-546,31.57646711,3.321660715,5.904400151,3.539304263,38.31367785,2.202788432,17.36888702,3.423578799,29.69634985,3.172475721,46.22763037,3.769713405
-547,34.40159103,3.310057129,26.95451189,2.914171752,15.72356492,2.880257385,34.61324878,3.015763672,23.91307288,3.116447605,29.8154902,2.892743563
-548,14.61044073,2.897636848,13.15882706,3.151835272,24.92212532,2.825730158,17.40919556,3.1306623,28.98543404,3.830616787,29.1949542,3.643757409
-549,32.90017674,3.15833312,6.482371407,3.348652526,28.49557582,3.058291571,31.2458735,2.198077866,20.59626873,2.816336885,23.62185386,3.765141416
-550,24.72983773,3.129677776,19.45576396,3.680225848,39.49987689,2.77629817,6.240362965,3.414336313,13.22936003,3.300875596,40.66736728,3.288096372
-551,24.39940621,2.522019506,41.64076718,3.435440493,52.94154094,3.272555196,29.50251507,2.969168768,13.23990496,3.726461523,32.76052391,3.954633203
-552,28.09817223,3.332012483,28.31211479,3.17075579,30.30980128,3.025124379,28.25162578,3.490025362,18.83068878,2.797411416,28.93568646,2.780753685
-553,26.32306565,3.080516873,10.76908953,3.071233051,27.69638178,2.905789856,25.86711749,3.578583871,22.44832199,3.412340825,19.76297351,2.419224151
-554,36.29852247,3.10542367,32.23215351,2.956210795,28.66250109,3.406023732,28.64521687,2.274881136,17.82645911,3.671486723,17.40001876,
-555,30.68757428,3.111086267,21.15461532,3.105378708,28.84882215,3.154458208,7.668246379,3.558577588,46.09449,2.71966345,16.26892586,3.759027878
-556,12.84287886,2.690835936,28.39393352,3.656965535,14.44103011,3.45324663,36.44811145,3.197897866,15.8403325,3.382002051,50.08964928,3.554433042
-557,10.98951316,3.830990485,29.99423907,2.949466988,32.75625197,3.481132208,19.91571467,3.215303075,20.18656287,2.918898178,30.21629085,3.4584798
-558,16.46160395,3.320366615,11.22983693,3.122732995,22.16653122,3.040496888,43.82018282,2.887488341,24.01296648,3.479998792,37.90638468,3.103405997
-559,34.15761981,3.208515918,-2.266506548,3.128875994,29.51113557,3.153678892,26.07652696,3.199817369,30.29979074,2.450740734,12.68389318,3.72637838
-560,37.54569785,3.162824609,21.93733137,0.773059867,20.45736335,3.137284201,17.96261262,,30.72229101,2.881320031,1.838313562,2.753359863
-561,27.75948587,3.360300137,39.11825966,3.109627259,28.5277989,2.731368999,18.80272662,3.059750187,42.45068181,3.22935804,21.09640027,2.925710988
-562,29.24160211,2.003576034,45.15315005,3.2735845,18.60453811,3.028640123,36.93483401,3.126703505,26.93618303,3.089994693,26.66847738,2.361899252
-563,21.29203221,3.254550533,22.4620405,3.578462306,8.980715258,3.16296174,24.82082822,2.853688868,37.58773152,3.548787413,33.89376276,3.189366447
-564,20.03942409,3.026564366,41.20433236,3.331456755,38.11938873,3.150769782,23.3479176,3.182031229,12.36264726,3.347915012,45.07274865,2.8073888
-565,26.30222778,3.276402701,33.7248939,3.102956297,8.872750395,3.38854641,29.4807075,3.549542561,41.40598738,2.391590031,14.07426337,3.498738974
-566,21.58111137,2.674938887,18.14474033,1.453679969,19.29225098,3.293614882,20.04901742,3.32210465,37.8555973,3.277064099,17.29356662,2.763028966
-567,18.61238236,3.509965247,27.33657453,3.087239563,12.38700815,3.678602119,46.67196006,3.612601954,23.72311192,3.301362202,23.96966733,3.220430951
-568,32.29436972,3.321917905,24.99014887,2.874463819,46.13754405,3.019343706,29.34857215,2.932926091,30.51202908,3.716118061,37.82703292,3.361166362
-569,2.541818364,3.688084883,43.45427291,3.104396919,21.55642473,3.61219023,12.28409033,3.159212753,39.4330443,3.253533271,23.97222039,3.769212624
-570,20.33986732,3.291559577,47.19023825,3.569308517,31.78723336,3.391684696,25.67186665,3.782711865,23.25246448,3.256636433,39.30044117,3.096039296
-571,13.29653941,3.623203192,33.85200792,3.759058459,38.02650058,2.950511122,40.72037697,2.749704684,39.85498618,3.246631465,20.24396004,3.402540792
-572,4.084691994,2.61999943,28.40999552,3.601864507,12.23984346,3.782520706,40.82282911,3.377819663,29.7396209,3.550026534,31.67719913,1.909736932
-573,17.91956923,3.200025555,11.41349841,3.896183168,23.17635452,3.672817317,13.99207789,3.251624688,20.91158703,1.638833692,36.99454816,3.109618616
-574,16.64803465,2.011181705,38.34789046,3.546388629,22.56781873,3.023940717,30.35776885,2.459730033,6.127871111,3.066249809,21.36694799,3.26614244
-575,19.97557832,3.381618174,14.55033062,3.476111222,16.71761752,3.375355548,20.85442962,3.254093372,29.48792223,2.539221713,31.00169264,3.292117206
-576,31.745873,3.799426938,31.57903964,2.462253526,26.7015203,3.029481195,33.2334204,3.283574105,17.27455421,2.972739257,32.36598032,3.28057084
-577,37.11539805,3.319257864,16.89039812,3.751182689,19.72037126,2.98182031,23.27162066,3.114010852,14.67411673,3.446386608,22.76390336,2.520869826
-578,11.10911025,3.014045779,25.55682656,3.22522409,16.22373653,,33.47616727,3.482165159,33.52443119,3.18713342,12.85125063,3.264561571
-579,31.44400246,1.945794711,24.24139785,3.494967201,20.41519601,2.476483283,24.61868896,3.043998871,18.4283557,3.586680396,24.94222906,3.414516877
-580,24.55030963,2.408674749,30.52906885,3.586618862,33.93823276,3.1944252,32.07180916,3.177512402,38.70126722,3.358235341,32.75010186,2.625996328
-581,20.07250856,2.961881349,31.24256867,3.051356045,33.76523239,3.554179025,16.64391479,3.320101921,38.17894159,2.519645486,26.32476782,3.299999162
-582,3.076677963,3.398384402,21.29953739,2.954445942,37.89510763,3.129725695,23.24786692,3.214749377,37.75013104,2.911660353,13.625504,3.290345918
-583,27.36071096,3.436730148,34.5266439,3.500508687,37.43215098,3.860767498,32.97891932,3.143895222,25.78902881,4.009861434,19.57950462,2.244042942
-584,45.23091954,3.183592601,1.874577429,3.502535245,31.75903975,3.63036582,34.38056688,3.733550003,35.11229092,3.238901401,24.76517026,3.044637115
-585,13.86789262,3.320779828,33.03323471,2.658019926,28.69241093,1.857012957,22.04462833,3.220259983,24.92805711,2.801034481,12.04209129,3.328305432
-586,7.408167915,3.773538178,24.54266401,3.182035626,17.84382613,3.350508396,30.69937448,3.44659141,29.41144672,3.544853114,20.81142426,2.517017657
-587,21.55551176,2.73045827,30.23698908,3.159371874,25.57636206,3.481440454,7.249325236,3.539864173,19.17436737,3.13616679,16.13309886,2.645180832
-588,26.84439791,3.657973413,30.598724,2.786649369,23.50649287,2.427501314,34.65342388,3.466747493,13.0183176,3.499658447,22.87635128,2.629806922
-589,13.78434214,2.444750682,29.70088448,2.578828151,22.07861832,2.244988082,35.87741515,3.618414328,18.60278412,3.365173658,13.06001784,2.995097125
-590,34.64426542,3.679313041,-4.186185039,3.78675752,9.729301415,3.644506498,26.38298411,3.286801794,46.25403626,3.567649179,34.74606194,2.440510634
-591,45.96866243,3.324783197,20.09085658,2.969382144,30.37301604,3.448852504,53.61535029,2.453178113,41.59725849,3.212625591,38.83532483,3.616808894
-592,13.94999174,2.993182625,16.01986162,2.742002278,34.63361849,3.552755804,17.50074553,2.27886709,28.99720636,2.871304114,15.78419631,3.584094079
-593,30.60040795,3.677904641,36.52116467,2.998288618,16.95420825,3.401843934,10.90354207,3.048133916,28.7645682,3.157939168,20.95650675,3.435842908
-594,26.26699944,2.781301169,14.8047067,3.182696275,12.28926229,3.671760853,15.35147503,2.669184387,33.68476358,2.789708946,29.32491639,3.145343
-595,41.00315343,3.365322579,25.48784554,2.69945541,16.51711858,3.17179131,54.02581911,3.254992006,33.02488647,2.103567191,13.95834731,2.053178146
-596,36.03806892,3.149336166,11.48643544,3.346378188,15.96518259,0.616488953,38.5351855,3.299888129,26.47818456,2.744351256,34.19932306,2.67280854
-597,13.14713484,3.599593762,22.48466921,3.671706615,39.76221011,3.021051163,17.01381284,3.25577541,19.68240273,3.239829119,25.60372295,2.550969555
-598,47.19085728,2.596564963,33.37881255,3.19997515,20.87411708,3.660377452,39.57520188,2.650020833,29.78450331,2.589776093,35.55294582,3.029833683
-599,48.0010945,3.053639458,21.66622568,3.292330948,22.97555183,2.971759132,21.49173003,2.440191581,32.49338899,,30.57110899,3.304995759
-600,18.90366649,3.043934817,13.05115506,3.667032554,19.67291787,3.513750538,32.63499982,1.124328952,34.43456961,2.574438526,20.37977939,3.905157811
-601,22.20702921,3.351655793,14.69709076,3.510765991,17.3153932,2.838261323,40.31957053,3.039997323,28.67021869,3.429062813,21.48631335,3.10591669
-602,31.47254284,3.005413335,18.90264548,2.499824829,16.30107163,3.256523431,27.80074068,3.392740883,36.19430884,2.422607495,11.607274,3.437204754
-603,31.55142819,0.164856524,-11.77716525,3.317460971,15.87242234,3.94446718,11.67224776,3.188942413,16.66086538,3.750868311,41.58730912,3.290119009
-604,27.19297864,3.489709321,28.49955361,3.260325965,27.41288846,3.612469274,38.70696442,2.921644998,30.97796058,2.906236824,12.78298011,2.721488804
-605,44.14084724,2.842416559,23.92836348,3.082777462,32.8584129,3.339461838,20.06029663,3.24823734,29.54891201,3.408578127,21.29230903,3.589435169
-606,20.71049486,2.881351149,23.26805372,3.371483684,23.3820533,3.567264806,37.1240862,3.02923798,15.42566311,3.685234291,24.84109344,3.137285778
-607,24.80783735,2.957656336,21.75807451,3.689808351,34.15061329,3.588124731,-6.164146535,2.82095294,27.35907799,3.138747365,22.88990405,2.634615976
-608,19.39858697,3.58786797,14.01656711,2.120462645,32.93255487,3.51068042,29.00830758,2.412422505,32.71821246,3.428644048,30.17269216,3.749263926
-609,33.40374973,3.126845449,21.55583722,3.338930877,41.16505268,3.63206813,10.15763079,2.967305355,12.05467451,2.103174689,28.75439432,2.833045301
-610,8.494695971,2.046496117,33.00355941,3.055409861,28.72027546,3.404486475,16.37115431,3.175282983,29.13270879,3.816751122,16.61680335,2.25279676
-611,33.24783663,2.744576082,12.26263455,3.193905538,59.97315324,2.981455249,22.87459074,3.102790456,23.40175103,2.146657682,29.16511283,3.291096072
-612,19.00434558,3.161396822,34.76454895,3.367135471,30.45499914,3.167593597,28.72135283,3.460543341,12.4455523,3.520584821,20.81145614,3.451735804
-613,22.71509725,2.967940079,24.70833566,3.72623034,20.10061249,3.264248408,16.96060754,3.373638014,12.91579789,2.628930027,7.343938175,0.27083831
-614,25.84422091,3.5596581,10.38354628,2.937588479,10.54612597,2.739059697,21.46766634,3.107666362,18.39533588,3.458367291,22.68905065,3.526117911
-615,21.27011182,3.307239799,39.10227912,2.833905976,27.2334117,3.419848624,30.77481426,3.200952254,18.94788465,3.032122426,9.301339931,3.205396374
-616,27.38523718,2.521763694,29.21681384,2.616533903,41.3331806,3.158193232,12.37971762,3.724535939,41.72294362,2.125020217,2.55938581,3.170087696
-617,6.054300885,3.790320837,5.615607463,3.456418952,19.24080804,3.139110916,47.99141133,3.1810589,39.00848928,3.13078911,35.47553716,3.118643421
-618,30.11393116,3.393158934,29.0190691,3.293707687,23.47907841,2.766266913,21.83750752,2.766330597,25.15956715,2.090200814,40.04893018,3.069090015
-619,29.55991081,3.23817965,24.95051098,3.215566955,25.13607442,3.004162896,29.95360914,3.767274083,25.38557115,2.800024234,50.95915735,1.240551625
-620,24.75754217,0.823281996,19.49405703,1.825228149,11.43444947,2.615277647,19.13744037,2.837617252,34.53412115,3.685770077,10.90204954,2.75890733
-621,18.40332776,2.805835336,20.26723553,2.59731902,19.55348947,2.917861137,18.14834903,3.007298554,31.01708448,2.484858661,29.67872147,2.994514828
-622,38.87120924,3.398359283,18.9535837,3.536295396,20.71746492,3.374860415,28.37020674,3.392023103,30.43197258,3.563956864,19.15138633,3.326246347
-623,15.99436784,3.360623232,32.46652075,3.39397553,24.38662541,3.110670168,42.26169891,2.946526145,13.80986408,3.339191983,15.40099644,3.508387597
-624,28.04867251,3.390324544,25.86772619,2.813840397,35.81370846,3.660168544,11.87826858,2.794505303,29.51610385,3.188843632,25.73264927,3.014024252
-625,24.70621826,2.431877438,35.84101623,3.345541541,31.73142281,3.676944107,55.46320087,3.399294053,29.49243972,2.909698766,24.70706833,2.790664665
-626,25.53904573,3.580105366,31.97458385,2.617590352,4.782935521,2.827708264,20.22538157,3.615987124,31.87675486,3.755285805,23.99523927,3.539062061
-627,9.794206367,3.378109232,22.68736382,3.620926951,40.92309274,3.269081371,15.83001915,3.131115699,27.15127157,,15.06986063,2.682756915
-628,36.43699223,2.569998863,8.035244375,1.87409156,23.7977607,3.558979534,38.0201771,2.55351282,18.89879564,2.586158876,37.76881405,3.612166711
-629,35.53257462,3.185965627,12.32770932,3.194867573,44.6344174,3.836558473,30.1264104,3.068977277,34.82745496,2.904566651,24.03232605,3.555904976
-630,45.86098551,3.537259073,14.49966125,3.60761717,12.4168893,2.744681601,31.27834453,3.775938661,32.22325341,3.74739984,-1.655230445,3.422653976
-631,24.93043907,3.358074538,36.96503846,2.892185293,27.35319004,2.450396199,26.75099018,3.202211355,22.22285584,3.041003963,38.37179285,3.218550009
-632,28.18796809,3.410138881,16.62144181,3.512450588,25.93694224,3.389645837,37.01182886,3.209367476,13.56372118,3.237671065,22.34480172,3.543609558
-633,28.50906805,3.454260877,17.56092583,2.687738993,31.86376397,3.361142544,6.911017107,2.995439302,19.3475635,3.680860624,22.60557688,3.554207525
-634,8.565587039,2.859398529,41.63731952,3.128538393,29.20536466,2.672904663,15.58071455,2.601144662,14.09142292,2.986168613,32.28227953,3.209638497
-635,22.8144289,3.323891712,23.67635332,3.66078453,20.52686232,3.20768163,37.37686834,1.9228897,21.10603374,3.232129373,27.03696167,3.423598475
-636,42.02105397,3.847560841,35.16238696,3.324280462,24.82941741,3.010081946,34.20140801,3.46956938,36.83814929,3.296344881,32.1555639,
-637,21.65252695,3.510209153,24.01785389,2.915232274,29.63351293,3.218799271,32.59007409,3.503033635,50.52843629,3.225233139,17.98438535,3.279595655
-638,33.61057494,3.360273299,35.39183615,2.697277538,45.14297206,2.818646897,14.71162704,3.167616449,28.98564895,3.097669806,18.39724277,1.895690267
-639,8.986729157,3.633603491,20.20444489,2.3639856,22.78075422,2.387972363,20.39407602,3.014666587,20.99550793,3.522169637,13.22151018,2.820777605
-640,26.04388498,3.047819572,26.94778353,3.318978607,26.87316713,2.904179864,17.99489188,3.05780454,9.994356295,3.555040924,21.0636342,3.631553024
-641,13.66489268,2.241534893,11.87675968,3.081872969,10.61055641,3.22111009,17.04390526,3.009555656,9.929109301,2.421775034,38.04597011,3.735849491
-642,0.227477655,3.665380451,11.85479823,2.881393609,25.48210941,2.320781302,19.09237051,3.414120959,15.53216749,3.00701668,21.48518387,3.014355546
-643,28.84329541,3.262321759,15.48247005,3.381469635,48.25186504,3.563421385,20.69151353,3.481916788,22.5140777,3.364717514,48.54853688,3.872733971
-644,22.9101483,3.506731772,26.53590928,3.14187258,21.69303904,2.942887433,38.02649761,3.570866155,18.93768871,3.317950621,30.67397161,3.124105456
-645,19.03924333,2.7768907,32.80418442,2.906555344,20.91214053,2.473092387,12.44662605,3.00882532,14.76572913,3.35773326,18.3837132,2.91568892
-646,44.86229531,3.766400162,26.208271,,24.15669926,3.037709133,36.76886678,3.55157144,27.74084481,3.53617545,16.90585889,3.266487366
-647,35.58583126,3.134700073,45.58488046,3.402653878,19.06132555,3.653057855,21.05336696,1.645478244,22.08999446,1.869484636,29.57672586,2.650152993
-648,29.94578296,3.446863021,12.90734681,3.288247379,31.54228566,2.989306085,27.37228363,2.896655462,35.02338259,2.934621237,31.09946889,3.49278768
-649,31.38659328,3.203424551,16.87265736,2.578808923,35.78911068,3.093270761,37.80114073,2.56989144,23.47371678,3.83269139,15.24880583,2.497219828
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/isa.assay.xlsx b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/isa.assay.xlsx
deleted file mode 100644
index 3c215d7..0000000
Binary files a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/isa.assay.xlsx and /dev/null differ
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/isa.dataset.xlsx b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/isa.dataset.xlsx
deleted file mode 100644
index f1d2278..0000000
Binary files a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/isa.dataset.xlsx and /dev/null differ
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/protocols/.gitkeep b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/protocols/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/protocols/extractionProtocol.txt b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/protocols/extractionProtocol.txt
deleted file mode 100644
index 41de6e7..0000000
--- a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/assays/measurement1/protocols/extractionProtocol.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-- centrifuge again
-- discard the supernate
-- solve the pellet in buffer chemical X
\ No newline at end of file
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/isa.investigation.xlsx b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/isa.investigation.xlsx
deleted file mode 100644
index f6c25d3..0000000
Binary files a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/isa.investigation.xlsx and /dev/null differ
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/runs/.gitkeep b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/runs/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/.gitkeep b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/README.md b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/README.md
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/isa.study.xlsx b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/isa.study.xlsx
deleted file mode 100644
index 321ce55..0000000
Binary files a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/isa.study.xlsx and /dev/null differ
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/protocols/.gitkeep b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/protocols/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/.gitkeep b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample1_e36ca6b8-19ba-4504-aa82-d4781765873d.png b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample1_e36ca6b8-19ba-4504-aa82-d4781765873d.png
deleted file mode 100644
index 369be75..0000000
Binary files a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample1_e36ca6b8-19ba-4504-aa82-d4781765873d.png and /dev/null differ
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample2_714ca2b7-22b7-4f69-b83d-9165f624da25.png b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample2_714ca2b7-22b7-4f69-b83d-9165f624da25.png
deleted file mode 100644
index bf11050..0000000
Binary files a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample2_714ca2b7-22b7-4f69-b83d-9165f624da25.png and /dev/null differ
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample3_66fac760-acc7-4ed4-ba21-2cb67fa36e4d.png b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample3_66fac760-acc7-4ed4-ba21-2cb67fa36e4d.png
deleted file mode 100644
index dfa265d..0000000
Binary files a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample3_66fac760-acc7-4ed4-ba21-2cb67fa36e4d.png and /dev/null differ
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample4_cba5f40c-fc05-44d6-a589-b0e3dafaeefe.png b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample4_cba5f40c-fc05-44d6-a589-b0e3dafaeefe.png
deleted file mode 100644
index 8bb7def..0000000
Binary files a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample4_cba5f40c-fc05-44d6-a589-b0e3dafaeefe.png and /dev/null differ
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample5_84c37b60-2342-4226-a36c-4b8dfe84ebe9.png b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample5_84c37b60-2342-4226-a36c-4b8dfe84ebe9.png
deleted file mode 100644
index cfb9823..0000000
Binary files a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample5_84c37b60-2342-4226-a36c-4b8dfe84ebe9.png and /dev/null differ
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample6_208df064-4b1c-4da0-a1f8-6412e1fb2284.png b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample6_208df064-4b1c-4da0-a1f8-6412e1fb2284.png
deleted file mode 100644
index e5c5c41..0000000
Binary files a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/studies/experiment1_material/resources/Sample6_208df064-4b1c-4da0-a1f8-6412e1fb2284.png and /dev/null differ
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/workflows/.gitkeep b/tests/ARCtrl.NET.Tests/TestObjects/ARC_SimpleARC/workflows/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/Contracts/TestReadMe.txt b/tests/ARCtrl.NET.Tests/TestObjects/Contracts/TestReadMe.txt
deleted file mode 100644
index 793aa68..0000000
--- a/tests/ARCtrl.NET.Tests/TestObjects/Contracts/TestReadMe.txt
+++ /dev/null
@@ -1 +0,0 @@
-This is a test
\ No newline at end of file
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/Contracts/TestWorkbook.xlsx b/tests/ARCtrl.NET.Tests/TestObjects/Contracts/TestWorkbook.xlsx
deleted file mode 100644
index dfc1e46..0000000
Binary files a/tests/ARCtrl.NET.Tests/TestObjects/Contracts/TestWorkbook.xlsx and /dev/null differ
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/Path_findSubPaths/File1.txt b/tests/ARCtrl.NET.Tests/TestObjects/Path_findSubPaths/File1.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/Path_findSubPaths/File2.csv b/tests/ARCtrl.NET.Tests/TestObjects/Path_findSubPaths/File2.csv
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/Path_findSubPaths/SubFolder/File3.xlsx b/tests/ARCtrl.NET.Tests/TestObjects/Path_findSubPaths/SubFolder/File3.xlsx
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.NET.Tests/TestObjects/Path_findSubPaths/SubFolder/SubSubFolder/File4 b/tests/ARCtrl.NET.Tests/TestObjects/Path_findSubPaths/SubFolder/SubSubFolder/File4
deleted file mode 100644
index e69de29..0000000
diff --git a/tests/ARCtrl.Querymodel.Tests/ARCtrl.Querymodel.Tests.fsproj b/tests/ARCtrl.Querymodel.Tests/ARCtrl.Querymodel.Tests.fsproj
index 86126e9..42246e3 100644
--- a/tests/ARCtrl.Querymodel.Tests/ARCtrl.Querymodel.Tests.fsproj
+++ b/tests/ARCtrl.Querymodel.Tests/ARCtrl.Querymodel.Tests.fsproj
@@ -16,11 +16,7 @@
-
-
-
-
diff --git a/tests/ARCtrl.Querymodel.Tests/TestARC.fs b/tests/ARCtrl.Querymodel.Tests/TestARC.fs
index d568f1b..5600bbc 100644
--- a/tests/ARCtrl.Querymodel.Tests/TestARC.fs
+++ b/tests/ARCtrl.Querymodel.Tests/TestARC.fs
@@ -3,7 +3,6 @@
open Expecto
open System.Text.Json
open ARCtrl
-open ARCtrl.NET
open ARCtrl.Process
open ARCtrl.QueryModel
let testArcPath = __SOURCE_DIRECTORY__ + @"\TestObjects\TestArc"