This commit is contained in:
2021-10-14 13:47:35 +02:00
commit 6625a8dfaa
4026 changed files with 844291 additions and 0 deletions
@@ -0,0 +1,49 @@
PROJECT(openvibe-plugins-file-io)
SET(PROJECT_VERSION_MAJOR ${OV_GLOBAL_VERSION_MAJOR})
SET(PROJECT_VERSION ${OV_GLOBAL_VERSION_STRING})
FILE(GLOB_RECURSE SRC_FILES src/*.cpp src/*.c src/*.h src/*.inl)
ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRC_FILES})
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION_MAJOR}
FOLDER ${PLUGINS_FOLDER}
COMPILE_FLAGS "-DOVP_Exports -DOVP_Shared -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE")
INCLUDE_DIRECTORIES("src")
# OpenViBE Base
INCLUDE("FindOpenViBE")
INCLUDE("FindOpenViBECommon")
INCLUDE("FindOpenViBEToolkit")
# OpenViBE Module
INCLUDE("FindOpenViBEModuleEBML")
INCLUDE("FindOpenViBEModuleSystem")
INCLUDE("FindOpenViBEModuleXML")
INCLUDE("FindOpenViBEModuleFS")
# OpenViBE Third Party
INCLUDE("FindThirdPartyBoost")
INCLUDE("FindThirdPartyBoost_Regex")
# ---------------------------------
# Target macros
# Defines target operating system, architecture and compiler
# ---------------------------------
SET_BUILD_PLATFORM()
# -----------------------------
# Install files
# -----------------------------
INSTALL(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION ${DIST_BINDIR}
LIBRARY DESTINATION ${DIST_LIBDIR}
ARCHIVE DESTINATION ${DIST_LIBDIR})
INSTALL(DIRECTORY signals DESTINATION ${DIST_DATADIR}/openvibe/scenarios/)
INSTALL(DIRECTORY box-tutorials DESTINATION ${DIST_DATADIR}/openvibe/scenarios/)
INSTALL(DIRECTORY electrode_sets DESTINATION ${DIST_DATADIR}/openvibe/)
@@ -0,0 +1,329 @@
<OpenViBE-Scenario>
<FormatVersion>1</FormatVersion>
<Creator>openvibe</Creator>
<CreatorVersion>2.0</CreatorVersion>
<Boxes>
<Box>
<Identifier>(0x00003095, 0x0000083c)</Identifier>
<Name>Signal display</Name>
<AlgorithmClassIdentifier>(0x0055be5f, 0x087bdd12)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Data</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Input>
<Input>
<TypeIdentifier>(0x6ab26b81, 0x0f8c02f3)</TypeIdentifier>
<Name>Channel Units</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x5de046a6, 0x086340aa)</TypeIdentifier>
<Name>Display Mode</Name>
<DefaultValue>Scan</DefaultValue>
<Value>Scan</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x33a30739, 0x00d5299b)</TypeIdentifier>
<Name>Auto vertical scale</Name>
<DefaultValue>Per channel</DefaultValue>
<Value>Per channel</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
<Name>Scale refresh interval (secs)</Name>
<DefaultValue>5</DefaultValue>
<Value>5</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
<Name>Vertical Scale</Name>
<DefaultValue>100</DefaultValue>
<Value>100</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
<Name>Vertical Offset</Name>
<DefaultValue>0</DefaultValue>
<Value>0</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
<Name>Time Scale</Name>
<DefaultValue>10</DefaultValue>
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Horizontal ruler</Name>
<DefaultValue>true</DefaultValue>
<Value>true</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Vertical ruler</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Multiview</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>208.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
<Value>38</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>352.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x92c056a7, 0x2dc71aff)</Value>
</Attribute>
<Attribute>
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
<Value>113</Value>
</Attribute>
<Attribute>
<Identifier>(0xc67a01dc, 0x28ce06c1)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>9</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>3</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00007cac, 0x00005021)</Identifier>
<Name>GDF file reader</Name>
<AlgorithmClassIdentifier>(0x3eeb1264, 0x4edfbd9a)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x403488e7, 0x565d70b6)</TypeIdentifier>
<Name>Experiment information</Name>
</Output>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>EEG stream</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue></DefaultValue>
<Value>${Path_Data}/scenarios/signals/real-hand-movements.gdf</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Samples per buffer</Name>
<DefaultValue>32</DefaultValue>
<Value>32</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Subtract physical minimum</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>112</Value>
</Attribute>
<Attribute>
<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
<Value>25</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>368</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x78b8b69d, 0x27afe678)</Value>
</Attribute>
<Attribute>
<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
<Value>123</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00a753ca)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>3</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>3</Value>
</Attribute>
</Attributes>
</Box>
</Boxes>
<Links>
<Link>
<Identifier>(0x00001b96, 0x0000671e)</Identifier>
<Source>
<BoxIdentifier>(0x00007cac, 0x00005021)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00003095, 0x0000083c)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
<Attributes>
<Attribute>
<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
<Value>131</Value>
</Attribute>
<Attribute>
<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
<Value>368</Value>
</Attribute>
<Attribute>
<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
<Value>184</Value>
</Attribute>
<Attribute>
<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
<Value>337</Value>
</Attribute>
</Attributes>
</Link>
<Link>
<Identifier>(0x00004818, 0x00007e41)</Identifier>
<Source>
<BoxIdentifier>(0x00007cac, 0x00005021)</BoxIdentifier>
<BoxOutputIndex>2</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00003095, 0x0000083c)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
<Attributes>
<Attribute>
<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
<Value>131</Value>
</Attribute>
<Attribute>
<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
<Value>383</Value>
</Attribute>
<Attribute>
<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
<Value>184</Value>
</Attribute>
<Attribute>
<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
<Value>352</Value>
</Attribute>
</Attributes>
</Link>
</Links>
<Comments>
<Comment>
<Identifier>(0x00003f6d, 0x000051fc)</Identifier>
<Text>The &lt;i&gt;Signal Display&lt;/i&gt; box displays
the content of the file.</Text>
<Attributes>
<Attribute>
<Identifier>(0x473d9a43, 0x97fc0a97)</Identifier>
<Value>608</Value>
</Attribute>
<Attribute>
<Identifier>(0x7234b86b, 0x2b8651a5)</Identifier>
<Value>224</Value>
</Attribute>
</Attributes>
</Comment>
<Comment>
<Identifier>(0x00004f81, 0x00006854)</Identifier>
<Text>You can browse each box' documentation by selecting the box and pressing &lt;b&gt;F1&lt;/b&gt;</Text>
<Attributes>
<Attribute>
<Identifier>(0x473d9a43, 0x97fc0a97)</Identifier>
<Value>512</Value>
</Attribute>
<Attribute>
<Identifier>(0x7234b86b, 0x2b8651a5)</Identifier>
<Value>304</Value>
</Attribute>
</Attributes>
</Comment>
<Comment>
<Identifier>(0x0000609f, 0x00006abc)</Identifier>
<Text>The &lt;i&gt;&lt;b&gt;GDF File Reader&lt;/b&gt;&lt;/i&gt; box
reads a &lt;i&gt;GDF&lt;/i&gt; file from disk and sends
its content to the following box.
The &lt;i&gt;GDF&lt;/i&gt; file format is a general
data format for biomedical data.</Text>
<Attributes>
<Attribute>
<Identifier>(0x473d9a43, 0x97fc0a97)</Identifier>
<Value>608</Value>
</Attribute>
<Attribute>
<Identifier>(0x7234b86b, 0x2b8651a5)</Identifier>
<Value>128</Value>
</Attribute>
</Attributes>
</Comment>
</Comments>
<Metadata>
<Entry>
<Identifier>(0x0000775c, 0x000078ff)</Identifier>
<Type>(0x3bcce5d2, 0x43f2d968)</Type>
<Data>[{"boxIdentifier":"(0x00003095, 0x0000083c)","childCount":0,"identifier":"(0x00000dd5, 0x00002bd9)","index":0,"parentIdentifier":"(0xffffffff, 0xffffffff)","type":3},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"height":1,"identifier":"(0x00006b68, 0x000051e7)","index":0,"name":"Default window","parentIdentifier":"(0xffffffff, 0xffffffff)","type":1,"width":1},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"identifier":"(0x00004775, 0x00005b97)","index":0,"name":"Default tab","parentIdentifier":"(0x00006b68, 0x000051e7)","type":2},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":0,"identifier":"(0x00007276, 0x00006df8)","index":0,"name":"Empty","parentIdentifier":"(0x00004775, 0x00005b97)","type":0}]</Data>
</Entry>
</Metadata>
</OpenViBE-Scenario>
@@ -0,0 +1,284 @@
<OpenViBE-Scenario>
<FormatVersion>1</FormatVersion>
<Creator>OpenVIBE</Creator>
<CreatorVersion>0.2.99</CreatorVersion>
<Settings></Settings>
<Inputs></Inputs>
<Outputs></Outputs>
<Boxes>
<Box>
<Identifier>(0x00003308, 0x00003644)</Identifier>
<Name>Generic stream reader</Name>
<AlgorithmClassIdentifier>(0x6468099f, 0x0370095a)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x403488e7, 0x565d70b6)</TypeIdentifier>
<Name>Output stream 1</Name>
</Output>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Output stream 2</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Output stream 3</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue></DefaultValue>
<Value>${Path_Data}/scenarios/signals/bci-motor-imagery.ov</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x17ee7c08, 0x94c14893)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>80</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>352</Value>
</Attribute>
<Attribute>
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xf37b8e7a, 0x1bc33e4e)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x012ff9b9)</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x000066fb, 0x00004b22)</Identifier>
<Name>Signal display</Name>
<AlgorithmClassIdentifier>(0x0055be5f, 0x087bdd12)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Data</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Input>
<Input>
<TypeIdentifier>(0x6ab26b81, 0x0f8c02f3)</TypeIdentifier>
<Name>Channel Units</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x5de046a6, 0x086340aa)</TypeIdentifier>
<Name>Display Mode</Name>
<DefaultValue>Scan</DefaultValue>
<Value>Scan</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x33a30739, 0x00d5299b)</TypeIdentifier>
<Name>Auto vertical scale</Name>
<DefaultValue>Per channel</DefaultValue>
<Value>Per channel</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
<Name>Scale refresh interval (secs)</Name>
<DefaultValue>5</DefaultValue>
<Value>5</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
<Name>Vertical Scale</Name>
<DefaultValue>100</DefaultValue>
<Value>100</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
<Name>Vertical Offset</Name>
<DefaultValue>0</DefaultValue>
<Value>0</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
<Name>Time Scale</Name>
<DefaultValue>10</DefaultValue>
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Horizontal ruler</Name>
<DefaultValue>true</DefaultValue>
<Value>true</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Vertical ruler</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Multiview</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>208.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>352.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x92c056a7, 0x2dc71aff)</Value>
</Attribute>
<Attribute>
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>9</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>3</Value>
</Attribute>
</Attributes>
</Box>
</Boxes>
<Links>
<Link>
<Identifier>(0x00001a63, 0x0000448e)</Identifier>
<Source>
<BoxIdentifier>(0x00003308, 0x00003644)</BoxIdentifier>
<BoxOutputIndex>2</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x000066fb, 0x00004b22)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x0000484b, 0x00006f3b)</Identifier>
<Source>
<BoxIdentifier>(0x00003308, 0x00003644)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x000066fb, 0x00004b22)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
</Links>
<Comments>
<Comment>
<Identifier>(0x00003620, 0x000059a1)</Identifier>
<Text>You can browse each box' documentation by selecting the box and pressing &lt;b&gt;F1&lt;/b&gt;</Text>
<Attributes>
<Attribute>
<Identifier>(0x473d9a43, 0x97fc0a97)</Identifier>
<Value>512</Value>
</Attribute>
<Attribute>
<Identifier>(0x7234b86b, 0x2b8651a5)</Identifier>
<Value>272</Value>
</Attribute>
</Attributes>
</Comment>
<Comment>
<Identifier>(0x00005c3b, 0x00000b17)</Identifier>
<Text>The &lt;i&gt;Signal Display&lt;/i&gt; box displays
the content of the file.</Text>
<Attributes>
<Attribute>
<Identifier>(0x473d9a43, 0x97fc0a97)</Identifier>
<Value>608</Value>
</Attribute>
<Attribute>
<Identifier>(0x7234b86b, 0x2b8651a5)</Identifier>
<Value>192</Value>
</Attribute>
</Attributes>
</Comment>
<Comment>
<Identifier>(0x00005efd, 0x00002640)</Identifier>
<Text>The &lt;i&gt;&lt;b&gt;Generic Stream Reader&lt;/b&gt;&lt;/i&gt; box
reads an &lt;i&gt;OpenViBE&lt;/i&gt; file from disk and sends
its content to the following box.
The &lt;i&gt;OpenViBE&lt;/i&gt; file format can store any
stream of the OpenViBE platform into a file.</Text>
<Attributes>
<Attribute>
<Identifier>(0x473d9a43, 0x97fc0a97)</Identifier>
<Value>608</Value>
</Attribute>
<Attribute>
<Identifier>(0x7234b86b, 0x2b8651a5)</Identifier>
<Value>96</Value>
</Attribute>
</Attributes>
</Comment>
</Comments>
<Metadata>
<Entry>
<Identifier>(0x0000775c, 0x000078ff)</Identifier>
<Type>(0x3bcce5d2, 0x43f2d968)</Type>
<Data>[{"boxIdentifier":"(0x000066fb, 0x00004b22)","childCount":0,"identifier":"(0x000036a0, 0x000071be)","parentIdentifier":"(0xffffffff, 0xffffffff)","type":3},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"height":1,"identifier":"(0x00007d0d, 0x00005168)","name":"Default window","parentIdentifier":"(0xffffffff, 0xffffffff)","type":1,"width":1},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"identifier":"(0x00004865, 0x00005a3e)","index":0,"name":"Default tab","parentIdentifier":"(0x00007d0d, 0x00005168)","type":2},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":0,"identifier":"(0x00004291, 0x000027f2)","index":0,"name":"Empty","parentIdentifier":"(0x00004865, 0x00005a3e)","type":0}]</Data>
</Entry>
</Metadata>
<Attributes>
<Attribute>
<Identifier>(0x790d75b8, 0x3bb90c33)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0x8c1fc55b, 0x7b433dc2)</Identifier>
<Value>1.0</Value>
</Attribute>
<Attribute>
<Identifier>(0x9f5c4075, 0x4a0d3666)</Identifier>
<Value>Stream reading example</Value>
</Attribute>
<Attribute>
<Identifier>(0xf36a1567, 0xd13c53da)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xf6b2e3fa, 0x7bd43926)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xf8034a49, 0x8b3f37cc)</Identifier>
<Value>Inria</Value>
</Attribute>
</Attributes>
</OpenViBE-Scenario>
@@ -0,0 +1,686 @@
<OpenViBE-Scenario>
<FormatVersion>1</FormatVersion>
<Creator>openvibe</Creator>
<CreatorVersion>2.0</CreatorVersion>
<Boxes>
<Box>
<Identifier>(0x000014d0, 0x00006e53)</Identifier>
<Name>GDF file writer</Name>
<AlgorithmClassIdentifier>(0x1e7b2155, 0x107289ce)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x403488e7, 0x565d70b6)</TypeIdentifier>
<Name>Experiment information</Name>
</Input>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Signal</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulation</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue>record-[$core{date}-$core{time}].gdf</DefaultValue>
<Value>${Path_UserData}/spaceship-freetime-doubled.gdf</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>320.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
<Value>23</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>224.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xd41e3037, 0xcc12644a)</Value>
</Attribute>
<Attribute>
<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
<Value>102</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x002eba2a)</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>3</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00002e3b, 0x000031a4)</Identifier>
<Name>Signal Concatenation</Name>
<AlgorithmClassIdentifier>(0x372f3a9d, 0x49e20cd2)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Input signal 1</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Input stimulations 1</Name>
</Input>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Input signal 2</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Input stimulations 2</Name>
</Input>
</Inputs>
<Outputs>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Signal</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Status</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Time out before assuming end-of-file (in sec)</Name>
<DefaultValue>5</DefaultValue>
<Value>5</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>End-of-file stimulation for input 1</Name>
<DefaultValue>OVTK_StimulationId_ExperimentStop</DefaultValue>
<Value>OVTK_StimulationId_ExperimentStop</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>End-of-file stimulation for input 2</Name>
<DefaultValue>OVTK_StimulationId_ExperimentStop</DefaultValue>
<Value>OVTK_StimulationId_ExperimentStop</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>208.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
<Value>33</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>320.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x2071186d, 0x08fedd4a)</Value>
</Attribute>
<Attribute>
<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
<Value>148</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00a5ce58)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>3</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>3</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>4</Value>
</Attribute>
<Attribute>
<Identifier>(0xfba64161, 0x65304e21)</Identifier>
<Value></Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00003a1f, 0x00000d0f)</Identifier>
<Name>Player Controller</Name>
<AlgorithmClassIdentifier>(0x5f426dce, 0x08456e13)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>Stimulation name</Name>
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
<Value>OVTK_StimulationId_EndOfFile</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0xcc14d8d6, 0xf27ecb73)</TypeIdentifier>
<Name>Action to perform</Name>
<DefaultValue>Pause</DefaultValue>
<Value>Stop</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>368.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
<Value>23</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>320.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x568d148e, 0x650792b3)</Value>
</Attribute>
<Attribute>
<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
<Value>118</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x002c907c)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00004fce, 0x0000401d)</Identifier>
<Name>GDF file reader</Name>
<AlgorithmClassIdentifier>(0x3eeb1264, 0x4edfbd9a)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x403488e7, 0x565d70b6)</TypeIdentifier>
<Name>Experiment information</Name>
</Output>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>EEG stream</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue></DefaultValue>
<Value>${Path_Data}/scenarios/signals/spaceship-freetime.gdf</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Samples per buffer</Name>
<DefaultValue>32</DefaultValue>
<Value>32</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Subtract physical minimum</Name>
<DefaultValue>False</DefaultValue>
<Value>False</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>80.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
<Value>23</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>176.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x78b8b69d, 0x27afe678)</Value>
</Attribute>
<Attribute>
<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
<Value>106</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x01087006)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>3</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>3</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00005d50, 0x000030ca)</Identifier>
<Name>GDF file reader</Name>
<AlgorithmClassIdentifier>(0x3eeb1264, 0x4edfbd9a)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x403488e7, 0x565d70b6)</TypeIdentifier>
<Name>Experiment information</Name>
</Output>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>EEG stream</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue></DefaultValue>
<Value>${Path_Data}/scenarios/signals/spaceship-freetime.gdf</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Samples per buffer</Name>
<DefaultValue>32</DefaultValue>
<Value>32</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Subtract physical minimum</Name>
<DefaultValue>False</DefaultValue>
<Value>False</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>80.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
<Value>23</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>352.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x78b8b69d, 0x27afe678)</Value>
</Attribute>
<Attribute>
<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
<Value>106</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x000dc339)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc67a01dc, 0x28ce06c1)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>3</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>3</Value>
</Attribute>
</Attributes>
</Box>
</Boxes>
<Links>
<Link>
<Identifier>(0x00000efd, 0x00000c31)</Identifier>
<Source>
<BoxIdentifier>(0x00002e3b, 0x000031a4)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x000014d0, 0x00006e53)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
<Attributes>
<Attribute>
<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
<Value>231</Value>
</Attribute>
<Attribute>
<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
<Value>305</Value>
</Attribute>
<Attribute>
<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
<Value>304</Value>
</Attribute>
<Attribute>
<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
<Value>224</Value>
</Attribute>
</Attributes>
</Link>
<Link>
<Identifier>(0x0000157b, 0x00006c4b)</Identifier>
<Source>
<BoxIdentifier>(0x00004fce, 0x0000401d)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x000014d0, 0x00006e53)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
<Attributes>
<Attribute>
<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
<Value>98</Value>
</Attribute>
<Attribute>
<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
<Value>161</Value>
</Attribute>
<Attribute>
<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
<Value>304</Value>
</Attribute>
<Attribute>
<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
<Value>209</Value>
</Attribute>
</Attributes>
</Link>
<Link>
<Identifier>(0x000024b5, 0x00003f90)</Identifier>
<Source>
<BoxIdentifier>(0x00002e3b, 0x000031a4)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x000014d0, 0x00006e53)</BoxIdentifier>
<BoxInputIndex>2</BoxInputIndex>
</Target>
<Attributes>
<Attribute>
<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
<Value>231</Value>
</Attribute>
<Attribute>
<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
<Value>320</Value>
</Attribute>
<Attribute>
<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
<Value>304</Value>
</Attribute>
<Attribute>
<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
<Value>239</Value>
</Attribute>
</Attributes>
</Link>
<Link>
<Identifier>(0x000026b8, 0x00007cdc)</Identifier>
<Source>
<BoxIdentifier>(0x00004fce, 0x0000401d)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00002e3b, 0x000031a4)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
<Attributes>
<Attribute>
<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
<Value>98</Value>
</Attribute>
<Attribute>
<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
<Value>176</Value>
</Attribute>
<Attribute>
<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
<Value>187</Value>
</Attribute>
<Attribute>
<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
<Value>297</Value>
</Attribute>
</Attributes>
</Link>
<Link>
<Identifier>(0x00002b7e, 0x00005e63)</Identifier>
<Source>
<BoxIdentifier>(0x00005d50, 0x000030ca)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00002e3b, 0x000031a4)</BoxIdentifier>
<BoxInputIndex>2</BoxInputIndex>
</Target>
<Attributes>
<Attribute>
<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
<Value>98</Value>
</Attribute>
<Attribute>
<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
<Value>352</Value>
</Attribute>
<Attribute>
<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
<Value>187</Value>
</Attribute>
<Attribute>
<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
<Value>327</Value>
</Attribute>
</Attributes>
</Link>
<Link>
<Identifier>(0x00002fd3, 0x00001a24)</Identifier>
<Source>
<BoxIdentifier>(0x00005d50, 0x000030ca)</BoxIdentifier>
<BoxOutputIndex>2</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00002e3b, 0x000031a4)</BoxIdentifier>
<BoxInputIndex>3</BoxInputIndex>
</Target>
<Attributes>
<Attribute>
<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
<Value>98</Value>
</Attribute>
<Attribute>
<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
<Value>367</Value>
</Attribute>
<Attribute>
<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
<Value>187</Value>
</Attribute>
<Attribute>
<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
<Value>342</Value>
</Attribute>
</Attributes>
</Link>
<Link>
<Identifier>(0x0000537f, 0x00002c3d)</Identifier>
<Source>
<BoxIdentifier>(0x00004fce, 0x0000401d)</BoxIdentifier>
<BoxOutputIndex>2</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00002e3b, 0x000031a4)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
<Attributes>
<Attribute>
<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
<Value>98</Value>
</Attribute>
<Attribute>
<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
<Value>191</Value>
</Attribute>
<Attribute>
<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
<Value>187</Value>
</Attribute>
<Attribute>
<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
<Value>312</Value>
</Attribute>
</Attributes>
</Link>
<Link>
<Identifier>(0x00007d07, 0x000012ca)</Identifier>
<Source>
<BoxIdentifier>(0x00002e3b, 0x000031a4)</BoxIdentifier>
<BoxOutputIndex>2</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00003a1f, 0x00000d0f)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
<Attributes>
<Attribute>
<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
<Value>231</Value>
</Attribute>
<Attribute>
<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
<Value>335</Value>
</Attribute>
<Attribute>
<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
<Value>352</Value>
</Attribute>
<Attribute>
<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
<Value>320</Value>
</Attribute>
</Attributes>
</Link>
</Links>
<Comments>
<Comment>
<Identifier>(0x00001273, 0x000001e4)</Identifier>
<Text>You can browse each box' documentation by selecting the box and pressing &lt;b&gt;F1&lt;/b&gt;</Text>
<Attributes>
<Attribute>
<Identifier>(0x473d9a43, 0x97fc0a97)</Identifier>
<Value>688.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x7234b86b, 0x2b8651a5)</Identifier>
<Value>336.000000</Value>
</Attribute>
</Attributes>
</Comment>
<Comment>
<Identifier>(0x00002bb5, 0x00003539)</Identifier>
<Text>This scenario illustrates the &lt;b&gt;Signal Concatenation&lt;/b&gt; box.
This box reads two or more streams, inserting the streams one
after another (from left to right, considering the input connectors).
Hence, the output stream will have the summed length of the
original signals.
Note that the catenated streams must have the same
characteristics, such as sampling rate and number of channels.
The &lt;i&gt;GDF file writer&lt;/i&gt; box writes the resulting file under
$APPDATA/openvibe/ on Windows and $HOME/.config/openvibe/ on Linux,
as the setting token ${UserData} will be expanded to this path.
Finally, &lt;i&gt;Player Controller&lt;/i&gt; stops the scenario playback
after &lt;i&gt;Signal Concatenation&lt;/i&gt; is finished.</Text>
<Attributes>
<Attribute>
<Identifier>(0x473d9a43, 0x97fc0a97)</Identifier>
<Value>673.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x7234b86b, 0x2b8651a5)</Identifier>
<Value>175.000000</Value>
</Attribute>
</Attributes>
</Comment>
</Comments>
<Metadata>
<Entry>
<Identifier>(0x0000775c, 0x000078ff)</Identifier>
<Type>(0x3bcce5d2, 0x43f2d968)</Type>
<Data>[{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"height":1,"identifier":"(0x00002968, 0x000001df)","index":0,"name":"Default window","parentIdentifier":"(0xffffffff, 0xffffffff)","type":1,"width":1},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"identifier":"(0x00000bb7, 0x00002c66)","index":0,"name":"Default tab","parentIdentifier":"(0x00002968, 0x000001df)","type":2},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":0,"identifier":"(0x000067e2, 0x00001447)","index":0,"name":"Empty","parentIdentifier":"(0x00000bb7, 0x00002c66)","type":0}]</Data>
</Entry>
</Metadata>
</OpenViBE-Scenario>
@@ -0,0 +1,56 @@
/**
* \page BoxAlgorithm_BCI2000FileReader BCI2000 File Reader
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Description|
* Loads signals from BCI2000 .dat files.
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Description|
__________________________________________________________________
Outputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Outputs|
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Outputs|
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Output1|
* The signals for the different channels. If the file header contains channel names, they are used in the stream, otherwise "channel #" is used.
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Output1|
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Output2|
* The different state variables.
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Output2|
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Settings|
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Settings|
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Setting1|
* The file name should be a BCI2000 .dat file.
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Setting1|
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Setting2|
* The number of sample per block sent by the box.
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Setting2|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Examples|
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Miscellaneous|
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Miscellaneous|
*/
@@ -0,0 +1,125 @@
/**
* \page BoxAlgorithm_BCICompetitionIIIbReader BCI competition IIIb reader
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Description|
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Description|
__________________________________________________________________
Outputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Outputs|
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Outputs|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Output1|
* This input contains the signal samples from the trials.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Output1|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Output2|
* This input contains information about the stimulations that occurred during the trials.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Output2|
__________________________________________________________________
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Settings|
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Settings|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting1|
* Name of the signal file from the dataset ("*_s.txt").
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting1|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting2|
* Name of the trigger file from the dataset ("*_HDR_TRIG.txt").
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting2|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting3|
* Name of the label file from the dataset ("*_HDR_Classlabel.txt").
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting3|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting4|
* Name of the artifact file from the dataset ("*_HDR_ArtifactSelection.txt").
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting4|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting5|
* Name of the true labels file from the dataset ("true_labels_*.txt").
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting5|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting6|
* Number of samples to send per sample buffer.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting6|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting7|
* Whether the plugin is used in offline mode or not.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting7|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting8|
* Keep the training set trials or not.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting8|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting9|
* Keep the test set trials or not.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting9|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting10|
* Keep the trials containing artifacts or not.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting10|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting11|
* The length of a trial in seconds.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting11|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting12|
* The time when the CUE is displayed in a trial.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting12|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting13|
* The time when the feedback starts in a trial.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting13|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Examples|
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Miscellaneous|
*
* The stimulations sent are the following :
* - Trial start
* - Time : 0
* - Id : 0x300
*
* - Display cross
* - Time : 0
* - Id : 0x312
*
* - CUE
* - Time : parameter(CUE display start)
* - Id : 0x300 + class index (0x301 for first class, 0x302 for the second class, ...)
*
* - Feedback start
* - Time : parameter(Feedback start)
* - Id : 0x30D
*
* - Trial end
* - Time : parameter(Trial length)
* - Id : 0x320
*
* - End of session
* - Time : when the end of the input file has been reached
* - Id : 0x3FF
*
* See the \ref Doc_Stimulations page for more details about §OpenViBE§ stimulations.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Miscellaneous|
*/
@@ -0,0 +1,72 @@
/**
* \page BoxAlgorithm_BrainVisionFormatFileWriter BrainVision format file writer
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Description|
* This box writes signal and stimulation data under BrainVision format files.
* The files generated by this box are readable with BrainVision Analyzer
* software suite.
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Description|
__________________________________________________________________
Inputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Inputs|
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Inputs|
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Input1|
* Input EEG signal to be written.
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Input1|
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Input2|
* Input Stimulations to be written.
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Input2|
__________________________________________________________________
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Settings|
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Settings|
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Setting1|
* Path of the header file to write, the header is a .vhdr file, if the extension is missing,
* it will be automatically added.
* Header will be written to this file. A .eeg file with signal
* will be created in the same folder. A .vmrk file will be also written and it will contain
* the markers.
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Setting1|
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Setting2|
* Path to the dictionary containing Marker to Stimulation correspondences. Its format is described in the BrainVision Format File Reader \ref Doc_BoxAlgorithm_BrainVisionFormatFileReader_Miscellaneous section.
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Setting2|
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Setting3|
* Whether to write unknown stimulations into the marker stream as well. If set to false,
* stimulations that do not appear in the dictionary will be ignored.
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Setting3|
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Setting4|
* Whether to use $b as placeholder for EEG and Marker files inside the header. If this is set
* to true, the resulting file will be compatible with more software, however renaming the files
* will be more complex.
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Setting4|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Examples|
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Miscellaneous|
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Miscellaneous|
*/
@@ -0,0 +1,76 @@
/**
* \page BoxAlgorithm_BrainampFileReader Brainamp file reader
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Description|
* Loads experiment information, signal and stimulations data from Brainamp files.
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Description|
__________________________________________________________________
Outputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Outputs|
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Outputs|
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Output1|
* This stream contains information about the experiment and subject.
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Output1|
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Output2|
* Contains the signal information for the different channels (read from the GDF file).
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Output2|
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Output3|
* Contains information about the stimulations that occurred during the experiment.
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Output3|
__________________________________________________________________
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Settings|
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Settings|
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Setting1|
* This setting contains the name of the brainamp header file. The other files are deduced
* from the header content (signal content and markers).
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Setting1|
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Setting2|
* This setting sets the size of epochs to be generated by this box, in seconds.
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Setting2|
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Setting3|
* Should stimuli in the file to be converted to OpenViBE stimuli? For
* legacy reasons, the default is true. With false, the stimuli will
* be delivered without any conversion.
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Setting3|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Examples|
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Miscellaneous|
* Experiment information is stored in a header file which the user needs to specify
* when setting up the box. When started, the box then works up the names of two additional
* files : a data file and a marker file. Signal data is retrieved from the data file,
* stimulations from the marker file.
*
* The stimulation makers are transformed in §OpenViBE§ format with the
* \c OVTK_StimulationId_Label base. See the \ref Doc_Stimulations page
* for more details about §OpenViBE§ stimulations.
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Miscellaneous|
*/
@@ -0,0 +1,131 @@
/**
* \page BoxAlgorithm_CSVFileReader CSV File Reader
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Description|
This box allows to read some of the OpenViBE streams from a text file that is
easy to read both by machines and humans. CSV files are text files
with different values separated by a special character such as a colon, a semicolon
or a tabulation. This basic syntax makes them very easy to parse. The purpose of this
box is to quickly import some data from other softwares.
@b NOTE For files carrying signal, the file format the box accepts is NOT the usual
N times M matrix. There must be a few extra items: the first column must be the time
of each sample, and the first line of data must have one more column than the other lines.
This last column should be the sampling rate. See below for details.
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Description|
__________________________________________________________________
Inputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Outputs|
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Outputs|
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Output1|
This output is used to import data from a CSV File to an OpenViBE stream. The type of
this output can be modified by the user and the format of the file will be adapted
depending on this type. Supported outputs are : Signal, Spectrum, Stimulations,
Feature Vector and Streamed Matrix.
Format specific to some of these stream types is detailed in section
\ref Doc_BoxAlgorithm_CSVFileReader_Miscellaneous.
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Output1|
__________________________________________________________________
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Settings|
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Settings|
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Setting1|
This setting contains the file where to load the data.
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Setting1|
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Setting2|
This setting contains the special character to use as a separation for the different
fields. Typical examples are colon, semi colon and tabulations.
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Setting2|
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Setting3|
This option mainly makes sense for an output signal type, but can also be used
for matrices. Sometimes, the time of the first sample in the data isn't equal
0 or the file appears to contain such timing that it is difficult to parse a
continuous chunk sequence from it. Many OpenViBE boxes expect continuous
chunking, starting at time 0, with no time between the signal chunks. This
setting interpretes the file as essentially being dense, with consecutive
chunks, the first chunk (sample) at time 0. The samples are sent according
to the timing dictated by the sampling rate specified at the end of the
second line of the csv file, with the first column ignored.
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Setting3|
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Setting4|
Number of samples per channel in a streamed matrix.
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Setting4|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Examples|
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Miscellaneous|
If the boxes obtaining signal from the CSV File Reader behave curiously,
you may want to try enabling the "don't use the file time" setting. Also,
if the time is not monotonically increasing from sample to another
in the file (this can result from e.g. epoching), the result may not
be read back as expected. For such signals, it is best to use the
.ov file format and not CSV.
Here are some typical inputs that you will find in the input
file depending on the type of the input connector.
For the Signal stream, you will have something like this :
\verbatim
Time (s), Channel 1, Channel 2, ..., Channel n, Sampling Rate
Time of measure 1, Measure 1 of channel 1, Measure 1 of channel 2, ..., Measure 1 of channel n, Value of the sampling rate
Time of measure 2, Measure 2 of channel 1, Measure 2 of channel 2, ..., Measure 2 of channel n
...
Time of measure t, Measure t of channel 1, Measure t of channel 2, ..., Measure t of channel n
\endverbatim
For the Spectrum stream, you will have something like this :
\verbatim
Time (s), Channel 1, Channel 2, ..., Channel n, Min frequency band, Max frequency band
Time of measure 1, Freq band 1 of m. 1 of chan 1, Freq band 1 of m. 1 of chan 2, ..., Freq band 1 of m. 1 of chan n, Value Min Frequency Band of band 1, Value Max Frequency Band of band 1
Time of measure 1, Freq band 2 of m. 1 of chan 1, Freq band 2 of m. 1 of chan 2, ..., Freq band 2 of m. 1 of chan n, Value Min Frequency Band of band 2, Value Max Frequency Band of band 2
...
Time of measure 1, Freq band f of m. 1 of chan 1, Freq band f of m. 1 of chan 2, ..., Freq band f of m. 1 of chan n, Value Min Frequency Band of band f, Value Max Frequency Band of band f
Time of measure 2, Freq band 1 of m. 2 of chan 1, Freq band 1 of m. 2 of chan 2, ..., Freq band 1 of m. 2 of chan n
Time of measure 2, Freq band 2 of m. 2 of chan 1, Freq band 2 of m. 2 of chan 2, ..., Freq band 2 of m. 2 of chan n
...
Time of measure 2, Freq band f of m. 2 of chan 1, Freq band f of m. 2 of chan 2, ..., Freq band f of m. 2 of chan n
...
...
...
Time of measure t, Freq band 1 of m. t of chan 1, Freq band 1 of m. t of chan 2, ..., Freq band 1 of m. t of chan n
Time of measure t, Freq band 2 of m. t of chan 1, Freq band 2 of m. t of chan 2, ..., Freq band 2 of m. t of chan n
...
Time of measure t, Freq band f of m. t of chan 1, Freq band f of m. t of chan 2, ..., Freq band f of m. t of chan n
\endverbatim
For the Stimulation stream, you will have something like this :
\verbatim
Time (s), Identifier, Duration
Time of stim 1, Identifier of stim 1, Duration of stim 1
Time of stim 2, Identifier of stim 2, Duration of stim 2
...
Time of stim n, Identifier of stim n, Duration of stim n
\endverbatim
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Miscellaneous|
*/
@@ -0,0 +1,126 @@
/**
* \page BoxAlgorithm_CSVFileWriter CSV File Writer
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Description|
This box allows to output some of the OpenViBE streams in a text file that is
easy to read by the machine and easy to read by the human. CSV files are text files
with different values separated by a special character such as a colon, a semicolon
or a tabulation. This basic syntax makes them very easy to read for both machine and
human. The purpose of this box is to quicly export some data to other softwares.
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Description|
__________________________________________________________________
Inputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Inputs|
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Inputs|
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Input1|
This is input is used to know what data to dump in the considered file. The type of
this input can be modified by the user and the format of the output will be adapted
depending on this type. Supported inputs are : Signal, Spectrum, Streamed Matrix,
Feature Vector, and Stimulations.
Format specific to each of these stream types is detailed in section
\ref Doc_BoxAlgorithm_CSVFileWriter_Miscellaneous.
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Input1|
__________________________________________________________________
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Settings|
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Settings|
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Setting1|
This setting contains the file where to store the data.
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Setting1|
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Setting2|
This setting contains the special character to use as a separation for the different
fields. Typical examples are colon, semi colon and tabulations.
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Setting2|
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Setting3|
This allows you to set std::precision, i.e. how many digits are used to represent each input value in the output.
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Setting3|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Examples|
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Miscellaneous|
In this section, we detail the typical outputs that you will find in the output
file depending on the type of the input connector.
For the Signal stream, you will have something like this :
\verbatim
Time (s), Channel 1, Channel 2, ..., Channel n, Sampling Rate
Time of measure 1, Measure 1 of channel 1, Measure 1 of channel 2, ..., Measure 1 of channel n, Value of the sampling rate
Time of measure 2, Measure 2 of channel 1, Measure 2 of channel 2, ..., Measure 2 of channel n,
...
Time of measure t, Measure t of channel 1, Measure t of channel 2, ..., Measure t of channel n,
\endverbatim
For the Streamed Matrix stream, you will have something like this :
\verbatim
Time (s), Column 1, Column 2, ..., Column n
Time of matrix 1, slot [1,1] of 1, slot[1,2] of 1, ..., slot[1,n] of 1
Time of matrix 1, slot [2,1] of 1, slot[2,2] of 1, ..., slot[2,n] of 1
...
Time of matrix 1, slot [m,1] of 1, slot[m,2] of 1, ..., slot[m,n] of 1
...
Time of matrix 2, slot [1,1] of 2, slot[1,2] of 2, ..., slot[1,n] of 2
...
\endverbatim
For the Feature Vector stream, you will have something like this :
\verbatim
Time (s), Feature 1, Feature 2, ..., Feature n
Time of vector 1, feature 1, feature 2, ..., feature n
Time of vector 2, feature 1, feature 2, ..., feature n
...
Time of vector k, feature 1, feature 2, ..., feature n
\endverbatim
For the Spectrum stream, you will have something like this :
\verbatim
Time (s), Channel 1, Channel 2, ..., Channel n, Min frequency band, Max frequency band
Time of measure 1, Freq band 1 of m. 1 of chan 1, Freq band 1 of m. 1 of chan 2, ..., Freq band 1 of m. 1 of chan n, Value Min Frequency Band of band 1, Value Max Frequency Band of band 1
Time of measure 1, Freq band 2 of m. 1 of chan 1, Freq band 2 of m. 1 of chan 2, ..., Freq band 2 of m. 1 of chan n, Value Min Frequency Band of band 2, Value Max Frequency Band of band 2
...
Time of measure 1, Freq band f of m. 1 of chan 1, Freq band f of m. 1 of chan 2, ..., Freq band f of m. 1 of chan n, Value Min Frequency Band of band f, Value Max Frequency Band of band f
Time of measure 2, Freq band 1 of m. 2 of chan 1, Freq band 1 of m. 2 of chan 2, ..., Freq band 1 of m. 2 of chan n
Time of measure 2, Freq band 2 of m. 2 of chan 1, Freq band 2 of m. 2 of chan 2, ..., Freq band 2 of m. 2 of chan n
...
Time of measure 2, Freq band f of m. 2 of chan 1, Freq band f of m. 2 of chan 2, ..., Freq band f of m. 2 of chan n
...
...
...
Time of measure t, Freq band 1 of m. t of chan 1, Freq band 1 of m. t of chan 2, ..., Freq band 1 of m. t of chan n
Time of measure t, Freq band 2 of m. t of chan 1, Freq band 2 of m. t of chan 2, ..., Freq band 2 of m. t of chan n
...
Time of measure t, Freq band f of m. t of chan 1, Freq band f of m. t of chan 2, ..., Freq band f of m. t of chan n
\endverbatim
For the Stimulation stream, you will have something like this :
\verbatim
Time (s), Identifier, Duration
Time of stim 1, Identifier of stim 1, Duration of stim 1
Time of stim 2, Identifier of stim 2, Duration of stim 2
...
Time of stim n, Identifier of stim n, Duration of stim n
\endverbatim
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Miscellaneous|
*/
@@ -0,0 +1,86 @@
/**
* \page BoxAlgorithm_GDFFileReader GDF file reader
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Description|
The box attempts to be compliant with the version 2.51 of the GDF file specification (doc v10) by Alois Schlögl,
as available at the <a href="http://arxiv.org/abs/cs/0608052">arxiv</a>.
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Description|
__________________________________________________________________
Outputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Outputs|
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Outputs|
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Output1|
* This stream contains information about the experiment and subject.
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Output1|
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Output2|
* Contains the signal information for the different channels (read from the GDF file).
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Output2|
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Output3|
* Contains information about the stimulations that occurred during the experiment.
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Output3|
__________________________________________________________________
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Settings|
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Settings|
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Setting1|
* Name of the GDF file to read.
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Setting1|
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Setting2|
* Number of samples per channel in a streamed matrix.
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Setting2|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Examples|
* If your GDF file is located in your /tmp directory, you can configure the plugin as follows :
*
* Filename :
*
\code
/tmp/myGDFFile.gdf
\endcode
*
* Samples per buffer :
*
\code
32
\endcode
*
* Several example GDF files can be found in the share/openvibe/scenarios/signals/ folder.
*
* Practical example :
*
* Let's add a GDF file reader box to an empty scenario. One should also locate a GDF file and enter its path in the 'Filename' setting of the box. A second setting
* allows to specify the number of samples to be sent per data block.
*
* This box has 3 output connectors, corresponding to experiment information, stimulations
* and signals. One can connect the last two to the two input connectors of a Signal Display box to visualize the signals and/or stimulations stored in the GDF file.
*
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Miscellaneous|
* The experiment information output isn't operational yet.
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Miscellaneous|
*/
@@ -0,0 +1,66 @@
/**
* \page BoxAlgorithm_GDFFileWriter GDF file writer
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Description|
Writes incoming experiment information, signal and stimulations data to a file according to the GDF file format. One simply has to connect this box to an output to save the desired streams to a file. For now, only GDF1 files are supported.
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Description|
__________________________________________________________________
Inputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Inputs|
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Inputs|
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Input1|
This stream contains information about the experiment and subject.
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Input1|
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Input2|
Contains the signal information for the different channels.
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Input2|
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Input3|
Contains information about the stimulations that occurred during the experiment.
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Input3|
__________________________________________________________________
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Settings|
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Settings|
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Setting1|
Name of the GDF file to be written.
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Setting1|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Examples|
If you want to write the GDF file in your /tmp directory, you can configure the plugin like that :
Filename :
\code
/tmp/myGDFFile.gdf
\endcode
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Miscellaneous|
The only output format is GDF1.
The experiment information such as the subject name and sex may not be parsed correctly by other programs.
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Miscellaneous|
*/
@@ -0,0 +1,96 @@
/**
* \page BoxAlgorithm_SignalConcatenation Signal Stream Concatenation
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Description|
The input streams must share the same characteristics : sampling frequency, number of channels, sample count per block.
User can specify a time-out value beyond which a stream is considered as finished if no samples are received.
If user wants a specific part of a given stream, he can specify a stimulation used as end-of-stream trigger.
The status stimulation output deliver the stimulation OVTK_StimulationId_EndOfFile when the concatenation is finished. You can connect this output to a \subpage BoxAlgorithm_PlayerController to script your concatenation easily.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Description|
__________________________________________________________________
Inputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Inputs|
The box has a pair of input (signal, stimulation) per source.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Inputs|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Input1|
Signal stream from source #1.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Input1|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Input2|
Stimulation stream from source #1.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Input2|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Input3|
Signal stream from source #2.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Input3|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Input4|
Stimulation stream from source #2.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Input4|
__________________________________________________________________
Outputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Outputs|
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Outputs|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Output1|
Concatenated signal stream.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Output1|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Output2|
Concatenated stimulation stream.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Output2|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Output3|
Status stimulation stream (sends OVTK_StimulationId_EndOfFile on success).
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Output3|
__________________________________________________________________
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Settings|
A stimulation setting is added for each input pair.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Settings|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Setting1|
If no samples are received beyond this time-out value, a stream is considered as finished.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Setting1|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Setting2|
Stimulation that triggers the end-of-stream for source #1.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Setting2|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Setting3|
Stimulation that triggers the end-of-stream for source #2.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Setting3|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Examples|
This box is mainly designed to concatenate multiple signal files.
For example, you have 10 sessions of training and you want to train a classifier on the whole set of data.
You can use the Signal Stream Concatenation to produce one EEG file containing the 10 sessions,
and then feed a \ref Doc_BoxAlgorithm_ClassifierTrainer box with it.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Miscellaneous|
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Miscellaneous|
*/
@@ -0,0 +1,244 @@
[
[ "O1" "O2" "T5" "P7" "P3" "Pz" "P4" "T6" "P8" "T3" "T7" "C3" "Cz" "C4" "T4" "T8" "F7" "F3" "Fz" "F4" "F8" "Fp1" "Fp2" "P5" "P1" "P2" "P6" "C5" "C1" "C2" "C6" "F5" "F1" "F2" "F6" "M1" "M2" "Oz" "POz" "CPz" "FCz" "FFz" "Fpz" "FC1" "FC2" "CP1" "CP2" "FC3" "FC4" "CP3" "CP4" "FT3" "FT4" "TP3" "TP4" "P'1" "P'2" "Nz" "I1" "Iz" "I2" "FF3" "TP5" "OT5" "IT1" "IT2" "IP1" "IPz" "IP2" "M'1" "M'2" "TP7" "TP8" "Nez" "F3z" "F4z" "AF3" "AF4" "FC5" "FC6" ]
["x" "y" "z" ]
]
[
[-0.309017 -0.951057 4.48966e-011 ]
]
[
[0.309017 -0.951057 4.48966e-011 ]
]
[
[-0.809017 -0.587785 4.48966e-011 ]
]
[
[-0.809017 -0.587785 4.48966e-011 ]
]
[
[-0.651157 -0.609342 0.452435 ]
]
[
[-9.52401e-011 -0.707107 0.707107 ]
]
[
[0.651157 -0.609342 0.452435 ]
]
[
[0.809017 -0.587785 4.48966e-011 ]
]
[
[0.809017 -0.587785 4.48966e-011 ]
]
[
[-1 8.97932e-011 4.48966e-011 ]
]
[
[-1 8.97932e-011 4.48966e-011 ]
]
[
[-0.707107 6.34934e-011 0.707107 ]
]
[
[0 0 1 ]
]
[
[0.707107 0 0.707107 ]
]
[
[1 0 4.48966e-011 ]
]
[
[1 0 4.48966e-011 ]
]
[
[-0.809017 0.587785 4.48966e-011 ]
]
[
[-0.651157 0.609342 0.452435 ]
]
[
[3.17467e-011 0.707107 0.707107 ]
]
[
[0.651157 0.609342 0.452435 ]
]
[
[0.809017 0.587785 4.48966e-011 ]
]
[
[-0.309017 0.951057 4.48966e-011 ]
]
[
[0.309017 0.951057 4.48966e-011 ]
]
[
[-0.752459 -0.615881 0.233445 ]
]
[
[-0.347712 -0.703541 0.619779 ]
]
[
[0.347712 -0.703541 0.619779 ]
]
[
[0.752459 -0.615881 0.233445 ]
]
[
[-0.92388 8.29581e-011 0.382683 ]
]
[
[-0.382683 3.43624e-011 0.92388 ]
]
[
[0.382683 0 0.92388 ]
]
[
[0.92388 0 0.382683 ]
]
[
[-0.752459 0.615881 0.233445 ]
]
[
[-0.347712 0.703541 0.619779 ]
]
[
[0.347712 0.703541 0.619779 ]
]
[
[0.752459 0.615881 0.233445 ]
]
[
[-0.704166 -0.504133 -0.5 ]
]
[
[0.704166 -0.504133 -0.5 ]
]
[
[-1.3469e-010 -1 4.48966e-011 ]
]
[
[-1.24437e-010 -0.92388 0.382683 ]
]
[
[-5.15435e-011 -0.382683 0.92388 ]
]
[
[1.71812e-011 0.382683 0.92388 ]
]
[
[4.1479e-011 0.92388 0.382683 ]
]
[
[4.48966e-011 1 4.48966e-011 ]
]
[
[-0.381509 0.35701 0.85264 ]
]
[
[0.381509 0.35701 0.85264 ]
]
[
[-0.381509 -0.35701 0.85264 ]
]
[
[0.381509 -0.35701 0.85264 ]
]
[
[-0.719739 0.323464 0.614285 ]
]
[
[0.719739 0.323464 0.614285 ]
]
[
[-0.719739 -0.323464 0.614285 ]
]
[
[0.719739 -0.323464 0.614285 ]
]
[
[-0.908423 0.336036 0.24869 ]
]
[
[0.908423 0.336036 0.24869 ]
]
[
[-0.908423 -0.336036 0.24869 ]
]
[
[0.908423 -0.336036 0.24869 ]
]
[
[-0.378421 -0.691201 0.615661 ]
]
[
[0.378421 -0.691201 0.615661 ]
]
[
[4.1479e-011 0.92388 -0.382683 ]
]
[
[-0.504133 -0.704166 -0.5 ]
]
[
[-1.24437e-010 -0.92388 -0.382683 ]
]
[
[0.504133 -0.704166 -0.5 ]
]
[
[-0.391219 0.38311 0.836764 ]
]
[
[-0.854997 -0.331631 0.398749 ]
]
[
[-0.46117 -0.860079 0.218143 ]
]
[
[-0.46117 -0.860079 -0.218143 ]
]
[
[0.46117 -0.860079 -0.218143 ]
]
[
[-0.390388 -0.919697 0.0418757 ]
]
[
[-1.32125e-010 -0.980955 0.194234 ]
]
[
[0.390388 -0.919697 0.0418757 ]
]
[
[-0.887454 -0.376702 -0.265556 ]
]
[
[0.887454 -0.376702 -0.265556 ]
]
[
[-0.951057 -0.309017 4.48966e-011 ]
]
[
[0.951057 -0.309017 4.48966e-011 ]
]
[
[3.96045e-011 0.882127 -0.471012 ]
]
[
[-0.349374 0.823073 0.447759 ]
]
[
[0.349374 0.823073 0.447759 ]
]
[
[-0.37559 0.88485 0.27564 ]
]
[
[0.37559 0.88485 0.27564 ]
]
[
[-0.87203 0.33729 0.35467 ]
]
[
[0.87203 0.33729 0.35467 ]
]
@@ -0,0 +1,232 @@
[
[ "O1" "O2" "T5" "P7" "P3" "Pz" "P4" "T6" "P8" "T3" "T7" "C3" "Cz" "C4" "T4" "T8" "F7" "F3" "Fz" "F4" "F8" "Fp1" "Fp2" "P5" "P1" "P2" "P6" "C5" "C1" "C2" "C6" "F5" "F1" "F2" "F6" "M1" "M2" "Oz" "POz" "CPz" "FCz" "FFz" "Fpz" "FC1" "FC2" "CP1" "CP2" "FC3" "FC4" "CP3" "CP4" "FT3" "FT4" "TP3" "TP4" "P'1" "P'2" "Nz" "I1" "Iz" "I2" "FF3" "TP5" "OT5" "IT1" "IT2" "IP1" "IPz" "IP2" "M'1" "M'2" "TP7" "TP8" "Nez" "F3z" "F4z" ]
["theta" "phi" ]
]
[
[90 252 ]
]
[
[90 288 ]
]
[
[90 216 ]
]
[
[63.1 223.1 ]
]
[
[63.1 223.1 ]
]
[
[45 270 ]
]
[
[63.1 316.9 ]
]
[
[90 324 ]
]
[
[90 324 ]
]
[
[90 180 ]
]
[
[90 180 ]
]
[
[45 180 ]
]
[
[0 0 ]
]
[
[45 0 ]
]
[
[90 0 ]
]
[
[90 0 ]
]
[
[90 144 ]
]
[
[63.1 136.9 ]
]
[
[45 90 ]
]
[
[63.1 43.1 ]
]
[
[90 36 ]
]
[
[90 108 ]
]
[
[90 72 ]
]
[
[76.5 219.3 ]
]
[
[51.7 243.7 ]
]
[
[51.7 296.3 ]
]
[
[76.5 320.7 ]
]
[
[67.5 180 ]
]
[
[22.5 180 ]
]
[
[22.5 0 ]
]
[
[67.5 0 ]
]
[
[76.5 140.7 ]
]
[
[51.7 116.3 ]
]
[
[51.7 63.7 ]
]
[
[76.5 39.3 ]
]
[
[120 215.6 ]
]
[
[120 324.4 ]
]
[
[90 270 ]
]
[
[67.5 270 ]
]
[
[22.5 270 ]
]
[
[22.5 90 ]
]
[
[67.5 90 ]
]
[
[90 90 ]
]
[
[31.5 136.9 ]
]
[
[31.5 43.1 ]
]
[
[31.5 223.1 ]
]
[
[31.5 316.9 ]
]
[
[52.1 155.8 ]
]
[
[52.1 24.2 ]
]
[
[52.1 204.2 ]
]
[
[52.1 335.8 ]
]
[
[75.6 159.7 ]
]
[
[75.6 20.3 ]
]
[
[75.6 200.3 ]
]
[
[75.6 339.7 ]
]
[
[52 241.3 ]
]
[
[52 298.7 ]
]
[
[112.5 90 ]
]
[
[120 234.4 ]
]
[
[112.5 270 ]
]
[
[120 305.6 ]
]
[
[33.2 135.6 ]
]
[
[66.5 201.2 ]
]
[
[77.4 241.8 ]
]
[
[102.6 241.8 ]
]
[
[102.6 298.2 ]
]
[
[87.6 247 ]
]
[
[78.8 270 ]
]
[
[87.6 293 ]
]
[
[105.4 203 ]
]
[
[105.4 337 ]
]
[
[90 198 ]
]
[
[90 342 ]
]
[
[118.1 90 ]
]
[
[63.4 113 ]
]
[
[63.4 67 ]
]
@@ -0,0 +1,440 @@
#include "ovpCAlgorithmBrainampFileReader.h"
#include <system/ovCMemory.h>
#include <sstream>
#include <cstdlib>
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
//
bool CAlgorithmBrainampFileReader::initialize()
{
ip_filename.initialize(getInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_Filename));
ip_epochDuration.initialize(getInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_EpochDuration));
ip_seekTime.initialize(getInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_SeekTime));
ip_convertStimuli.initialize(getInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_ConvertStimuli));
op_startTime.initialize(getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_CurrentStartTime));
op_endTime.initialize(getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_CurrentEndTime));
op_sampling.initialize(getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_Sampling));
op_signalMatrix.initialize(getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_SignalMatrix));
op_stimulations.initialize(getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_Stimulations));
// Default value
ip_convertStimuli = true;
m_buffer = nullptr;
return true;
}
bool CAlgorithmBrainampFileReader::uninitialize()
{
if (m_dataFile.is_open()) { m_dataFile.close(); }
op_stimulations.uninitialize();
op_signalMatrix.uninitialize();
op_sampling.uninitialize();
op_endTime.uninitialize();
op_startTime.uninitialize();
ip_convertStimuli.uninitialize();
ip_seekTime.uninitialize();
ip_epochDuration.uninitialize();
ip_filename.uninitialize();
delete [] m_buffer;
m_buffer = nullptr;
return true;
}
bool CAlgorithmBrainampFileReader::process()
{
if (this->isInputTriggerActive(OVP_Algorithm_BrainampFileReader_InputTriggerId_Open))
{
std::string markerFilename;
std::string dataFilename;
m_binaryFormat = EBinaryFormat::Integer16;
m_nChannel = 0;
m_startSampleIdx = 0;
m_endSampleIdx = 0;
m_sampleCountPerBuffer = 0;
m_channelScales.clear();
delete [] m_buffer;
m_buffer = nullptr;
m_endianness = EEndianness::LittleEndian;
m_headerFile.open(ip_filename->toASCIIString(), std::ios::binary);
if (!m_headerFile.good())
{
getLogManager() << Kernel::LogLevel_Error << "Could not open file [" << *ip_filename << "]\n";
return false;
}
getLogManager() << Kernel::LogLevel_Trace << "Opening " << *ip_filename << " succeeded\n";
op_signalMatrix->setDimensionCount(2);
size_t channelIdx = 0;
EStatus status = EStatus::Nothing;
do
{
std::string what;
std::getline(m_headerFile, what, '\n');
getLogManager() << Kernel::LogLevel_Debug << what << "\n";
// optionally removes ending carriage return for windows / linux compatibility
if (what.length() != 0) { if (what[what.length() - 1] == '\r') { what.erase(what.length() - 1, 1); } }
if (what.length() != 0)
{
std::string::size_type equalPos;
if (what[0] == ';') // comments
{ }
else if (what.length() > 2 && what[0] == '[') // section start
{
std::string name;
name.assign(what, 1, what.length() - 2);
if (name == "Common Infos")
{
getLogManager() << Kernel::LogLevel_Trace << "Found section " << what << "\n";
status = EStatus::CommonInfos;
}
else if (name == "Binary Infos")
{
getLogManager() << Kernel::LogLevel_Trace << "Found section " << what << "\n";
status = EStatus::BinrayInfos;
}
else if (name == "Channel Infos")
{
getLogManager() << Kernel::LogLevel_Trace << "Found section " << what << "\n";
status = EStatus::ChannelInfos;
}
else if (name == "Comment")
{
getLogManager() << Kernel::LogLevel_Trace << "Found section " << what << "\n";
status = EStatus::Comment;
}
else
{
getLogManager() << Kernel::LogLevel_Warning << "{" << what <<
"} looked like a new section in the header file but is not know of this parser. Therefore anything after this line will be skipped until a new section is found\n";
status = EStatus::Nothing;
}
}
else if ((equalPos = what.find('=')) != std::string::npos && status != EStatus::Comment) // Option value
{
std::string name;
std::string value;
name.assign(what, 0, equalPos);
value.assign(what, equalPos + 1, what.length() - equalPos - 1);
getLogManager() << Kernel::LogLevel_Trace << "| Found option " << name << " with value " << CString(
value.c_str()) << "\n";
switch (status)
{
case EStatus::CommonInfos:
if (name == "DataFormat")
{
if (value != "BINARY") { getLogManager() << Kernel::LogLevel_ImportantWarning << "Only binary data is supported\n"; }
}
else if (name == "DataOrientation")
{
if (value != "MULTIPLEXED") { getLogManager() << Kernel::LogLevel_ImportantWarning << "Only multiplexed data is supported\n"; }
}
else if (name == "DataType")
{
if (value != "TIMEDOMAIN") { getLogManager() << Kernel::LogLevel_ImportantWarning << "Only time domain data is supported\n"; }
}
else if (name == "Codepage")
{
if (value != "ANSI")
{
getLogManager() << Kernel::LogLevel_Warning << "Header specifies code page as " << value
<< " but it will be forced back to " << CString("ANSI") << "\n";
}
}
else if (name == "DataFile") { dataFilename = value; }
else if (name == "MarkerFile") { markerFilename = value; }
else if (name == "NumberOfChannels")
{
m_nChannel = atoi(value.c_str());
m_channelScales.clear();
m_channelScales.resize(m_nChannel, 1);
op_signalMatrix->setDimensionSize(0, m_nChannel);
}
else if (name == "SamplingInterval")
{
double samplingInterval = atof(value.c_str());
op_sampling = uint64_t(0.5 + 1000000.0 / samplingInterval); // +0.5 for rounding
m_sampleCountPerBuffer = int64_t(ip_epochDuration * op_sampling); // $$$ Casted in (int64_t) because of Ubuntu 7.10 crash !
op_signalMatrix->setDimensionSize(1, uint32_t(m_sampleCountPerBuffer));
// TODO warn if approximated sampling rate
getLogManager() << Kernel::LogLevel_Trace << "| -> Calculated sampling frequency " << op_sampling << "Hz\n";
}
else { getLogManager() << Kernel::LogLevel_Warning << "Skipped option " << name << " with value " << value << "\n"; }
break;
case EStatus::BinrayInfos:
if (name == "BinaryFormat")
{
if (value == "INT_16") { m_binaryFormat = EBinaryFormat::Integer16; }
else if (value == "UINT_16") { m_binaryFormat = EBinaryFormat::UnsignedInteger16; }
else if (value == "FLOAT_32" || value == "IEEE_FLOAT_32") { m_binaryFormat = EBinaryFormat::Float32; }
else
{
m_binaryFormat = EBinaryFormat::Integer16;
getLogManager() << Kernel::LogLevel_ImportantWarning << "Unsupported binary format option value \""
<< value << "\"... Switched back to 16 bits integer (default)\n";
}
}
else if (name == "UseBigEndianOrder")
{
if (value == "YES") { m_endianness = EEndianness::BigEndian; }
else if (value == "NO") { m_endianness = EEndianness::LittleEndian; }
else
{
m_endianness = EEndianness::LittleEndian;
getLogManager() << Kernel::LogLevel_ImportantWarning << "Unsupported use big endian order option value \""
<< value << "\"... Switched back to little endian (default)\n";
}
}
else { getLogManager() << Kernel::LogLevel_Warning << "Skipped option " << name << " with value " << value << "\n"; }
break;
case EStatus::ChannelInfos:
{
std::stringstream ss(value);
std::string channelName, referenceChannelName, resolutionInUnit, unitName;
std::getline(ss, channelName, ',');
std::getline(ss, referenceChannelName, ',');
std::getline(ss, resolutionInUnit, ',');
std::getline(ss, unitName, ',');
op_signalMatrix->setDimensionLabel(0, channelIdx, channelName.c_str());
m_channelScales[channelIdx] = atof(resolutionInUnit.c_str());
channelIdx++;
}
break;
default: break;
}
}
}
} while (m_headerFile.good());
// Changing file location
std::string fullPath = ip_filename->toASCIIString();
std::string path;
std::string::size_type slashPos = fullPath.rfind('/');
if (slashPos != std::string::npos)
{
path.assign(fullPath, 0, slashPos + 1);
markerFilename = path + markerFilename;
dataFilename = path + dataFilename;
}
// Opens data file
m_dataFile.open(dataFilename.c_str(), std::ios::binary);
if (!m_dataFile.good()) { getLogManager() << Kernel::LogLevel_Error << "Could not open file [" << dataFilename << "]\n"; }
else { getLogManager() << Kernel::LogLevel_Trace << "Opening " << dataFilename << " succeeded\n"; }
// Opens marker file
m_markerFile.open(markerFilename.c_str(), std::ios::binary);
if (!m_markerFile.good()) { getLogManager() << Kernel::LogLevel_Error << "Could not open file [" << markerFilename << "]\n"; }
else
{
getLogManager() << Kernel::LogLevel_Trace << "Opening " << markerFilename << " succeeded\n";
status = EStatus::Nothing;
do
{
std::string what;
std::getline(m_markerFile, what, '\n');
getLogManager() << Kernel::LogLevel_Debug << what << "\n";
// optionally removes ending carriage return for windows / linux compatibility
if (what.length() != 0) { if (what[what.length() - 1] == '\r') { what.erase(what.length() - 1, 1); } }
if (what.length() != 0)
{
std::string::size_type equalPos;
if (what[0] == ';') // comments
{ }
else if (what.length() > 2 && what[0] == '[') // section start
{
std::string name;
name.assign(what, 1, what.length() - 2);
if (name == "Common Infos")
{
getLogManager() << Kernel::LogLevel_Trace << "Found section " << what << "\n";
status = EStatus::CommonInfos;
}
else if (name == "Marker Infos")
{
getLogManager() << Kernel::LogLevel_Trace << "Found section " << what << "\n";
status = EStatus::MarkerInfos;
}
else
{
getLogManager() << Kernel::LogLevel_Warning << "{" << what <<
"} looked like a new section in the marker file but is not know of this parser. Therefore anything after this line will be skipped until a new section is found\n";
status = EStatus::Nothing;
}
}
else if ((equalPos = what.find('=')) != std::string::npos && status != EStatus::Comment) // Option value
{
std::string name, value;
name.assign(what, 0, equalPos);
value.assign(what, equalPos + 1, what.length() - equalPos - 1);
getLogManager() << Kernel::LogLevel_Trace << "| Found option " << name << " with value " << value << "\n";
switch (status)
{
case EStatus::CommonInfos:
break;
case EStatus::MarkerInfos:
{
std::stringstream ss(value);
std::string type, desc, pos, duration, idx, date;
std::getline(ss, type, ',');
std::getline(ss, desc, ',');
std::getline(ss, pos, ',');
std::getline(ss, duration, ',');
std::getline(ss, idx, ',');
std::getline(ss, date, ',');
getLogManager() << Kernel::LogLevel_Trace << "| -> Found marker " << type << "," << desc << "," << pos << "," << duration << ","
<< idx << "," << date << "\n";
if (type == "Stimulus" && desc.length() > 0)
{
if (idx != "0")
{
getLogManager() << Kernel::LogLevel_Warning << "Marker [" << type << ":" << desc <<
"] is not marked on channel 0 and OpenViBE only supports global scope stimulations. Therefore this marker will be considered as global\n";
}
uint64_t id;
if (desc[0] == 'S') { id = atoi(desc.substr(1, std::string::npos).c_str()); }
else { id = atoi(desc.c_str()); }
if (ip_convertStimuli)
{
getLogManager() << Kernel::LogLevel_Trace << "Pre-conversion stimulation is " << desc <<
" at sample index [" << pos << "]\n";
id = OVTK_StimulationId_Label(id);
}
stimulation_t stim;
stim.id = id;
stim.startIdx = atoi(pos.c_str());
stim.duration = atoi(duration.c_str());
stim.name = desc;
m_stimulations.push_back(stim);
getLogManager() << Kernel::LogLevel_Trace << "Found stimulation " << stim.id << " at sample index [" << stim.startIdx << ":"
<< stim.duration << "]\n";
}
else
{
getLogManager() << Kernel::LogLevel_Warning << "Marker [" << type << ":" << desc <<
"] is not supported. Therefore it will be ignored\n";
}
}
break;
default: break;
}
}
}
} while (m_markerFile.good());
}
}
if (this->isInputTriggerActive(OVP_Algorithm_BrainampFileReader_InputTriggerId_Seek))
{
getLogManager() << Kernel::LogLevel_ImportantWarning << "This has not been implemented yet\n";
}
if (this->isInputTriggerActive(OVP_Algorithm_BrainampFileReader_InputTriggerId_Next))
{
double* buffer = op_signalMatrix->getBuffer();
#define DO_IT_WITH_TYPE(T) \
{ \
if (!m_buffer) { m_buffer = new uint8_t[op_signalMatrix->getBufferElementCount() * sizeof(T)]; } \
uint8_t* fileBuffer = m_buffer; \
T tValue; \
m_dataFile.read((char*)fileBuffer, op_signalMatrix->getBufferElementCount() * sizeof(T)); \
if (m_dataFile.eof()) { memset(fileBuffer, 0, op_signalMatrix->getBufferElementCount() * sizeof(T)); } \
bool (*fiileToHost)(const uint8_t*, T*); \
if (m_endianness == EEndianness::LittleEndian) { fiileToHost = System::Memory::littleEndianToHost; } \
else { fiileToHost = System::Memory::bigEndianToHost; } \
for (uint32_t j = 0; j < m_sampleCountPerBuffer; ++j) \
{ \
for (uint32_t i = 0; i < m_nChannel; i++, fileBuffer += sizeof(T)) \
{ \
(*fiileToHost)(fileBuffer, &tValue); \
buffer[i * m_sampleCountPerBuffer + j] = m_channelScales[i] * tValue; \
} \
} \
}
if (m_binaryFormat == EBinaryFormat::Integer16) { DO_IT_WITH_TYPE(int16_t); }
if (m_binaryFormat == EBinaryFormat::UnsignedInteger16) { DO_IT_WITH_TYPE(uint16_t); }
if (m_binaryFormat == EBinaryFormat::Float32) { DO_IT_WITH_TYPE(float); }
m_startSampleIdx = m_endSampleIdx;
m_endSampleIdx += m_sampleCountPerBuffer;
op_startTime = CTime(op_sampling, m_startSampleIdx).time();
op_endTime = CTime(op_sampling, m_endSampleIdx).time();
// find stimulations in this range
uint64_t nStim = 0;
for (const auto& s : m_stimulations) { if (m_startSampleIdx <= s.startIdx && s.startIdx < m_endSampleIdx) { nStim++; } }
op_stimulations->setStimulationCount(nStim);
nStim = 0;
for (const auto& s : m_stimulations)
{
if (m_startSampleIdx <= s.startIdx && s.startIdx < m_endSampleIdx)
{
uint64_t date = CTime(op_sampling, s.startIdx).time();
uint64_t duration = CTime(op_sampling, s.duration).time();
op_stimulations->setStimulationIdentifier(nStim, s.id);
op_stimulations->setStimulationDate(nStim, date);
op_stimulations->setStimulationDuration(nStim, duration);
nStim++;
}
}
this->activateOutputTrigger(OVP_Algorithm_BrainampFileReader_OutputTriggerId_DataProduced, true);
}
if (this->isInputTriggerActive(OVP_Algorithm_BrainampFileReader_InputTriggerId_Close))
{
delete [] m_buffer;
m_buffer = nullptr;
m_markerFile.close();
m_dataFile.close();
m_headerFile.close();
}
return true;
}
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,111 @@
#pragma once
#include "../../ovp_defines.h"
#include <openvibe/ov_all.h>
#include <toolkit/ovtk_all.h>
#include <fstream>
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
class CAlgorithmBrainampFileReader final : public Toolkit::TAlgorithm<IAlgorithm>
{
public:
void release() override { delete this; }
bool initialize() override;
bool uninitialize() override;
bool process() override;
_IsDerivedFromClass_Final_(Toolkit::TAlgorithm<IAlgorithm>, OVP_ClassId_Algorithm_BrainampFileReader)
protected:
enum class EStatus { Nothing, CommonInfos, BinrayInfos, ChannelInfos, MarkerInfos, Comment };
enum class EBinaryFormat { Integer16, UnsignedInteger16, Float32 };
enum class EEndianness { LittleEndian, BigEndian };
typedef struct
{
uint64_t id;
uint64_t startIdx;
uint64_t duration;
std::string name;
} stimulation_t;
Kernel::TParameterHandler<CString*> ip_filename;
Kernel::TParameterHandler<double> ip_epochDuration;
Kernel::TParameterHandler<uint64_t> ip_seekTime;
Kernel::TParameterHandler<bool> ip_convertStimuli;
Kernel::TParameterHandler<uint64_t> op_startTime;
Kernel::TParameterHandler<uint64_t> op_endTime;
Kernel::TParameterHandler<uint64_t> op_sampling;
Kernel::TParameterHandler<CMatrix*> op_signalMatrix;
Kernel::TParameterHandler<IStimulationSet*> op_stimulations;
CString m_filename;
EBinaryFormat m_binaryFormat = EBinaryFormat::Integer16;
EEndianness m_endianness = EEndianness::LittleEndian;
uint32_t m_nChannel = 0;
uint64_t m_startSampleIdx = 0;
uint64_t m_endSampleIdx = 0;
uint64_t m_sampleCountPerBuffer = 0;
uint8_t* m_buffer = nullptr;
std::vector<double> m_channelScales;
std::vector<stimulation_t> m_stimulations;
std::ifstream m_headerFile;
std::ifstream m_dataFile;
std::ifstream m_markerFile;
};
class CAlgorithmBrainampFileReaderDesc final : public IAlgorithmDesc
{
public:
void release() override { }
CString getName() const override { return CString("Brainamp file reader"); }
CString getAuthorName() const override { return CString("Yann Renard"); }
CString getAuthorCompanyName() const override { return CString("INRIA/IRISA"); }
CString getShortDescription() const override { return CString("Reads input having the BrainAmp file format"); }
CString getDetailedDescription() const override { return CString(""); }
CString getCategory() const override { return CString("File reading and writing/Brainamp"); }
CString getVersion() const override { return CString("1.1"); }
CIdentifier getCreatedClass() const override { return OVP_ClassId_Algorithm_BrainampFileReader; }
IPluginObject* create() override { return new CAlgorithmBrainampFileReader; }
bool getAlgorithmPrototype(Kernel::IAlgorithmProto& prototype) const override
{
prototype.addInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_Filename, "Filename", Kernel::ParameterType_String);
prototype.addInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_EpochDuration, "Epoch duration", Kernel::ParameterType_Float);
prototype.addInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_SeekTime, "Seek time", Kernel::ParameterType_Integer);
prototype.addInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_ConvertStimuli, "Convert stimuli", Kernel::ParameterType_Boolean);
prototype.addOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_CurrentStartTime, "Current start time", Kernel::ParameterType_Integer);
prototype.addOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_CurrentEndTime, "Current end time", Kernel::ParameterType_Integer);
prototype.addOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_Sampling, "Sampling rate", Kernel::ParameterType_Integer);
prototype.addOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_SignalMatrix, "Signal samples", Kernel::ParameterType_Matrix);
prototype.addOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_Stimulations, "Stimulations", Kernel::ParameterType_StimulationSet);
prototype.addInputTrigger(OVP_Algorithm_BrainampFileReader_InputTriggerId_Open, "Open");
prototype.addInputTrigger(OVP_Algorithm_BrainampFileReader_InputTriggerId_Seek, "Seek");
prototype.addInputTrigger(OVP_Algorithm_BrainampFileReader_InputTriggerId_Next, "Next");
prototype.addInputTrigger(OVP_Algorithm_BrainampFileReader_InputTriggerId_Close, "Close");
prototype.addOutputTrigger(OVP_Algorithm_BrainampFileReader_OutputTriggerId_Error, "Error");
prototype.addOutputTrigger(OVP_Algorithm_BrainampFileReader_OutputTriggerId_DataProduced, "Data produced");
return true;
}
_IsDerivedFromClass_Final_(IAlgorithmDesc, OVP_ClassId_Algorithm_BrainampFileReaderDesc)
};
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,256 @@
#include <iostream>
#include <fstream>
#include <sstream>
#include <cstdlib>
#include <boost/regex.hpp>
#include <boost/detail/endian.hpp>
#include "ovpCBCI2000ReaderHelper.h"
namespace BCI2000 {
void CBCI2000ReaderHelper::printInfo(std::ostream& os) const
{
if (m_good)
{
os << "version: " << m_bci2000Version << std::endl;
os << "header length: " << m_headerLength << std::endl;
os << "source channels: " << m_nSrcChannel << std::endl;
os << "state vector length: " << m_stateVectorLength << std::endl;
os << "data format: " << m_dataFormat << std::endl;
os << "samples: " << m_nSamples << std::endl;
os << "samples left: " << m_samplesLeft << std::endl;
os << "sample size: " << m_sampleSize << std::endl;
os << "rate: " << getRate() << std::endl;
}
else { os << "bad file (unreadable or bad header)" << std::endl; }
}
bool CBCI2000ReaderHelper::parseMeta(OpenViBE::CString& meta)
{
static const boost::regex RE_META("BCI2000V= ([0-9.]+) HeaderLen= ([0-9]+) SourceCh= ([0-9]+) StateVectorLen(gth)?= ([0-9]+) DataFormat= ([a-z0-9]+)\r?$",
boost::regex::perl | boost::regex::icase);
static const boost::regex RE_OLD_META("HeaderLen= +([0-9]+) SourceCh= +([0-9]+) StatevectorLen= +([0-9]+)\r$", boost::regex::perl | boost::regex::icase);
boost::smatch match;
if (regex_match(std::string(meta), match, RE_META))
{
m_bci2000Version = float(atof(match.str(1).c_str()));
m_headerLength = int(atoi(match.str(2).c_str()));
m_nSrcChannel = int(atoi(match.str(3).c_str()));
// 4 is dropped (could be used for len/length syntax check)
m_stateVectorLength = int(atoi(match.str(5).c_str()));
m_dataFormat = match.str(6).c_str();
}
else
{
if (regex_match(std::string(meta), match, RE_OLD_META))
{
m_bci2000Version = 1.0;
m_headerLength = int(atoi(match.str(1).c_str()));
m_nSrcChannel = int(atoi(match.str(2).c_str()));
m_stateVectorLength = int(atoi(match.str(3).c_str()));
m_dataFormat = "int16_t";
}
else
{
std::cerr << " *** bci2000helper error: cannot parse meta information header" << std::endl;
return false;
}
}
return true;
}
bool CBCI2000ReaderHelper::parseHeader(std::istream& is)
{
static const boost::regex REGEXP_SECTION("\\[ *(.*[^ ]) *\\].*");
static const boost::regex REGEXP_PARAMETER("([^ ]+ [^ ]+ [^ ]+)= (.*)$"); // (section) (type) (name)= (value)
static const boost::regex REGEXP_FIELD("([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+)$"); // Name Length Value ByteLocation BitLocation
std::string section = "NONAME";
std::string line;
boost::smatch match;
std::getline(is, line);
while (line.length() > 2)
{
// is it a section name ?
if (regex_match(line, match, REGEXP_SECTION)) { section = match[1]; }
else // not section, parse if interesting
{
if (section == "Parameter Definition")
{
if (regex_match(line, match, REGEXP_PARAMETER))
{
m_parameters[match[1].str().c_str()] = match[2].str().c_str();
//std::cout << "parameter added : \n\t\t" << match[1].str() << " \n\t\t" << match[2].str() << "\n";
}
else
{
// should never happen: malformed file
std::cerr << " *** bci2000helper error: cannot parse Parameters" << std::endl;
return false;
}
}
if (section == "State Vector Definition")
{
if (regex_match(line, match, REGEXP_FIELD))
{
const int length = atoi(match.str(2).c_str());
const int value = atoi(match.str(3).c_str());
const int bytePos = atoi(match.str(4).c_str());
const int bitPos = atoi(match.str(5).c_str());
m_bitfield.addField(bytePos, bitPos, length, match.str(1).c_str(), value);
}
else
{
// should never happen: malformed file
std::cerr << " *** bci2000helper error: cannot parse Parameters" << std::endl;
return false;
}
}
}
std::getline(is, line);
}
return true;
}
float CBCI2000ReaderHelper::getRate() const
{
// Warning: the SamplingRate field is not clearly defined
// in the BCI2000 doc; it could be an int, or a float;
// it should be in Section Source, but Source:Garbage:Stuff is possible
// in some case, there is a pending "Hz" after the numbers
// Conclusion: we should not fix this until it's clear...
OpenViBE::CString key = "Source int SamplingRate";
if (m_parameters.count(key) == 1)
{
std::istringstream is(m_parameters.find(key)->second.toASCIIString());
float rate;
is >> rate;
return rate;
}
key = "Source:Signal%20Properties:DataIOFilter int SamplingRate";
if (m_parameters.count(key) == 1)
{
std::istringstream is(m_parameters.find(key)->second.toASCIIString());
float rate;
is >> rate;
return rate;
}
return -1.0; // not found :-(
}
OpenViBE::CString CBCI2000ReaderHelper::getChannelName(const size_t index) const
{
// To be checked on the different version of format.
const OpenViBE::CString key = "Source:Signal%20Properties:DataIOFilter list ChannelNames";
if (m_parameters.count(key) == 1)
{
std::istringstream is(static_cast<const char*>(m_parameters.find(key)->second));
std::string token;
for (size_t i = 0; i <= index + 1; ++i) //+1 because the channel count is in the parameter on first position (parameter:list)
{
token.clear();
is >> token;
}
return token.c_str();
}
return ("Channel " + std::to_string(index + 1)).c_str();
}
CBCI2000ReaderHelper::CBCI2000ReaderHelper(const char* filename)
{
m_file.open(filename, std::ios::binary);
if (!m_file.good())
{
m_good = false;
return;
}
std::stringbuf buffer;
m_file.get(buffer);
OpenViBE::CString meta = buffer.str().c_str();
m_file.seekg(0, std::ios::end);
const int fileSize = int(m_file.tellg());
m_file.seekg(0, std::ios::beg);
m_good = parseMeta(meta);
if (!m_good) { return; }
std::map<OpenViBE::CString, int> sizesOfMap;
sizesOfMap["float"] = 4;
sizesOfMap["int"] = 4;
sizesOfMap["int16_t"] = 2;
m_nSamples = (fileSize - m_headerLength) / (sizesOfMap[m_dataFormat] * m_nSrcChannel + m_stateVectorLength);
m_sampleSize = sizesOfMap[m_dataFormat] * m_nSrcChannel + m_stateVectorLength;
m_samplesLeft = m_nSamples;
m_good = parseHeader(m_file);
}
std::vector<float> CBCI2000ReaderHelper::readSample()
{
std::vector<float> samples;
if (m_samplesLeft < 1)
{
return samples; // nothing to read, empty vector returned
}
char* data = new char[m_sampleSize];
m_file.read(data, m_sampleSize);
float* dataAsFloat = reinterpret_cast<float*>(data);
for (int i = 0; i < m_nSrcChannel; ++i) { samples.push_back(dataAsFloat[i]); }
delete[] data;
m_samplesLeft--;
return samples;
}
template <class TFrom, class TTo>
int CBCI2000ReaderHelper::readSamplesInternal(TTo* samples, uint32_t* states, int n)
{
if (n > m_samplesLeft) { n = m_samplesLeft; }
if (n < 1) { return 0; }
char* data = new char[m_sampleSize * n];
m_file.read(data, m_sampleSize * n);
for (int i = 0; i < n; ++i)
{
if (samples != nullptr)
{
for (int j = 0; j < m_nSrcChannel; ++j)
{
TFrom sample = *reinterpret_cast<TFrom*>(data + i * m_sampleSize + j * sizeof(TFrom));
samples[i * m_nSrcChannel + j] = sample;
// check endianess ?
}
}
if (states != nullptr)
{
unsigned char* state = reinterpret_cast<unsigned char*>(data) + i * m_sampleSize + m_nSrcChannel * sizeof(TFrom);
m_bitfield.getFields(state, states + i * m_bitfield.size());
}
//std::copy(l_pData+i*m_i32SampleSize,l_pData+i*m_i32SampleSize+m_nSrcChannel*sizeof(T),samples+i*m_nSrcChannel);
}
delete[] data;
m_samplesLeft -= n;
return n;
}
int CBCI2000ReaderHelper::readSamples(double* samples, uint32_t* states, const int n)
{
if (m_dataFormat == OpenViBE::CString("float")) { return readSamplesInternal<float, double>(samples, states, n); }
#if defined(BOOST_LITTLE_ENDIAN)
if (m_dataFormat == OpenViBE::CString("int")) { return readSamplesInternal<int, double>(samples, states, n); }
if (m_dataFormat == OpenViBE::CString("int16_t")) { return readSamplesInternal<int16_t, double>(samples, states, n); }
#else
std::cerr << "*** bci2000helper error: read_samples from int16_t or int is not implemented yet on bigendian machines" << std::endl;
exit(EXIT_FAILURE);
#endif
return -1; // should never happen... TODO: error checking
}
} // namespace BCI2000
@@ -0,0 +1,70 @@
#pragma once
#include <fstream>
#include <ostream>
#include <vector>
#include <map>
#include "ovpCBitfield.h"
namespace BCI2000 {
/**
* \class CBCI2000ReaderHelper
* \author Olivier Rochel (INRIA)
* \brief BCI2000 file format parser and utilities. Uses the m_oBitfield utility class.
**/
class CBCI2000ReaderHelper
{
protected:
std::ifstream m_file;
float m_bci2000Version = 0; // file version.
int m_headerLength = 0; // header size (inc. meta)
int m_nSrcChannel = 0; // number of channels
int m_stateVectorLength = 0; // size of state field
OpenViBE::CString m_dataFormat; // data format (float, int16_t...)
std::vector<OpenViBE::CString> m_channelNames;
int m_nSamples = 0;
int m_sampleSize = 0;
int m_samplesLeft = 0;
bool m_good = false; // m_bGood is true if file open, header looks m_bGood (may
// still be truncated or broken in a silly way)
std::map<OpenViBE::CString, OpenViBE::CString> m_parameters;
// state vector
CBitfield m_bitfield;
// helpers
bool parseMeta(OpenViBE::CString& meta);
bool parseHeader(std::istream& is);
private:
template <class TFrom, class TTo>
int readSamplesInternal(TTo* samples, uint32_t* states, int n);
public:
/**
* Constructor from a BCI2000 file.
* \param filename BCI2000 file name.
**/
explicit CBCI2000ReaderHelper(const char* filename);
~CBCI2000ReaderHelper() { if (m_file) { m_file.close(); } }
void printInfo(std::ostream& os) const;
float getRate() const;
OpenViBE::CString getChannelName(size_t index) const;
std::vector<float> readSample();
int readSamples(double* samples, uint32_t* states, int n);
// getters
int getNbSamples() const { return m_nSamples; }
int getSampleSize() const { return m_sampleSize; }
int getChannels() const { return m_nSrcChannel; }
int getSamplesLeft() const { return m_samplesLeft; }
bool isGood() const { return m_good; }
size_t getStateVectorSize() const { return m_bitfield.size(); }
const OpenViBE::CString& getStateName(const int i) const { return m_bitfield.getFieldName(i); }
};
} // namespace BCI2000
@@ -0,0 +1,41 @@
#include "ovpCBitfield.h"
namespace BCI2000 {
uint32_t* CBitfield::getFields(unsigned char* data)
{
const size_t nFields = m_fields.size();
uint32_t* fields = new uint32_t[nFields];
getFields(data, fields);
return fields;
}
void CBitfield::getFields(unsigned char* data, uint32_t* fields)
{
const size_t nFields = m_fields.size();
for (uint32_t i = 0; i < nFields; ++i)
{
const int space = (m_fields[i].m_Length - 1 + m_fields[i].m_BitPos) / 8 + 1;
unsigned char* p = data + m_fields[i].m_BytePos;
uint32_t field = (*p) >> m_fields[i].m_BitPos;
for (uint32_t j = 1; j < uint32_t(space); ++j)
{
p++;
field += uint32_t(*p) << (j * 8 - m_fields[i].m_BitPos);
}
field &= 0xFFFFFFFF >> (32 - m_fields[i].m_Length);
fields[i] = field;
}
}
bool CBitfield::addField(const int bytePosition, const int bitPosition, const int length, const OpenViBE::CString& name, const int value)
{
if (length > 32) { return false; } // doc says len is 32 bits max
if (bitPosition > 7) { return false; }
m_fields.push_back(CField(bytePosition, bitPosition, length, name, value));
return true;
}
} // namespace BCI2000
@@ -0,0 +1,43 @@
#pragma once
#include <openvibe/ov_all.h>
#include <vector>
namespace BCI2000 {
class CBitfield
{
protected:
class CField
{
public:
int m_BytePos = 0; // starting byte
int m_BitPos = 0; // starting bit within starting byte
int m_Length = 0; // field length (in bits)
OpenViBE::CString m_Name;
int m_InitialValue = 0; // initial value. Not updated when reading files
CField(const int bytePos, const int bitPos, const int length, const OpenViBE::CString& name, const int initialValue)
: m_BytePos(bytePos), m_BitPos(bitPos), m_Length(length), m_Name(name), m_InitialValue(initialValue) {}
};
std::vector<CField> m_fields;
public:
// extract values from compressed data; returned array of size this->size() to
// be deleted[] by the user.
uint32_t* getFields(unsigned char* data);
// extract values from compressed data
// extractedFields must be allocated and of size this->size()
void getFields(unsigned char* data, uint32_t* fields);
// add a new field. Returns false when invalid paramaters entered, true otherwise.
bool addField(const int bytePosition, const int bitPosition, const int length, const OpenViBE::CString& name, const int value);
// returns the number of m_fields in the structure
// (not to be confused with the actual memory footprint)
uint32_t size() const { return m_fields.size(); }
const OpenViBE::CString& getFieldName(const size_t index) const { return m_fields[index].m_Name; }
int getInitialValue(const size_t index) const { return m_fields[index].m_InitialValue; }
};
} // namespace BCI2000
@@ -0,0 +1,155 @@
#include "ovpCBoxAlgorithmBCI2000Reader.h"
#include <iostream>
#include <sstream>
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
bool CBoxAlgorithmBCI2000Reader::initialize()
{
const CString filename = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 0);
m_helper = new BCI2000::CBCI2000ReaderHelper(filename);
if (!m_helper->isGood())
{
this->getLogManager() << Kernel::LogLevel_ImportantWarning << "Could not open file [" << filename << "]\n";
m_helper = nullptr;
return false;
}
std::stringstream ss;
m_helper->printInfo(ss);
this->getLogManager() << Kernel::LogLevel_Trace << "Metadata from [" << filename << "] :\n" << ss.str() << "\n";
m_headerSent = false;
m_nChannel = m_helper->getChannels();
m_nSamplePerBuffer = size_t(uint64_t(FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 1)));
m_samplesSent = 0;
if (m_nSamplePerBuffer == 0)
{
this->getLogManager() << Kernel::LogLevel_Error << "SampleCountPerBuffer is 0, this will not work\n";
return false;
}
m_buffer.resize(m_nChannel * m_nSamplePerBuffer);
m_states.resize(m_helper->getStateVectorSize() * m_nSamplePerBuffer);
m_rate = size_t(m_helper->getRate());
if (int(m_rate) == -1)
{
this->getLogManager() << Kernel::LogLevel_Error << "Sampling rate could not be extracted from the file.\n";
return false;
}
if (m_rate == 0)
{
this->getLogManager() << Kernel::LogLevel_Error << "Sampling rate of 0 is not supported.\n";
return false;
}
m_signalEncoder.initialize(*this, 0);
m_oSignalMatrix = m_signalEncoder.getInputMatrix();
m_oSignalMatrix->resize(m_nChannel, m_nSamplePerBuffer);
for (size_t i = 0; i < m_nChannel; ++i) { m_oSignalMatrix->setDimensionLabel(0, i, m_helper->getChannelName(i)); }
m_stateEncoder.initialize(*this, 1);
m_oStateMatrix = m_stateEncoder.getInputMatrix();
m_oStateMatrix->resize(m_helper->getStateVectorSize(), m_nSamplePerBuffer);
for (size_t i = 0; i < m_helper->getStateVectorSize(); ++i) { m_oStateMatrix->setDimensionLabel(0, i, m_helper->getStateName(i)); }
m_signalEncoder.getInputSamplingRate() = m_rate;
m_stateEncoder.getInputSamplingRate() = m_rate;
for (size_t i = 0; i < m_helper->getStateVectorSize(); ++i)
{
this->getLogManager() << Kernel::LogLevel_Trace << "BCI2000 state var " << i << " is : " << m_helper->getStateName(i) << "\n";
}
return true;
}
bool CBoxAlgorithmBCI2000Reader::uninitialize()
{
delete m_helper;
m_buffer.clear();
m_states.clear();
m_signalEncoder.uninitialize();
m_stateEncoder.uninitialize();
return true;
}
bool CBoxAlgorithmBCI2000Reader::processClock(Kernel::CMessageClock& /*msg*/)
{
if (m_helper->getSamplesLeft() > 0)
{
getBoxAlgorithmContext()->markAlgorithmAsReadyToProcess();
return true;
}
return false;
}
uint64_t CBoxAlgorithmBCI2000Reader::getClockFrequency()
{
// Intentional parameter swap to get the frequency
return CTime(m_nSamplePerBuffer, m_rate).time();
}
void CBoxAlgorithmBCI2000Reader::sendHeader()
{
m_signalEncoder.encodeHeader();
m_stateEncoder.encodeHeader();
m_headerSent = true;
getDynamicBoxContext().markOutputAsReadyToSend(0, 0, 0);
getDynamicBoxContext().markOutputAsReadyToSend(1, 0, 0);
}
bool CBoxAlgorithmBCI2000Reader::process()
{
if (!m_headerSent) { sendHeader(); }
//prepare data
const int nRead = m_helper->readSamples(m_buffer.data(), m_states.data(), m_nSamplePerBuffer);
if (nRead > 0)
{
// padding. TODO: is it necessary ? or even dangerous ?
for (uint32_t i = nRead; i < m_nSamplePerBuffer; ++i) { for (uint32_t j = 0; j < m_nChannel; ++j) { m_buffer[i * m_nChannel + j] = 0.0; } }
// transpose (yeah, I know... ugly)
for (uint32_t i = 0; i < m_nSamplePerBuffer; ++i)
{
for (uint32_t j = 0; j < m_nChannel; ++j) { m_oSignalMatrix->getBuffer()[j * m_nSamplePerBuffer + i] = m_buffer[i * m_nChannel + j]; }
}
m_signalEncoder.encodeBuffer();
const uint64_t start = CTime(m_rate, m_samplesSent).time();
const uint64_t end = CTime(m_rate, m_samplesSent + m_nSamplePerBuffer).time();
m_samplesSent += nRead;
if (m_helper->getSamplesLeft() == 0) { m_signalEncoder.encodeEnd(); }
getDynamicBoxContext().markOutputAsReadyToSend(0, start, end);
// padding. TODO: is it necessary ? or even dangerous ?
for (size_t i = nRead; i < m_nSamplePerBuffer; ++i)
{
for (size_t j = 0; j < m_helper->getStateVectorSize(); ++j) { m_states[i * m_helper->getStateVectorSize() + j] = 0; }
}
// transpose (yeah, I know... ugly)
for (size_t i = 0; i < m_nSamplePerBuffer; ++i)
{
for (size_t j = 0; j < m_helper->getStateVectorSize(); ++j)
{
m_oStateMatrix->getBuffer()[j * m_nSamplePerBuffer + i] = m_states[i * m_helper->getStateVectorSize() + j];
}
}
m_stateEncoder.encodeBuffer();
if (m_helper->getSamplesLeft() == 0) { m_signalEncoder.encodeEnd(); }
getDynamicBoxContext().markOutputAsReadyToSend(1, start, end);
}
else
{
this->getLogManager() << Kernel::LogLevel_Error << "An error occurred while trying to get new samples from file. The file may be corrupted.\n";
return false;
}
return true;
}
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,103 @@
#pragma once
#include "ovpCBCI2000ReaderHelper.h"
#include "../../ovp_defines.h"
#include <openvibe/ov_all.h>
#include <toolkit/ovtk_all.h>
#define OVP_ClassId_BoxAlgorithm_BCI2000Reader OpenViBE::CIdentifier(0xFF78DAF4, 0xC41544B8)
#define OVP_ClassId_BoxAlgorithm_BCI2000ReaderDesc OpenViBE::CIdentifier(0xFF53D107, 0xC31144B8)
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
/**
* \class CBoxAlgorithmBCI2000Reader
* \author Olivier Rochel (INRIA)
* \date Tue Jun 21 11:11:04 2011
* \brief The class CBoxAlgorithmBCI2000Reader describes the box BCI2000 Reader.
*
*/
class CBoxAlgorithmBCI2000Reader final : virtual public Toolkit::TBoxAlgorithm<IBoxAlgorithm>
{
public:
void release() override { delete this; }
bool initialize() override;
bool uninitialize() override;
bool processClock(Kernel::CMessageClock& msg) override;
uint64_t getClockFrequency() override;
bool process() override;
_IsDerivedFromClass_Final_(Toolkit::TBoxAlgorithm<IBoxAlgorithm>, OVP_ClassId_BoxAlgorithm_BCI2000Reader)
protected:
bool m_headerSent = false;
Toolkit::TSignalEncoder<CBoxAlgorithmBCI2000Reader> m_signalEncoder;
Toolkit::TSignalEncoder<CBoxAlgorithmBCI2000Reader> m_stateEncoder;
// These 2 were from the time the matrices were built, not given by the encoders.
// They could be removed, but for now make the code a bit easier to read - that's
// why they're still there.
CMatrix* m_oSignalMatrix = nullptr;
CMatrix* m_oStateMatrix = nullptr;
size_t m_rate = 0;
size_t m_nChannel = 0;
size_t m_nSamplePerBuffer = 0;
std::vector<double> m_buffer; // temporary buffer as we'll have to transpose data for signal_out
std::vector<uint32_t> m_states; // state variables, to be converted too;
uint64_t m_samplesSent = 0;
BCI2000::CBCI2000ReaderHelper* m_helper = nullptr;
// helpers
void sendHeader();
};
/**
* \class CBoxAlgorithmBCI2000ReaderDesc
* \author Olivier Rochel (INRIA)
* \date Tue Jun 21 11:11:04 2011
* \brief Descriptor of the box BCI2000 Reader.
*
*/
class CBoxAlgorithmBCI2000ReaderDesc final : virtual public IBoxAlgorithmDesc
{
public:
void release() override { }
CString getName() const override { return CString("BCI2000 File Reader"); }
CString getAuthorName() const override { return CString("Olivier Rochel"); }
CString getAuthorCompanyName() const override { return CString("INRIA"); }
CString getShortDescription() const override { return CString("Reads BCI2000 .dat files."); }
CString getDetailedDescription() const override { return CString("The box reads EEG/States signals from a BCI2000 file (.dat)"); }
CString getCategory() const override { return CString("File reading and writing/BCI2000"); }
CString getVersion() const override { return CString("1.3"); }
CString getStockItemName() const override { return CString("gtk-open"); }
CIdentifier getCreatedClass() const override { return OVP_ClassId_BoxAlgorithm_BCI2000Reader; }
IPluginObject* create() override { return new CBoxAlgorithmBCI2000Reader; }
bool getBoxPrototype(Kernel::IBoxProto& prototype) const override
{
prototype.addOutput("Signal",OV_TypeId_Signal);
prototype.addOutput("State",OV_TypeId_Signal);
prototype.addSetting("File name",OV_TypeId_Filename, "");
prototype.addSetting("Samples per buffer",OV_TypeId_Integer, "16");
prototype.addFlag(OV_AttributeId_Box_FlagIsUnstable); // meuh non !
return true;
}
_IsDerivedFromClass_Final_(IBoxAlgorithmDesc, OVP_ClassId_BoxAlgorithm_BCI2000ReaderDesc)
};
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,163 @@
#include "ovpCBoxAlgorithmBrainampFileReader.h"
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
uint64_t CBoxAlgorithmBrainampFileReader::getClockFrequency()
{
// Brainamp file reader parameters
Kernel::TParameterHandler<CString*> ip_filename(m_reader->getInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_Filename));
Kernel::TParameterHandler<double> ip_epochDuration(m_reader->getInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_EpochDuration));
Kernel::TParameterHandler<uint64_t> ip_seekTime(m_reader->getInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_SeekTime));
Kernel::TParameterHandler<uint64_t> op_startTime(m_reader->getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_CurrentStartTime));
Kernel::TParameterHandler<uint64_t> op_endTime(m_reader->getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_CurrentEndTime));
Kernel::TParameterHandler<uint64_t> op_sampling(m_reader->getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_Sampling));
Kernel::TParameterHandler<CMatrix*> op_signalMatrix(m_reader->getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_SignalMatrix));
Kernel::TParameterHandler<IStimulationSet*> op_stimulations(m_reader->getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_Stimulations));
return uint64_t((1LL << 32) / ip_epochDuration);
}
bool CBoxAlgorithmBrainampFileReader::initialize()
{
// Creates algorithms
m_reader = &getAlgorithmManager().
getAlgorithm(getAlgorithmManager().createAlgorithm(OVP_ClassId_Algorithm_BrainampFileReader));
m_experimentInfoEncoder = &getAlgorithmManager().getAlgorithm(
getAlgorithmManager().createAlgorithm(OVP_GD_ClassId_Algorithm_ExperimentInfoEncoder));
m_signalEncoder = &getAlgorithmManager().getAlgorithm(getAlgorithmManager().createAlgorithm(OVP_GD_ClassId_Algorithm_SignalEncoder));
m_stimEncoder = &getAlgorithmManager().getAlgorithm(getAlgorithmManager().createAlgorithm(OVP_GD_ClassId_Algorithm_StimulationEncoder));
m_reader->initialize();
m_experimentInfoEncoder->initialize();
m_signalEncoder->initialize();
m_stimEncoder->initialize();
// Brainamp file reader parameters
Kernel::TParameterHandler<CString*> ip_filename(m_reader->getInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_Filename));
Kernel::TParameterHandler<double> ip_epochDuration(m_reader->getInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_EpochDuration));
Kernel::TParameterHandler<uint64_t> ip_seekTime(m_reader->getInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_SeekTime));
Kernel::TParameterHandler<bool> ip_convertStimuli(m_reader->getInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_ConvertStimuli));
Kernel::TParameterHandler<uint64_t> op_startTime(m_reader->getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_CurrentStartTime));
Kernel::TParameterHandler<uint64_t> op_endTime(m_reader->getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_CurrentEndTime));
Kernel::TParameterHandler<uint64_t> op_sampling(m_reader->getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_Sampling));
Kernel::TParameterHandler<CMatrix*> op_signalMatrix(m_reader->getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_SignalMatrix));
Kernel::TParameterHandler<IStimulationSet*> op_stimulations(m_reader->getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_Stimulations));
// Signal stream encoder parameters
Kernel::TParameterHandler<uint64_t> ip_sampling(m_signalEncoder->getInputParameter(OVP_GD_Algorithm_SignalEncoder_InputParameterId_Sampling));
Kernel::TParameterHandler<CMatrix*> ip_signalMatrix(m_signalEncoder->getInputParameter(OVP_GD_Algorithm_SignalEncoder_InputParameterId_Matrix));
// Stimulation stream encoder parameters
Kernel::TParameterHandler<IStimulationSet*> ip_stimulations(
m_stimEncoder->getInputParameter(OVP_GD_Algorithm_StimulationEncoder_InputParameterId_StimulationSet));
// Connect parameters together
ip_sampling.setReferenceTarget(op_sampling);
ip_signalMatrix.setReferenceTarget(op_signalMatrix);
ip_stimulations.setReferenceTarget(op_stimulations);
// Configures settings according to box
*ip_filename = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 0);
ip_epochDuration = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 1);
ip_convertStimuli = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 2);
m_headerSent = false;
return true;
}
bool CBoxAlgorithmBrainampFileReader::uninitialize()
{
m_reader->process(OVP_Algorithm_BrainampFileReader_InputTriggerId_Close);
m_reader->uninitialize();
m_stimEncoder->uninitialize();
m_signalEncoder->uninitialize();
m_experimentInfoEncoder->uninitialize();
getAlgorithmManager().releaseAlgorithm(*m_reader);
getAlgorithmManager().releaseAlgorithm(*m_stimEncoder);
getAlgorithmManager().releaseAlgorithm(*m_signalEncoder);
getAlgorithmManager().releaseAlgorithm(*m_experimentInfoEncoder);
return true;
}
bool CBoxAlgorithmBrainampFileReader::processClock(Kernel::CMessageClock& /*msg*/)
{
getBoxAlgorithmContext()->markAlgorithmAsReadyToProcess();
return true;
}
bool CBoxAlgorithmBrainampFileReader::process()
{
Kernel::IBoxIO& boxContext = this->getDynamicBoxContext();
// Brainamp file reader parameters
Kernel::TParameterHandler<CString*> ip_filename(m_reader->getInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_Filename));
Kernel::TParameterHandler<double> ip_epochDuration(m_reader->getInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_EpochDuration));
Kernel::TParameterHandler<uint64_t> ip_seekTime(m_reader->getInputParameter(OVP_Algorithm_BrainampFileReader_InputParameterId_SeekTime));
Kernel::TParameterHandler<uint64_t> op_startTime(m_reader->getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_CurrentStartTime));
Kernel::TParameterHandler<uint64_t> op_endTime(m_reader->getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_CurrentEndTime));
Kernel::TParameterHandler<uint64_t> op_sampling(m_reader->getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_Sampling));
Kernel::TParameterHandler<CMatrix*> op_signalMatrix(m_reader->getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_SignalMatrix));
Kernel::TParameterHandler<IStimulationSet*> op_stimulations(m_reader->getOutputParameter(OVP_Algorithm_BrainampFileReader_OutputParameterId_Stimulations));
// Signal stream encoder parameters
Kernel::TParameterHandler<IMemoryBuffer*>
op_signalBuffer(m_signalEncoder->getOutputParameter(OVP_GD_Algorithm_SignalEncoder_OutputParameterId_EncodedMemoryBuffer));
// Stimulation stream encoder parameters
Kernel::TParameterHandler<IMemoryBuffer*> op_stimulationBuffer(
m_stimEncoder->getOutputParameter(OVP_GD_Algorithm_StimulationEncoder_OutputParameterId_EncodedMemoryBuffer));
// Experiment information
Kernel::TParameterHandler<IMemoryBuffer*> op_experimentInfoBuffer(
m_experimentInfoEncoder->getOutputParameter(OVP_GD_Algorithm_ExperimentInfoEncoder_OutputParameterId_EncodedMemoryBuffer));
// Connects parameters to memory buffer
op_experimentInfoBuffer = boxContext.getOutputChunk(0);
op_signalBuffer = boxContext.getOutputChunk(1);
op_stimulationBuffer = boxContext.getOutputChunk(2);
if (!m_headerSent)
{
// Opens file
if (!m_reader->process(OVP_Algorithm_BrainampFileReader_InputTriggerId_Open)) { return false; }
// Produces header
m_experimentInfoEncoder->process(OVP_GD_Algorithm_ExperimentInfoEncoder_InputTriggerId_EncodeHeader);
m_stimEncoder->process(OVP_GD_Algorithm_StimulationEncoder_InputTriggerId_EncodeHeader);
m_signalEncoder->process(OVP_GD_Algorithm_SignalEncoder_InputTriggerId_EncodeHeader);
// Sends header
boxContext.markOutputAsReadyToSend(0, 0, 0);
boxContext.markOutputAsReadyToSend(1, 0, 0);
boxContext.markOutputAsReadyToSend(2, 0, 0);
// Turn flag off
m_headerSent = true;
}
if (!m_reader->process(OVP_Algorithm_BrainampFileReader_InputTriggerId_Next)) { return false; }
if (m_reader->isOutputTriggerActive(OVP_Algorithm_BrainampFileReader_OutputTriggerId_DataProduced))
{
// Produces buffer
m_experimentInfoEncoder->process(OVP_GD_Algorithm_ExperimentInfoEncoder_InputTriggerId_EncodeBuffer);
m_stimEncoder->process(OVP_GD_Algorithm_StimulationEncoder_InputTriggerId_EncodeBuffer);
m_signalEncoder->process(OVP_GD_Algorithm_SignalEncoder_InputTriggerId_EncodeBuffer);
// Sends buffer
boxContext.markOutputAsReadyToSend(0, op_startTime, op_endTime);
boxContext.markOutputAsReadyToSend(1, op_startTime, op_endTime);
boxContext.markOutputAsReadyToSend(2, op_startTime, op_endTime);
}
return true;
}
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,71 @@
#pragma once
#include "../../ovp_defines.h"
#include <openvibe/ov_all.h>
#include <toolkit/ovtk_all.h>
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
class CBoxAlgorithmBrainampFileReader final : public Toolkit::TBoxAlgorithm<IBoxAlgorithm>
{
public:
void release() override { delete this; }
uint64_t getClockFrequency() override;
bool initialize() override;
bool uninitialize() override;
bool processClock(Kernel::CMessageClock& msg) override;
bool process() override;
_IsDerivedFromClass_Final_(Toolkit::TBoxAlgorithm<IBoxAlgorithm>, OVP_ClassId_BoxAlgorithm_BrainampFileReader)
protected:
Kernel::IAlgorithmProxy* m_reader = nullptr;
Kernel::IAlgorithmProxy* m_experimentInfoEncoder = nullptr;
Kernel::IAlgorithmProxy* m_signalEncoder = nullptr;
Kernel::IAlgorithmProxy* m_stimEncoder = nullptr;
bool m_headerSent = false;
};
class CBoxAlgorithmBrainampFileReaderDesc final : public IBoxAlgorithmDesc
{
public:
void release() override { }
CString getName() const override { return CString("BrainVision Format file reader"); }
CString getAuthorName() const override { return CString("Yann Renard"); }
CString getAuthorCompanyName() const override { return CString("INRIA/IRISA"); }
CString getShortDescription() const override { return CString("Reads input having the BrainAmp file format"); }
CString getDetailedDescription() const override { return CString(""); }
CString getCategory() const override { return CString("File reading and writing/BrainVision Format"); }
CString getVersion() const override { return CString("1.1"); }
CString getStockItemName() const override { return CString("gtk-open"); }
CIdentifier getCreatedClass() const override { return OVP_ClassId_BoxAlgorithm_BrainampFileReader; }
IPluginObject* create() override { return new CBoxAlgorithmBrainampFileReader; }
bool getBoxPrototype(Kernel::IBoxProto& prototype) const override
{
// Adds box outputs
prototype.addOutput("Experiment information", OV_TypeId_ExperimentInfo);
prototype.addOutput("EEG stream", OV_TypeId_Signal);
prototype.addOutput("Stimulations", OV_TypeId_Stimulations);
// Adds settings
prototype.addSetting("Filename (header)", OV_TypeId_Filename, "");
prototype.addSetting("Epoch size (in sec)", OV_TypeId_Float, "0.0625");
prototype.addSetting("Convert stimuli to OpenViBE labels", OV_TypeId_Boolean, "true");
return true;
}
_IsDerivedFromClass_Final_(IBoxAlgorithmDesc, OVP_ClassId_BoxAlgorithm_BrainampFileReaderDesc)
};
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,310 @@
#include "ovpCBoxAlgorithmBrainampFileWriter.h"
#include <fs/Files.h>
#include <cstring>
#include <iomanip>
#include <fstream>
#include <string>
#include <sstream>
#if defined TARGET_OS_Linux || defined TARGET_OS_MacOS
#include <strings.h>
#define _strcmpi strcasecmp
#endif
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
bool CBoxAlgorithmBrainampFileWriter::initialize()
{
// Creates algorithms
m_signalDecoder = &getAlgorithmManager().getAlgorithm(getAlgorithmManager().createAlgorithm(OVP_GD_ClassId_Algorithm_SignalDecoder));
m_stimulationDecoder = &getAlgorithmManager().getAlgorithm(getAlgorithmManager().createAlgorithm(OVP_GD_ClassId_Algorithm_StimulationDecoder));
m_signalDecoder->initialize();
m_stimulationDecoder->initialize();
// Signal stream encoder parameters
op_sampling.initialize(m_signalDecoder->getOutputParameter(OVP_GD_Algorithm_SignalDecoder_OutputParameterId_Sampling));
// Connect parameters together
ip_signalBuffer.initialize(m_signalDecoder->getInputParameter(OVP_GD_Algorithm_StreamedMatrixDecoder_InputParameterId_MemoryBufferToDecode));
ip_stimulationsBuffer.initialize(m_stimulationDecoder->getInputParameter(OVP_GD_Algorithm_StimulationDecoder_InputParameterId_MemoryBufferToDecode));
op_matrix.initialize(m_signalDecoder->getOutputParameter(OVP_GD_Algorithm_StreamedMatrixDecoder_OutputParameterId_Matrix));
op_stimSet.initialize(m_stimulationDecoder->getOutputParameter(OVP_GD_Algorithm_StimulationDecoder_OutputParameterId_StimulationSet));
// Configures settings according to box
m_filePath = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 0);
m_dictionaryFilename = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 1);
m_transformStimulations = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 2);
m_shouldWriteFullFilenames = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 3);
// Markers inside the output file are numbered, we need to keep trace of how many of them we have already written
m_markersWritten = 0;
m_wasMarkerHeaderWritten = false;
// Create header, EEG and marker files
char parentPath[1024];
// Add the extension if it wasn't done
#if defined TARGET_OS_Linux || defined TARGET_OS_MacOS
if((m_filePath.length() < 5) || (strcasecmp(m_filePath.toASCIIString() + m_filePath.length() - 5, ".vhdr") != 0))
#else
if ((m_filePath.length() < 5) || (_strcmpi(m_filePath.toASCIIString() + m_filePath.length() - 5, ".vhdr") != 0))
#endif
{
m_filePath = m_filePath + ".vhdr";
}
if (!FS::Files::getParentPath(m_filePath.toASCIIString(), parentPath))
{
this->getLogManager() << Kernel::LogLevel_Error << "Cannot access " << m_filePath << "\n";
return false;
}
if (!FS::Files::directoryExists(parentPath) && !FS::Files::createParentPath(m_filePath))
{
this->getLogManager() << Kernel::LogLevel_Error << "Directory [" << parentPath << "] cannot be created\n";
return false;
}
// Create header file
char filenameWithoutExtension[1024];
FS::Files::getFilenameWithoutExtension(m_filePath.toASCIIString(), filenameWithoutExtension);
FS::Files::openOFStream(m_headerFStream, m_filePath.toASCIIString());
if (m_headerFStream.fail())
{
this->getLogManager() << Kernel::LogLevel_Error << "Cannot open " << m_filePath << " : " << strerror(errno) << "\n";
return false;
}
// Create EEG file
std::string eegFilePath = std::string(parentPath) + "/" + std::string(filenameWithoutExtension) + ".eeg";
FS::Files::openOFStream(m_eegFStream, eegFilePath.c_str(), std::ios::out | std::ios::binary);
if (m_eegFStream.fail())
{
this->getLogManager() << Kernel::LogLevel_Error << "Cannot open " << eegFilePath << " : " << strerror(errno) << "\n";
return false;
}
// Create Markers file
std::string markerFilePath = std::string(parentPath) + "/" + std::string(filenameWithoutExtension) + ".vmrk";
FS::Files::openOFStream(m_markerFStream, markerFilePath.c_str());
if (m_markerFStream.fail())
{
this->getLogManager() << Kernel::LogLevel_Error << "Cannot open " << markerFilePath << " : " << strerror(errno) << "\n";
return false;
}
// Opens Marker to OpenViBE Stimulation dictionary file
if (m_dictionaryFilename != CString(""))
{
std::ifstream ifs;
FS::Files::openIFStream(ifs, m_dictionaryFilename.toASCIIString());
if (!ifs.good()) { getLogManager() << Kernel::LogLevel_Error << "Could not open dictionary file [" << m_dictionaryFilename << "]\n"; }
else
{
getLogManager() << Kernel::LogLevel_Trace << "Opening " << m_dictionaryFilename << " succeeded\n";
// read the values from the dictionar, they are specified in format
// <Marker Type> , <Marker Name> , <OpenViBE Stimulation>
// Stimulations can be either written as decimal numbers, or as strings
do
{
std::string line;
std::getline(ifs, line, '\n');
// optionally removes ending carriage return for windows / linux compatibility
if (line.length() != 0) { if (line[line.length() - 1] == '\r') { line.erase(line.length() - 1, 1); } }
if (line.length() != 0)
{
if (line[0] == ';') // comments
{ }
else
{
std::string type, name, stimulationID;
std::stringstream ss(line);
std::getline(ss, type, ',');
std::getline(ss, name, ',');
std::getline(ss, stimulationID);
uint64_t id = this->getTypeManager().getEnumerationEntryValueFromName(OVTK_TypeId_Stimulation, stimulationID.c_str());
m_stimulationToMarkers[id] = type + "," + name;
}
}
} while (ifs.good());
}
}
return true;
}
bool CBoxAlgorithmBrainampFileWriter::uninitialize()
{
m_stimulationDecoder->uninitialize();
m_signalDecoder->uninitialize();
this->getAlgorithmManager().releaseAlgorithm(*m_stimulationDecoder);
this->getAlgorithmManager().releaseAlgorithm(*m_signalDecoder);
if (m_eegFStream.is_open()) { m_eegFStream.close(); }
if (m_markerFStream.is_open()) { m_markerFStream.close(); }
return true;
}
bool CBoxAlgorithmBrainampFileWriter::processInput(const size_t /*index*/)
{
this->getBoxAlgorithmContext()->markAlgorithmAsReadyToProcess();
return true;
}
bool CBoxAlgorithmBrainampFileWriter::process()
{
Kernel::IBoxIO& boxContext = this->getDynamicBoxContext();
// Signal
for (size_t i = 0; i < boxContext.getInputChunkCount(0); i++)
{
ip_signalBuffer = boxContext.getInputChunk(0, i);
m_signalDecoder->process();
if (m_signalDecoder->isOutputTriggerActive(OVP_GD_Algorithm_SignalDecoder_OutputTriggerId_ReceivedHeader))
{
// BrainAmp format uses sampling interval (between two samples) in microseconds
const size_t samplingInterval = 1000000 / size_t(op_sampling);
const size_t nChannels = op_matrix->getDimensionSize(0);
if (m_headerFStream.is_open())
{
std::string auxFilename = "$b";
if (m_shouldWriteFullFilenames)
{
char filenameWithoutExtension[1024];
FS::Files::getFilenameWithoutExtension(m_filePath.toASCIIString(), filenameWithoutExtension);
auxFilename = filenameWithoutExtension;
}
m_headerFStream << "Brain Vision Data Exchange Header File Version 1.0" << std::endl;
m_headerFStream << "[Common Infos]" << std::endl;
m_headerFStream << "DataFile=" << auxFilename << ".eeg" << std::endl;
m_headerFStream << "MarkerFile=" << auxFilename << ".vmrk" << std::endl;
m_headerFStream << "DataFormat=BINARY" << std::endl;
m_headerFStream << "DataOrientation=MULTIPLEXED" << std::endl;
m_headerFStream << "NumberOfChannels=" << nChannels << std::endl;
m_headerFStream << "SamplingInterval=" << samplingInterval << std::endl;
m_headerFStream << "[Binary Infos]" << std::endl;
m_headerFStream << "BinaryFormat=IEEE_FLOAT_32" << std::endl; // TODO_JL extend this to more formats
m_headerFStream << "[Channel Infos]" << std::endl;
for (size_t c = 0; c < nChannels; c++)
{
// OpenViBE format does not specify any units
m_headerFStream << "Ch" << (c + 1) << "=" << op_matrix->getDimensionLabel(0, c) << ",,1" << std::endl;
}
m_headerFStream.close();
}
else
{
this->getLogManager() << Kernel::LogLevel_Error << "Cannot open " << m_filePath << "\n";
return false;
}
}
if (m_signalDecoder->isOutputTriggerActive(OVP_GD_Algorithm_SignalDecoder_OutputTriggerId_ReceivedBuffer))
{
if (m_eegFStream.good())
{
for (uint32_t j = 0; j < op_matrix->getDimensionSize(1); ++j)
{
for (uint32_t c = 0; c < op_matrix->getDimensionSize(0); c++)
{
float value = float(op_matrix->getBuffer()[c * op_matrix->getDimensionSize(1) + j]);
m_eegFStream.write(reinterpret_cast<char*>(&value), sizeof(float));
}
}
}
}
boxContext.markInputAsDeprecated(0, i);
}
// Stimulations
for (uint32_t i = 0; i < boxContext.getInputChunkCount(1); i++)
{
ip_stimulationsBuffer = boxContext.getInputChunk(1, i);
m_stimulationDecoder->process();
// Handle Header
if (!m_wasMarkerHeaderWritten && m_stimulationDecoder->isOutputTriggerActive(
OVP_GD_Algorithm_StimulationDecoder_OutputTriggerId_ReceivedHeader))
{
std::string auxFilename = "$b";
if (m_shouldWriteFullFilenames)
{
char filenameWithoutExtension[1024];
FS::Files::getFilenameWithoutExtension(m_filePath.toASCIIString(), filenameWithoutExtension);
auxFilename = filenameWithoutExtension;
}
m_markerFStream << "Brain Vision Data Exchange Marker File, Version 1.0" << std::endl;
m_markerFStream << "[Common Infos]" << std::endl;
m_markerFStream << "DataFile=" << auxFilename << ".eeg" << std::endl;
m_markerFStream << "[Marker Infos]" << std::endl;
m_wasMarkerHeaderWritten = true;
}
if (m_stimulationDecoder->isOutputTriggerActive(OVP_GD_Algorithm_StimulationDecoder_OutputTriggerId_ReceivedBuffer))
{
for (uint32_t j = 0; j < op_stimSet->getStimulationCount(); j++)
{
const uint64_t id = op_stimSet->getStimulationIdentifier(j);
const uint64_t date = op_stimSet->getStimulationDate(j);
const uint64_t duration = op_stimSet->getStimulationDuration(j);
std::string writtenMarker;
bool writeStimulation = false;
if (m_stimulationToMarkers.count(id))
{
writtenMarker = m_stimulationToMarkers[id];
writeStimulation = true;
}
else if (m_transformStimulations)
{
std::string str = this->getTypeManager().getEnumerationEntryNameFromValue(OVTK_TypeId_Stimulation, id).toASCIIString();
writtenMarker = "Stimulus," + (str.empty() ? std::to_string(id) : str);
writeStimulation = true;
}
if (writeStimulation && m_markerFStream.good())
{
m_markersWritten++;
m_markerFStream << "Mk" << m_markersWritten << "=" << writtenMarker << ",";
// Calclulate the index of the sample to which the marker is attached
const uint64_t sampleIdx = CTime(date).toSampleCount(op_sampling);
m_markerFStream << sampleIdx << ",";
// Minimal duration of markers inside BrainAmp format seems to be 1 sample
const uint64_t durationInSamples = CTime(duration).toSampleCount(op_sampling) + 1;
m_markerFStream << durationInSamples << ",";
// 0 means that the stimulation is attached to all channels
m_markerFStream << "0" << std::endl;
}
}
}
boxContext.markInputAsDeprecated(1, i);
}
return true;
}
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,92 @@
#pragma once
#include "../../ovp_defines.h"
#include <openvibe/ov_all.h>
#include <toolkit/ovtk_all.h>
#include <fstream>
#include <map>
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
class CBoxAlgorithmBrainampFileWriter final : public Toolkit::TBoxAlgorithm<IBoxAlgorithm>
{
public:
void release() override { delete this; }
bool initialize() override;
bool uninitialize() override;
bool processInput(const size_t index) override;
bool process() override;
_IsDerivedFromClass_Final_(Toolkit::TBoxAlgorithm<IBoxAlgorithm>, OVP_ClassId_BoxAlgorithm_BrainampFileWriter)
protected:
Kernel::IAlgorithmProxy* m_signalDecoder = nullptr;
Kernel::IAlgorithmProxy* m_stimulationDecoder = nullptr;
Kernel::TParameterHandler<const IMemoryBuffer*> ip_signalBuffer;
Kernel::TParameterHandler<const IMemoryBuffer*> ip_stimulationsBuffer;
Kernel::TParameterHandler<CMatrix*> op_matrix;
Kernel::TParameterHandler<IStimulationSet*> op_stimSet;
Kernel::TParameterHandler<uint64_t> op_sampling;
CString m_filePath;
CString m_dictionaryFilename;
bool m_transformStimulations = false;
bool m_shouldWriteFullFilenames = false;
private:
std::ofstream m_headerFStream;
std::ofstream m_eegFStream;
std::ofstream m_markerFStream;
std::map<uint64_t, std::string> m_stimulationToMarkers;
uint64_t m_markersWritten = 0;
bool m_wasMarkerHeaderWritten = false;
};
class CBoxAlgorithmBrainampFileWriterDesc final : public IBoxAlgorithmDesc
{
public:
void release() override { }
CString getName() const override { return CString("BrainVision Format File Writer"); }
CString getAuthorName() const override { return CString("Jozef Legeny"); }
CString getAuthorCompanyName() const override { return CString("Mensia Technologies"); }
CString getShortDescription() const override { return CString("Writes its input into a BrainVision format file"); }
CString getDetailedDescription() const override { return CString("This box allows to write the input signal under BrainVision file format."); }
CString getCategory() const override { return CString("File reading and writing/BrainVision Format"); }
CString getVersion() const override { return CString("1.1"); }
CString getStockItemName() const override { return CString("gtk-save"); }
CIdentifier getCreatedClass() const override { return OVP_ClassId_BoxAlgorithm_BrainampFileWriter; }
IPluginObject* create() override { return new CBoxAlgorithmBrainampFileWriter; }
bool getBoxPrototype(Kernel::IBoxProto& prototype) const override
{
// Adds box outputs
prototype.addInput("EEG stream", OV_TypeId_Signal);
prototype.addInput("Stimulations", OV_TypeId_Stimulations);
// Adds settings
prototype.addSetting("Filename (header in vhdr format)", OV_TypeId_Filename, "record-[$core{date}-$core{time}].vhdr");
prototype.addSetting("Marker to OV Stimulation dictionary", OV_TypeId_Filename, "");
prototype.addSetting("Convert OpenViBE Stimulations to markers", OV_TypeId_Boolean, "true");
prototype.addSetting("Use full data and marker file names in header", OV_TypeId_Boolean, "false");
return true;
}
_IsDerivedFromClass_Final_(IBoxAlgorithmDesc, OVP_ClassId_BoxAlgorithm_BrainampFileWriterDesc)
};
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,336 @@
#include "ovpCBCICompetitionIIIbReader.h"
#include <iostream>
#include <cmath>
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
#define BCICompetitionIIIbReader_UndefinedClass 0xFFFFFFFFFFLL
bool CBCICompetitionIIIbReader::initialize()
{
m_signalEncoder.initialize(*this, 0);
m_stimEncoder.initialize(*this, 1);
// Parses box settings to find filename
const CString file = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 0);
//opens the file
if (file) { m_file.open(file); }
if (!m_file.good())
{
this->getLogManager() << Kernel::LogLevel_ImportantWarning << "Could not open file [" << file << "]\n";
return false;
}
m_file.seekg(0, std::ios::end);
m_fileSize = size_t(m_file.tellg());
m_file.seekg(0, std::ios::beg);
m_trialLength = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 10);
m_cueDisplayStart = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 11);
m_feedbackStart = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 12);
readTriggers();
readLabels();
readArtifacts();
readTrueLabels();
// Gets the size of output buffers
m_samplesPerBuffer = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 5);
//Offline/Online
const bool offline = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 6);
if (!offline)
{
//computes clock frequency
if (m_samplesPerBuffer <= m_sampling)
{
if (m_sampling % m_samplesPerBuffer != 0)
{
getBoxAlgorithmContext()->getPlayerContext()->getLogManager() << Kernel::LogLevel_Warning <<
"The sampling rate isn't a multiple of the buffer size\n" <<
"Please consider adjusting the BCI Competition IIIb reader settings to correct this!\n";
}
if (m_samplesPerBuffer == 0)
{
getBoxAlgorithmContext()->getPlayerContext()->getLogManager() << Kernel::LogLevel_Error <<
"SamplesPerBuffer is 0, this will not work\n";
return false;
}
// Intentional parameter swap to get the frequency
m_clockFrequency = CTime(m_samplesPerBuffer, m_sampling).time();
}
}
//Test/Training
m_keepTrainingSamples = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 7);
m_keepTestSamples = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 8);
m_keepArtifactSamples = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 9);
writeSignalInformation();
m_signalEncoder.encodeHeader();
m_stimEncoder.encodeHeader();
getBoxAlgorithmContext()->getDynamicBoxContext()->markOutputAsReadyToSend(0, 0, 0);
getBoxAlgorithmContext()->getDynamicBoxContext()->markOutputAsReadyToSend(1, 0, 0);
m_buffer = m_signalEncoder.getInputMatrix();
return true;
}
bool CBCICompetitionIIIbReader::uninitialize()
{
m_stimEncoder.uninitialize();
m_signalEncoder.uninitialize();
if (m_file) { m_file.close(); }
return true;
}
bool CBCICompetitionIIIbReader::processClock(Kernel::CMessageClock& /*msg*/)
{
if (!m_endOfFile) { getBoxAlgorithmContext()->markAlgorithmAsReadyToProcess(); }
return true;
}
bool CBCICompetitionIIIbReader::process()
{
if (m_errorOccurred) { return false; }
Kernel::IBoxIO* boxIO = getBoxAlgorithmContext()->getDynamicBoxContext();
//reading signal
//reset vector
double* buffer = m_buffer->getBuffer();
for (uint32_t i = 0; i < m_buffer->getBufferElementCount(); ++i) { buffer[i] = 0; }
std::istringstream ss;
std::string line;
double sample;
uint32_t count = 0;
for (; count < m_samplesPerBuffer && !m_endOfFile; ++count)
{
if (!getline(m_file, line)) { m_endOfFile = true; }
ss.clear();
ss.str(line);
ss >> sample;
if (std::isnan(sample)) { buffer[count] = (count != 0) ? buffer[count - 1] : 0.0; }
else { buffer[count] = sample; }
ss >> sample;
if (std::isnan(sample)) { buffer[count + m_samplesPerBuffer] = (count != 0) ? buffer[count + m_samplesPerBuffer - 1] : 0.0; }
else { buffer[count + m_samplesPerBuffer] = sample; }
}
m_nSentSample += count;
//A signal matrix is ready to be output
m_signalEncoder.encodeBuffer();
const uint64_t start = CTime(m_sampling, uint64_t(m_nSentSample - count)).time();
const uint64_t end = CTime(m_sampling, uint64_t(m_nSentSample)).time();
boxIO->markOutputAsReadyToSend(0, start, end);
//////
//Stimulations
std::vector<std::pair<uint64_t, uint64_t>> events;
bool changed = true;
while (changed)
{
changed = false;
const bool keepCurrentTrial =
((m_artifacts[m_currentTrial] && m_keepArtifactSamples) || !m_artifacts[m_currentTrial]) &&
((m_classLabels[m_currentTrial] == BCICompetitionIIIbReader_UndefinedClass && m_keepTestSamples) ||
(m_classLabels[m_currentTrial] != BCICompetitionIIIbReader_UndefinedClass && m_keepTrainingSamples));
if (m_triggerTimes[m_currentTrial] > (m_nSentSample - count) &&
m_triggerTimes[m_currentTrial] <= m_nSentSample
)
{
if (keepCurrentTrial)
{
//start of trial
events.push_back(std::pair<uint64_t, uint64_t>(0x300, m_triggerTimes[m_currentTrial]));
//display cross
events.push_back(std::pair<uint64_t, uint64_t>(0x312, m_triggerTimes[m_currentTrial]));
}
}
//send CUE stimulation
if (m_cueDisplayStarts[m_currentTrial] > (m_nSentSample - count) &&
m_cueDisplayStarts[m_currentTrial] <= m_nSentSample
)
{
if (keepCurrentTrial)
{
if (m_classLabels[m_currentTrial] != BCICompetitionIIIbReader_UndefinedClass)
{
//send class label
events.push_back(std::pair<uint64_t, uint64_t>(0x300 + m_classLabels[m_currentTrial], m_cueDisplayStarts[m_currentTrial]));
}
else
{
//send true label
events.push_back(std::pair<uint64_t, uint64_t>(0x300 + m_trueLabels[m_currentTrial], m_cueDisplayStarts[m_currentTrial]));
}
}
}
//send feedback start stimulation
if (m_feedbackStarts[m_currentTrial] > (m_nSentSample - count) && m_feedbackStarts[m_currentTrial] <= m_nSentSample)
{
if (keepCurrentTrial) { events.push_back(std::pair<uint64_t, uint64_t>(0x30D, m_feedbackStarts[m_currentTrial])); }
}
//send end of trial stimulation
if (m_endOfTrials[m_currentTrial] > (m_nSentSample - count) && m_endOfTrials[m_currentTrial] <= m_nSentSample
)
{
if (keepCurrentTrial) { events.push_back(std::pair<uint64_t, uint64_t>(0x320, m_endOfTrials[m_currentTrial])); }
m_currentTrial++;
changed = true;
}
}
if (!events.empty() || m_endOfFile)
{
IStimulationSet* stimSet = m_stimEncoder.getInputStimulationSet();
stimSet->setStimulationCount(events.size() + ((m_endOfFile) ? 1 : 0));
for (size_t j = 0; j < events.size(); ++j)
{
//compute date
const uint64_t date = CTime(m_sampling, events[j].second).time();
stimSet->insertStimulation(j, events[j].first, date, 0);
}
//add the ending stim
if (m_endOfFile)
{
//compute date
const uint64_t date = CTime(m_sampling, m_nSentSample).time();
stimSet->insertStimulation(events.size(), 0x3FF, date, 0);
}
m_stimEncoder.encodeBuffer();
boxIO->markOutputAsReadyToSend(1, start, end);
}
return true;
}
void CBCICompetitionIIIbReader::writeSignalInformation()
{
m_signalEncoder.getInputSamplingRate() = 125;
m_signalEncoder.getInputMatrix()->resize(2, m_samplesPerBuffer);
m_signalEncoder.getInputMatrix()->setDimensionLabel(0, 0, "+C3a-C3p");
m_signalEncoder.getInputMatrix()->setDimensionLabel(0, 1, "+C4a-C4p");
}
void CBCICompetitionIIIbReader::readTriggers()
{
const CString str = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 1);
std::ifstream file;
if (str) { file.open(str); }
std::string line;
std::istringstream ss;
uint64_t value;
while (getline(file, line))
{
ss.clear();
ss.str(line);
ss >> value;
m_triggerTimes.push_back(value);
m_cueDisplayStarts.push_back(value + uint64_t(floor(m_sampling * m_cueDisplayStart)));
m_feedbackStarts.push_back(value + uint64_t(floor(m_sampling * m_feedbackStart)));
m_endOfTrials.push_back(value + uint64_t(floor(m_sampling * m_trialLength)));
}
file.close();
}
void CBCICompetitionIIIbReader::readLabels()
{
const CString str = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 2);
std::ifstream file;
if (str) { file.open(str); }
std::string line;
std::istringstream ss;
uint64_t value;
while (getline(file, line))
{
if (line.compare(0, 3, "NaN", 0, 3) == 0) { m_classLabels.push_back(BCICompetitionIIIbReader_UndefinedClass); }
else
{
ss.clear();
ss.str(line);
ss >> value;
m_classLabels.push_back(value);
}
}
file.close();
}
void CBCICompetitionIIIbReader::readArtifacts()
{
const CString str = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 3);
std::ifstream file;
if (str) { file.open(str); }
std::string line;
std::istringstream ss;
uint64_t value;
while (getline(file, line))
{
ss.clear();
ss.str(line);
ss >> value;
m_artifacts.push_back(value == 1);
}
file.close();
}
void CBCICompetitionIIIbReader::readTrueLabels()
{
const CString str = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 4);
std::ifstream file;
if (str) { file.open(str); }
std::string line;
std::istringstream ss;
uint64_t value;
while (getline(file, line))
{
ss.clear();
ss.str(line);
ss >> value;
m_trueLabels.push_back(value);
}
file.close();
}
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,127 @@
#pragma once
#include "../ovp_defines.h"
#include <openvibe/ov_all.h>
#include <toolkit/ovtk_all.h>
#include <vector>
#include <fstream>
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
class CBCICompetitionIIIbReader final : public Toolkit::TBoxAlgorithm<IBoxAlgorithm>
{
public:
CBCICompetitionIIIbReader() { } //TODO
void release() override { delete this; }
bool initialize() override;
bool uninitialize() override;
bool process() override;
bool processClock(Kernel::CMessageClock& msg) override;
uint64_t getClockFrequency() override { return m_clockFrequency; }
_IsDerivedFromClass_Final_(IBoxAlgorithm, OVP_ClassId_BCICompetitionIIIbReader)
protected:
void writeSignalInformation();
void readTriggers();
void readLabels();
void readArtifacts();
void readTrueLabels();
bool m_errorOccurred = false; //true if an error has occurred while reading the GDF file
//The filename and handle
std::ifstream m_file;
size_t m_fileSize = 0;
Toolkit::TSignalEncoder<CBCICompetitionIIIbReader> m_signalEncoder;
Toolkit::TStimulationEncoder<CBCICompetitionIIIbReader> m_stimEncoder;
uint64_t m_clockFrequency = 100LL << 32;
std::vector<uint64_t> m_triggerTimes;
std::vector<uint64_t> m_endOfTrials;
std::vector<uint64_t> m_cueDisplayStarts;
std::vector<uint64_t> m_feedbackStarts;
std::vector<size_t> m_classLabels;
std::vector<bool> m_artifacts;
std::vector<size_t> m_trueLabels;
size_t m_samplesPerBuffer = 0;
size_t m_sampling = 125;
size_t m_nSentSample = 0;
CMatrix* m_buffer = nullptr;
bool m_endOfFile = false;
size_t m_currentTrial = 0;
bool m_keepTrainingSamples = false;
bool m_keepTestSamples = false;
bool m_keepArtifactSamples = false;
double m_trialLength = 0;
double m_cueDisplayStart = 0;
double m_feedbackStart = 0;
};
class CBCICompetitionIIIbReaderDesc final : public IBoxAlgorithmDesc
{
public:
CString getName() const override { return CString("BCI competition IIIb reader"); }
CString getAuthorName() const override { return CString("Bruno Renier"); }
CString getAuthorCompanyName() const override { return CString("INRIA/IRISA"); }
CString getShortDescription() const override { return CString("Reads ASCII version of BCI competition IIIb datasets."); }
CString getDetailedDescription() const override
{
return CString("Reads signal samples, stimulations and class labels from the BCI competition IIIb ASCII datasets.");
}
CString getCategory() const override { return CString("File reading and writing/BCI Competition"); }
CString getVersion() const override { return CString("0.7"); }
CString getStockItemName() const override { return CString("gtk-open"); }
void release() override { }
CIdentifier getCreatedClass() const override { return OVP_ClassId_BCICompetitionIIIbReader; }
IPluginObject* create() override { return new CBCICompetitionIIIbReader(); }
bool getBoxPrototype(Kernel::IBoxProto& prototype) const override
{
// Adds box outputs
prototype.addOutput("Signal", OV_TypeId_Signal);
prototype.addOutput("Stimulations", OV_TypeId_Stimulations);
// Adds settings
prototype.addSetting("Signal file", OV_TypeId_Filename, "");
prototype.addSetting("Triggers file", OV_TypeId_Filename, "");
prototype.addSetting("Labels file", OV_TypeId_Filename, "");
prototype.addSetting("Artifact file", OV_TypeId_Filename, "");
prototype.addSetting("True labels file", OV_TypeId_Filename, "");
prototype.addSetting("Samples per buffer", OV_TypeId_Integer, "32");
prototype.addSetting("Offline", OV_TypeId_Boolean, "false");
prototype.addSetting("Train?", OV_TypeId_Boolean, "true");
prototype.addSetting("Test?", OV_TypeId_Boolean, "false");
prototype.addSetting("Keep artifacts?", OV_TypeId_Boolean, "false");
prototype.addSetting("Trial length", OV_TypeId_Float, "8.0");
prototype.addSetting("CUE display Start", OV_TypeId_Float, "3.0");
prototype.addSetting("Feedback start", OV_TypeId_Float, "4.0");
prototype.addFlag(OV_AttributeId_Box_FlagIsUnstable);
return true;
}
_IsDerivedFromClass_Final_(IBoxAlgorithmDesc, OVP_ClassId_BCICompetitionIIIbReaderDesc)
};
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,525 @@
#include "ovpCBoxAlgorithmSignalConcatenation.h"
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
bool CBoxAlgorithmSignalConcatenation::initialize()
{
m_signalChunkBuffers.resize(this->getStaticBoxContext().getInputCount() >> 1);
m_stimulationChunkBuffers.resize(this->getStaticBoxContext().getInputCount() >> 1);
m_timeOut = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 0);
m_timeOut = m_timeOut << 32;
this->getLogManager() << Kernel::LogLevel_Info << "Timeout set to " << CTime(m_timeOut) << ".\n";
for (uint32_t i = 0; i < this->getStaticBoxContext().getInputCount(); i += 2)
{
m_eofStimulations.push_back(FSettingValueAutoCast(*this->getBoxAlgorithmContext(), (i >> 2) + 1));
m_eofReached.push_back(false);
m_fileEndTimes.push_back(0);
}
for (uint32_t i = 0; i < this->getStaticBoxContext().getInputCount(); i += 2)
{
auto* signalDecoder = new Toolkit::TSignalDecoder<CBoxAlgorithmSignalConcatenation>(*this, i);
auto* stimDecoder = new Toolkit::TStimulationDecoder<CBoxAlgorithmSignalConcatenation>(*this, i + 1);
m_signalDecoders.push_back(signalDecoder);
m_stimulationDecoders.push_back(stimDecoder);
auto* stimSet = new CStimulationSet();
m_stimulationSets.push_back(stimSet);
}
m_stimulationEncoder.initialize(*this, 1);
m_stimulationEncoder.getInputStimulationSet().setReferenceTarget(m_stimulationDecoders[0]->getOutputStimulationSet());
m_signalEncoder.initialize(*this, 0);
m_triggerEncoder.initialize(*this, 2);
m_triggerEncoder.getInputStimulationSet().setReferenceTarget(m_stimulationDecoders[0]->getOutputStimulationSet());
m_headerReceivedCount = 0;
m_endReceivedCount = 0;
m_headerSent = false;
m_endSent = false;
m_stimHeaderSent = false;
m_finished = false;
m_resynchroDone = false;
m_statsPrinted = false;
m_state.m_CurrentFileIdx = 0;
m_state.m_CurrentChunkIdx = 0;
m_state.m_CurrentStimulationIdx = 0;
m_triggerDate = 0;
m_lastChunkStartTime = 0;
m_lastChunkEndTime = 0;
return true;
}
/*******************************************************************************/
bool CBoxAlgorithmSignalConcatenation::uninitialize()
{
m_stimulationEncoder.uninitialize();
m_signalEncoder.uninitialize();
m_triggerEncoder.uninitialize();
for (uint32_t i = 0; i < m_signalDecoders.size(); ++i)
{
m_signalDecoders[i]->uninitialize();
m_stimulationDecoders[i]->uninitialize();
delete m_signalDecoders[i];
delete m_stimulationDecoders[i];
}
for (auto& signalChunkBuffer : m_signalChunkBuffers) { for (auto& signalChunk : signalChunkBuffer) { delete signalChunk.m_Buffer; } }
for (auto& stimulationChunkBuffer : m_stimulationChunkBuffers)
{
for (auto& stimulationChunk : stimulationChunkBuffer) { delete stimulationChunk.m_StimulationSet; }
}
for (auto& stimulationSet : m_stimulationSets) { delete stimulationSet; }
return true;
}
/*******************************************************************************/
bool CBoxAlgorithmSignalConcatenation::processInput(const size_t /*index*/)
{
getBoxAlgorithmContext()->markAlgorithmAsReadyToProcess();
return true;
}
/*******************************************************************************/
bool CBoxAlgorithmSignalConcatenation::processClock(Kernel::CMessageClock& /*msg*/)
{
if (!m_headerSent || m_finished) { return true; }
const uint64_t currentTime = this->getPlayerContext().getCurrentTime();
for (uint32_t i = 0; i < m_fileEndTimes.size(); ++i)
{
if (!m_eofReached[i] && currentTime > m_fileEndTimes[i] + m_timeOut)
{
m_eofReached[i] = true;
this->getLogManager() << Kernel::LogLevel_Info << "File #" << i + 1 << "/" << (this->getStaticBoxContext().getInputCount() / 2) <<
" has timed out (effective end time: " << CTime(m_fileEndTimes[i]) << ").\n";
}
}
getBoxAlgorithmContext()->markAlgorithmAsReadyToProcess();
return true;
}
/*******************************************************************************/
bool CBoxAlgorithmSignalConcatenation::process()
{
const Kernel::IBox& staticBoxContext = this->getStaticBoxContext();
Kernel::IBoxIO& boxCtx = this->getDynamicBoxContext();
//SIGNAL INPUTS
for (uint32_t i = 0; i < staticBoxContext.getInputCount(); i += 2)
{
const uint32_t idx = i >> 1;
for (uint32_t j = 0; j < boxCtx.getInputChunkCount(i); ++j)
{
m_signalDecoders[idx]->decode(j, true);
if (m_signalDecoders[idx]->isHeaderReceived())
{
// Not received all headers we expect? Decode and test ...
if (m_headerReceivedCount < staticBoxContext.getInputCount() / 2)
{
const uint64_t samplingFrequency = m_signalDecoders[idx]->getOutputSamplingRate();
const uint32_t nChannel = m_signalDecoders[idx]->getOutputMatrix()->getDimensionSize(0);
const uint32_t sampleCountPerBuffer = m_signalDecoders[idx]->getOutputMatrix()->getDimensionSize(1);
// Note that the stream may be decoded in any order, hence e.g. stream 2 header may be received before stream 1 ...
if (m_headerReceivedCount == 0)
{
this->getLogManager() << Kernel::LogLevel_Info << "Common sampling rate is " << samplingFrequency << ", channel count is " << nChannel
<< " and sample count per buffer is " << sampleCountPerBuffer << ".\n";
// Set the encoder to follow the parameters of this first received input
m_signalEncoder.getInputSamplingRate().setReferenceTarget(m_signalDecoders[idx]->getOutputSamplingRate());
m_signalEncoder.getInputMatrix().setReferenceTarget(m_signalDecoders[idx]->getOutputMatrix());
m_signalEncoder.encodeHeader();
boxCtx.markOutputAsReadyToSend(0, boxCtx.getInputChunkStartTime(i, j), boxCtx.getInputChunkEndTime(i, j));
m_headerSent = true;
}
else
{
if (m_signalEncoder.getInputSamplingRate() != samplingFrequency)
{
this->getLogManager() << Kernel::LogLevel_Error << "File #"
<< idx + 1 << "/" << (staticBoxContext.getInputCount() / 2)
<< " has a different sampling rate (" << samplingFrequency
<< "Hz) than other file(s) (" << m_signalEncoder.getInputSamplingRate() << "Hz).\n";
return false;
}
if (m_signalEncoder.getInputMatrix()->getDimensionSize(0) != nChannel)
{
this->getLogManager() << Kernel::LogLevel_Error << "File #"
<< idx + 1 << "/" << (staticBoxContext.getInputCount() / 2)
<< " has a different channel count (" << nChannel
<< ") than other file(s) (" << m_signalEncoder.getInputMatrix()->getDimensionSize(0) << ").\n";
return false;
}
if (m_signalEncoder.getInputMatrix()->getDimensionSize(1) != sampleCountPerBuffer)
{
this->getLogManager() << Kernel::LogLevel_Error << "File #"
<< idx + 1 << "/" << (staticBoxContext.getInputCount() / 2)
<< " has a different sample count per buffer (" << sampleCountPerBuffer
<< ") than other file(s) (" << m_signalEncoder.getInputMatrix()->getDimensionSize(1) << ").\n";
return false;
}
}
m_headerReceivedCount++;
}
}
if (m_signalDecoders[idx]->isBufferReceived() && !m_eofReached[idx])
{
IMemoryBuffer* buffer = new CMemoryBuffer();
buffer->setSize(boxCtx.getInputChunk(i, j)->getSize(), true);
memcpy(buffer->getDirectPointer(), boxCtx.getInputChunk(i, j)->getDirectPointer(), buffer->getSize());
SChunk val;
val.m_Buffer = buffer;
val.m_StartTime = boxCtx.getInputChunkStartTime(i, j);
val.m_EndTime = boxCtx.getInputChunkEndTime(i, j);
m_signalChunkBuffers[idx].push_back(val);
if (boxCtx.getInputChunkEndTime(i, j) < m_fileEndTimes[idx])
{
this->getLogManager() << Kernel::LogLevel_Warning << "Oops, added extra chunk " << CTime(boxCtx.getInputChunkStartTime(i, j))
<< " to " << CTime(boxCtx.getInputChunkEndTime(i, j)) << "\n";
}
m_fileEndTimes[idx] = boxCtx.getInputChunkEndTime(i, j);
}
if (m_signalDecoders[idx]->isEndReceived())
{
// we assume the signal chunks must be continuous, so the end time is the end of the last buffer, don't set here
//just discard it (automatic by decoder)
}
}
}
//STIMULATION INPUTS
for (uint32_t i = 1; i < staticBoxContext.getInputCount(); i += 2)
{
const uint32_t idx = i >> 1;
for (uint32_t j = 0; j < boxCtx.getInputChunkCount(i); ++j)
{
m_stimulationDecoders[idx]->decode(j, true);
if (m_stimulationDecoders[idx]->isHeaderReceived() && !m_stimHeaderSent)
{
m_stimulationEncoder.encodeHeader();
boxCtx.markOutputAsReadyToSend(1, boxCtx.getInputChunkStartTime(i, j), boxCtx.getInputChunkEndTime(i, j));
m_triggerEncoder.encodeHeader();
boxCtx.markOutputAsReadyToSend(2, boxCtx.getInputChunkStartTime(i, j), boxCtx.getInputChunkEndTime(i, j));
m_stimHeaderSent = true;
}
if (m_stimulationDecoders[idx]->isBufferReceived() && !m_eofReached[idx])
{
const IStimulationSet* stimSet = m_stimulationDecoders[idx]->getOutputStimulationSet();
SStimulationChunk val;
val.m_StartTime = boxCtx.getInputChunkStartTime(i, j);
val.m_EndTime = boxCtx.getInputChunkEndTime(i, j);
if (stimSet->getStimulationCount() > 0) { val.m_StimulationSet = new CStimulationSet(); }
else { val.m_StimulationSet = nullptr; }
m_stimulationChunkBuffers[idx].
push_back(val); // we store even if empty to be able to retain the chunking structure of the stimulation input stream
for (size_t stim = 0; stim < stimSet->getStimulationCount(); ++stim)
{
val.m_StimulationSet->appendStimulation(stimSet->getStimulationIdentifier(stim), stimSet->getStimulationDate(stim),
stimSet->getStimulationDuration(stim));
this->getLogManager() << Kernel::LogLevel_Trace << "Input " << i << ": Discovered stim " << stimSet->getStimulationIdentifier(stim)
<< " at date [" << CTime(stimSet->getStimulationDate(stim)) << "] in chunk [" << CTime(val.m_StartTime)
<< ", " << CTime(val.m_EndTime) << "]\n";
if (stimSet->getStimulationIdentifier(stim) == m_eofStimulations[idx])
{
m_eofReached[idx] = true;
m_fileEndTimes[idx] = val.m_EndTime;
this->getLogManager() << Kernel::LogLevel_Info << "File #" << idx + 1 << "/" << (staticBoxContext.getInputCount() / 2) <<
" is finished (end time: " << CTime(m_fileEndTimes[idx]) << "). Later signal chunks will be discarded.\n";
break;
}
}
}
if (m_stimulationDecoders[idx]->isEndReceived() && !m_endSent) { m_endReceivedCount++; }
if (m_endReceivedCount == staticBoxContext.getInputCount() / 2 - 1) { m_endSent = true; }
}
}
bool shouldConcatenate = true;
for (auto&& eof : m_eofReached) { shouldConcatenate &= eof; }
if (shouldConcatenate && !m_statsPrinted)
{
for (uint32_t i = 0; i < m_stimulationChunkBuffers.size(); ++i)
{
if (!m_signalChunkBuffers[i].empty())
{
this->getLogManager() << Kernel::LogLevel_Trace << "File " << i
<< " has 1st signal chunk at " << CTime(m_signalChunkBuffers[i][0].m_StartTime)
<< " last at [" << CTime(m_signalChunkBuffers[i].back().m_EndTime)
<< ", " << CTime(m_signalChunkBuffers[i].back().m_EndTime) << "].\n";
}
if (!m_stimulationChunkBuffers[i].empty())
{
this->getLogManager() << Kernel::LogLevel_Trace << "File " << i
<< " has 1st stim chunk at " << CTime(m_stimulationChunkBuffers[i][0].m_StartTime)
<< " last at [" << CTime(m_stimulationChunkBuffers[i].back().m_EndTime)
<< ", " << CTime(m_stimulationChunkBuffers[i].back().m_EndTime)
<< "].\n";
}
this->getLogManager() << Kernel::LogLevel_Trace << "File " << i << " EOF is at " << CTime(m_fileEndTimes[i]) << "\n";
}
m_statsPrinted = true;
}
if (shouldConcatenate && !m_finished)
{
if (!this->concate()) { return true; }
m_stimulationEncoder.encodeEnd();
boxCtx.markOutputAsReadyToSend(1, m_lastChunkEndTime, m_lastChunkEndTime);
m_triggerEncoder.encodeEnd();
boxCtx.markOutputAsReadyToSend(2, m_lastChunkEndTime, m_lastChunkEndTime);
m_signalEncoder.encodeEnd();
boxCtx.markOutputAsReadyToSend(0, m_lastChunkEndTime, m_lastChunkEndTime);
m_triggerEncoder.getInputStimulationSet()->appendStimulation(OVTK_StimulationId_EndOfFile, this->getPlayerContext().getCurrentTime(), 0);
m_triggerEncoder.encodeBuffer();
boxCtx.markOutputAsReadyToSend(2, this->getPlayerContext().getCurrentTime(), this->getPlayerContext().getCurrentTime());
m_finished = true;
}
return true;
}
bool CBoxAlgorithmSignalConcatenation::concate()
{
Kernel::IBoxIO& boxContext = this->getDynamicBoxContext();
if (!m_resynchroDone)
{
this->getLogManager() << Kernel::LogLevel_Info << "Concatenation in progress...\n";
this->getLogManager() << Kernel::LogLevel_Trace << "Resynchronizing Chunks ...\n";
// note: m_stimulationSets and m_signalChunkBuffers should have the same size (== number of files)
uint64_t offset = m_fileEndTimes[0];
for (uint32_t i = 1; i < m_stimulationChunkBuffers.size(); ++i)
{
for (auto& stimulationChunkBuffer : m_stimulationChunkBuffers[i])
{
IStimulationSet* stimSet = stimulationChunkBuffer.m_StimulationSet;
if (stimSet)
{
for (size_t k = 0; k < stimSet->getStimulationCount(); ++k)
{
const uint64_t synchronizedDate = stimSet->getStimulationDate(k) + offset;
stimSet->setStimulationDate(k, synchronizedDate);
//this->getLogManager() << Kernel::LogLevel_Info << "Resynchronizing stim ["<<m_stimulations[i][j].first<<"] from time ["<<m_stimulations[i][j].second<<"] to ["<<synchronizedDate<<"]\n";
}
}
stimulationChunkBuffer.m_StartTime += offset;
stimulationChunkBuffer.m_EndTime += offset;
}
for (auto& signalChunkBuffer : m_signalChunkBuffers[i])
{
signalChunkBuffer.m_StartTime += offset;
signalChunkBuffer.m_EndTime += offset;
}
offset = offset + m_fileEndTimes[i];
}
this->getLogManager() << Kernel::LogLevel_Trace << "Resynchronization finished.\n";
m_resynchroDone = true;
}
// When we get here, resynchro has been done
// note that the iterators are references on purpose...
for (uint32_t& i = m_state.m_CurrentFileIdx; i < m_signalChunkBuffers.size(); ++i)
{
const std::vector<SChunk>& chunkVector = m_signalChunkBuffers[i];
const std::vector<SStimulationChunk>& stimulusChunkVector = m_stimulationChunkBuffers[i];
// Send a signal chunk
uint32_t& chunk = m_state.m_CurrentChunkIdx;
if (chunk < chunkVector.size())
{
// we write the signal memory buffer
const IMemoryBuffer* iBuffer = chunkVector[chunk].m_Buffer;
IMemoryBuffer* oBuffer = boxContext.getOutputChunk(0);
oBuffer->setSize(iBuffer->getSize(), true);
memcpy(oBuffer->getDirectPointer(), iBuffer->getDirectPointer(), iBuffer->getSize());
boxContext.markOutputAsReadyToSend(0, chunkVector[chunk].m_StartTime, chunkVector[chunk].m_EndTime);
/*
if(CTime(chunkVector[chunk].m_StartTime).toSeconds()>236)
{
this->getLogManager() << Kernel::LogLevel_Info << "Adding signalchunk " << i << "," << chunk << " ["
<< CTime(chunkVector[chunk].m_StartTime) << ", " << CTime(chunkVector[chunk].m_EndTime) << "\n";
}
*/
const uint64_t signalChunkEnd = chunkVector[chunk].m_EndTime;
// Write stimulations up to this point
for (uint32_t& k = m_state.m_CurrentStimulationIdx; k < stimulusChunkVector.size() && stimulusChunkVector[k].m_EndTime <= signalChunkEnd; ++k)
{
const SStimulationChunk& stimChunk = stimulusChunkVector[k];
const IStimulationSet* bufferedStimSet = stimChunk.m_StimulationSet;
IStimulationSet* stimSet = m_stimulationEncoder.getInputStimulationSet();
stimSet->clear();
if (bufferedStimSet)
{
for (size_t s = 0; s < bufferedStimSet->getStimulationCount(); ++s)
{
stimSet->appendStimulation(bufferedStimSet->getStimulationIdentifier(s), bufferedStimSet->getStimulationDate(s),
bufferedStimSet->getStimulationDuration(s));
this->getLogManager() << Kernel::LogLevel_Trace << "Adding stimulation " << bufferedStimSet->getStimulationIdentifier(s)
<< " at date [" << CTime(stimSet->getStimulationDate(s))
<< "] to chunk [" << CTime(stimChunk.m_StartTime)
<< ", " << CTime(stimChunk.m_EndTime)
<< "]\n";
}
}
// encode the stim memory buffer even if it is empty
m_stimulationEncoder.encodeBuffer();
boxContext.markOutputAsReadyToSend(1, stimChunk.m_StartTime, stimChunk.m_EndTime);
/*
if(CTime(stimChunk.m_StartTime).toSeconds()>238 &&
CTime(stimChunk.m_StartTime).toSeconds()<242)
{
this->getLogManager() << Kernel::LogLevel_Info << "Adding stimchunk " << i << "," << k << " ["
<< CTime(stimChunk.m_StartTime)
<< ", " << CTime(stimChunk.m_EndTime)
<< "\n";
}
*/
}
// Let the kernel send blocks up to now, prevent freezing up sending everything at once
chunk++;
return false;
}
// For now we don't support stimuli that don't correspond to signal data, these ones are after the last signal chunk
for (uint32_t& k = m_state.m_CurrentStimulationIdx; k < stimulusChunkVector.size(); ++k)
{
const SStimulationChunk& stimChunk = stimulusChunkVector[k];
const IStimulationSet* bufferedStimSet = stimChunk.m_StimulationSet;
if (i == m_signalChunkBuffers.size() - 1)
{
// last file, let pass
IStimulationSet* stimSet = m_stimulationEncoder.getInputStimulationSet();
stimSet->clear();
if (bufferedStimSet)
{
for (size_t s = 0; s < bufferedStimSet->getStimulationCount(); ++s)
{
stimSet->appendStimulation(bufferedStimSet->getStimulationIdentifier(s), bufferedStimSet->getStimulationDate(s),
bufferedStimSet->getStimulationDuration(s));
this->getLogManager() << Kernel::LogLevel_Warning << "Stimulation " << bufferedStimSet->getStimulationIdentifier(s)
<< " at date [" << CTime(stimSet->getStimulationDate(s))
<< "] in chunk [" << CTime(stimChunk.m_StartTime)
<< ", " << CTime(stimChunk.m_EndTime)
<< "] is after signal ended, but last file, so adding.\n";
}
}
// encode the stim memory buffer even if it is empty
m_stimulationEncoder.encodeBuffer();
boxContext.markOutputAsReadyToSend(1, stimChunk.m_StartTime, stimChunk.m_EndTime);
}
else
{
if (bufferedStimSet)
{
for (size_t s = 0; s < bufferedStimSet->getStimulationCount(); ++s)
{
if (!chunkVector.empty())
{
this->getLogManager() << Kernel::LogLevel_Warning
<< "Stimulation " << bufferedStimSet->getStimulationIdentifier(s)
<< "'s chunk at [" << CTime(stimChunk.m_StartTime)
<< ", " << CTime(stimChunk.m_EndTime)
<< "] is after the last signal chunk end time " << CTime(chunkVector.back().m_EndTime)
<< ", discarded.\n";
}
}
}
}
}
// Finished with the file
// if(stimChunk.m_EndTime < chunkVector[m_CurrentChunkIdx].m_EndTime)
// {
// There is no corresponding signal anymore, skip the rest of the stimulations from this file
//this->getLogManager() << Kernel::LogLevel_Info << "Stimulus time " << CTime(stimulusChunkVector[j].m_EndTime)
// << " exceeds the last signal buffer end time " << CTime(chunkVector[chunkVector.size()-1].m_EndTime)
// << "\n";
//break;
//}
m_state.m_CurrentChunkIdx = 0;
m_state.m_CurrentStimulationIdx = 0;
this->getLogManager() << Kernel::LogLevel_Info << "File #" << i + 1 << " Finished.\n";
}
//We search for the last file with data.
for (uint32_t lastFile = m_signalChunkBuffers.size(); lastFile > 0; lastFile--)
{
const uint32_t lastChunkOfLastFile = m_signalChunkBuffers[lastFile - 1].size();
if (lastChunkOfLastFile != 0)
{
m_lastChunkEndTime = m_signalChunkBuffers[lastFile - 1][lastChunkOfLastFile - 1].m_EndTime;
break;
}
}
this->getLogManager() << Kernel::LogLevel_Info << "Concatenation finished !\n";
return true;
}
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,212 @@
#pragma once
#include <openvibe/ov_all.h>
#include <toolkit/ovtk_all.h>
#include <vector>
#include <list>
// The unique identifiers for the box and its descriptor.
// Identifier are randomly chosen by the skeleton-generator.
#define OVP_ClassId_BoxAlgorithm_SignalConcatenation OpenViBE::CIdentifier(0x372F3A9D, 0x49E20CD2)
#define OVP_ClassId_BoxAlgorithm_SignalConcatenationDesc OpenViBE::CIdentifier(0x372F3A9D, 0x49E20CD2)
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
/**
* \class CBoxAlgorithmSignalConcatenation
* \author Laurent Bonnet (INRIA)
* \date Tue Jun 28 09:52:48 2011
* \brief The class CBoxAlgorithmSignalConcatenation describes the box Signal Concatenation.
*
*/
class CBoxAlgorithmSignalConcatenation final : virtual public Toolkit::TBoxAlgorithm<IBoxAlgorithm>
{
public:
void release() override { delete this; }
bool initialize() override;
bool uninitialize() override;
bool processClock(Kernel::CMessageClock& msg) override;
uint64_t getClockFrequency() override { return 8LL << 32; }
bool processInput(const size_t index) override;
bool process() override;
_IsDerivedFromClass_Final_(Toolkit::TBoxAlgorithm<IBoxAlgorithm>, OVP_ClassId_BoxAlgorithm_SignalConcatenation)
protected:
bool concate();
bool m_finished = false;
bool m_resynchroDone = false;
uint64_t m_timeOut = 0;
bool m_headerSent = false;
uint32_t m_headerReceivedCount = 0;
uint32_t m_endReceivedCount = 0;
bool m_stimHeaderSent = false;
bool m_endSent = false;
bool m_statsPrinted = false;
std::vector<uint64_t> m_eofStimulations;
std::vector<bool> m_eofReached;
struct SChunk
{
IMemoryBuffer* m_Buffer;
uint64_t m_StartTime;
uint64_t m_EndTime;
};
struct SStimulationChunk
{
IStimulationSet* m_StimulationSet;
uint64_t m_StartTime;
uint64_t m_EndTime;
};
uint64_t m_stimChunkLength = 0;
// File end times
std::vector<uint64_t> m_fileEndTimes;
// The signal buffers, one per file
std::vector<std::vector<SChunk>> m_signalChunkBuffers;
std::vector<std::vector<SStimulationChunk>> m_stimulationChunkBuffers;
// The stimulations are stored in one stimulation set per file. The chunk are reconstructed.
std::vector<IStimulationSet*> m_stimulationSets;
//The decoders, (1 signal/1 stim) per file
std::vector<Toolkit::TStimulationDecoder<CBoxAlgorithmSignalConcatenation>*> m_stimulationDecoders;
std::vector<Toolkit::TSignalDecoder<CBoxAlgorithmSignalConcatenation>*> m_signalDecoders;
// the encoders : signal, stim and trigger encoder.
Toolkit::TSignalEncoder<CBoxAlgorithmSignalConcatenation> m_signalEncoder;
Toolkit::TStimulationEncoder<CBoxAlgorithmSignalConcatenation> m_stimulationEncoder;
Toolkit::TStimulationEncoder<CBoxAlgorithmSignalConcatenation> m_triggerEncoder;
uint64_t m_triggerDate = 0;
uint64_t m_lastChunkStartTime = 0;
uint64_t m_lastChunkEndTime = 0;
struct SConcatenationState
{
SConcatenationState() : m_CurrentFileIdx(0), m_CurrentChunkIdx(0), m_CurrentStimulationIdx(0) { }
uint32_t m_CurrentFileIdx;
uint32_t m_CurrentChunkIdx;
uint32_t m_CurrentStimulationIdx;
};
SConcatenationState m_state;
};
// The box listener can be used to call specific callbacks whenever the box structure changes : input added, name changed, etc.
// Please uncomment below the callbacks you want to use.
class CBoxAlgorithmSignalConcatenationListener final : public Toolkit::TBoxListener<IBoxListener>
{
public:
bool check(Kernel::IBox& box) const
{
for (uint32_t i = 0; i < box.getInputCount() >> 1; ++i)
{
box.setInputName(i * 2, ("Input signal " + std::to_string(i + 1)).c_str());
box.setInputType(i * 2, OV_TypeId_Signal);
box.setInputName(i * 2 + 1, ("Input stimulations " + std::to_string(i + 1)).c_str());
box.setInputType(i * 2 + 1, OV_TypeId_Stimulations);
box.setSettingName(i + 1, ("End-of-file stimulation for input " + std::to_string(i + 1)).c_str());
}
return true;
}
bool onInputRemoved(Kernel::IBox& box, const size_t index) override
{
if (index & 1) { box.removeInput(index - 1); } // odd index
else { box.removeInput(index); } // even index
box.removeSetting(index >> 1);
return this->check(box);
}
bool onInputAdded(Kernel::IBox& box, const size_t /*index*/) override
{
box.addInput("", OV_TypeId_Stimulations);
box.addSetting("",OV_TypeId_Stimulation, "OVTK_StimulationId_ExperimentStop");
return this->check(box);
}
_IsDerivedFromClass_Final_(Toolkit::TBoxListener<IBoxListener>, CIdentifier::undefined())
};
/**
* \class CBoxAlgorithmSignalConcatenationDesc
* \author Laurent Bonnet (INRIA)
* \date Tue Jun 28 09:52:48 2011
* \brief Descriptor of the box Signal Concatenation.
*
*/
class CBoxAlgorithmSignalConcatenationDesc final : virtual public IBoxAlgorithmDesc
{
public:
void release() override { }
CString getName() const override { return CString("Signal Concatenation"); }
CString getAuthorName() const override { return CString("Laurent Bonnet"); }
CString getAuthorCompanyName() const override { return CString("INRIA"); }
CString getShortDescription() const override { return CString("Concatenates multiple signal streams"); }
CString getDetailedDescription() const override
{
return CString(
"The signal stream concatenation box reads multiple streams in parallel, and produces a single stream that is the concatenation of all inputs.");
}
CString getCategory() const override { return CString("File reading and writing"); }
CString getVersion() const override { return CString("2.0"); }
CString getStockItemName() const override { return CString("gtk-add"); }
CIdentifier getCreatedClass() const override { return OVP_ClassId_BoxAlgorithm_SignalConcatenation; }
IPluginObject* create() override { return new CBoxAlgorithmSignalConcatenation; }
IBoxListener* createBoxListener() const override { return new CBoxAlgorithmSignalConcatenationListener; }
void releaseBoxListener(IBoxListener* listener) const override { delete listener; }
bool getBoxPrototype(Kernel::IBoxProto& prototype) const override
{
prototype.addInput("Input signal 1",OV_TypeId_Signal);
prototype.addInput("Input stimulations 1",OV_TypeId_Stimulations);
prototype.addInput("Input signal 2",OV_TypeId_Signal);
prototype.addInput("Input stimulations 2",OV_TypeId_Stimulations);
prototype.addFlag(Kernel::BoxFlag_CanAddInput);
prototype.addOutput("Signal",OV_TypeId_Signal);
prototype.addOutput("Stimulations",OV_TypeId_Stimulations);
prototype.addOutput("Status",OV_TypeId_Stimulations);
prototype.addSetting("Time out before assuming end-of-file (in sec)",OV_TypeId_Integer, "5");
prototype.addSetting("End-of-file stimulation for input 1",OV_TypeId_Stimulation, "OVTK_StimulationId_ExperimentStop");
prototype.addSetting("End-of-file stimulation for input 2",OV_TypeId_Stimulation, "OVTK_StimulationId_ExperimentStop");
//prototype.addFlag(OV_AttributeId_Box_FlagIsUnstable);
return true;
}
_IsDerivedFromClass_Final_(IBoxAlgorithmDesc, OVP_ClassId_BoxAlgorithm_SignalConcatenationDesc)
};
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,824 @@
#include "ovpCGDFFileReader.h"
// @fixme memory leaks on errors
#include <iostream>
#include <cstdlib>
#include <cstring>
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
// template<> double FileIO::CGDFFileReader::GDFTypeToFloat64<float>(float val, uint32_t channel) { std::cout << "specialized 1\n"; return val; }
// template<> double FileIO::CGDFFileReader::GDFTypeToFloat64<double>(double val, uint32_t channel) { std::cout << "specialized 2\n"; return val; }
// #define DEBUG_FILE_POSITIONS 1
//Plugin Methods
bool CGDFFileReader::initialize()
{
m_filename = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 0);
m_samplesPerBuffer = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 1);
m_translateByMinimum = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 2);
if (m_samplesPerBuffer == 0)
{
this->getLogManager() << Kernel::LogLevel_Error <<
"SamplesPerBuffer is 0, this will not work\n";
return false;
}
m_xpInfoEncoder = new Toolkit::TExperimentInfoEncoder<CGDFFileReader>;
m_xpInfoEncoder->initialize(*this, GDFReader_ExperimentInfoOutput);
m_signalEncoder = new Toolkit::TSignalEncoder<CGDFFileReader>;
m_signalEncoder->initialize(*this, GDFReader_SignalOutput);
m_stimulationEncoder = new Toolkit::TStimulationEncoder<CGDFFileReader>;
m_stimulationEncoder->initialize(*this, GDFReader_StimulationOutput);
//allocate the structure used to store the experiment information
m_xpInfoHeader = new CExperimentInfoHeader;
//opens the gdf file
if (m_filename != CString(""))
{
m_file.open(m_filename.toASCIIString(), std::ios::binary);
if (!m_file.good())
{
this->getLogManager() << Kernel::LogLevel_Error << "Could not open file [" << m_filename << "]\n";
return false;
}
}
m_file.seekg(0, std::ios::end);
m_fileSize = size_t(m_file.tellg());
m_file.seekg(0, std::ios::beg);
m_header3Length = 0;
// const char *filename = m_sFileName.toASCIIString();
// this->getLogManager() << Kernel::LogLevel_Trace << "Opening [" << filename << "]\n";
//reads the gdf headers and sends the corresponding buffers
const bool res = readFileHeader();
#ifdef DEBUG_FILE_POSITIONS
this->getLogManager() << Kernel::LogLevel_Info << "After all headers, file is at " << m_file.tellg() << "\n";
#endif
return res;
}
bool CGDFFileReader::uninitialize()
{
if (m_signalEncoder)
{
m_signalEncoder->uninitialize();
delete m_signalEncoder;
}
if (m_xpInfoEncoder)
{
m_xpInfoEncoder->uninitialize();
delete m_xpInfoEncoder;
}
if (m_stimulationEncoder)
{
m_stimulationEncoder->uninitialize();
delete m_stimulationEncoder;
}
//desallocate all of the remaining buffers
delete[] m_channelDataSize; //can be done before?
delete[] m_channelType; //can be done before?
delete[] m_channelScale;
delete[] m_channelTranslate;
delete[] m_dataRecordBuffer; //can be done before??
delete[] m_channelDataInDataRecord;
delete[] m_matrixBuffer; //can be done before?
delete[] m_eventsPositionBuffer;
delete[] m_eventsTypeBuffer;
//Close the GDF file
if (m_file) { m_file.close(); }
return true;
}
bool CGDFFileReader::processClock(Kernel::CMessageClock& msg)
{
if (m_signalDesc.m_Sampling == 0)
{
this->getLogManager() << Kernel::LogLevel_Error << "Sampling rate is 0 - not supported.\n";
return false;
}
const uint64_t time = CTime(m_signalDesc.m_Sampling, m_nSentSample + m_signalDesc.m_NSample).time();
if (msg.getTime() > time) { getBoxAlgorithmContext()->markAlgorithmAsReadyToProcess(); }
return true;
}
void CGDFFileReader::gdfBufferToDoubleBuffer(double* out, void* in, const uint64_t size, const uint32_t channel)
{
switch (m_channelType[channel])
{
case GDF::ChannelType_int8_t:
gdfTypeBufferToDoubleBuffer<int8_t>(out, reinterpret_cast<int8_t*>(in), size, channel);
break;
case GDF::ChannelType_uint8_t:
gdfTypeBufferToDoubleBuffer<uint8_t>(out, reinterpret_cast<uint8_t*>(in), size, channel);
break;
case GDF::ChannelType_int16_t:
gdfTypeBufferToDoubleBuffer<int16_t>(out, reinterpret_cast<int16_t*>(in), size, channel);
break;
case GDF::ChannelType_uint16_t:
gdfTypeBufferToDoubleBuffer<uint16_t>(out, reinterpret_cast<uint16_t*>(in), size, channel);
break;
case GDF::ChannelType_int32_t:
gdfTypeBufferToDoubleBuffer<int>(out, reinterpret_cast<int*>(in), size, channel);
break;
case GDF::ChannelType_uint32_t:
gdfTypeBufferToDoubleBuffer<uint32_t>(out, reinterpret_cast<uint32_t*>(in), size, channel);
break;
case GDF::ChannelType_int64_t:
gdfTypeBufferToDoubleBuffer<int64_t>(out, reinterpret_cast<int64_t*>(in), size, channel);
break;
case GDF::ChannelType_uint64_t:
gdfTypeBufferToDoubleBuffer<uint64_t>(out, reinterpret_cast<uint64_t*>(in), size, channel);
break;
case GDF::ChannelType_float:
gdfTypeBufferToDoubleBuffer<float>(out, reinterpret_cast<float*>(in), size, channel);
break;
case GDF::ChannelType_double:
gdfTypeBufferToDoubleBuffer<double>(out, reinterpret_cast<double*>(in), size, channel);
break;
case GDF::ChannelType_float128:
{
//Not handled
this->getLogManager() << Kernel::LogLevel_Warning << "This data type is currently not handled : float128.\n";
m_errorOccurred = true;
}
break;
case GDF::ChannelType_int24:
{
uint8_t* p = reinterpret_cast<uint8_t*>(in);
for (uint64_t i = 0; i < (size * 3); i += 3) { out[i] = gdfTypeToDouble(p[i] + (p[i + 1] << 8) + (p[i + 2] << 16), channel); }
}
break;
case GDF::ChannelType_uint24:
{
int8_t* p = reinterpret_cast<int8_t*>(in);
for (uint64_t i = 0; i < (size * 3); i += 3) { out[i] = gdfTypeToDouble(p[i] + (p[i + 1] << 8) + (p[i + 2] << 16), channel); }
}
break;
default:
//not handled
this->getLogManager() << Kernel::LogLevel_Warning << "Invalid GDF data type!\n";
m_errorOccurred = true;
break;
}
}
bool CGDFFileReader::readFileHeader()
{
Kernel::IBoxIO& boxIO = this->getDynamicBoxContext();
if (!m_xpInfoSent)
{
this->getLogManager() << Kernel::LogLevel_Trace << "Reading experiment information\n";
//First reads the file type
char type[3];
char version[6]; // field has size 5, we add +1 for terminating NULL
m_file.read(type, 3);
//if not a gdf file
if (strncmp(type, "GDF", 3) != 0)
{
//Handle error
this->getLogManager() << Kernel::LogLevel_Warning << "This is not a valid GDF File!\n";
m_errorOccurred = true;
return false;
}
m_file.read(version, 5);
version[5] = 0; // The version is not NULL-terminated in the file, we terminate with NULL manually for atof.
m_fileVersion = float(atof(&version[1]));
this->getLogManager() << Kernel::LogLevel_Debug << "File version parsed as " << m_fileVersion << "\n";
if (m_file.bad())
{
//Handle error
this->getLogManager() << Kernel::LogLevel_Warning << "Error while reading file.\n";
m_errorOccurred = true;
return false;
}
if (m_fileVersion < 3)
{
GDF::CFixedGDFHeader* header;
if (m_fileVersion > 2.12) { header = new GDF::CFixedGDF251Header; }
else if (m_fileVersion > 1.90) { header = new GDF::CFixedGDF2Header; }
else { header = new GDF::CFixedGDF1Header; }
if (!header->read(m_file))
{
this->getLogManager() << Kernel::LogLevel_Error <<
"Failure to parse fixed header\n";
m_errorOccurred = true;
delete header;
return false;
}
// kludge: header should be 256 bytes long, make sure the file position is there now.
if (m_fileVersion > 1.90) { m_file.seekg(256, std::ios_base::beg); }
m_xpInfoHeader->m_ExperimentID = header->getExperimentID();
m_xpInfoHeader->m_ExperimentDate = header->getExperimentDate();
m_xpInfoHeader->m_SubjectID = header->getSubjectID();
m_xpInfoHeader->m_SubjectName = header->getSubjectName();
m_xpInfoHeader->m_SubjectAge = header->getSubjectAge();
m_xpInfoHeader->m_SubjectSex = header->getSubjectSex();
m_xpInfoHeader->m_LaboratoryID = header->getLaboratoryID();
m_xpInfoHeader->m_LaboratoryName = header->getLaboratoryName();
m_xpInfoHeader->m_TechnicianID = header->getTechnicianID();
m_xpInfoHeader->m_TechnicianName = header->getTechnicianName();
//Experiment header ready to send now
m_xpInfoHeader->m_ReadyToSend = true;
m_durationDataRecord = header->getDataRecordDuration();
m_nDataRecords = header->getNDataRecords();
//this information is related to the signal
m_nChannels = uint16_t(header->getChannelCount());
m_signalDesc.m_NChannel = m_nChannels;
//Send the header
writeExperimentInfo();
boxIO.markOutputAsReadyToSend(GDFReader_ExperimentInfoOutput, 0, 0);
m_xpInfoSent = true;
//not needed anymore
delete header;
delete m_xpInfoHeader;
m_xpInfoHeader = nullptr;
}
else
{
//Not a known GDF File version
this->getLogManager() << Kernel::LogLevel_Error << "GDF file version " << m_fileVersion << " is not supported.\n";
//Error handling
m_errorOccurred = true;
return false;
}
}//END of ExperimentHeader
if (!m_signalDescSent)
{
this->getLogManager() << Kernel::LogLevel_Trace << "Reading signal description\n";
#ifdef DEBUG_FILE_POSITIONS
this->getLogManager() << Kernel::LogLevel_Info << "Before variable header, file is at " << m_file.tellg() << "\n";
#endif
//reads the whole variable header
char* headerBuffer = new char[m_nChannels * 256];
m_file.read(headerBuffer, m_nChannels * 256);
#ifdef DEBUG_FILE_POSITIONS
this->getLogManager() << Kernel::LogLevel_Info << "After variable header, file is at " << m_file.tellg() << "\n";
#endif
if (m_file.bad())
{
//Handle error
this->getLogManager() << Kernel::LogLevel_Error << "Read error.\n";
m_errorOccurred = true;
return false;
}
m_signalDesc.m_ChannelNames.resize(m_nChannels);
//channel's signal gain/translation
m_channelScale = new double[m_nChannels];
m_channelTranslate = new double[m_nChannels];
double* physicalMin = reinterpret_cast<double*>(headerBuffer + (104 * m_nChannels));
double* physicalMax = reinterpret_cast<double*>(headerBuffer + (112 * m_nChannels));
int64_t* digitalMin = reinterpret_cast<int64_t*>(headerBuffer + (120 * m_nChannels)); // v1?
int64_t* digitalMax = reinterpret_cast<int64_t*>(headerBuffer + (128 * m_nChannels));
double* digitalMinD = reinterpret_cast<double*>(headerBuffer + (120 * m_nChannels)); // v2+
double* digitalMaxD = reinterpret_cast<double*>(headerBuffer + (128 * m_nChannels));
for (uint16_t i = 0; i < m_nChannels; ++i)
{
if (m_fileVersion > 1.90) { m_channelScale[i] = (physicalMax[i] - physicalMin[i]) / (digitalMaxD[i] - digitalMinD[i]); }
else { m_channelScale[i] = (physicalMax[i] - physicalMin[i]) / (digitalMax[i] - digitalMin[i]); }
if (m_translateByMinimum) { m_channelTranslate[i] = physicalMin[i]; }
else { m_channelTranslate[i] = (physicalMax[i] + physicalMin[i]) / 2.0; }
this->getLogManager() << Kernel::LogLevel_Debug << "Channel " << i << " physMin " << physicalMin[i] << " physMax " << physicalMax[i]
<< " digMin " << digitalMin[i] << " digMax " << digitalMax[i]
<< " digMinF " << digitalMinD[i] << " digMaxF " << digitalMaxD[i]
<< " scale " << m_channelScale[i] << " trans " << m_channelTranslate[i] << "\n";
}
//Check if all the channels have the same sampling rate
uint32_t* nSamplesPerRecordArray = reinterpret_cast<uint32_t*>(headerBuffer + (216 * m_nChannels));
m_nSamplesPerRecord = nSamplesPerRecordArray[0];
for (uint16_t i = 1; i < m_nChannels; ++i)
{
//If all the channels don't have the same sampling rate
if (m_nSamplesPerRecord != nSamplesPerRecordArray[i])
{
if (m_fileVersion > 1.90)
{
this->getLogManager() << Kernel::LogLevel_Error <<
"Interpreted GDF file to have channels with varying sampling rates, which is not supported.\n";
this->getLogManager() << Kernel::LogLevel_Error << "This can be a misinterpretation of the newer GDF subformats. File claims to follow GDF "
<< m_fileVersion << ".\n";
}
else { this->getLogManager() << Kernel::LogLevel_Error << "Can't handle GDF files with channels having different sampling rates!\n"; }
m_errorOccurred = true;
return false;
}
}
//type of the channels' data
m_channelType = new uint32_t[m_nChannels];
memcpy(m_channelType, headerBuffer + (220 * m_nChannels), m_nChannels * 4);
m_channelDataSize = new uint16_t[m_nChannels];
this->getLogManager() << Kernel::LogLevel_Debug << "Found " << m_nChannels << " channels...\n";
for (uint16_t i = 0; i < m_nChannels; ++i)
{
//Find the data size for each channel
//TODO use enum to specify each type's name
m_channelDataSize[i] = GDF::GDFDataSize(m_channelType[i]);
//Here, we can compute the size of a data record, based on the type of each channel
m_dataRecordSize += m_nSamplesPerRecord * m_channelDataSize[i];
//reads the channels names
m_signalDesc.m_ChannelNames[i].assign(headerBuffer + (16 * i), 16);
this->getLogManager() << Kernel::LogLevel_Debug << " * Channel " << uint32_t(i + 1) << " : " << CString(
m_signalDesc.m_ChannelNames[i].c_str()) << "\n";
}
//This parameter is defined by the user of the plugin
m_signalDesc.m_NSample = uint32_t(m_samplesPerBuffer);
//needs to be computed based on the duration of a data record and the number of samples in one of those data records
m_signalDesc.m_Sampling = uint32_t(0.5 + (m_nSamplesPerRecord / m_durationDataRecord));
if (m_signalDesc.m_Sampling == 0)
{
this->getLogManager() << Kernel::LogLevel_Error << "Sampling rate is 0 - not supported\n";
m_errorOccurred = true;
return false;
}
this->getLogManager() << Kernel::LogLevel_Debug << "Samples in file : " << m_nDataRecords * m_nSamplesPerRecord << " samples\n";
this->getLogManager() << Kernel::LogLevel_Debug << "Sample count per buffer : " << m_samplesPerBuffer << "\n";
this->getLogManager() << Kernel::LogLevel_Debug << "Sampling rate : " << m_signalDesc.m_Sampling << "\n";
//computes clock frequency
if (m_samplesPerBuffer <= m_signalDesc.m_Sampling)
{
if (m_signalDesc.m_Sampling % m_samplesPerBuffer != 0)
{
this->getLogManager() << Kernel::LogLevel_Warning << "The sampling rate isn't a multiple of the buffer size\n";
this->getLogManager() << Kernel::LogLevel_Warning << "Please consider adjusting the GDFReader settings to correct this!\n";
this->getLogManager() << Kernel::LogLevel_Warning << "Sampling rate was " << m_signalDesc.m_Sampling << "\n";
this->getLogManager() << Kernel::LogLevel_Warning << "Buffer size was " << m_samplesPerBuffer << "\n";
}
// Intentional parameter swap to get the frequency
m_clockFrequency = CTime(m_samplesPerBuffer, m_signalDesc.m_Sampling).time();
}
// We may need to skip header3 with its tags and take its size into account
if (m_fileVersion >= 2.10)
{
#ifdef DEBUG_FILE_POSITIONS
this->getLogManager() << Kernel::LogLevel_Info << "Before header3, file is at " << m_file.tellg() << "\n";
#endif
m_header3Length = 0;
while (true)
{
char buffer[4];
m_file.read((char*)&buffer, 4); // Curious Cast
if (m_file.bad() || m_file.eof()) { break; }
m_header3Length += 4;
uint32_t tag = buffer[0];
uint32_t length = (uint32_t(buffer[1]) << 0) + (uint32_t(buffer[2]) << 8) + (uint32_t(buffer[3]) << 16); // src is uint24
this->getLogManager() << Kernel::LogLevel_Info << "Found tag " << tag << " at pos " << int64_t(m_file.tellg() - std::streamoff(4))
<< " [length " << length << "], skipping content.\n";
if (tag == 0) { break; }
m_file.seekg(std::streamoff(length), std::ios_base::cur);
m_header3Length += length;
}
// Skip possible padding
const uint64_t paddingRequired = (256 - m_header3Length) % 256;
m_header3Length += paddingRequired;
m_file.seekg(paddingRequired, std::ios::cur);
if (m_file.eof() || m_file.tellg() <= 0)
{
this->getLogManager() << Kernel::LogLevel_Error << "File ended by trying to skip the header.\n";
return false;
}
#ifdef DEBUG_FILE_POSITIONS
this->getLogManager() << Kernel::LogLevel_Info << "After header3, file is at " << m_file.tellg() << ". Header length: " << m_header3Length << ", padding was " << paddingRequired << "\n";
#endif
}
//Send the data to the output
writeSignalInformation();
boxIO.markOutputAsReadyToSend(GDFReader_SignalOutput, 0, 0);
delete[] headerBuffer;
m_signalDescSent = true;
}//END of SignalHeader
return true;
}
void CGDFFileReader::writeExperimentInfo() const
{
// Here we have to declare some variables in the same scope as the encoding call, because otherwise they might be freed before the
// encoder gets to process the data. The point of these is just to convert from std::string to CString as needed by the encoder.
CString date(m_xpInfoHeader->m_ExperimentDate.c_str());
CString name(m_xpInfoHeader->m_SubjectName.c_str());
CString labName(m_xpInfoHeader->m_LaboratoryName.c_str());
CString techName(m_xpInfoHeader->m_TechnicianName.c_str());
if (m_xpInfoHeader->m_ExperimentID != NO_VALUE_I) { m_xpInfoEncoder->getInputExperimentID() = m_xpInfoHeader->m_ExperimentID; }
if (m_xpInfoHeader->m_ExperimentDate != NO_VALUE_S) { m_xpInfoEncoder->getInputExperimentDate() = &date; }
if (m_xpInfoHeader->m_SubjectID != NO_VALUE_I) { m_xpInfoEncoder->getInputSubjectID() = m_xpInfoHeader->m_SubjectID; }
if (m_xpInfoHeader->m_SubjectName != NO_VALUE_S) { m_xpInfoEncoder->getInputSubjectName() = &name; }
if (m_xpInfoHeader->m_SubjectAge != NO_VALUE_I) { m_xpInfoEncoder->getInputSubjectAge() = m_xpInfoHeader->m_SubjectAge; }
if (m_xpInfoHeader->m_SubjectSex != NO_VALUE_I) { m_xpInfoEncoder->getInputSubjectGender() = m_xpInfoHeader->m_SubjectSex; }
if (m_xpInfoHeader->m_LaboratoryID != NO_VALUE_I) { m_xpInfoEncoder->getInputLaboratoryID() = m_xpInfoHeader->m_LaboratoryID; }
if (m_xpInfoHeader->m_LaboratoryName != NO_VALUE_S) { m_xpInfoEncoder->getInputLaboratoryName() = &labName; }
if (m_xpInfoHeader->m_TechnicianID != NO_VALUE_I) { m_xpInfoEncoder->getInputTechnicianID() = m_xpInfoHeader->m_TechnicianID; }
if (m_xpInfoHeader->m_TechnicianName != NO_VALUE_S) { m_xpInfoEncoder->getInputTechnicianName() = &techName; }
m_xpInfoEncoder->encodeHeader();
}
void CGDFFileReader::writeSignalInformation()
{
m_signalEncoder->getInputSamplingRate() = m_signalDesc.m_Sampling;
CMatrix* iMatrix = m_signalEncoder->getInputMatrix();
iMatrix->resize(m_signalDesc.m_NChannel, m_signalDesc.m_NSample);
for (uint32_t i = 0; i < m_signalDesc.m_NChannel; ++i) { iMatrix->setDimensionLabel(0, i, m_signalDesc.m_ChannelNames[i].c_str()); }
m_signalEncoder->encodeHeader();
}
void CGDFFileReader::writeEvents()
{
IStimulationSet* stimSet = m_stimulationEncoder->getInputStimulationSet();
stimSet->clear();
for (size_t i = 0; i < m_events.size(); ++i)
{
//compute date
const uint64_t date = CTime(m_signalDesc.m_Sampling, m_events[i].m_Position).time();
stimSet->appendStimulation(m_events[i].m_Type, date, 0);
}
m_stimulationEncoder->encodeBuffer();
}
bool CGDFFileReader::process()
{
//Don't do anything if an error as occurred while reading the input file
//for instance, if the file has channels with different sampling rates
if (m_errorOccurred)
{
this->getLogManager() << Kernel::LogLevel_Error << "Some error occurred, aborting.";
return false;
}
uint64_t start = 0;
uint64_t end = 0;
Kernel::IBoxIO& boxIO = this->getDynamicBoxContext();
// Process Matrices
if (m_signalDescSent && !m_matricesSent)
{
//If the matrix buffer is not allocated yet
//"first time"
if (!m_matrixBuffer)
{
//output matrix buffer
m_matrixBufferSize = m_signalDesc.m_NSample * m_signalDesc.m_NChannel;
m_matrixBuffer = new double[size_t(m_matrixBufferSize)];
//We also have to read the first data record
m_dataRecordBuffer = new uint8_t[size_t(m_dataRecordSize)];
m_file.read(reinterpret_cast<char*>(m_dataRecordBuffer), std::streamsize(m_dataRecordSize));
if (m_file.bad())
{
//Handle error
this->getLogManager() << Kernel::LogLevel_Error <<
"Read error\n";
m_errorOccurred = true;
return false;
}
//initialize subpointers
m_channelDataInDataRecord = new uint8_t*[m_nChannels];
m_channelDataInDataRecord[0] = m_dataRecordBuffer;
for (int i = 1; i < m_nChannels; ++i)
{
m_channelDataInDataRecord[i] = m_channelDataInDataRecord[i - 1] + m_channelDataSize[i - 1] * m_nSamplesPerRecord;
}
}
uint32_t nSample = 0;
bool readyToSend = false;
while (!readyToSend)
{
//there is the same number of samples
const uint64_t samplesRemainingInDataRecord = m_nSamplesPerRecord - m_currentSampleInDataRecord;
//If there is enough data in the current data record to read a matrix buffer
if ((m_samplesPerBuffer - nSample) <= samplesRemainingInDataRecord)
{
for (int i = 0; i < m_nChannels; ++i)
{
//reads m_samplesPerBuffer samples and converts/writes them in output buffer
gdfBufferToDoubleBuffer(m_matrixBuffer + (i * m_samplesPerBuffer) + nSample,
m_channelDataInDataRecord[i] + (m_currentSampleInDataRecord * m_channelDataSize[i]),
m_samplesPerBuffer - nSample, i);
}
m_currentSampleInDataRecord += uint32_t(m_samplesPerBuffer - nSample);
//Prepares for the next matrix
nSample = 0;
//We can send the matrix
readyToSend = true;
}
//Not enough data in the current data record. Read the remaining samples, then load a new data record and read the rest
else
{
//copy what is remaining in the current buffer
for (int i = 0; i < m_nChannels; ++i)
{
gdfBufferToDoubleBuffer(m_matrixBuffer + (i * m_samplesPerBuffer) + nSample,
m_channelDataInDataRecord[i] + (m_currentSampleInDataRecord * m_channelDataSize[i]),
samplesRemainingInDataRecord, i);
}
//Updates the index in the output matrix
nSample += uint32_t(samplesRemainingInDataRecord);
//reads the next data record if there is one
if (m_currentDataRecord < m_nDataRecords - 1)
{
//reads a data record
m_file.read(reinterpret_cast<char*>(m_dataRecordBuffer), std::streamsize(m_dataRecordSize));
if (m_file.bad())
{
//Handle error
this->getLogManager() << Kernel::LogLevel_Error <<
"Read error\n";
m_errorOccurred = true;
return false;
}
m_currentSampleInDataRecord = 0;
m_currentDataRecord++;
}
//if there are no more data records
else
{
//we can (for instance) pad the rest of the matrix with 0s
for (int i = 0; i < m_nChannels; ++i)
{
memset(m_matrixBuffer + (((i * m_samplesPerBuffer) + nSample)), 0, size_t(m_samplesPerBuffer - nSample) * sizeof(double));
}
//We can send the matrix
readyToSend = true;
//No more data after that
m_matricesSent = true;
}
}
//Check if we have finished the current data record
if (m_currentSampleInDataRecord == m_nSamplesPerRecord)
{
m_currentSampleInDataRecord = 0;
m_currentDataRecord++;
//if there are no more data records
if (m_currentDataRecord >= m_nDataRecords - 1)
{
//We don't have to read data records anymore
m_matricesSent = true;
}
else
{
//reads a data record
m_file.read(reinterpret_cast<char*>(m_dataRecordBuffer), std::streamsize(m_dataRecordSize));
if (m_file.bad())
{
//Handle error
this->getLogManager() << Kernel::LogLevel_Error <<
"Read error\n";
m_errorOccurred = true;
return false;
}
}
}
}
m_nSentSample += m_signalDesc.m_NSample;
// this->getLogManager() << Kernel::LogLevel_Trace << "Sent " << m_nSentSample << " samples\n";
//A signal matrix is ready to be output
start = CTime(m_signalDesc.m_Sampling, uint64_t(m_nSentSample - m_signalDesc.m_NSample)).time();
end = CTime(m_signalDesc.m_Sampling, uint64_t(m_nSentSample)).time();
CMatrix* iMatrix = m_signalEncoder->getInputMatrix();
double* buffer = iMatrix->getBuffer();
for (uint32_t i = 0; i < iMatrix->getBufferElementCount(); ++i) { buffer[i] = *(m_matrixBuffer + i); }
m_signalEncoder->encodeBuffer();
boxIO.markOutputAsReadyToSend(GDFReader_SignalOutput, start, end);
}
//Events
if (m_signalDescSent && !m_eventsSent)
{
//reads the events table header if it hasn't been done already
if (!m_eventsPositionBuffer)
{
const std::streamoff backupPos = m_file.tellg();
const std::streamoff eventDataPos = std::streamoff((256 * (m_nChannels + 1)) + m_header3Length + (m_nDataRecords * m_dataRecordSize));
//checks if there are event information
if (size_t(eventDataPos) + 1 < m_fileSize)
{
m_file.seekg(eventDataPos);
//reads the event table mode
m_file >> m_eventTableMode;
}
//no event information
else
{
m_file.seekg(backupPos);
m_eventsSent = true;
return true;
}
uint32_t eventTableHeaderMain[7];
uint8_t* eventTableHeader = reinterpret_cast<uint8_t*>(eventTableHeaderMain);
memset(eventTableHeaderMain, 0, sizeof(eventTableHeaderMain));
m_file.read(reinterpret_cast<char*>(eventTableHeader), 7);
if (m_fileVersion > 1.90) { m_nEvents = *(reinterpret_cast<uint32_t*>(eventTableHeader + 0)); }
else { m_nEvents = *(reinterpret_cast<uint32_t*>(eventTableHeader + 3)); }
this->getLogManager() << Kernel::LogLevel_Trace << "The file has " << m_nEvents << " events\n";
m_eventsPositionBuffer = new uint32_t[m_nEvents * 4];
m_eventsTypeBuffer = new uint16_t[m_nEvents * 2];
//we have to read all the events' position and type
m_file.read(reinterpret_cast<char*>(m_eventsPositionBuffer), m_nEvents * 4);
m_file.read(reinterpret_cast<char*>(m_eventsTypeBuffer), m_nEvents * 2);
m_file.seekg(backupPos);
// Sanity check the events & shift -1 sample
for (uint32_t i = 0; i < m_nEvents; ++i)
{
// GDF Spec v2.51, #33: sample indexing starts from 1, hence here we compensate with -1 as in OV the first sample is in index 0
if (m_eventsPositionBuffer[i] > 0) { m_eventsPositionBuffer[i]--; }
if (m_eventsPositionBuffer[i] >= (m_nDataRecords * m_nSamplesPerRecord))
{
this->getLogManager() << Kernel::LogLevel_Warning << "File has stimulation " << m_eventsTypeBuffer[i] << " at sample count "
<< m_eventsPositionBuffer[i] << " but the file has only " << (m_nDataRecords * m_nSamplesPerRecord)
<< " samples of signal. Stimulation will be dropped.\n";
// Note that with the current design of this box its not possible to keep producing stimulation chunks after the signal has ended, and
// it'd be an openvibe stream convention violation to append the stimulation at t to any chunk where t \notin [chunkStart,chunkEnd].
// Hence drop.
}
}
m_stimulationEncoder->encodeHeader();
boxIO.markOutputAsReadyToSend(GDFReader_StimulationOutput, 0, 0);
}
GDF::CGDFEvent event;
//todo check inclusive/exclusive conditions
while ((m_currentEvent != m_nEvents)
&& m_eventsPositionBuffer[m_currentEvent] >= m_nSentSample - m_signalDesc.m_NSample
&& m_eventsPositionBuffer[m_currentEvent] < m_nSentSample) // In current chunk range
{
//reads an event
event.m_Position = m_eventsPositionBuffer[m_currentEvent];
event.m_Type = m_eventsTypeBuffer[m_currentEvent];
//adds it to the list of events
m_events.push_back(event);
// If input already has an EOF marker, we don't add our own
if (event.m_Type == OVTK_StimulationId_EndOfFile) { m_appendEOF = false; }
m_currentEvent++;
}
//if we just read the last event
if (m_currentEvent == m_nEvents)
{
m_eventsSent = true;
delete[] m_eventsPositionBuffer;
m_eventsPositionBuffer = nullptr;
delete[] m_eventsTypeBuffer;
m_eventsTypeBuffer = nullptr;
}
}
// Send out stims. Logic:
// If we haven't yet sent out all matrices, or we have a pending EOF stim, send a stim chunk
// If we have sent out all matrices and we have a pending EOF, append it
if (!m_matricesSent || m_appendEOF)
{
if (m_matricesSent && m_appendEOF)
{
//creates an end of file event
GDF::CGDFEvent event;
event.m_Position = uint32_t(m_nDataRecords * m_nSamplesPerRecord);
event.m_Type = OVTK_StimulationId_EndOfFile;
//adds it to the list of events
m_events.push_back(event);
m_appendEOF = false;
}
// In OpenViBE, we should always send a stimulus chunk even if it was empty
writeEvents();
m_events.clear();
boxIO.markOutputAsReadyToSend(GDFReader_StimulationOutput, start, end);
}
return true;
}
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,214 @@
#pragma once
#include "../ovp_defines.h"
#include "../ovp_gdf_helpers.h"
#include <openvibe/ov_all.h>
#include <toolkit/ovtk_all.h>
#include <fstream>
#include <string>
#include <vector>
#define GDFReader_ExperimentInfoOutput 0
#define GDFReader_SignalOutput 1
#define GDFReader_StimulationOutput 2
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
/// <summary> The GDF reader plugin main class. </summary>
/// <seealso cref="Toolkit::TBoxAlgorithm{IBoxAlgorithm}" />
class CGDFFileReader final : public Toolkit::TBoxAlgorithm<IBoxAlgorithm>
{
public:
//Helper structures
class CExperimentInfoHeader
{
public:
uint64_t m_ExperimentID = 0;
std::string m_ExperimentDate;
uint64_t m_SubjectID = 0;
std::string m_SubjectName;
uint64_t m_SubjectAge = 0;
uint64_t m_SubjectSex = 0;
uint64_t m_LaboratoryID = 0;
std::string m_LaboratoryName;
uint64_t m_TechnicianID = 0;
std::string m_TechnicianName;
bool m_ReadyToSend = false;
};
// Used to store information about the signal stream
class CSignalDescription
{
public:
CSignalDescription() = default;
~CSignalDescription() = default;
size_t m_Version = 1;
size_t m_Sampling = 0;
size_t m_NChannel = 0;
size_t m_NSample = 0;
std::vector<std::string> m_ChannelNames;
size_t m_CurrentChannel = 0;
bool m_ReadyToSend = false;
};
CGDFFileReader() { }
void release() override {}
bool initialize() override;
bool uninitialize() override;
uint64_t getClockFrequency() override { return m_clockFrequency; }
bool processClock(Kernel::CMessageClock& msg) override;
bool process() override;
_IsDerivedFromClass_Final_(IBoxAlgorithm, OVP_ClassId_GDFFileReader)
protected:
bool m_errorOccurred = false; // true if an error has occurred while reading the GDF file
//The GDF filename and handle
CString m_filename;
std::ifstream m_file;
size_t m_fileSize = 0;
uint64_t m_header3Length = 0;
float m_fileVersion = -1;
Toolkit::TSignalEncoder<CGDFFileReader>* m_signalEncoder = nullptr;
Toolkit::TExperimentInfoEncoder<CGDFFileReader>* m_xpInfoEncoder = nullptr;
Toolkit::TStimulationEncoder<CGDFFileReader>* m_stimulationEncoder = nullptr;
//Stream information
uint64_t m_samplesPerBuffer = 0; //user defined
//input
uint64_t m_nDataRecords = 0;
double m_durationDataRecord = 0;
uint16_t m_nChannels = 0;
uint32_t m_nSamplesPerRecord = 0; // We only handle the files where it is the same for all the channels
//info about channel's data type in data record
uint32_t* m_channelType = nullptr;
uint16_t* m_channelDataSize = nullptr;
double* m_channelScale = nullptr;
double* m_channelTranslate = nullptr;
//Size of a data record
uint64_t m_dataRecordSize = 0;
//The current data record's data
uint8_t* m_dataRecordBuffer = nullptr;
//pointers to each channel's information in the current data record
uint8_t** m_channelDataInDataRecord = nullptr;
//Output Stream matrix
double* m_matrixBuffer = nullptr;
uint64_t m_matrixBufferSize = 0;
bool m_matricesSent = false;
//Total number of samples sent up to now (used to compute start/end time)
uint32_t m_nSentSample = 0;
//indexes of current data record, channel, and sample
uint64_t m_currentDataRecord = 0;
uint32_t m_currentSampleInDataRecord = 0;
//Events variables
uint8_t m_eventTableMode = 0; // mode of the event table
uint32_t m_nEvents = 0; // number of events in the event table
uint32_t* m_eventsPositionBuffer = nullptr; // pointer on the array of event's positions
uint16_t* m_eventsTypeBuffer = nullptr; // pointer on the array of event's types
std::vector<GDF::CGDFEvent> m_events; //current stimulation block
uint32_t m_currentEvent = 0; // current event in event table
bool m_eventsSent = false; // true if all the events have been sent
bool m_appendEOF = true; // true if the file does contains a recognized EOF marker, then we add our own
uint64_t m_stimulationPerBuffer = 32; //user defined
//helper structures
CExperimentInfoHeader* m_xpInfoHeader = nullptr;
bool m_xpInfoSent = false;
CSignalDescription m_signalDesc;
bool m_signalDescSent = false;
uint64_t m_clockFrequency = 0;
bool m_translateByMinimum = false;
bool readFileHeader();
void writeExperimentInfo() const;
void writeSignalInformation();
void writeEvents();
template <class T>
double gdfTypeToDouble(T val, const uint32_t channel) { return m_channelScale[channel] * double(val) + m_channelTranslate[channel]; }
template <class T>
void gdfTypeBufferToDoubleBuffer(double* out, T* in, const uint64_t size, const uint32_t channel)
{
for (uint64_t i = 0; i < size; ++i) { out[i] = gdfTypeToDouble<T>(in[i], channel); }
}
void gdfBufferToDoubleBuffer(double* out, void* in, const uint64_t size, const uint32_t channel);
};
// template<> double CGDFFileReader::gdfTypeToDouble<float>(float val, uint32_t channel);
// template<> double CGDFFileReader::gdfTypeToDouble<double>(double val, uint32_t channel);
/**
* Description of the GDF Reader plugin
*/
class CGDFFileReaderDesc final : public IBoxAlgorithmDesc
{
public:
void release() override { }
CString getName() const override { return CString("GDF file reader"); }
CString getAuthorName() const override { return CString("Bruno Renier, Jussi T. Lindgren"); }
CString getAuthorCompanyName() const override { return CString("INRIA/IRISA"); }
CString getShortDescription() const override { return CString("GDF file reader"); }
CString getDetailedDescription() const override { return CString("Reads .GDF format files"); }
CString getCategory() const override { return CString("File reading and writing/GDF"); }
CString getVersion() const override { return CString("0.9.1"); }
CString getStockItemName() const override { return CString("gtk-open"); }
CIdentifier getCreatedClass() const override { return OVP_ClassId_GDFFileReader; }
IPluginObject* create() override { return new CGDFFileReader(); }
bool getBoxPrototype(Kernel::IBoxProto& prototype) const override
{
// Adds box outputs
prototype.addOutput("Experiment information", OV_TypeId_ExperimentInfo);
prototype.addOutput("EEG stream", OV_TypeId_Signal);
prototype.addOutput("Stimulations", OV_TypeId_Stimulations);
// Adds settings
prototype.addSetting("Filename", OV_TypeId_Filename, "");
prototype.addSetting("Samples per buffer", OV_TypeId_Integer, "32");
prototype.addSetting("Subtract physical minimum", OV_TypeId_Boolean, "false");
return true;
}
_IsDerivedFromClass_Final_(IBoxAlgorithmDesc, OVP_ClassId_GDFFileReaderDesc)
};
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,436 @@
#include "ovpCGDFFileWriter.h"
#include <system/ovCMemory.h>
#include <iostream>
#include <cmath>
#include <cfloat>
#include <cstring>
#include <algorithm> // std::min, etc on VS2013
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
void CGDFFileWriter::setChannelCount(const size_t n)
{
m_fixedHeader.m_NSignals = n;
m_fixedHeader.m_NBytesInHeaderRecord = (n + 1) * 256;
m_variableHeader.setChannelCount(n);
m_samples.resize(n);
m_nSamples.resize(n);
}
void CGDFFileWriter::setChannelName(const size_t index, const char* name)
{
const uint32_t size = sizeof(m_variableHeader[index].m_Label);
// initialize label with spaces
memset(m_variableHeader[index].m_Label, ' ', size);
// copy at most size-1 characters, leaving room for 1 space. Note that the label is not NULL terminated.
const uint32_t len = std::min<uint32_t>(strlen(name), size - 1);
memcpy(m_variableHeader[index].m_Label, name, len);
m_variableHeader[index].m_ChannelType = 17; //double
m_variableHeader[index].m_NSamplesInEachRecord = 1;
m_variableHeader[index].m_PhysicalMin = +DBL_MAX; //starting value(to compare later)
m_variableHeader[index].m_PhysicalMax = -DBL_MAX; //starting value(to compare later)
m_variableHeader[index].m_DigitalMin = 0x8000000000000000LL;
m_variableHeader[index].m_DigitalMax = 0x7fffffffffffffffLL;
memcpy(m_variableHeader[index].m_PhysicalDimension, "uV", sizeof("uV"));
}
void CGDFFileWriter::setSampleCountPerBuffer(const size_t n)
{
m_samplesPerChannel = n;
//save the fixed header
if (m_fixedHeader.save(m_file))
{
//save the variable header
if (!m_variableHeader.save(m_file)) { m_error = true; }
}
else { m_error = true; }
if (m_error) { this->getLogManager() << Kernel::LogLevel_Warning << "Error while writing to the output file!\n"; }
}
void CGDFFileWriter::setSamplingRate(const size_t sampling)
{
m_sampling = sampling;
m_fixedHeader.m_DurationDataRecordNum = 1;
m_fixedHeader.m_DurationDataRecordDen = m_sampling;
}
void CGDFFileWriter::setSampleBuffer(const double* buffer)
{
//for each channel
for (size_t j = 0; j < m_fixedHeader.m_NSignals; ++j)
{
for (size_t i = 0; i < m_samplesPerChannel; ++i)
{
//gets a sample value
const double sample = buffer[j * m_samplesPerChannel + i];
//actualize channel's digital min/max
if (fabs(sample) > m_variableHeader[j].m_PhysicalMax)
{
m_variableHeader[j].m_PhysicalMax = fabs(sample + (1 / m_precision));
m_variableHeader[j].m_PhysicalMin = -m_variableHeader[j].m_PhysicalMax;
m_variableHeader[j].m_DigitalMax = int64_t(1 + (ceil(fabs(sample) * m_precision)));
m_variableHeader[j].m_DigitalMin = -m_variableHeader[j].m_DigitalMax;
}
//copy its current sample
m_samples[j].push_back(sample * m_precision);
}
//updates the sample count
m_nSamples[j] += m_samplesPerChannel;
}
// this->getLogManager() << Kernel::LogLevel_Info << "Received up to " << m_nSamples[0] << " samples\n";
//save in the file
saveMatrixData();
//updates the fixed header
m_fixedHeader.m_NDataRecords = m_nSamples[0];
//updates the variable header
if (m_fixedHeader.update(m_file)) { if (!m_variableHeader.update(m_file)) { m_error = true; } }
else { m_error = true; }
if (m_error) { this->getLogManager() << Kernel::LogLevel_Warning << "Error while writing to the output file!\n"; }
}
/*
* Experiment callback
*
*/
void CGDFFileWriter::setExperimentInfo()
{
uint64_t value = m_xpInfoDecoder->getOutputExperimentID();
sprintf(m_fixedHeader.m_RecordingID, "0x%08X", value);
m_fixedHeader.m_RecordingID[10] = ' ';
value = m_xpInfoDecoder->getOutputSubjectID();
sprintf(m_fixedHeader.m_PatientID, "0x%08X ", value);
m_fixedHeader.m_PatientID[11] = ' ';
m_xpInfoDecoder->getOutputSubjectAge();
// TODO using the experiment date, compute the birthdate?
value = m_xpInfoDecoder->getOutputSubjectGender();
switch (value)
{
case OVTK_Value_Sex_Female:
m_fixedHeader.m_PatientID[17] = 'F';
break;
case OVTK_Value_Sex_Male:
m_fixedHeader.m_PatientID[17] = 'M';
break;
case OVTK_Value_Sex_Unknown:
case OVTK_Value_Sex_NotSpecified:
default:
m_fixedHeader.m_PatientID[17] = 'X';
break;
}
m_fixedHeader.m_PatientID[18] = ' ';
value = m_xpInfoDecoder->getOutputLaboratoryID();
m_fixedHeader.m_LaboratoryID = value;
value = m_xpInfoDecoder->getOutputTechnicianID();
m_fixedHeader.m_TechnicianID = value;
CString* subjectName = m_xpInfoDecoder->getOutputSubjectName();
std::string formattedSubjectName((*subjectName).toASCIIString());
formattedSubjectName.replace(formattedSubjectName.begin(), formattedSubjectName.end(), ' ', '_');
sprintf(m_fixedHeader.m_PatientID + 31, "%s", formattedSubjectName.c_str());
if (!m_fixedHeader.save(m_file))
{
m_error = true;
this->getLogManager() << Kernel::LogLevel_Warning << "Error while writing to the output file!\n";
}
}
void CGDFFileWriter::setStimulation(const uint64_t identifier, const uint64_t date) { m_events.push_back(std::pair<uint64_t, uint64_t>(identifier, date)); }
bool CGDFFileWriter::initialize()
{
m_signalDecoder = new Toolkit::TSignalDecoder<CGDFFileWriter>;
m_xpInfoDecoder = new Toolkit::TExperimentInfoDecoder<CGDFFileWriter>;
m_stimulationDecoder = new Toolkit::TStimulationDecoder<CGDFFileWriter>;
m_signalDecoder->initialize(*this, 1);
m_xpInfoDecoder->initialize(*this, 0);
m_stimulationDecoder->initialize(*this, 2);
// Parses box settings to find filename
m_filename = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 0);
m_precision = 1000.0;
return true;
}
bool CGDFFileWriter::uninitialize()
{
// See that no event is outside the signal by padding the signal with zeroes if necessary
padByEvents();
//If the file is not open, that mean that the box is muted. If the file is not open because of a bug, it should have already been notify
if (m_file.is_open())
{
//update the fixed header
if (!m_nSamples.empty())
{
m_fixedHeader.m_NDataRecords = m_nSamples[0];
this->getLogManager() << Kernel::LogLevel_Trace << "Saving " << m_nSamples[0] << " data records\n";
}
if (m_fixedHeader.update(m_file))
{
//To save the Physical/Digital max/min values
if (!m_variableHeader.update(m_file)) { m_error = true; }
}
else { m_error = true; }
//write events
if (!m_events.empty())
{
this->getLogManager() << Kernel::LogLevel_Trace << "Saving " << m_events.size() << " events\n";
saveEvents();
}
if (m_error) { this->getLogManager() << Kernel::LogLevel_Warning << "Error while writing to the output file!\n"; }
m_file.close();
}
if (m_signalDecoder)
{
m_signalDecoder->uninitialize();
delete m_signalDecoder;
}
if (m_xpInfoDecoder)
{
m_xpInfoDecoder->uninitialize();
delete m_xpInfoDecoder;
}
if (m_stimulationDecoder)
{
m_stimulationDecoder->uninitialize();
delete m_stimulationDecoder;
}
return true;
}
bool CGDFFileWriter::processInput(const size_t /*index*/)
{
if (m_error) { return false; }
getBoxAlgorithmContext()->markAlgorithmAsReadyToProcess();
return true;
}
void CGDFFileWriter::saveMatrixData()
{
if (!m_file.is_open())
{
m_file.open(m_filename, std::ios::binary | std::ios::trunc);
if (!m_file.good())
{
m_error = true;
this->getLogManager() << Kernel::LogLevel_ImportantWarning << "Could not open file [" << m_filename << "]\n";
return;
}
}
size_t j;
m_file.seekp(0, std::ios::end);
//to "convert" (if needed) the double in little endian format
uint8_t littleEndianBuffer[8];
for (size_t i = 0; i < m_samples[0].size(); ++i)
{
for (j = 0; j < m_samples.size(); ++j)
{
const double v = m_samples[j][i];
System::Memory::hostToLittleEndian(v, littleEndianBuffer);
m_file.write(reinterpret_cast<char*>(littleEndianBuffer), sizeof(littleEndianBuffer));
}
}
for (j = 0; j < m_samples.size(); ++j) { m_samples[j].clear(); }
}
void CGDFFileWriter::padByEvents()
{
if (!m_file.is_open())
{
m_file.open(m_filename, std::ios::binary | std::ios::trunc);
if (!m_file.good())
{
m_error = true;
this->getLogManager() << Kernel::LogLevel_ImportantWarning << "Could not open file [" << m_filename << "]\n";
return;
}
}
uint32_t maxPos = 0;
for (const auto& e : m_events)
{
// GDF Spec v2.51, #33: sample indexing starts from 1, hence +1
const uint32_t pos = uint32_t(CTime(e.second).toSampleCount(m_sampling) + 1);
if (pos > m_nSamples[0] + 1)
{
this->getLogManager() << Kernel::LogLevel_Warning << "Stimulation " << uint16_t(e.first & 0xFFFF) << " will be written at " << pos
<< " (after last sample at " << m_nSamples[0] + 1 << "), padding the signal\n";
maxPos = std::max<uint32_t>(pos, maxPos);
}
}
if (maxPos > 0)
{
const CMatrix* oMatrix = m_signalDecoder->getOutputMatrix();
CMatrix zeros;
zeros.copyDescription(*oMatrix);
while (maxPos >= m_nSamples[0] + 1) { setSampleBuffer(zeros.getBuffer()); }
}
}
void CGDFFileWriter::saveEvents()
{
if (!m_file.is_open())
{
m_file.open(m_filename, std::ios::binary | std::ios::trunc);
if (!m_file.good())
{
m_error = true;
this->getLogManager() << Kernel::LogLevel_ImportantWarning << "Could not open file [" << m_filename << "]\n";
return;
}
}
m_file.seekp(0, std::ios::end);
//event mode
m_file.put(1);
//sample rate associated with event positions
m_file.put(0);
m_file.put(0);
m_file.put(0);
//number of events
uint8_t littleEndianBuffer[sizeof(size_t)]; // needs to be the size of the type returned by m_events.size()
System::Memory::hostToLittleEndian(m_events.size(), littleEndianBuffer);
m_file.write(reinterpret_cast<char*>(littleEndianBuffer), sizeof(size_t));
// write event positions
for (const auto& e : m_events)
{
// GDF Spec v2.51, #33: sample indexing starts from 1, hence +1
const uint32_t pos = uint32_t(CTime(e.second).toSampleCount(m_sampling) + 1);
System::Memory::hostToLittleEndian(pos, littleEndianBuffer);
m_file.write(reinterpret_cast<char*>(littleEndianBuffer), sizeof(uint32_t));
}
// write event types
for (const auto& e : m_events)
{
//Force to use only 16bits stimulations IDs
const uint16_t type = uint16_t(e.first & 0xFFFF);
System::Memory::hostToLittleEndian(type, littleEndianBuffer);
m_file.write(reinterpret_cast<char*>(littleEndianBuffer), sizeof(uint16_t));
}
}
bool CGDFFileWriter::process()
{
if (!m_file.is_open())
{
m_file.open(m_filename, std::ios::binary | std::ios::trunc);
if (!m_file.good())
{
m_error = true;
this->getLogManager() << Kernel::LogLevel_ImportantWarning << "Could not open file [" << m_filename << "]\n";
return false;
}
}
Kernel::IBoxIO& boxIO = this->getDynamicBoxContext();
//Experiment information
for (size_t i = 0; i < boxIO.getInputChunkCount(0); ++i)
{
m_xpInfoDecoder->decode(i);
if (m_xpInfoDecoder->isHeaderReceived()) { setExperimentInfo(); }
boxIO.markInputAsDeprecated(0, i);
}
//Signal
for (size_t i = 0; i < boxIO.getInputChunkCount(1); ++i)
{
m_signalDecoder->decode(i);
if (m_signalDecoder->isHeaderReceived())
{
CMatrix* oMatrix = m_signalDecoder->getOutputMatrix();
const size_t nChannel = oMatrix->getDimensionSize(0);
setChannelCount(nChannel);
for (size_t c = 0; c < nChannel; ++c) { setChannelName(c, oMatrix->getDimensionLabel(0, c)); }
setSamplingRate(size_t(m_signalDecoder->getOutputSamplingRate()));
setSampleCountPerBuffer(oMatrix->getDimensionSize(1));
}
if (m_signalDecoder->isBufferReceived())
{
CMatrix* oMatrix = m_signalDecoder->getOutputMatrix();
double* buffer = oMatrix->getBuffer();
setSampleBuffer(buffer);
}
boxIO.markInputAsDeprecated(1, i);
}
//Stimulations
for (uint32_t i = 0; i < boxIO.getInputChunkCount(2); ++i)
{
m_stimulationDecoder->decode(i);
if (m_stimulationDecoder->isBufferReceived())
{
IStimulationSet* stimulationSet = m_stimulationDecoder->getOutputStimulationSet();
for (size_t j = 0; j < stimulationSet->getStimulationCount(); ++j)
{
setStimulation(stimulationSet->getStimulationIdentifier(j), stimulationSet->getStimulationDate(j));
}
}
boxIO.markInputAsDeprecated(2, i);
}
return true;
}
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,113 @@
#pragma once
#include "../ovp_defines.h"
#include "../ovp_gdf_helpers.h"
#include <openvibe/ov_all.h>
#include <toolkit/ovtk_all.h>
#include <fstream>
#include <vector>
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
/**
* The plugin's main class
*
*/
class CGDFFileWriter final : public Toolkit::TBoxAlgorithm<IBoxAlgorithm>
{
public:
CGDFFileWriter() { }
void release() override { delete this; }
bool initialize() override;
bool uninitialize() override;
bool processInput(const size_t index) override;
bool process() override;
_IsDerivedFromClass_Final_(IBoxAlgorithm, OVP_ClassId_GDFFileWriter)
protected:
void setChannelCount(size_t n);
void setChannelName(size_t index, const char* name);
void setSampleCountPerBuffer(size_t n);
void setSamplingRate(size_t sampling);
void setSampleBuffer(const double* buffer);
void setExperimentInfo();
void setStimulation(const uint64_t identifier, const uint64_t date);
void saveMatrixData();
void saveEvents();
void padByEvents();
std::ofstream m_file;
CString m_filename;
Toolkit::TSignalDecoder<CGDFFileWriter>* m_signalDecoder = nullptr;
Toolkit::TExperimentInfoDecoder<CGDFFileWriter>* m_xpInfoDecoder = nullptr;
Toolkit::TStimulationDecoder<CGDFFileWriter>* m_stimulationDecoder = nullptr;
//GDF structures
GDF::CFixedGDF1Header m_fixedHeader;
GDF::CVariableGDF1Header m_variableHeader;
std::vector<std::vector<double>> m_samples;
std::vector<int64_t> m_nSamples;
size_t m_samplesPerChannel = 0;
size_t m_sampling = 0;
std::vector<std::pair<uint64_t, uint64_t>> m_events;
bool m_error = false;
double m_precision = 0; // because of GDF writing problem (no scaling)
};
/**
* Plugin's description
*/
class CGDFFileWriterDesc final : public IBoxAlgorithmDesc
{
public:
CString getName() const override { return CString("GDF file writer"); }
CString getAuthorName() const override { return CString("Yann Renard"); }
CString getAuthorCompanyName() const override { return CString("INRIA/IRISA"); }
CString getShortDescription() const override { return CString("This algorithm records on disk what comes from a specific output"); }
CString getDetailedDescription() const override
{
return CString("This algorithm dumps on disk a stream from a specific output in the standard GDF file format");
}
CString getCategory() const override { return CString("File reading and writing/GDF"); }
CString getVersion() const override { return CString("0.6"); }
CString getStockItemName() const override { return CString("gtk-save"); }
void release() override { }
CIdentifier getCreatedClass() const override { return OVP_ClassId_GDFFileWriter; }
IPluginObject* create() override { return new CGDFFileWriter(); }
bool getBoxPrototype(Kernel::IBoxProto& prototype) const override
{
// Adds box inputs //swap order of the first two
prototype.addInput("Experiment information", OV_TypeId_ExperimentInfo);
prototype.addInput("Signal", OV_TypeId_Signal);
prototype.addInput("Stimulation", OV_TypeId_Stimulations);
// Adds box settings
prototype.addSetting("Filename", OV_TypeId_Filename, "record-[$core{date}-$core{time}].gdf");
return true;
}
_IsDerivedFromClass_Final_(IBoxAlgorithmDesc, OVP_ClassId_GDFFileWriterDesc)
};
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,95 @@
#pragma once
// Boxes
//---------------------------------------------------------------------------------------------------
#define OVP_ClassId_GDFFileReader OpenViBE::CIdentifier(0x3EEB1264, 0x4EDFBD9A)
#define OVP_ClassId_GDFFileReaderDesc OpenViBE::CIdentifier(0x2E2543C1, 0x47E3739E)
#define OVP_ClassId_GDFFileWriter OpenViBE::CIdentifier(0x1E7B2155, 0x107289CE)
#define OVP_ClassId_GDFFileWriterDesc OpenViBE::CIdentifier(0x375BF8EC, 0x023ACEEB)
#define OVP_ClassId_GenericStreamReader OpenViBE::CIdentifier(0x0B1D880D, 0x02A17229)
#define OVP_ClassId_GenericStreamReaderDesc OpenViBE::CIdentifier(0x1E8AAB1A, 0x085D72F6)
#define OVP_ClassId_GenericStreamWriter OpenViBE::CIdentifier(0x78EA86B0, 0x2933E255)
#define OVP_ClassId_GenericStreamWriterDesc OpenViBE::CIdentifier(0x02817C77, 0x77FE3D6A)
#define OVP_ClassId_BCICompetitionIIIbReader OpenViBE::CIdentifier(0x0085B814, 0x6E45DA7E)
#define OVP_ClassId_BCICompetitionIIIbReaderDesc OpenViBE::CIdentifier(0x00CC1B39, 0x206A17AE)
#define OVP_ClassId_BoxAlgorithm_CSVFileWriter OpenViBE::CIdentifier(0x2C9312F1, 0x2D6613E5)
#define OVP_ClassId_BoxAlgorithm_CSVFileWriterDesc OpenViBE::CIdentifier(0x65075FF7, 0x2B555E97)
#define OVP_ClassId_BoxAlgorithm_CSVFileReader OpenViBE::CIdentifier(0x641D0717, 0x02884107)
#define OVP_ClassId_BoxAlgorithm_CSVFileReaderDesc OpenViBE::CIdentifier(0x193F22E9, 0x26A67233)
// Brainamp File
//---------------------------------------------------------------------------------------------------
#define OVP_ClassId_Algorithm_BrainampFileReader OpenViBE::CIdentifier(0x2533718F, 0x07AB3AF5)
#define OVP_ClassId_Algorithm_BrainampFileReaderDesc OpenViBE::CIdentifier(0x2C5B2D6C, 0x242253CF)
#define OVP_ClassId_BoxAlgorithm_BrainampFileReader OpenViBE::CIdentifier(0x61894B28, 0x185E57D2)
#define OVP_ClassId_BoxAlgorithm_BrainampFileReaderDesc OpenViBE::CIdentifier(0x77C650B0, 0x41386F47)
#define OVP_Algorithm_BrainampFileReader_InputParameterId_Filename OpenViBE::CIdentifier(0x000C486C, 0x477C80B9)
#define OVP_Algorithm_BrainampFileReader_InputParameterId_EpochDuration OpenViBE::CIdentifier(0x002AEE72, 0x288D489E)
#define OVP_Algorithm_BrainampFileReader_InputParameterId_SeekTime OpenViBE::CIdentifier(0x00627156, 0x55790CAE)
#define OVP_Algorithm_BrainampFileReader_InputParameterId_ConvertStimuli OpenViBE::CIdentifier(0x537445DC, 0x6C792A96)
#define OVP_Algorithm_BrainampFileReader_InputParameterId_MarkerDictionaryFilename OpenViBE::CIdentifier(0x1F044ABB, 0x5AACf062)
#define OVP_Algorithm_BrainampFileReader_OutputParameterId_CurrentStartTime OpenViBE::CIdentifier(0x003CE019, 0x3DADE050)
#define OVP_Algorithm_BrainampFileReader_OutputParameterId_CurrentEndTime OpenViBE::CIdentifier(0x3B87DE16, 0xB8EFB2FB)
#define OVP_Algorithm_BrainampFileReader_OutputParameterId_Sampling OpenViBE::CIdentifier(0x00D3CABB, 0x339326C2)
#define OVP_Algorithm_BrainampFileReader_OutputParameterId_SignalMatrix OpenViBE::CIdentifier(0x0073A91A, 0x6D1D3D26)
#define OVP_Algorithm_BrainampFileReader_OutputParameterId_Stimulations OpenViBE::CIdentifier(0x008F7C49, 0x6ED710A9)
#define OVP_Algorithm_BrainampFileReader_InputTriggerId_Open OpenViBE::CIdentifier(0x00BCF286, 0x6F5FA2F4)
#define OVP_Algorithm_BrainampFileReader_InputTriggerId_Seek OpenViBE::CIdentifier(0x00C3ACAB, 0x4E3DE014)
#define OVP_Algorithm_BrainampFileReader_InputTriggerId_Next OpenViBE::CIdentifier(0x003CD062, 0x739F973E)
#define OVP_Algorithm_BrainampFileReader_InputTriggerId_Close OpenViBE::CIdentifier(0x003462EA, 0x031FB8FA)
#define OVP_Algorithm_BrainampFileReader_OutputTriggerId_Error OpenViBE::CIdentifier(0x00B1E3DF, 0x3ABC6C5A)
#define OVP_Algorithm_BrainampFileReader_OutputTriggerId_DataProduced OpenViBE::CIdentifier(0x00E7D5F9, 0x1471AFF2)
#define OVP_ClassId_BoxAlgorithm_BrainampFileWriter OpenViBE::CIdentifier(0xABACC29F, 0xD5A0E5A8)
#define OVP_ClassId_BoxAlgorithm_BrainampFileWriterDesc OpenViBE::CIdentifier(0x6347C864, 0x8483E2DF)
// OV Matrix File Reader
//---------------------------------------------------------------------------------------------------
#define OVP_ClassId_Algorithm_OVMatrixFileReader OpenViBE::CIdentifier(0x10661A33, 0x0B0F44A7)
#define OVP_ClassId_Algorithm_OVMatrixFileReaderDesc OpenViBE::CIdentifier(0x0E873B5E, 0x0A287FCB)
#define OVP_Algorithm_OVMatrixFileReader_InputParameterId_Filename OpenViBE::CIdentifier(0x28F87B29, 0x0B09737E)
#define OVP_Algorithm_OVMatrixFileReader_OutputParameterId_Matrix OpenViBE::CIdentifier(0x2F9521E0, 0x027D789F)
#define OVP_Algorithm_OVMatrixFileReader_InputTriggerId_Open OpenViBE::CIdentifier(0x2F996376, 0x2A942485)
#define OVP_Algorithm_OVMatrixFileReader_InputTriggerId_Load OpenViBE::CIdentifier(0x22841807, 0x102D681C)
#define OVP_Algorithm_OVMatrixFileReader_InputTriggerId_Close OpenViBE::CIdentifier(0x7FDE77DA, 0x384A0B3D)
#define OVP_Algorithm_OVMatrixFileReader_OutputTriggerId_Error OpenViBE::CIdentifier(0x6D4F2F4B, 0x05EC6CB9)
#define OVP_Algorithm_OVMatrixFileReader_OutputTriggerId_DataProduced OpenViBE::CIdentifier(0x76F46051, 0x003B6FE8)
#define OVP_ClassId_Algorithm_OVMatrixFileWriter OpenViBE::CIdentifier(0x739158FC, 0x1E8240CC)
#define OVP_ClassId_Algorithm_OVMatrixFileWriterDesc OpenViBE::CIdentifier(0x44CF6DD0, 0x329D47F9)
#define OVP_Algorithm_OVMatrixFileWriter_InputParameterId_Filename OpenViBE::CIdentifier(0x330D2D0B, 0x175271E6)
#define OVP_Algorithm_OVMatrixFileWriter_InputParameterId_Matrix OpenViBE::CIdentifier(0x6F6402EE, 0x493044F3)
// ElectrodeLocalisationFileReader
//---------------------------------------------------------------------------------------------------
#define OVP_ClassId_BoxAlgorithm_ElectrodeLocalisationFileReader OpenViBE::CIdentifier(0x40704155, 0x19C50E8F)
#define OVP_ClassId_BoxAlgorithm_ElectrodeLocalisationFileReaderDesc OpenViBE::CIdentifier(0x4796613F, 0x653A48D5)
// Global defines
//---------------------------------------------------------------------------------------------------
#ifdef TARGET_HAS_ThirdPartyOpenViBEPluginsGlobalDefines
#include "ovp_global_defines.h"
#endif // TARGET_HAS_ThirdPartyOpenViBEPluginsGlobalDefines
#define OV_AttributeId_Box_FlagIsUnstable OpenViBE::CIdentifier(0x666FFFFF, 0x666FFFFF)
#define OVP_NodeId_OpenViBEStream_Header EBML::CIdentifier(0xF59505AB, 0x3684C8D8)
#define OVP_NodeId_OpenViBEStream_Header_Compression EBML::CIdentifier(0x40358769, 0x166380D1)
#define OVP_NodeId_OpenViBEStream_Header_StreamType EBML::CIdentifier(0x732EC1D1, 0xFE904087)
#define OVP_NodeId_OpenViBEStream_Header_ChannelType OVP_NodeId_OpenViBEStream_Header_StreamType // deprecated old name
#define OVP_NodeId_OpenViBEStream_Buffer EBML::CIdentifier(0x2E60AD18, 0x87A29BDF)
#define OVP_NodeId_OpenViBEStream_Buffer_StreamIndex EBML::CIdentifier(0x30A56D8A, 0xB9C12238)
#define OVP_NodeId_OpenViBEStream_Buffer_ChannelIndex OVP_NodeId_OpenViBEStream_Buffer_StreamIndex // deprecated old name
#define OVP_NodeId_OpenViBEStream_Buffer_StartTime EBML::CIdentifier(0x093E6A0A, 0xC5A9467B)
#define OVP_NodeId_OpenViBEStream_Buffer_EndTime EBML::CIdentifier(0x8B5CCCD9, 0xC5024F29)
#define OVP_NodeId_OpenViBEStream_Buffer_Content EBML::CIdentifier(0x8D4B0BE8, 0x7051265C)
@@ -0,0 +1,489 @@
#include "ovp_gdf_helpers.h"
#include <system/ovCMemory.h>
#include <iostream>
#include <cstring>
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
GDF::CFixedGDF1Header::CFixedGDF1Header()
{
memset(m_PatientID, ' ', sizeof(m_PatientID));
memset(m_RecordingID, ' ', sizeof(m_RecordingID));
memset(m_StartDateAndTimeOfRecording, ' ', sizeof(m_StartDateAndTimeOfRecording));
memset(m_ReservedSerialNumber, ' ', sizeof(m_ReservedSerialNumber));
//set version number
memcpy(m_VersionID, "GDF 1.25", 8);
//subjectId unknown by default
m_PatientID[0] = 'X';
//sex unknown by default
m_PatientID[17] = 'X';
}
bool GDF::CFixedGDF1Header::read(std::ifstream& file)
{
uint8_t buffer[72];
file.read(m_PatientID, sizeof(m_PatientID));
file.read(m_RecordingID, sizeof(m_RecordingID));
file.read(m_StartDateAndTimeOfRecording, sizeof(m_StartDateAndTimeOfRecording));
file.read(reinterpret_cast<char*>(buffer), 72);
System::Memory::littleEndianToHost(buffer, reinterpret_cast<uint64_t*>(&m_NBytesInHeaderRecord));
System::Memory::littleEndianToHost(buffer + 8, &m_EquipmentProviderID);
System::Memory::littleEndianToHost(buffer + 16, &m_LaboratoryID);
System::Memory::littleEndianToHost(buffer + 24, &m_TechnicianID);
System::Memory::littleEndianToHost(buffer + 52, reinterpret_cast<uint64_t*>(&m_NDataRecords));
System::Memory::littleEndianToHost(buffer + 60, &m_DurationDataRecordNum);
System::Memory::littleEndianToHost(buffer + 64, &m_DurationDataRecordDen);
System::Memory::littleEndianToHost(buffer + 68, &m_NSignals);
return !file.bad();
}
bool GDF::CFixedGDF1Header::save(std::ofstream& file)
{
if (file.is_open())
{
uint8_t buffer[sizeof(uint64_t)];
file.seekp(0, std::ios::beg);
file.write(m_VersionID, sizeof(m_VersionID));
file.write(m_PatientID, sizeof(m_PatientID));
file.write(m_RecordingID, sizeof(m_RecordingID));
file.write(m_StartDateAndTimeOfRecording, sizeof(m_StartDateAndTimeOfRecording));
System::Memory::hostToLittleEndian(uint64_t(m_NBytesInHeaderRecord), buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(int64_t));
System::Memory::hostToLittleEndian(uint64_t(m_EquipmentProviderID), buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(uint64_t));
System::Memory::hostToLittleEndian(uint64_t(m_LaboratoryID), buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(uint64_t));
System::Memory::hostToLittleEndian(uint64_t(m_TechnicianID), buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(uint64_t));
file.write(m_ReservedSerialNumber, sizeof(m_ReservedSerialNumber));
System::Memory::hostToLittleEndian(uint64_t(m_NDataRecords), buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(int64_t));
System::Memory::hostToLittleEndian(m_DurationDataRecordNum, buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(uint32_t));
System::Memory::hostToLittleEndian(m_DurationDataRecordDen, buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(uint32_t));
System::Memory::hostToLittleEndian(m_NSignals, buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(uint32_t));
if (file.bad())
{
//cout<<"Error while writing to the output file"<<endl;
return false;
}
return true;
}
return false;
}
bool GDF::CFixedGDF1Header::update(std::ofstream& file)
{
if (file.is_open())
{
uint8_t buffer[sizeof(uint64_t)];
const uint64_t backupPos = file.tellp();
file.seekp(236, std::ios::beg);
System::Memory::hostToLittleEndian(uint64_t(m_NDataRecords), buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(int64_t));
file.seekp(std::streamsize(backupPos), std::ios::beg);
if (file.bad())
{
//cout<<"Error while writing to the output file"<<endl;
return false;
}
return true;
}
return false;
}
std::string GDF::CFixedGDF1Header::getSubjectName()
{
// extracts the PID and Patient name from the m_sPatientId
char* token = strtok(m_PatientID, " ");
if (token)
{
//The PId is not a numerical value in GDF, it is useless for us
token = strtok(nullptr, " ");
}
if (token) { return token; }
return NO_VALUE_S;
}
uint64_t GDF::CFixedGDF1Header::getLaboratoryID()
{
uint8_t* temp = reinterpret_cast<uint8_t*>(&m_LaboratoryID);
bool blank = true;
for (int i = 0; i < 8 && blank; ++i) { if (temp[i] != 0x20) { blank = false; } }
if (blank) { return NO_VALUE_I; }
return m_LaboratoryID;
}
uint64_t GDF::CFixedGDF1Header::getTechnicianID()
{
uint8_t* temp = reinterpret_cast<uint8_t*>(&m_TechnicianID);
bool blank = true;
for (int i = 0; i < 8 && blank; ++i) { if (temp[i] != 0x20) { blank = false; } }
if (blank) { return NO_VALUE_I; }
return m_TechnicianID;
}
GDF::CFixedGDF2Header::CFixedGDF2Header()
{
memset(&m_VersionID, 0, sizeof(m_VersionID));
memset(&m_PatientID, 0, sizeof(m_PatientID));
memset(&m_Reserved, 0, sizeof(m_Reserved));
memset(&m_RecordingID, 0, sizeof(m_RecordingID));
memset(&m_RecordingLocation, 0, sizeof(m_RecordingLocation));
memset(&m_StartDateAndTimeOfRecording, 0, sizeof(m_StartDateAndTimeOfRecording));
memset(&m_Birthday, 0, sizeof(m_Birthday));
memset(&m_Reserved2, 0, sizeof(m_Reserved2));
memset(&m_IPAdress, 0, sizeof(m_IPAdress));
memset(&m_HeadSize, 0, sizeof(m_HeadSize));
memset(&m_PositionReferenceElectrode, 0, sizeof(m_PositionReferenceElectrode));
memset(&m_GroundElectrode, 0, sizeof(m_GroundElectrode));
}
bool GDF::CFixedGDF2Header::read(std::ifstream& oFile)
{
uint8_t buffer[104];
oFile.read(m_PatientID, 66);
oFile.read(reinterpret_cast<char*>(buffer), 14);
m_HealthInformation = buffer[10];
m_Weight = buffer[11];
m_Height = buffer[12];
m_SubjectInfo = buffer[13];
oFile.read(m_RecordingID, 64);
oFile.read(reinterpret_cast<char*>(buffer), 102);
for (int i = 0; i < 4; ++i) { System::Memory::littleEndianToHost(buffer + i * sizeof(uint32_t), &m_RecordingLocation[i]); }
System::Memory::littleEndianToHost(buffer + 16, &m_StartDateAndTimeOfRecording[0]);
System::Memory::littleEndianToHost(buffer + 20, &m_StartDateAndTimeOfRecording[1]);
System::Memory::littleEndianToHost(buffer + 24, &m_Birthday[0]);
System::Memory::littleEndianToHost(buffer + 28, &m_Birthday[1]);
System::Memory::littleEndianToHost(buffer + 32, &m_NBlocksInHeader);
// +34 patient classification 6 bytes
System::Memory::littleEndianToHost(buffer + 40, &m_EquipmentProviderID);
for (int i = 0; i < 6; ++i) { m_IPAdress[i] = buffer[48 + i]; }
for (int i = 0; i < 3; ++i)
{
System::Memory::littleEndianToHost(buffer + 54 + i * sizeof(uint16_t), &m_HeadSize[i]);
System::Memory::littleEndianToHost(buffer + 60 + i * sizeof(float), &m_PositionReferenceElectrode[i]);
System::Memory::littleEndianToHost(buffer + 72 + i * sizeof(float), &m_GroundElectrode[i]);
}
System::Memory::littleEndianToHost(buffer + 84, reinterpret_cast<uint64_t*>(&m_NDataRecords));
System::Memory::littleEndianToHost(buffer + 92, &m_DurationRecordNum);
System::Memory::littleEndianToHost(buffer + 96, &m_DurationDataRecordDen);
System::Memory::littleEndianToHost(buffer + 100, &m_NSignals);
return !oFile.bad();
}
bool GDF::CFixedGDF2Header::save(std::ofstream& /*file*/)
{
return false;
//TODO complete
/*
uint8_t buffer[sizeof(uint64_t)];
file.seekp(0,std::ios::beg);
file<<m_VersionId<<m_PatientID;
*/
}
std::string GDF::CFixedGDF2Header::getSubjectName()
{
// extracts the PID and Patient name from the m_sPatientId
char* token = strtok(m_PatientID, " ");
if (token)
{
//The PId is not a numerical value in GDF, it is useless for us
token = strtok(nullptr, " ");
}
if (token) { return token; }
return NO_VALUE_S;
}
std::string GDF::CFixedGDF2Header::getExperimentDate()
{
//computes the experiment date
//uint64_t tempDate = *(reinterpret_cast<uint64_t*>(m_startDateAndTimeOfRecording));
//time_t startDateAndTimeOfRecordingInSeconds = ((tempDate/2^32) - 719529) * (3600*24);
//tm * startDateAndTimeOfRecording = gmtime(&startDateAndTimeOfRecordingInSeconds);
//TODO check how date is coded in openvibe Date not good?
//(l_sStartDateAndTimeOfRecording->mon+1)<<8 + (l_sStartDateAndTimeOfRecording->day)
return NO_VALUE_S;
}
//VARIABLE HEADER
GDF::CVariableGDF1Header::CVariableGDF1HeaderPerChannel::CVariableGDF1HeaderPerChannel()
{
memset(m_Label, ' ', sizeof(m_Label));
memset(m_TranducerType, ' ', sizeof(m_TranducerType));
memset(m_PhysicalDimension, ' ', sizeof(m_PhysicalDimension));
memset(m_PreFiltering, ' ', sizeof(m_PreFiltering));
memset(m_Reserved, ' ', sizeof(m_Reserved));
}
bool GDF::CVariableGDF1Header::update(std::ofstream& file)
{
if (file.is_open())
{
uint8_t buffer[sizeof(uint64_t)];
const uint64_t backupPos = file.tellp();
const uint32_t nChannel = m_VariableHeaders.size();
file.seekp(0x100 + 104 * nChannel, std::ios::beg);
for (const auto& i : m_VariableHeaders)
{
System::Memory::hostToLittleEndian(i.m_PhysicalMin, buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(double));
}
for (const auto& i : m_VariableHeaders)
{
System::Memory::hostToLittleEndian(i.m_PhysicalMax, buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(double));
}
for (const auto& i : m_VariableHeaders)
{
System::Memory::hostToLittleEndian(uint64_t(i.m_DigitalMin), buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(int64_t));
}
for (const auto& i : m_VariableHeaders)
{
System::Memory::hostToLittleEndian(uint64_t(i.m_DigitalMax), buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(int64_t));
}
file.seekp(std::streamsize(backupPos), std::ios::beg);
if (file.bad())
{
//cout<<"Error while writing to the output file"<<endl;
return false;
}
return true;
}
return false;
}
bool GDF::CVariableGDF1Header::save(std::ofstream& file)
{
if (file.is_open())
{
uint8_t buffer[sizeof(uint64_t)];
file.seekp(0x100, std::ios::beg);
for (const auto& i : m_VariableHeaders) { file.write(i.m_Label, sizeof(i.m_Label)); }
for (const auto& i : m_VariableHeaders) { file.write(i.m_TranducerType, sizeof(i.m_TranducerType)); }
for (const auto& i : m_VariableHeaders) { file.write(i.m_PhysicalDimension, sizeof(i.m_PhysicalDimension)); }
for (const auto& i : m_VariableHeaders)
{
System::Memory::hostToLittleEndian(i.m_PhysicalMin, buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(double));
}
for (const auto& i : m_VariableHeaders)
{
System::Memory::hostToLittleEndian(i.m_PhysicalMax, buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(double));
}
for (const auto& i : m_VariableHeaders)
{
System::Memory::hostToLittleEndian(uint64_t(i.m_DigitalMin), buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(int64_t));
}
for (const auto& i : m_VariableHeaders)
{
System::Memory::hostToLittleEndian(uint64_t(i.m_DigitalMax), buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(int64_t));
}
for (const auto& i : m_VariableHeaders) { file.write(i.m_PreFiltering, sizeof(i.m_PreFiltering)); }
for (const auto& i : m_VariableHeaders)
{
System::Memory::hostToLittleEndian(i.m_NSamplesInEachRecord, buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(uint32_t));
}
for (const auto& i : m_VariableHeaders)
{
System::Memory::hostToLittleEndian(i.m_ChannelType, buffer);
file.write(reinterpret_cast<char*>(buffer), sizeof(uint32_t));
}
for (const auto& i : m_VariableHeaders) { file.write(i.m_Reserved, sizeof(i.m_Reserved)); }
if (file.bad())
{
//cout<<"Error while writing to the output file"<<endl;
return false;
}
return true;
}
return false;
}
//HELPER METHODS
uint16_t GDF::GDFDataSize(const uint32_t channelType)
{
switch (channelType)
{
case ChannelType_int8_t: return 1;
case ChannelType_uint8_t: return 1;
case ChannelType_int16_t: return 2;
case ChannelType_uint16_t: return 2;
case ChannelType_int32_t: return 4;
case ChannelType_uint32_t: return 4;
case ChannelType_int64_t: return 8;
case ChannelType_uint64_t: return 8;
case ChannelType_float: return 4;
case ChannelType_double: return 8;
case ChannelType_float128: return 16;
case ChannelType_int24: return 3;
case ChannelType_uint24: return 3;
default: return 0;
}
}
bool GDF::CFixedGDF251Header::read(std::ifstream& oFile)
{
// Due to issues with data alignment and platform-specific padding, we can't trivially read the struct to memory with one go.
oFile.seekg(0, std::ios_base::beg);
uint8_t buffer[256];
oFile.read(reinterpret_cast<char*>(buffer), 256);
strncpy(m_Header1.versionID, (char*)&buffer[0], 8);
strncpy(m_Header1.patientID, (char*)&buffer[8], 66);
m_Header1.healthInfo = buffer[84];
m_Header1.weight = buffer[85];
m_Header1.height = buffer[86];
m_Header1.subjectInfo = buffer[87];
strncpy(m_Header1.recordingID, (char*)&buffer[88], 64);
for (int i = 0; i < 4; ++i) { System::Memory::littleEndianToHost(buffer + 152 + i * sizeof(uint32_t), &m_Header1.recordingLocation[i]); }
System::Memory::littleEndianToHost(buffer + 168, &m_Header1.startDateAndTimeOfRecording[0]);
System::Memory::littleEndianToHost(buffer + 172, &m_Header1.startDateAndTimeOfRecording[1]);
System::Memory::littleEndianToHost(buffer + 176, &m_Header1.birthday[0]);
System::Memory::littleEndianToHost(buffer + 180, &m_Header1.birthday[1]);
System::Memory::littleEndianToHost(buffer + 184, &m_Header1.headerLength);
// +34 patient classification 6 bytes
System::Memory::littleEndianToHost(buffer + 192, &m_Header1.equipmentProviderID);
for (int i = 0; i < 6; ++i) { m_Header1.reserved1[i] = buffer[200 + i]; }
for (int i = 0; i < 3; ++i)
{
System::Memory::littleEndianToHost(buffer + 206 + i * sizeof(uint16_t), &m_Header1.headSize[i]);
System::Memory::littleEndianToHost(buffer + 212 + i * sizeof(float), &m_Header1.positionReferenceElectrode[i]);
System::Memory::littleEndianToHost(buffer + 224 + i * sizeof(float), &m_Header1.groundElectrode[i]);
}
System::Memory::littleEndianToHost(buffer + 236, reinterpret_cast<uint64_t*>(&m_Header1.nDataRecords));
System::Memory::littleEndianToHost(buffer + 244, &m_Header1.duration);
System::Memory::littleEndianToHost(buffer + 252, &m_Header1.nSignals);
System::Memory::littleEndianToHost(buffer + 254, &m_Header1.reserved2);
if (oFile.bad()) { return false; }
return true;
}
bool GDF::CFixedGDF251Header::save(std::ofstream& /*file*/)
{
return false;
//TODO complete
/*
uint8_t tempBuffer[sizeof(uint64_t)];
file.seekp(0,std::ios::beg);
file << m_VersionId << m_PatientId;
*/
}
std::string GDF::CFixedGDF251Header::getSubjectName()
{
// extracts the PID and Patient name from the m_sPatientId
char* token = strtok(m_Header1.patientID, " ");
if (token) { token = strtok(nullptr, " "); } //The PId is not a numerical value in GDF, it is useless for us
if (token) { return token; }
return NO_VALUE_S;
}
std::string GDF::CFixedGDF251Header::getExperimentDate()
{
//computes the experiment date
//uint64_t tempDate= *(reinterpret_cast<uint64_t*>(m_startDateAndTimeOfRecording));
//time_t startDateAndTimeOfRecordingInSeconds = ((tempDate/2^32) - 719529) * (3600*24);
//tm * startDateAndTimeOfRecording = gmtime(&startDateAndTimeOfRecordingInSeconds);
//TODO check how date is coded in openvibe Date not good?
//(startDateAndTimeOfRecording->mon+1)<<8 + (startDateAndTimeOfRecording->day)
return NO_VALUE_S;
}
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,346 @@
#pragma once
#include <openvibe/ov_all.h>
#include <cmath>
#include <fstream>
#include <vector>
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
#define NO_VALUE_I 0xffffffff
#define NO_VALUE_S "_unspecified_"
/**
* Useful classes for GDF file format handling
*/
class GDF
{
public:
class CFixedGDFHeader
{
public:
virtual ~CFixedGDFHeader() {}
virtual bool read(std::ifstream& file) = 0;
virtual bool save(std::ofstream& file) = 0;
virtual bool update(std::ofstream& file) = 0;
virtual uint64_t getSubjectID() { return NO_VALUE_I; }
virtual std::string getSubjectName() { return NO_VALUE_S; }
virtual uint64_t getSubjectSex() { return NO_VALUE_I; }
virtual uint64_t getSubjectAge() { return NO_VALUE_I; }
virtual uint64_t getExperimentID() { return NO_VALUE_I; }
virtual std::string getExperimentDate() { return NO_VALUE_S; }
virtual uint64_t getLaboratoryID() { return NO_VALUE_I; }
virtual uint64_t getTechnicianID() { return NO_VALUE_I; }
virtual std::string getLaboratoryName() { return NO_VALUE_S; }
virtual std::string getTechnicianName() { return NO_VALUE_S; }
virtual double getDataRecordDuration() = 0;
virtual uint64_t getNDataRecords() = 0;
virtual size_t getChannelCount() = 0;
};
/**
* An helper class to manipulate GDF1 fixed-size headers
*/
class CFixedGDF1Header final : public CFixedGDFHeader
{
public:
CFixedGDF1Header();
~CFixedGDF1Header() override {}
/**
* Reads a GDF1 fixed Header from a file
* \param file The input file.
* \return true if the operation was successful
*/
bool read(std::ifstream& file) override;
/**
* Saves a GDF1 fixed Header in a file
* \param file The output file.
* \return true if the operation was successful
*/
bool save(std::ofstream& file) override;
/**
* Updates the number of data records field in
* a GDF1 fixed Header in a file
* \param file The output file.
* \return true if the operation was successful
*/
bool update(std::ofstream& file) override;
std::string getSubjectName() override;
uint64_t getLaboratoryID() override;
uint64_t getTechnicianID() override;
double getDataRecordDuration() override { return double(m_DurationDataRecordNum) / double(m_DurationDataRecordDen); }
uint64_t getNDataRecords() override { return m_NDataRecords; }
size_t getChannelCount() override { return m_NSignals; }
char m_VersionID[8];
char m_PatientID[80];
char m_RecordingID[80];
char m_StartDateAndTimeOfRecording[16];
int64_t m_NBytesInHeaderRecord = 0;
uint64_t m_EquipmentProviderID = 0;
uint64_t m_LaboratoryID = 0;
uint64_t m_TechnicianID = 0;
char m_ReservedSerialNumber[20];
int64_t m_NDataRecords = 0;
uint32_t m_DurationDataRecordNum = 0;
uint32_t m_DurationDataRecordDen = 0;
uint32_t m_NSignals = 0;
};
/**
* An helper class to manipulate GDF2 fixed-size headers
*/
class CFixedGDF2Header final : public CFixedGDFHeader
{
public:
CFixedGDF2Header();
~CFixedGDF2Header() override {}
/**
* Reads a GDF2 fixed Header from a file
* \param oFile The input file.
* \return true if the operation was successful
*/
bool read(std::ifstream& oFile) override;
/**
* Saves a GDF2 fixed Header in a file
* \param file The output file.
* \return true if the operation was successful
*/
bool save(std::ofstream& file) override;
/**
* Updates the number of data records field in
* a GDF2 fixed Header in a file
* \param file The output file.
* \return true if the operation was successful
*/
bool update(std::ofstream& file) override { return true; }
std::string getExperimentDate() override;
std::string getSubjectName() override;
uint64_t getSubjectSex() override { return m_SubjectInfo & 0x03; }
uint64_t getSubjectAge() override { return uint64_t(std::floor(double((m_StartDateAndTimeOfRecording[1] - m_Birthday[1]) / 365.242189813))); }
double getDataRecordDuration() override { return double(m_DurationRecordNum) / double(m_DurationDataRecordDen); }
uint64_t getNDataRecords() override { return m_NDataRecords; }
size_t getChannelCount() override { return m_NSignals; }
char m_VersionID[8];
char m_PatientID[66];
uint8_t m_Reserved[10];
uint8_t m_HealthInformation = 0; //smoking...
uint8_t m_Weight = 0;
uint8_t m_Height = 0;
uint8_t m_SubjectInfo = 0;//gender...
char m_RecordingID[64];
uint32_t m_RecordingLocation[4];
uint32_t m_StartDateAndTimeOfRecording[2];
uint32_t m_Birthday[2];
uint16_t m_NBlocksInHeader = 0;
uint8_t m_Reserved2[6];
uint64_t m_EquipmentProviderID = 0;
uint8_t m_IPAdress[6];
uint16_t m_HeadSize[3];
float m_PositionReferenceElectrode[3];
float m_GroundElectrode[3];
int64_t m_NDataRecords = 0;
uint32_t m_DurationRecordNum = 0;
uint32_t m_DurationDataRecordDen = 0;
uint16_t m_NSignals = 0;
uint16_t m_Reserved3 = 0;
};
/**
* An helper class to manipulate GDF2.51 fixed-size headers
*/
class CFixedGDF251Header final : public CFixedGDFHeader
{
public:
CFixedGDF251Header() { memset(&m_Header1, 0, sizeof(m_Header1)); }
~CFixedGDF251Header() override {}
/**
* Reads a GDF2 fixed Header from a file
* \param oFile The input file.
* \return true if the operation was successful
*/
bool read(std::ifstream& oFile) override;
/**
* Saves a GDF2 fixed Header in a file
* \param file The output file.
* \return true if the operation was successful
*/
bool save(std::ofstream& file) override;
/**
* Updates the number of data records field in
* a GDF2 fixed Header in a file
* \param file The output file.
* \return true if the operation was successful
*/
bool update(std::ofstream& file) override { return true; }
std::string getExperimentDate() override;
std::string getSubjectName() override;
uint64_t getSubjectSex() override { return m_Header1.subjectInfo & 0x03; }
uint64_t getSubjectAge() override
{
return uint64_t(floor(double((m_Header1.startDateAndTimeOfRecording[1] - m_Header1.birthday[1]) / 365.242189813)));
}
double getDataRecordDuration() override { return m_Header1.duration; }
uint64_t getNDataRecords() override { return m_Header1.nDataRecords; }
size_t getChannelCount() override { return m_Header1.nSignals; }
struct SGDFFixedHeader1
{
char versionID[8];
char patientID[66];
uint8_t reserved[10];
uint8_t healthInfo; //smoking...
uint8_t weight;
uint8_t height;
uint8_t subjectInfo;//gender...
char recordingID[64];
uint32_t recordingLocation[4];
uint32_t startDateAndTimeOfRecording[2];
uint32_t birthday[2];
uint16_t headerLength;
char patientClassification[6];
uint64_t equipmentProviderID;
uint8_t reserved1[6];
uint16_t headSize[3];
float positionReferenceElectrode[3];
float groundElectrode[3];
int64_t nDataRecords;
double duration; // Not double in the 2.51 spec document at the time of writing this, but seems to be so in practice?
uint16_t nSignals;
uint16_t reserved2;
};
SGDFFixedHeader1 m_Header1;
};
/**
* Base class for GDF file's variable headers
*/
class CVariableGDFHeader
{
public:
virtual ~CVariableGDFHeader() { }
virtual bool save(std::ofstream& file) = 0;
};
/**
* GDF1 variable header class
*/
class CVariableGDF1Header final : public CVariableGDFHeader
{
//! Stores information for one channel
class CVariableGDF1HeaderPerChannel
{
public:
CVariableGDF1HeaderPerChannel();
char m_Label[16];
char m_TranducerType[80];
char m_PhysicalDimension[8];
double m_PhysicalMin = 0;
double m_PhysicalMax = 0;
int64_t m_DigitalMin = 0;
int64_t m_DigitalMax = 0;
char m_PreFiltering[80];
uint32_t m_NSamplesInEachRecord = 0;
uint32_t m_ChannelType = 0;
char m_Reserved[32];
};
public:
~CVariableGDF1Header() override {}
/**
* Saves a GDF1 variable Header in a file
* \param file The output file.
* \return true if the operation was successful
*/
bool save(std::ofstream& file) override;
/**
* Updates the Physical/digital Min/max fields in
* a GDF1 variable Header in a file
* \param file The output file.
* \return true if the operation was successful
*/
bool update(std::ofstream& file);
/**
* Sets the number of channels in the file.
* \param nChannel Number of channels.
*/
void setChannelCount(const uint32_t nChannel) { m_VariableHeaders.resize(nChannel); }
CVariableGDF1HeaderPerChannel& operator[](const uint32_t channel) { return m_VariableHeaders[channel]; }
std::vector<CVariableGDF1HeaderPerChannel> m_VariableHeaders;
};
class CGDFEvent
{
public:
uint32_t m_Position = 0;
uint16_t m_Type = 0;
};
enum EChannelType
{
ChannelType_int8_t = 1,
ChannelType_uint8_t = 2,
ChannelType_int16_t = 3,
ChannelType_uint16_t = 4,
ChannelType_int32_t = 5,
ChannelType_uint32_t = 6,
ChannelType_int64_t = 7,
ChannelType_uint64_t = 8,
ChannelType_float = 16,
ChannelType_double = 17,
ChannelType_float128 = 18,
ChannelType_int24 = 279,
ChannelType_uint24 = 535
};
/**
* Gets the data size in bytes of the GDF data type
* \param channelType The GDF type
* \return The size in bytes of this GDF type's data
*/
static uint16_t GDFDataSize(uint32_t channelType);
};
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,36 @@
#include "ovp_defines.h"
#include "box-algorithms/ovpCGDFFileReader.h"
#include "box-algorithms/ovpCGDFFileWriter.h"
#include "box-algorithms/ovpCBCICompetitionIIIbReader.h"
#include "algorithms/brainamp/ovpCAlgorithmBrainampFileReader.h"
#include "box-algorithms/brainamp/ovpCBoxAlgorithmBrainampFileReader.h"
#include "box-algorithms/brainamp/ovpCBoxAlgorithmBrainampFileWriter.h"
#include "box-algorithms/bci2000reader/ovpCBoxAlgorithmBCI2000Reader.h"
#include "box-algorithms/ovpCBoxAlgorithmSignalConcatenation.h"
namespace OpenViBE {
namespace Plugins {
namespace FileIO {
OVP_Declare_Begin()
context.getTypeManager().registerEnumerationEntry(OV_TypeId_BoxAlgorithmFlag, OV_AttributeId_Box_FlagIsUnstable.toString(),
OV_AttributeId_Box_FlagIsUnstable.id());
OVP_Declare_New(CGDFFileReaderDesc)
OVP_Declare_New(CGDFFileWriterDesc)
OVP_Declare_New(CBCICompetitionIIIbReaderDesc)
OVP_Declare_New(CAlgorithmBrainampFileReaderDesc)
OVP_Declare_New(CBoxAlgorithmBrainampFileReaderDesc)
OVP_Declare_New(CBoxAlgorithmBrainampFileWriterDesc)
OVP_Declare_New(CBoxAlgorithmBCI2000ReaderDesc)
OVP_Declare_New(CBoxAlgorithmSignalConcatenationDesc)
OVP_Declare_End()
} // namespace FileIO
} // namespace Plugins
} // namespace OpenViBE
@@ -0,0 +1,107 @@
IF(WIN32)
SET(EXT cmd)
SET(OS_FLAGS "--no-pause")
ELSE()
SET(EXT sh)
SET(OS_FLAGS "")
ENDIF()
############
SET(TEST_NAME gdfreader)
SET(SCENARIO_TO_TEST "${TEST_NAME}-test.xml")
ADD_TEST(clean_${TEST_NAME} "${CMAKE_COMMAND}" "-E" "remove" "-f" "output_gdf*.csv")
ADD_TEST(run_${TEST_NAME} "$ENV{OV_BINARY_PATH}/openvibe-designer.${EXT}" ${OS_FLAGS} "--no-session-management" "--invisible" "--play-fast" ${SCENARIO_TO_TEST})
ADD_TEST(compare_${TEST_NAME}_125 "$ENV{OV_BINARY_PATH}/test_thresholdDataComparison.${EXT}" ${OS_FLAGS} "output_gdf125.csv" "test_gdfX.ref.csv" 0.0001)
ADD_TEST(compare_${TEST_NAME}_211 "$ENV{OV_BINARY_PATH}/test_thresholdDataComparison.${EXT}" ${OS_FLAGS} "output_gdf211.csv" "test_gdfX.ref.csv" 0.0001)
ADD_TEST(compare_${TEST_NAME}_221 "$ENV{OV_BINARY_PATH}/test_thresholdDataComparison.${EXT}" ${OS_FLAGS} "output_gdf221.csv" "test_gdfX.ref.csv" 0.0001)
ADD_TEST(compare_${TEST_NAME}_222 "$ENV{OV_BINARY_PATH}/test_thresholdDataComparison.${EXT}" ${OS_FLAGS} "output_gdf222.csv" "test_gdfX.ref.csv" 0.0001)
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL ${OV_CONFIG_SUBDIR})
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_125 PROPERTIES ATTACHED_FILES_ON_FAIL "output_gdf125.csv")
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_211 PROPERTIES ATTACHED_FILES_ON_FAIL "output_gdf211.csv")
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_221 PROPERTIES ATTACHED_FILES_ON_FAIL "output_gdf221.csv")
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_222 PROPERTIES ATTACHED_FILES_ON_FAIL "output_gdf222.csv")
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_125 PROPERTIES DEPENDS run_${TEST_NAME})
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_211 PROPERTIES DEPENDS run_${TEST_NAME})
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_221 PROPERTIES DEPENDS run_${TEST_NAME})
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_222 PROPERTIES DEPENDS run_${TEST_NAME})
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES DEPENDS clean_${TEST_NAME})
##############
SET(TEST_NAME ov-read-write)
SET(SCENARIO_TO_TEST "${TEST_NAME}-test.xml")
ADD_TEST(clean_${TEST_NAME} "${CMAKE_COMMAND}" "-E" "remove" "-f" "output_ov.ov")
ADD_TEST(run_${TEST_NAME} "$ENV{OV_BINARY_PATH}/openvibe-designer.${EXT}" ${OS_FLAGS} "--no-session-management" "--invisible" "--play-fast" ${SCENARIO_TO_TEST})
ADD_TEST(compare_${TEST_NAME} "git" "diff" "--no-index" "../signals/bci-motor-imagery.ov" "output_ov.ov")
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL ${OV_LOGFILE})
SET_TESTS_PROPERTIES(compare_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL ${OV_LOGFILE})
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES DEPENDS clean_${TEST_NAME})
SET_TESTS_PROPERTIES(compare_${TEST_NAME} PROPERTIES DEPENDS run_${TEST_NAME})
#############
SET(TEST_NAME csv-read-write)
SET(SCENARIO_TO_TEST "${TEST_NAME}-test.xml")
ADD_TEST(clean_${TEST_NAME} "${CMAKE_COMMAND}" "-E" "remove" "-f" "output_signal.csv" "output_streamedmatrix.csv" "output_stimulation.csv" "output_spectrum.csv" "output_features.csv")
ADD_TEST(run_${TEST_NAME} "$ENV{OV_BINARY_PATH}/openvibe-designer.${EXT}" ${OS_FLAGS} "--no-session-management" "--invisible" "--play-fast" ${SCENARIO_TO_TEST})
ADD_TEST(compare_${TEST_NAME}_signal "$ENV{OV_BINARY_PATH}/test_thresholdDataComparison.${EXT}" ${OS_FLAGS} "input_signal.csv" "output_signal.csv" 0.0001)
ADD_TEST(compare_${TEST_NAME}_matrix "$ENV{OV_BINARY_PATH}/test_thresholdDataComparison.${EXT}" ${OS_FLAGS} "input_streamedmatrix.csv" "output_streamedmatrix.csv" 0.0001)
ADD_TEST(compare_${TEST_NAME}_stimulation "$ENV{OV_BINARY_PATH}/test_thresholdDataComparison.${EXT}" ${OS_FLAGS} "input_stimulation.csv" "output_stimulation.csv" 0.0001)
ADD_TEST(compare_${TEST_NAME}_spectrum "$ENV{OV_BINARY_PATH}/test_thresholdDataComparison.${EXT}" ${OS_FLAGS} "input_spectrum.csv" "output_spectrum.csv" 0.0001)
ADD_TEST(compare_${TEST_NAME}_features "$ENV{OV_BINARY_PATH}/test_thresholdDataComparison.${EXT}" ${OS_FLAGS} "input_features.csv" "output_features.csv" 0.0001)
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL ${OV_LOGFILE})
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_signal PROPERTIES ATTACHED_FILES_ON_FAIL ${OV_LOGFILE})
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_matrix PROPERTIES ATTACHED_FILES_ON_FAIL ${OV_LOGFILE})
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_stimulation PROPERTIES ATTACHED_FILES_ON_FAIL ${OV_LOGFILE})
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_spectrum PROPERTIES ATTACHED_FILES_ON_FAIL ${OV_LOGFILE})
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_features PROPERTIES ATTACHED_FILES_ON_FAIL ${OV_LOGFILE})
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES DEPENDS clean_${TEST_NAME})
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_signal PROPERTIES DEPENDS run_${TEST_NAME})
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_matrix PROPERTIES DEPENDS run_${TEST_NAME})
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_stimulation PROPERTIES DEPENDS run_${TEST_NAME})
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_spectrum PROPERTIES DEPENDS run_${TEST_NAME})
SET_TESTS_PROPERTIES(compare_${TEST_NAME}_features PROPERTIES DEPENDS run_${TEST_NAME})
###################
#
# This test basically first writes test data to CSV "1", then CSV "1" to GDF (test 'GDF Writer'), then GDF to CSV "2" (test 'GDF Reader').
# Finally, the CSV "1" and CSV "2" are compared for equality, both for signals and stimulations.
#
# We use CSV because of the float scaling in the GDF Writer and Reader, we don't seem to be able to maintain bitwise equality between read and write?
#
SET(TEST_NAME gdf-readwrite)
ADD_TEST(clean_${TEST_NAME} "${CMAKE_COMMAND}" "-E" "remove" "-f" "output*.csv" "output*.gdf")
ADD_TEST(run_${TEST_NAME}-1 "$ENV{OV_BINARY_PATH}/openvibe-designer.${EXT}" ${OS_FLAGS} "--no-session-management" "--invisible" "--play-fast" "test-gdf-readwrite-1.xml")
ADD_TEST(run_${TEST_NAME}-2 "$ENV{OV_BINARY_PATH}/openvibe-designer.${EXT}" ${OS_FLAGS} "--no-session-management" "--invisible" "--play-fast" "test-gdf-readwrite-2.xml")
ADD_TEST(run_${TEST_NAME}-3 "$ENV{OV_BINARY_PATH}/openvibe-designer.${EXT}" ${OS_FLAGS} "--no-session-management" "--invisible" "--play-fast" "test-gdf-readwrite-3.xml")
ADD_TEST(compare_${TEST_NAME}-signal "$ENV{OV_BINARY_PATH}/test_thresholdDataComparison.${EXT}" ${OS_FLAGS} "output_gdf_signal_1.csv" "output_gdf_signal_2.csv" 0.001)
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL ${OV_LOGFILE})
SET_TESTS_PROPERTIES(compare_${TEST_NAME}-signal PROPERTIES ATTACHED_FILES_ON_FAIL "output_gdf_signal_1.csv" "output_gdf_signal_2.csv")
SET_TESTS_PROPERTIES(run_${TEST_NAME}-1 PROPERTIES DEPENDS clean_${TEST_NAME})
SET_TESTS_PROPERTIES(run_${TEST_NAME}-2 PROPERTIES DEPENDS run_${TEST_NAME}-1)
SET_TESTS_PROPERTIES(run_${TEST_NAME}-3 PROPERTIES DEPENDS run_${TEST_NAME}-2)
SET_TESTS_PROPERTIES(compare_${TEST_NAME}-signal PROPERTIES DEPENDS run_${TEST_NAME}-3)
SET_TESTS_PROPERTIES(compare_${TEST_NAME}-stim PROPERTIES DEPENDS run_${TEST_NAME}-3)
@@ -0,0 +1,907 @@
<OpenViBE-Scenario>
<FormatVersion>2</FormatVersion>
<Creator>OpenViBE Designer</Creator>
<CreatorVersion>2.2.0</CreatorVersion>
<Settings></Settings>
<Inputs></Inputs>
<Outputs></Outputs>
<Boxes>
<Box>
<Identifier>(0x000006ae, 0x0000572d)</Identifier>
<Name>Matrix</Name>
<AlgorithmClassIdentifier>(0x336a3d9a, 0x753f1ba4)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x544a003e, 0x6dcba5f6)</TypeIdentifier>
<Name>Output stream</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Output stimulation</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue></DefaultValue>
<Value>${Player_ScenarioDirectory}/input_streamedmatrix.csv</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>256</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>144</Value>
</Attribute>
<Attribute>
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xa9cdc629, 0xb153eb33)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x000006ae, 0x0000572e)</Identifier>
<Name>Signal</Name>
<AlgorithmClassIdentifier>(0x336a3d9a, 0x753f1ba4)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Output stream</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Output stimulation</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue></DefaultValue>
<Value>${Player_ScenarioDirectory}/input_signal.csv</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>256</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>256</Value>
</Attribute>
<Attribute>
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xa9cdc629, 0xb153eb33)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x000006ae, 0x0000572f)</Identifier>
<Name>Stimulation</Name>
<AlgorithmClassIdentifier>(0x336a3d9a, 0x753f1ba4)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Output stream</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Output stimulation</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue></DefaultValue>
<Value>${Player_ScenarioDirectory}/input_stimulation.csv</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>256</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>368</Value>
</Attribute>
<Attribute>
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xa9cdc629, 0xb153eb33)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x000006ae, 0x00005730)</Identifier>
<Name>Features</Name>
<AlgorithmClassIdentifier>(0x336a3d9a, 0x753f1ba4)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x17341935, 0x152ff448)</TypeIdentifier>
<Name>Output stream</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Output stimulation</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue></DefaultValue>
<Value>${Player_ScenarioDirectory}/input_features.csv</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>256</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>480</Value>
</Attribute>
<Attribute>
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xa9cdc629, 0xb153eb33)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x000006ae, 0x00005731)</Identifier>
<Name>Spectrum</Name>
<AlgorithmClassIdentifier>(0x336a3d9a, 0x753f1ba4)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x1f261c0a, 0x593bf6bd)</TypeIdentifier>
<Name>Output stream</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Output stimulation</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue></DefaultValue>
<Value>${Player_ScenarioDirectory}/input_spectrum.csv</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>256</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>576</Value>
</Attribute>
<Attribute>
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xa9cdc629, 0xb153eb33)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x000015a8, 0x000079e9)</Identifier>
<Name>Player Controller</Name>
<AlgorithmClassIdentifier>(0x5f426dce, 0x08456e13)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>Stimulation name</Name>
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
<Value>OVTK_StimulationId_Label_00</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0xcc14d8d6, 0xf27ecb73)</TypeIdentifier>
<Name>Action to perform</Name>
<DefaultValue>Pause</DefaultValue>
<Value>Stop</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>464</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>192</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x568d148e, 0x650792b3)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x01165f9f)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00003a8c, 0x0000355b)</Identifier>
<Name>Matrix</Name>
<AlgorithmClassIdentifier>(0x428375e8, 0x325f2db9)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x544a003e, 0x6dcba5f6)</TypeIdentifier>
<Name>Input stream</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations stream</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue>record-[$core{date}-$core{time}].csv</DefaultValue>
<Value>${Player_ScenarioDirectory}/output_streamedmatrix.csv</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Precision</Name>
<DefaultValue>10</DefaultValue>
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Append data</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Only last matrix</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>352</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>144</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xee4b6d30, 0x788aed29)</Value>
</Attribute>
<Attribute>
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>4</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>2</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00003a8c, 0x0000355c)</Identifier>
<Name>Signal</Name>
<AlgorithmClassIdentifier>(0x428375e8, 0x325f2db9)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Input stream</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations stream</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue>record-[$core{date}-$core{time}].csv</DefaultValue>
<Value>${Player_ScenarioDirectory}/output_signal.csv</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Precision</Name>
<DefaultValue>10</DefaultValue>
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Append data</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Only last matrix</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>352</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>256</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xee4b6d30, 0x788aed29)</Value>
</Attribute>
<Attribute>
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>4</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>2</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00003a8c, 0x0000355d)</Identifier>
<Name>Stimulation</Name>
<AlgorithmClassIdentifier>(0x428375e8, 0x325f2db9)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Input stream</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations stream</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue>record-[$core{date}-$core{time}].csv</DefaultValue>
<Value>${Player_ScenarioDirectory}/output_stimulation.csv</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Precision</Name>
<DefaultValue>10</DefaultValue>
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Append data</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Only last matrix</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>352</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>368</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xee4b6d30, 0x788aed29)</Value>
</Attribute>
<Attribute>
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>4</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>2</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00003a8c, 0x0000355e)</Identifier>
<Name>Features</Name>
<AlgorithmClassIdentifier>(0x428375e8, 0x325f2db9)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x17341935, 0x152ff448)</TypeIdentifier>
<Name>Input stream</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations stream</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue>record-[$core{date}-$core{time}].csv</DefaultValue>
<Value>${Player_ScenarioDirectory}/output_features.csv</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Precision</Name>
<DefaultValue>10</DefaultValue>
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Append data</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Only last matrix</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>352</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>480</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xee4b6d30, 0x788aed29)</Value>
</Attribute>
<Attribute>
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>4</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>2</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00003a8c, 0x0000355f)</Identifier>
<Name>Spectrum</Name>
<AlgorithmClassIdentifier>(0x428375e8, 0x325f2db9)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x1f261c0a, 0x593bf6bd)</TypeIdentifier>
<Name>Input stream</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations stream</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue>record-[$core{date}-$core{time}].csv</DefaultValue>
<Value>${Player_ScenarioDirectory}/output_spectrum.csv</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Precision</Name>
<DefaultValue>10</DefaultValue>
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Append data</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Only last matrix</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>352</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>576</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xee4b6d30, 0x788aed29)</Value>
</Attribute>
<Attribute>
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>4</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>2</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00005b5f, 0x000050b0)</Identifier>
<Name>Timeout</Name>
<AlgorithmClassIdentifier>(0x24fcd292, 0x5c8f6aa8)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x544a003e, 0x6dcba5f6)</TypeIdentifier>
<Name>Input Stream</Name>
</Input>
</Inputs>
<Outputs>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Output Stimulations</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Timeout delay</Name>
<DefaultValue>5</DefaultValue>
<Value>2</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>Output Stimulation</Name>
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
<Value>OVTK_StimulationId_Label_00</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>400</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>192</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x1eaee00e, 0xdb05d34e)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x017178bd)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
</Boxes>
<Links>
<Link>
<Identifier>(0x00001a66, 0x00001ca2)</Identifier>
<Source>
<BoxIdentifier>(0x00005b5f, 0x000050b0)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x000015a8, 0x000079e9)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x0000228a, 0x00005c69)</Identifier>
<Source>
<BoxIdentifier>(0x000006ae, 0x00005731)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00003a8c, 0x0000355f)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x000026d4, 0x0000446f)</Identifier>
<Source>
<BoxIdentifier>(0x000006ae, 0x0000572d)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00003a8c, 0x0000355b)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00003059, 0x00004d29)</Identifier>
<Source>
<BoxIdentifier>(0x000006ae, 0x0000572e)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00005b5f, 0x000050b0)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00003294, 0x000077db)</Identifier>
<Source>
<BoxIdentifier>(0x000006ae, 0x0000572e)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00003a8c, 0x0000355c)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x0000443e, 0x00000b95)</Identifier>
<Source>
<BoxIdentifier>(0x000006ae, 0x0000572f)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00003a8c, 0x0000355d)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00004485, 0x00005832)</Identifier>
<Source>
<BoxIdentifier>(0x000006ae, 0x0000572e)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00003a8c, 0x0000355c)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x000048d1, 0x000070a5)</Identifier>
<Source>
<BoxIdentifier>(0x000006ae, 0x0000572f)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00003a8c, 0x0000355d)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00004c9f, 0x00001706)</Identifier>
<Source>
<BoxIdentifier>(0x000006ae, 0x0000572d)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00003a8c, 0x0000355b)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x000060d4, 0x00007d87)</Identifier>
<Source>
<BoxIdentifier>(0x000006ae, 0x00005731)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00003a8c, 0x0000355f)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00006a3b, 0x000070cd)</Identifier>
<Source>
<BoxIdentifier>(0x000006ae, 0x00005730)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00003a8c, 0x0000355e)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00006ac9, 0x00007e1b)</Identifier>
<Source>
<BoxIdentifier>(0x000006ae, 0x00005730)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00003a8c, 0x0000355e)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
</Link>
</Links>
<Comments></Comments>
<Metadata>
<Entry>
<Identifier>(0x0000775c, 0x000078ff)</Identifier>
<Type>(0x3bcce5d2, 0x43f2d968)</Type>
<Data>[{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"height":1,"identifier":"(0x000057d8, 0x00005097)","name":"Default window","parentIdentifier":"(0xffffffff, 0xffffffff)","type":1,"width":1},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"identifier":"(0x000019df, 0x000079ec)","index":0,"name":"Default tab","parentIdentifier":"(0x000057d8, 0x00005097)","type":2},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":0,"identifier":"(0x000062c0, 0x00001744)","index":0,"name":"Empty","parentIdentifier":"(0x000019df, 0x000079ec)","type":0}]</Data>
</Entry>
</Metadata>
<Attributes>
<Attribute>
<Identifier>(0x790d75b8, 0x3bb90c33)</Identifier>
<Value>Jussi T. Lindgren</Value>
</Attribute>
<Attribute>
<Identifier>(0x8c1fc55b, 0x7b433dc2)</Identifier>
<Value>0.1</Value>
</Attribute>
<Attribute>
<Identifier>(0x9f5c4075, 0x4a0d3666)</Identifier>
<Value>Tiny CSV IO test</Value>
</Attribute>
<Attribute>
<Identifier>(0xf36a1567, 0xd13c53da)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xf6b2e3fa, 0x7bd43926)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xf8034a49, 0x8b3f37cc)</Identifier>
<Value></Value>
</Attribute>
</Attributes>
</OpenViBE-Scenario>
@@ -0,0 +1,826 @@
<OpenViBE-Scenario>
<FormatVersion>2</FormatVersion>
<Creator>OpenViBE Designer</Creator>
<CreatorVersion>2.2.0</CreatorVersion>
<Settings></Settings>
<Inputs></Inputs>
<Outputs></Outputs>
<Boxes>
<Box>
<Identifier>(0x00000bef, 0x000059d0)</Identifier>
<Name>Timeout</Name>
<AlgorithmClassIdentifier>(0x24fcd292, 0x5c8f6aa8)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x544a003e, 0x6dcba5f6)</TypeIdentifier>
<Name>Input Stream</Name>
</Input>
</Inputs>
<Outputs>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Output Stimulations</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Timeout delay</Name>
<DefaultValue>5</DefaultValue>
<Value>3</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>Output Stimulation</Name>
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
<Value>OVTK_StimulationId_Label_00</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>240</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>736</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x1eaee00e, 0xdb05d34e)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x010de8e3)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x000018b6, 0x0000159f)</Identifier>
<Name>v2.11</Name>
<AlgorithmClassIdentifier>(0x3eeb1264, 0x4edfbd9a)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x403488e7, 0x565d70b6)</TypeIdentifier>
<Name>Experiment information</Name>
</Output>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>EEG stream</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue></DefaultValue>
<Value>${Player_ScenarioDirectory}/test_gdf211.gdf</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Samples per buffer</Name>
<DefaultValue>32</DefaultValue>
<Value>32</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Subtract physical minimum</Name>
<DefaultValue>False</DefaultValue>
<Value>False</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>176</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>416</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x78b8b69d, 0x27afe678)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00db711d)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>3</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>3</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00004b9d, 0x00001aed)</Identifier>
<Name>Player Controller</Name>
<AlgorithmClassIdentifier>(0x5f426dce, 0x08456e13)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>Stimulation name</Name>
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
<Value>OVTK_StimulationId_Label_00</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0xcc14d8d6, 0xf27ecb73)</TypeIdentifier>
<Name>Action to perform</Name>
<DefaultValue>Pause</DefaultValue>
<Value>Stop</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>304</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>736</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x568d148e, 0x650792b3)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00aaf6d7)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x000055b7, 0x000053cf)</Identifier>
<Name>v1.25</Name>
<AlgorithmClassIdentifier>(0x3eeb1264, 0x4edfbd9a)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x403488e7, 0x565d70b6)</TypeIdentifier>
<Name>Experiment information</Name>
</Output>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>EEG stream</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue></DefaultValue>
<Value>${Player_ScenarioDirectory}/test_gdf125.gdf</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Samples per buffer</Name>
<DefaultValue>32</DefaultValue>
<Value>32</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Subtract physical minimum</Name>
<DefaultValue>False</DefaultValue>
<Value>False</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>176</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>304</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x78b8b69d, 0x27afe678)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00df607a)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>3</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>3</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00006988, 0x0000041a)</Identifier>
<Name>v2.21</Name>
<AlgorithmClassIdentifier>(0x3eeb1264, 0x4edfbd9a)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x403488e7, 0x565d70b6)</TypeIdentifier>
<Name>Experiment information</Name>
</Output>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>EEG stream</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue></DefaultValue>
<Value>${Player_ScenarioDirectory}/test_gdf221.gdf</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Samples per buffer</Name>
<DefaultValue>32</DefaultValue>
<Value>32</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Subtract physical minimum</Name>
<DefaultValue>False</DefaultValue>
<Value>False</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>176</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>528</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x78b8b69d, 0x27afe678)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00d44217)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>3</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>3</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00007aef, 0x00004f33)</Identifier>
<Name>v2.22</Name>
<AlgorithmClassIdentifier>(0x3eeb1264, 0x4edfbd9a)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x403488e7, 0x565d70b6)</TypeIdentifier>
<Name>Experiment information</Name>
</Output>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>EEG stream</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue></DefaultValue>
<Value>${Player_ScenarioDirectory}/test_gdf222.gdf</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Samples per buffer</Name>
<DefaultValue>32</DefaultValue>
<Value>32</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Subtract physical minimum</Name>
<DefaultValue>False</DefaultValue>
<Value>False</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>176</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>640</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x78b8b69d, 0x27afe678)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00d94a8a)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>3</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>3</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00007d82, 0x00007640)</Identifier>
<Name>CSV File Writer</Name>
<AlgorithmClassIdentifier>(0x428375e8, 0x325f2db9)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Input stream</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations stream</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue>record-[$core{date}-$core{time}].csv</DefaultValue>
<Value>${Player_ScenarioDirectory}/output_gdf125.csv</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Precision</Name>
<DefaultValue>10</DefaultValue>
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Append data</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Only last matrix</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>240</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>304</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xee4b6d30, 0x788aed29)</Value>
</Attribute>
<Attribute>
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>4</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>2</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00007d82, 0x00007641)</Identifier>
<Name>CSV File Writer</Name>
<AlgorithmClassIdentifier>(0x428375e8, 0x325f2db9)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Input stream</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations stream</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue>record-[$core{date}-$core{time}].csv</DefaultValue>
<Value>${Player_ScenarioDirectory}/output_gdf211.csv</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Precision</Name>
<DefaultValue>10</DefaultValue>
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Append data</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Only last matrix</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>240</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>416</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xee4b6d30, 0x788aed29)</Value>
</Attribute>
<Attribute>
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>4</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>2</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00007d82, 0x00007642)</Identifier>
<Name>CSV File Writer</Name>
<AlgorithmClassIdentifier>(0x428375e8, 0x325f2db9)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Input stream</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations stream</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue>record-[$core{date}-$core{time}].csv</DefaultValue>
<Value>${Player_ScenarioDirectory}/output_gdf221.csv</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Precision</Name>
<DefaultValue>10</DefaultValue>
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Append data</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Only last matrix</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>240</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>528</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xee4b6d30, 0x788aed29)</Value>
</Attribute>
<Attribute>
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>4</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>2</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00007d82, 0x00007643)</Identifier>
<Name>CSV File Writer</Name>
<AlgorithmClassIdentifier>(0x428375e8, 0x325f2db9)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Input stream</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations stream</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue>record-[$core{date}-$core{time}].csv</DefaultValue>
<Value>${Player_ScenarioDirectory}/output_gdf222.csv</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Precision</Name>
<DefaultValue>10</DefaultValue>
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Append data</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Only last matrix</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>240</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>640</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xee4b6d30, 0x788aed29)</Value>
</Attribute>
<Attribute>
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>4</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>2</Value>
</Attribute>
</Attributes>
</Box>
</Boxes>
<Links>
<Link>
<Identifier>(0x0000082d, 0x00001d73)</Identifier>
<Source>
<BoxIdentifier>(0x000018b6, 0x0000159f)</BoxIdentifier>
<BoxOutputIndex>2</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00007d82, 0x00007641)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00000b09, 0x00007192)</Identifier>
<Source>
<BoxIdentifier>(0x00000bef, 0x000059d0)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00004b9d, 0x00001aed)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x000018b9, 0x00004aa6)</Identifier>
<Source>
<BoxIdentifier>(0x00006988, 0x0000041a)</BoxIdentifier>
<BoxOutputIndex>2</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00007d82, 0x00007642)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00001e40, 0x00006583)</Identifier>
<Source>
<BoxIdentifier>(0x00007aef, 0x00004f33)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00007d82, 0x00007643)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x000022f7, 0x00004240)</Identifier>
<Source>
<BoxIdentifier>(0x00006988, 0x0000041a)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00007d82, 0x00007642)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x000045f4, 0x00000160)</Identifier>
<Source>
<BoxIdentifier>(0x000018b6, 0x0000159f)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00007d82, 0x00007641)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00004b65, 0x00002eeb)</Identifier>
<Source>
<BoxIdentifier>(0x00007aef, 0x00004f33)</BoxIdentifier>
<BoxOutputIndex>2</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00007d82, 0x00007643)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x000063fb, 0x00007e28)</Identifier>
<Source>
<BoxIdentifier>(0x00007aef, 0x00004f33)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00000bef, 0x000059d0)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x0000703e, 0x00002213)</Identifier>
<Source>
<BoxIdentifier>(0x000055b7, 0x000053cf)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00007d82, 0x00007640)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x000076aa, 0x000011d8)</Identifier>
<Source>
<BoxIdentifier>(0x000055b7, 0x000053cf)</BoxIdentifier>
<BoxOutputIndex>2</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00007d82, 0x00007640)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
</Link>
</Links>
<Comments></Comments>
<Metadata>
<Entry>
<Identifier>(0x0000775c, 0x000078ff)</Identifier>
<Type>(0x3bcce5d2, 0x43f2d968)</Type>
<Data>[{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"height":320,"identifier":"(0x00006030, 0x00000f42)","name":"Default window","parentIdentifier":"(0xffffffff, 0xffffffff)","type":1,"width":480},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"identifier":"(0x0000313c, 0x00002a2c)","index":0,"name":"Default tab","parentIdentifier":"(0x00006030, 0x00000f42)","type":2},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":0,"identifier":"(0x00001d70, 0x00007959)","index":0,"name":"Empty","parentIdentifier":"(0x0000313c, 0x00002a2c)","type":0}]</Data>
</Entry>
</Metadata>
</OpenViBE-Scenario>
@@ -0,0 +1,18 @@
Time:128,End Time,Feature 1,Feature 2,Feature 3,Feature 4,Feature 5,Feature 6,Feature 7,Feature 8,Feature 9,Feature 10,Feature 11,Feature 12,Feature 13,Feature 14,Feature 15,Feature 16,Feature 17,Feature 18,Feature 19,Feature 20,Feature 21,Feature 22,Feature 23,Feature 24,Feature 25,Feature 26,Feature 27,Feature 28,Feature 29,Feature 30,Feature 31,Feature 32,Feature 33,Feature 34,Feature 35,Feature 36,Feature 37,Feature 38,Feature 39,Feature 40,Feature 41,Feature 42,Feature 43,Feature 44,Feature 45,Feature 46,Feature 47,Feature 48,Feature 49,Feature 50,Feature 51,Feature 52,Feature 53,Feature 54,Feature 55,Feature 56,Feature 57,Feature 58,Feature 59,Feature 60,Feature 61,Feature 62,Feature 63,Feature 64,Feature 65,Feature 66,Feature 67,Feature 68,Feature 69,Feature 70,Feature 71,Feature 72,Feature 73,Feature 74,Feature 75,Feature 76,Feature 77,Feature 78,Feature 79,Feature 80,Feature 81,Feature 82,Feature 83,Feature 84,Feature 85,Feature 86,Feature 87,Feature 88,Feature 89,Feature 90,Feature 91,Feature 92,Feature 93,Feature 94,Feature 95,Feature 96,Feature 97,Feature 98,Feature 99,Feature 100,Feature 101,Feature 102,Feature 103,Feature 104,Feature 105,Feature 106,Feature 107,Feature 108,Feature 109,Feature 110,Feature 111,Feature 112,Feature 113,Feature 114,Feature 115,Feature 116,Feature 117,Feature 118,Feature 119,Feature 120,Feature 121,Feature 122,Feature 123,Feature 124,Feature 125,Feature 126,Feature 127,Feature 128,Event Id,Event Date,Event Duration
0.0000000000,0.0625000000,0.9150401743,0.4811181261,0.3270198377,0.5677587804,0.6008879130,0.4594295069,0.9683563458,0.9237891452,0.6234010095,0.3943255635,0.1078882546,0.7703306261,0.4436719313,0.5963131711,0.8457938042,0.7697275821,0.1224962058,0.2942006958,0.3322500831,0.1957253930,0.8843127992,0.6843187027,0.0202652202,0.4722963301,0.4688845898,0.1204221966,0.2920070603,0.0136039553,0.3520280039,0.2942418712,0.3035306910,0.8325346666,0.9609172817,0.0104033500,0.0263926589,0.1405701390,0.7096184031,0.5244539923,0.2770567578,0.7812710993,0.5509694435,0.6511558010,0.3719114196,0.9334457631,0.6669613710,0.1781126887,0.6620289299,0.5446313645,0.7266302956,0.6071571249,0.2124527053,0.4550076595,0.2073630942,0.6185337363,0.8098701322,0.2309543816,0.2571739866,0.0520775544,0.7355189007,0.1756549818,0.9616618126,0.7363008480,0.3561839175,0.5510980606,0.1079077483,0.2530346524,0.9616484421,0.8257251270,0.2381781549,0.6019684391,0.1800098317,0.1080955642,0.7040383117,0.2248865000,0.6234477691,0.0139408493,0.2314087460,0.9015386207,0.7469868043,0.6854385771,0.2908902564,0.3183208159,0.0725899180,0.5165314688,0.9643655850,0.2425120859,0.2801719103,0.9638599560,0.7913161502,0.4822022554,0.2669679758,0.5830120395,0.0362575694,0.6503971543,0.6601394096,0.7553155958,0.9625892541,0.1341326726,0.9030513861,0.7376232534,0.4091226382,0.6322228035,0.7557409701,0.0074960447,0.5686108500,0.7780390326,0.9779995524,0.9047688977,0.9270175146,0.5955350271,0.9939954386,0.6388499700,0.0514186502,0.7003326518,0.9912988800,0.8182061038,0.7358734147,0.1599401447,0.2078533825,0.3056119722,0.1885718242,0.6487491305,0.9024340464,0.1728633228,0.4749805466,0.8944157818,0.3802370790,0.7541875427,,,
0.0625000000,0.1250000000,0.0002188140,0.8772717209,0.3606892761,0.5398562176,0.7957881822,0.2072246694,0.4904013139,0.1879513119,0.4810618665,0.1884347722,0.6153136939,0.0060567823,0.5914203583,0.1635175874,0.1282500087,0.6690062552,0.4333964835,0.4393781326,0.8056489513,0.8371359503,0.5145648201,0.4930421701,0.9483721592,0.7320511597,0.9446009332,0.2511601027,0.7567554591,0.3995047919,0.2119971917,0.5619104635,0.3209558069,0.3994497685,0.2659510621,0.1411809402,0.2320605463,0.3951107827,0.8734684635,0.2177591978,0.6586741989,0.0905212164,0.4448799966,0.8183233663,0.5589947104,0.8298795142,0.0523792338,0.6213727167,0.5110420675,0.2973528120,0.0880499484,0.6030983937,0.9991942968,0.6462430845,0.4685987504,0.1664709675,0.2175688986,0.5616701324,0.8587621097,0.2097194686,0.4954351890,0.7566679085,0.6194891455,0.3250324409,0.9993752704,0.7441636086,0.8143050948,0.7892000738,0.4020759331,0.8094227451,0.2071565455,0.7109043736,0.5762489510,0.2114944896,0.1201506448,0.9750412148,0.4196001196,0.5415642960,0.7046394304,0.8290748592,0.3493948136,0.5918792526,0.8979278051,0.8812638978,0.7123604133,0.2330470863,0.5489626734,0.4752553189,0.5313347597,0.3452652521,0.7386898657,0.8911155504,0.4246511299,0.4815980867,0.3539443654,0.3755141124,0.4571281332,0.5383569482,0.9075943392,0.9327698306,0.6012928928,0.8299281336,0.9498681091,0.7622836907,0.2522612389,0.9825163295,0.9775539900,0.1567203708,0.7720564199,0.0502300083,0.3994364436,0.7848045905,0.0519165159,0.2335758472,0.7675638278,0.7222367716,0.1512625844,0.4192842636,0.5601439243,0.0228915771,0.3806940543,0.1468547867,0.3395443982,0.8960902914,0.7770912084,0.2656531946,0.8409491007,0.9518510897,0.6433402253,0.8672073730,,,
0.1250000000,0.1875000000,0.9109746008,0.9951207868,0.9262504610,0.2658244669,0.3371013603,0.2565388617,0.5173902859,0.1193734836,0.1775141452,0.8373892347,0.2898682340,0.9133129963,0.3481886350,0.1292222657,0.6257697267,0.5984036394,0.6149821568,0.2147628649,0.2947771698,0.3186730528,0.3558874619,0.8471703667,0.3808981238,0.6025348732,0.9888811563,0.5176699143,0.3514636005,0.6350323940,0.4326295485,0.7214585626,0.5881812049,0.6552316907,0.1431231180,0.0807242109,0.6860684799,0.8255885830,0.7974937786,0.0962283872,0.2619708159,0.1721746940,0.5158856388,0.8052386078,0.8466840037,0.6106764129,0.2006450845,0.4449324410,0.9440194790,0.1747042947,0.4824103422,0.2247444578,0.8581037289,0.4151061061,0.3349399418,0.4581822553,0.8213987367,0.4574069346,0.3249664013,0.6434680552,0.4386946510,0.3380722699,0.7685454728,0.9110118113,0.3662476337,0.0099736366,0.6282859237,0.8222235716,0.7562664633,0.0917348247,0.1025254172,0.3778344996,0.5110897899,0.2011987264,0.7183543080,0.1799440407,0.5106148846,0.8367626460,0.9573242795,0.4191983964,0.9073516545,0.1400522341,0.1674538185,0.1011095943,0.5204614545,0.0016235472,0.0303488139,0.6493480904,0.4683168104,0.5442108936,0.5139667864,0.6648385972,0.8003245771,0.8132813687,0.3622289621,0.2761762389,0.6235042040,0.7084571763,0.2957481982,0.0707940585,0.1672060185,0.5039413068,0.6104181844,0.0189933903,0.6308445318,0.2409209677,0.7020495255,0.9159986004,0.1108249349,0.9589245564,0.2907738546,0.4996006321,0.7271039351,0.7366086682,0.1463178939,0.8085784663,0.8136159789,0.0671046705,0.7824393143,0.1738784986,0.3712895694,0.2970155233,0.1838955719,0.6090937187,0.7785725708,0.1785994677,0.7657628125,0.7150414898,0.4002465350,0.7605940213,,,
0.1875000000,0.2500000000,0.7453538293,0.5562348145,0.0441623314,0.2702864797,0.2214688216,0.6459622930,0.7874313686,0.7003119886,0.7890889288,0.7477767407,0.4196777761,0.1824780870,0.7869950747,0.2299966977,0.8701197824,0.8898176888,0.7801436263,0.5712060605,0.1414729978,0.1577144405,0.7592566011,0.7677241082,0.7704557236,0.0742995890,0.2070739889,0.6432430740,0.6626574935,0.2234028869,0.3798256752,0.4206518726,0.9313934040,0.8052547490,0.7913525237,0.0904265780,0.4186735766,0.9688379993,0.6984754954,0.6613982646,0.9636786203,0.9725835111,0.2988885161,0.2261269621,0.3229277530,0.4837670890,0.4950147446,0.1621673906,0.1487191385,0.4833369898,0.8237380013,0.1808721826,0.2137179286,0.4979929181,0.6606709010,0.2788669346,0.3063764081,0.1031162990,0.8566594275,0.5155990236,0.1969937219,0.2443958144,0.2845822796,0.3594031874,0.0864821358,0.1747175087,0.8151925865,0.6943339275,0.6089062935,0.1587961472,0.2111702869,0.4994445222,0.8572962065,0.4509738958,0.5766741433,0.5227647021,0.2778724900,0.5027213558,0.5940349950,0.6094255366,0.5260545956,0.3063808479,0.1706124833,0.3023674486,0.7318533051,0.4898670274,0.8902174765,0.5367171536,0.3025532460,0.9006342622,0.1225583914,0.8729220454,0.5816617627,0.2410953466,0.5891577334,0.0830385094,0.2448703449,0.7544026147,0.5857832327,0.9203029824,0.1961069836,0.2751267767,0.4055198194,0.9876121362,0.3188617593,0.0215721291,0.3813716625,0.3048050166,0.7103436391,0.4197148411,0.1848478564,0.9002549076,0.6524276587,0.9424044732,0.6402948408,0.3965077917,0.5788287858,0.3429145110,0.1934584284,0.9478120690,0.9845180595,0.4365746828,0.6515295408,0.5665946738,0.5121574821,0.1296665922,0.7572885097,0.7258212646,0.0993553293,0.7081319424,,,
0.2500000000,0.3125000000,0.2257547644,0.6802780146,0.9848806218,0.2945099196,0.6121715314,0.5496250149,0.9488904520,0.6261539755,0.0226002543,0.8020651417,0.3240186602,0.1204765355,0.3803162053,0.3986330400,0.4652527408,0.3092360550,0.7902492685,0.4914528863,0.5728307802,0.3231564206,0.7498268979,0.0049532964,0.6545206995,0.0506501256,0.3489679080,0.0561038423,0.2357035449,0.5909956398,0.3385374097,0.1453693460,0.0107090550,0.3685457709,0.4528203467,0.4027523831,0.6446154756,0.1715591031,0.4860209927,0.1162998809,0.4648108450,0.2506977031,0.7875146486,0.4596880095,0.6805525057,0.3820763617,0.7328458393,0.4352892467,0.7725691649,0.0421113959,0.1229584035,0.9120677412,0.5444388818,0.6305014768,0.2390579795,0.1883088143,0.3235339646,0.1613477063,0.5104757384,0.9915048797,0.2011686831,0.6125321344,0.9968779932,0.0992927733,0.6293981448,0.1048098309,0.8206058126,0.7488012826,0.3321925495,0.7911361693,0.0682489956,0.8672478301,0.4101436031,0.5440434886,0.3644964646,0.1893134553,0.2352781841,0.4685491412,0.0673055169,0.7426268843,0.7430763205,0.4338141405,0.9760390066,0.5769536356,0.9065775399,0.3245960197,0.4803365432,0.6146799829,0.1976400022,0.1181834072,0.3478701948,0.8024101891,0.0077452271,0.1817336529,0.4993942913,0.8643290466,0.9991608907,0.4216364564,0.3496882485,0.3723833957,0.1769943126,0.4480358632,0.4492628956,0.5697830906,0.7367511708,0.6118022655,0.2468232804,0.3836626287,0.3119710207,0.8164000930,0.5367287507,0.3956456599,0.7687124116,0.3577925242,0.9573899531,0.1469699335,0.7791464506,0.4732569496,0.2888410233,0.7451228222,0.2324083727,0.6024969162,0.3459631025,0.0237420439,0.6104843081,0.6179569261,0.3671497568,0.7786061126,0.1736336316,0.2833297879,,,
0.3125000000,0.3750000000,0.6285757518,0.3288695402,0.6054992690,0.9929998035,0.1378111462,0.9951356442,0.9691859630,0.1129326557,0.0280345739,0.7290734798,0.2218745779,0.4449320023,0.0946576300,0.6760159465,0.5861109693,0.1478802136,0.7679049612,0.3991952927,0.9602089047,0.5471295090,0.0050830450,0.1385421732,0.9385014586,0.7108538039,0.1735699072,0.0975517747,0.4521458363,0.9214333170,0.4484556764,0.4469351457,0.1255321861,0.0095951082,0.1099653582,0.6312142271,0.5213742687,0.2210297619,0.3553569058,0.3236816446,0.7842328099,0.5610350110,0.9095973191,0.0611649826,0.8411585467,0.0379429073,0.8668417903,0.0462811647,0.3252716959,0.8277587383,0.4269191837,0.2921328731,0.7167588421,0.4737435721,0.7883403641,0.1244506226,0.6991252704,0.1276111647,0.7651671295,0.1354980366,0.3882917659,0.7037197298,0.5543080787,0.6320341001,0.0578748437,0.8107915705,0.1264818849,0.6230264814,0.5594581265,0.9871456481,0.4017386094,0.5630508566,0.6846432309,0.6775590843,0.1209605632,0.4211554511,0.5500227369,0.4238302193,0.6898243206,0.7893713107,0.5699831364,0.0409704016,0.3327725793,0.2529282472,0.0994483484,0.6077005116,0.3537592243,0.7309522489,0.4926651088,0.5049442097,0.5111502877,0.2868934362,0.0882756545,0.0288088685,0.3580115556,0.5529107323,0.0627496941,0.7541548216,0.5957504974,0.5642922563,0.2772185232,0.1961681915,0.0377593283,0.6898948345,0.6113006326,0.3604168841,0.7862653008,0.3118595339,0.9690669046,0.9981342063,0.2589769722,0.4736000784,0.2835210583,0.8389609037,0.8540500992,0.1036063221,0.6556978549,0.4131547150,0.8589825400,0.7310319247,0.7818610885,0.1693737505,0.6824778626,0.1110271995,0.1198812893,0.5206037527,0.0822814312,0.6039371279,0.6588939205,0.5556109066,,,
0.3750000000,0.4375000000,0.3013739143,0.8127311000,0.7991974158,0.9813211181,0.5462567790,0.0274043684,0.7054392931,0.2291122875,0.2243704761,0.6404237077,0.7856010403,0.2253304604,0.1122797087,0.2313427543,0.7298298122,0.6516429083,0.6382611769,0.2799473577,0.3125212379,0.6736417285,0.9154962718,0.6624671633,0.0333061314,0.5654855787,0.7591771134,0.9264053332,0.1208104850,0.2260603826,0.1269354327,0.4152459202,0.7590945300,0.4942393058,0.1634823915,0.8546761232,0.9681738093,0.7978894059,0.0261956449,0.5268149576,0.2065873067,0.2210950616,0.4754410307,0.7686062045,0.6741202855,0.1233033733,0.9876864576,0.5099352649,0.8682243000,0.9719840281,0.7665449458,0.4172727119,0.8278773725,0.9980648635,0.1777149339,0.5806961891,0.9070699569,0.7085918125,0.9142936911,0.6817125536,0.5119359691,0.6994246591,0.7783822962,0.8618395200,0.2147077576,0.9214978551,0.2123396420,0.4472374304,0.1355366809,0.9382716189,0.6553513929,0.8768269331,0.8318979132,0.9577270437,0.7229743921,0.2387020239,0.9467114366,0.3547559867,0.8069269729,0.3634118494,0.7865487337,0.9261352927,0.3532215573,0.1371394813,0.7110671448,0.1866619682,0.3140457033,0.2714432462,0.9519157023,0.8294518099,0.8057298311,0.7847239529,0.0537713827,0.0128977881,0.1007729070,0.6612241708,0.2817010204,0.0053622834,0.7139452228,0.8625826242,0.8366024834,0.1891112577,0.5292865052,0.8092396471,0.1501730622,0.7508652674,0.7300759819,0.6964412911,0.6699647657,0.5185583574,0.4771354941,0.3811959955,0.6192273130,0.9198612673,0.7758328342,0.0671149772,0.4560193459,0.1565855546,0.5475070586,0.6679388408,0.7853498289,0.7844694268,0.9127447612,0.5858668790,0.8600505069,0.8199147666,0.7085756420,0.4406658337,0.3686100424,0.1206055495,,,
0.4375000000,0.5000000000,0.9003225164,0.7480981473,0.8053498440,0.4267288961,0.6412769875,0.7522350526,0.4167963460,0.9650670663,0.5086058250,0.9226004714,0.1749151214,0.5154892541,0.1457145112,0.9937504663,0.7144920225,0.2941832957,0.9871061957,0.8896298131,0.9362271670,0.4684300146,0.1662876687,0.4145205696,0.2401438348,0.7372052034,0.2275003067,0.1202372941,0.2201560228,0.7109864391,0.0556307323,0.4056763717,0.5839949264,0.6182016619,0.1775623059,0.3103296650,0.7554143269,0.8824875567,0.3143215114,0.8981643121,0.4549063388,0.7565393369,0.5745349682,0.8117642403,0.2721608290,0.3757458278,0.6454408234,0.8008520203,0.5620512532,0.2231434009,0.4298177247,0.2234280019,0.6727846127,0.5825154625,0.7763711584,0.0086296967,0.0160774931,0.2844835189,0.5559796582,0.8363868720,0.3929312793,0.4150929507,0.6976120733,0.8635397111,0.1867806930,0.4720674043,0.0013589431,0.0673465631,0.6231278596,0.7715907679,0.9108784711,0.6526743551,0.9036721131,0.3094108591,0.7118621557,0.5414177482,0.6693002416,0.1900362298,0.0368166002,0.2156310934,0.6608897825,0.4060205801,0.9850410977,0.2993082490,0.2275831737,0.4510028409,0.2335811383,0.5196640280,0.8845180692,0.4756846388,0.0928450837,0.2996766637,0.9362409022,0.0004491087,0.5826934704,0.4704652349,0.7252352487,0.6212530315,0.2190986618,0.9486807266,0.5916255882,0.2739911363,0.1576126318,0.6291394716,0.7699931778,0.5183355731,0.3155681929,0.7118634277,0.0610896808,0.3112224340,0.8763353478,0.5345323340,0.3207744888,0.3421047439,0.7597657682,0.6433593284,0.8619263892,0.9882361852,0.6681065401,0.7102198754,0.1950918455,0.2910398836,0.9868998907,0.8591626459,0.6078541053,0.0004093167,0.2274056135,0.5978504100,0.2635376034,0.1799012623,,,
0.5000000000,0.5625000000,0.6836149301,0.1570305652,0.5011268521,0.5341963689,0.0406966375,0.0417319161,0.0229919404,0.5225459056,0.7622013865,0.0073592423,0.5262761717,0.7536182301,0.1732809620,0.5846455710,0.8147739468,0.2411016424,0.7675131322,0.1109566058,0.5808591293,0.6893337520,0.4796658028,0.5758117344,0.1115573819,0.0693856149,0.0807967728,0.6014419149,0.9144991301,0.3569751286,0.9383541637,0.3463297449,0.8262212579,0.5411048380,0.5816693464,0.6854715918,0.7228725688,0.6109158760,0.0544019262,0.7022253803,0.3458649374,0.7266227046,0.9470764389,0.7508620082,0.0298781053,0.1454318992,0.9886663328,0.1866206592,0.3245465471,0.7972429504,0.8571681727,0.8578790261,0.7722784744,0.0922879532,0.1406729887,0.7397305216,0.9066975862,0.7279179688,0.6206075558,0.7658441206,0.0817528344,0.5876551629,0.2451612160,0.7712874806,0.5636584857,0.7146320252,0.5789667484,0.7735870511,0.9947234755,0.5594872846,0.6741074440,0.6133322220,0.0880946824,0.1618016448,0.5966567851,0.8680961663,0.7326783538,0.7012700287,0.3464814217,0.9959812763,0.4164274423,0.1351061920,0.6529864753,0.4439844161,0.4418596844,0.3798802693,0.3809329458,0.8569758898,0.8512940556,0.6666798801,0.4906939513,0.1945700741,0.5131848175,0.6812754211,0.5925616317,0.8465413465,0.9405339791,0.1809083533,0.0460981852,0.5613436685,0.5314784907,0.4365565274,0.7995008091,0.2417511870,0.1028372864,0.4331791420,0.4886791948,0.0108438726,0.1980641852,0.1028579960,0.4738194542,0.0851266982,0.3123101122,0.4068922729,0.9956520954,0.0596446055,0.0368461821,0.7821050829,0.5365605582,0.4764145396,0.7731019980,0.4577252327,0.5513724757,0.3282609247,0.2148313976,0.5636563539,0.3628968168,0.8687196723,0.5768848425,0.8886449558,,,
0.5625000000,0.6250000000,0.3266253117,0.2969284146,0.3912016670,0.3561266444,0.2641083156,0.9673384312,0.8008158177,0.4856448886,0.1329766037,0.9680180063,0.4974506951,0.7146691198,0.7970280002,0.2428639778,0.8433659293,0.2990799940,0.1119566131,0.3558082923,0.3105708533,0.0734917005,0.8885465648,0.3865002599,0.9565107531,0.7928993581,0.4546439000,0.5764963361,0.2760517164,0.2105028476,0.2800917707,0.2960291200,0.7190703233,0.0789382251,0.8547532328,0.9354673070,0.5678164046,0.4840348300,0.9779860589,0.5910421014,0.3716490779,0.5187759055,0.7101588331,0.9156765428,0.0999725214,0.9640193435,0.7349417466,0.6109719451,0.9659422555,0.8378549658,0.6305319166,0.6654821215,0.3023991575,0.0058013138,0.2286409882,0.8359954355,0.9596452445,0.3670667945,0.3007012629,0.0460373273,0.5093773089,0.5760716717,0.2921432890,0.2685501662,0.1253721523,0.0886203020,0.4363479582,0.7623618306,0.0819924974,0.0721713693,0.8915678712,0.5185277537,0.4140858494,0.6008427632,0.9720136125,0.2152535354,0.0194878255,0.9272642804,0.4734225015,0.5747749114,0.3479006817,0.3525647940,0.8477819201,0.6399854033,0.3437346853,0.5786995713,0.5904509153,0.6705951339,0.2542099489,0.5538953913,0.2293668056,0.8017296402,0.1767021166,0.4251989739,0.7634107836,0.9324329835,0.1678593014,0.6535611227,0.9821186785,0.4999947359,0.5313968647,0.9546532426,0.8452043200,0.7675913034,0.9542584720,0.9133796643,0.4685207419,0.3768507789,0.0580611015,0.2010925114,0.0885815227,0.9304342023,0.8238886003,0.9276215080,0.1137061296,0.2165951831,0.7970096874,0.6956051604,0.7922348289,0.8634749758,0.7919690392,0.0796134942,0.4695181684,0.4520755119,0.7265606464,0.0423310532,0.4934578198,0.9706061210,0.3916379958,0.2137548453,,,
0.6250000000,0.6875000000,0.0951865504,0.4559259054,0.3342831139,0.6230993611,0.9083122811,0.6041768962,0.9408766730,0.4100223009,0.7271583276,0.8637165106,0.8111866217,0.4237242953,0.4929328640,0.5954799841,0.1817465017,0.4415581895,0.7764845549,0.8788219872,0.2891010782,0.6990914301,0.7785408311,0.4980652491,0.2989641940,0.7921074585,0.9815224456,0.7390300448,0.0385943358,0.4198846603,0.8128107945,0.2670160651,0.2669080039,0.1193341746,0.6247934515,0.6694000354,0.2803128145,0.2621419586,0.1303602080,0.9657187897,0.0858317562,0.3182606357,0.2583954232,0.5476385439,0.5172038896,0.9280478866,0.4310764379,0.8470131259,0.7136792648,0.6151305817,0.0992915588,0.8238125884,0.0452835828,0.7976106589,0.0500108164,0.9840833184,0.8637740302,0.1995748926,0.9539506896,0.4730096324,0.5925557532,0.7117695680,0.3666300960,0.5040151600,0.7381468357,0.7755233133,0.5956626255,0.4666806492,0.2921566979,0.1883999070,0.0600034464,0.7034296850,0.0184311338,0.4205567657,0.4419830996,0.6064463754,0.4366809521,0.6036809478,0.7591373040,0.9383824393,0.1547079335,0.1034155719,0.9832944782,0.0031819595,0.1114478053,0.5050588488,0.6593978559,0.9282916798,0.2615019490,0.1864993179,0.5753157951,0.7485704583,0.4077355501,0.4141925909,0.1749735957,0.2676434095,0.6683696669,0.0457403508,0.1722402293,0.8534545521,0.7855956117,0.3804940688,0.3033744935,0.0134121121,0.7247220045,0.3239799449,0.5395433162,0.7648703295,0.1689916737,0.7016573173,0.5915472063,0.2456645893,0.6919005406,0.2535201525,0.4518816210,0.0948039426,0.5158798415,0.7297661491,0.3568961844,0.3452494484,0.3337228564,0.0623258993,0.5084565377,0.1585949706,0.7812543309,0.5892171352,0.4352987392,0.1705578952,0.4649748327,0.1445428249,,,
0.6875000000,0.7500000000,0.7972729541,0.7656295931,0.8047798146,0.4210944641,0.9495596520,0.2564582382,0.0869470569,0.7413500270,0.0926618222,0.4014761285,0.2481015425,0.2325752755,0.0678412090,0.8327358237,0.9366771176,0.7603401856,0.4709194202,0.0013421741,0.6969793467,0.7803202949,0.3712435162,0.7277776932,0.6492541826,0.9142240172,0.6499930692,0.9622941131,0.8251722490,0.9162823888,0.3251303604,0.4615749414,0.8418393293,0.1760768723,0.6450446800,0.4258416046,0.4078110659,0.6946288156,0.4398307409,0.4526773752,0.9216633332,0.5807717878,0.2695588598,0.2401386295,0.8712688570,0.4794638369,0.5362886589,0.5534540117,0.6477100106,0.3752358763,0.4875534533,0.8996371171,0.1154563460,0.0779831153,0.1277342089,0.8063365871,0.1313374497,0.9296416105,0.5511019584,0.2818133885,0.9499518040,0.9458435348,0.3409965113,0.9603743141,0.7153733519,0.8225758842,0.4474064647,0.5509970032,0.6046922461,0.2496839233,0.7098049910,0.2465102181,0.5172845421,0.9220486192,0.3675448599,0.1631474863,0.9081681864,0.5819129143,0.4095856373,0.3096013456,0.3027578304,0.2607257105,0.5812509328,0.8137784675,0.4119918980,0.8225071011,0.9856499089,0.5479148179,0.2853891188,0.0090171313,0.6690710657,0.9199579263,0.4137630577,0.5503251320,0.2482982120,0.9546005074,0.1055671843,0.6350373032,0.3269851748,0.8220459416,0.5415382171,0.4190973802,0.4187121543,0.2853184263,0.1283494134,0.3375549077,0.6602634194,0.4770000577,0.3271100372,0.4383558319,0.4143157501,0.4820398828,0.8281070660,0.3001287873,0.1368047087,0.3757513827,0.0349937901,0.3754054119,0.1850143555,0.6747776968,0.3888342835,0.7420188775,0.9451925391,0.2639461998,0.8757471105,0.8289346700,0.7173204881,0.7487527549,0.6600279508,0.5950739619,,,
0.7500000000,0.8125000000,0.9918360200,0.8413040168,0.7585599809,0.7010234804,0.0875005967,0.2445954022,0.9433504627,0.7129720305,0.4357547185,0.5365997744,0.3586147751,0.5069929382,0.1981287585,0.5265833302,0.4481507521,0.0833059070,0.0099458960,0.4829644961,0.2602805076,0.5503992552,0.0065642314,0.0399043802,0.4158759147,0.6996538010,0.9095043880,0.3482764231,0.5089759044,0.7512149776,0.1415943836,0.1448071979,0.8604772950,0.9743917484,0.8379960111,0.6217453007,0.5853474766,0.8372208674,0.9314223635,0.6847964760,0.2016652324,0.6888024006,0.8598825224,0.4707778960,0.3636550519,0.3066147778,0.7566092857,0.7624425550,0.7862197864,0.7429981048,0.2078662752,0.6019000637,0.1483695374,0.7394767788,0.5261958127,0.4573342500,0.9898954427,0.6633318702,0.7886571467,0.8154489447,0.1204948060,0.0971162210,0.8065869608,0.6582383313,0.3058517003,0.8774744410,0.2229601552,0.3170009113,0.3536383279,0.0057896490,0.0105987708,0.3022447699,0.8474677387,0.3733084546,0.0068866063,0.9043302268,0.3196696739,0.2717395178,0.4124553083,0.2207904088,0.6011305319,0.5789561619,0.9242837201,0.7719639072,0.1995398887,0.0178118064,0.9882268365,0.0737970883,0.6437558192,0.3136051227,0.2762400561,0.2875013240,0.0091995180,0.5231736244,0.2244282521,0.4788563396,0.4312590321,0.1104531623,0.0708520801,0.3588576352,0.8964946857,0.5207229077,0.0078515329,0.1885409455,0.5230897027,0.8427014509,0.5024940576,0.4202928701,0.5526307372,0.1720640247,0.6911889249,0.5430255407,0.4169557719,0.7536734773,0.9756144097,0.4612334438,0.6550959172,0.9495328732,0.3518401869,0.2442284606,0.0097164342,0.0557602046,0.0039816455,0.4758843794,0.9184472405,0.5547581976,0.3187803025,0.9813381813,0.5006619387,0.0314118001,,,
0.8125000000,0.8750000000,0.6191761866,0.9054350860,0.5487367243,0.3459811946,0.4862101979,0.5415295553,0.8671098289,0.2742507798,0.4538832838,0.4286050487,0.1073144525,0.1276574964,0.2140937971,0.2797712130,0.8440571555,0.6460165153,0.1185177197,0.6771998608,0.4850786522,0.5550173358,0.3533928362,0.8392060774,0.4451687529,0.3191749942,0.7469337904,0.5444718280,0.1249110878,0.4382645758,0.7262147728,0.9177367412,0.1103025437,0.6140038739,0.8764747414,0.9082464878,0.6889529957,0.0813048906,0.0767652937,0.5957161554,0.6444861246,0.2497679237,0.6517823939,0.3069547522,0.5148614575,0.5832309611,0.4174014262,0.4020766271,0.3713405207,0.5121809307,0.1036714972,0.0870049407,0.5926776354,0.4701013782,0.6934435910,0.1892986000,0.5792621251,0.6237755057,0.4967695414,0.5324963350,0.7552636988,0.7068167406,0.0653248145,0.2996625858,0.6450694269,0.5211735805,0.5647427198,0.3075995347,0.3649830059,0.2005785431,0.6558605947,0.0978516254,0.8363018110,0.4500579403,0.6472005888,0.5467596343,0.5609968198,0.1325631724,0.8892449874,0.1748603326,0.1662858317,0.4854824338,0.2636415791,0.1684568150,0.2441414313,0.0828040307,0.1043914095,0.3420590509,0.4041554881,0.5607400322,0.8855262103,0.7991761782,0.2948071482,0.6955452473,0.2266446196,0.8418665337,0.9115684670,0.4352800269,0.0599869231,0.8337285705,0.7098139764,0.8663035773,0.8252247791,0.0461895282,0.0966307523,0.1349785144,0.3728048163,0.6075393842,0.2386415070,0.0850718119,0.6082805034,0.2300724224,0.2179759610,0.1453707884,0.7663380459,0.6795278788,0.0639108133,0.8040997379,0.8384254870,0.6674299710,0.8382824929,0.7164929761,0.7098547309,0.1248717995,0.7519482924,0.7399912064,0.1975611635,0.3212597067,0.4571377423,0.7974166109,,,
0.8750000000,0.9375000000,0.0675681902,0.9465224696,0.6246563757,0.4964401440,0.4307163425,0.2546305142,0.4038409237,0.9788208264,0.4153440665,0.1396958858,0.6012031690,0.5097675396,0.6435282647,0.4333023569,0.5118247755,0.4231589767,0.3791970923,0.4930308713,0.1451585852,0.9852486111,0.3183507365,0.9657861290,0.7909171465,0.7888372538,0.7204644214,0.5309445842,0.9875577185,0.2251691329,0.5989489446,0.1223990505,0.1309863974,0.2820620390,0.6537988915,0.6798148025,0.5483439765,0.6286506706,0.4249299334,0.3854467960,0.0419163734,0.7299999651,0.0257016472,0.8066606387,0.5830032376,0.3707251281,0.9189108999,0.4139946075,0.8143827766,0.2288588011,0.3485572150,0.5222964077,0.6099661470,0.7514275014,0.3832270841,0.6412743183,0.5788290792,0.0493872906,0.5193025507,0.8062192295,0.2703251892,0.9612743761,0.5794481141,0.2509157243,0.5700247560,0.5649895605,0.7199977674,0.8135184536,0.2376495383,0.0774716553,0.8044368352,0.7821648207,0.8967497018,0.9346269765,0.5824908591,0.5977028890,0.8610585704,0.7126857950,0.2937735878,0.9538895383,0.9488552525,0.8618694427,0.8841921510,0.1256232476,0.9878645325,0.7000299769,0.7986613419,0.1169867751,0.8692559747,0.3527300749,0.1565497790,0.0870121382,0.1273484039,0.9799885235,0.1240229644,0.2748411580,0.9855112352,0.5839213454,0.3594635474,0.8347468385,0.2573705588,0.5607065628,0.3590446534,0.6411395269,0.5288608000,0.1310746458,0.0330038576,0.4145023285,0.1636837497,0.0445809378,0.8380571448,0.6593008058,0.1558282361,0.7177646661,0.9663831610,0.8445544271,0.3144014403,0.5031124200,0.1103287465,0.9298843495,0.1985781076,0.8351032853,0.4374386359,0.8814636576,0.8946606796,0.7419673589,0.8060761911,0.1805287465,0.7365976390,0.6097845554,,,
0.9375000000,1.0000000000,0.9162313873,0.7039652502,0.9958926889,0.8048050641,0.6580998558,0.2123428448,0.0004412036,0.8425683090,0.0571428468,0.8569603241,0.1960830328,0.6205328335,0.9285525971,0.2186271381,0.0130430821,0.8071690265,0.2467148174,0.7735173730,0.0295320423,0.9245268309,0.3800651950,0.8573000913,0.6029048001,0.5492588300,0.1346637527,0.8619715162,0.1997184067,0.5195509153,0.6846363698,0.1887053836,0.1640599121,0.0513311294,0.4855135144,0.2798208143,0.7097784660,0.8244420320,0.1037652704,0.6590829543,0.2595954034,0.1761031309,0.4938859646,0.6053629078,0.0862040159,0.3850135689,0.6365760874,0.0255041532,0.7906097812,0.9450102528,0.8545841393,0.6188349996,0.0109509660,0.1585280926,0.9788220741,0.3962385887,0.4504068582,0.7634726975,0.6411195237,0.4698150188,0.7469728915,0.5330595954,0.4404476730,0.3075191106,0.9554654676,0.1555883482,0.8038753311,0.3369397221,0.3140271492,0.3620656773,0.5264596820,0.9344380067,0.2270948181,0.1813250077,0.5241481701,0.5215025954,0.9158991752,0.0222571120,0.1313122681,0.1170573188,0.7167039318,0.2544327241,0.8234632669,0.4341020402,0.8246113895,0.9864847821,0.0232783328,0.3582654316,0.7527935044,0.9316744423,0.6037894480,0.3015077300,0.3874198273,0.4797800893,0.0514260521,0.8536630040,0.5574105263,0.9011588183,0.2052515480,0.3536422423,0.2142220286,0.4712827797,0.3031986870,0.9313315777,0.9560224176,0.8504335249,0.6212099902,0.9600807792,0.9028534018,0.1038160003,0.9422442666,0.9891826292,0.0934129481,0.7689513955,0.3385004348,0.0140340962,0.6088613088,0.9471964275,0.4578662498,0.2061621556,0.3482395075,0.2731952039,0.1292056721,0.2105367642,0.9794369666,0.9823816342,0.3654576021,0.6508769493,0.7211769500,0.2907935777,,,
1.0000000000,1.0625000000,0.3288717223,0.8956982135,0.7175154851,0.2936425267,0.5254038805,0.6711162864,0.9505835837,0.9499251666,0.0674790458,0.0529535487,0.2380608639,0.0561124044,0.8459908199,0.8417618566,0.4740693765,0.3133779906,0.2753134349,0.8282249088,0.7035895018,0.7738361564,0.2366405798,0.4887161897,0.2019181536,0.1249526783,0.9952925150,0.9107778952,0.6300763036,0.2008045614,0.6709930738,0.6754648075,0.2864997049,0.7562307119,0.6299736681,0.6976480703,0.6782385600,0.0678208305,0.7237180374,0.9169032224,0.0469085400,0.9737601904,0.3116680456,0.6357961306,0.9562163893,0.1638539426,0.7652504940,0.8853740022,0.2793914834,0.7048494227,0.3393532555,0.2593762882,0.3953890991,0.9912515113,0.9623617800,0.8964278235,0.8333911817,0.2635855861,0.2261674772,0.2577400070,0.3039586723,0.1256286323,0.7896734662,0.8566005919,0.3841658426,0.4605072828,0.7725437889,0.1063366195,0.5972514064,0.0590787621,0.2833237725,0.1350965637,0.8942232225,0.7651046207,0.2020620182,0.9639793737,0.8158535908,0.3854755019,0.0143608907,0.0617878267,0.5632393812,0.6615521337,0.0224016900,0.9791559218,0.7715334210,0.6092171767,0.3660154589,0.6790046529,0.6172331879,0.7133937459,0.9152221391,0.8994737109,0.6104361496,0.1654097554,0.1662524543,0.7653892187,0.7044507489,0.4649232593,0.8286671813,0.5604844948,0.8829661258,0.4343976839,0.5982651568,0.2521597776,0.3864699518,0.1515400296,0.1077846852,0.6851595649,0.4352802478,0.4294838235,0.5613919883,0.0806270167,0.6635060802,0.8972335965,0.4348131975,0.5416767132,0.0620521177,0.7645231539,0.2742298618,0.9714634961,0.1392439241,0.9542690001,0.2264950508,0.5242728393,0.6881242732,0.2914699623,0.2085309383,0.8717810940,0.3136541282,0.1018438465,,,
1 Time:128 End Time Feature 1 Feature 2 Feature 3 Feature 4 Feature 5 Feature 6 Feature 7 Feature 8 Feature 9 Feature 10 Feature 11 Feature 12 Feature 13 Feature 14 Feature 15 Feature 16 Feature 17 Feature 18 Feature 19 Feature 20 Feature 21 Feature 22 Feature 23 Feature 24 Feature 25 Feature 26 Feature 27 Feature 28 Feature 29 Feature 30 Feature 31 Feature 32 Feature 33 Feature 34 Feature 35 Feature 36 Feature 37 Feature 38 Feature 39 Feature 40 Feature 41 Feature 42 Feature 43 Feature 44 Feature 45 Feature 46 Feature 47 Feature 48 Feature 49 Feature 50 Feature 51 Feature 52 Feature 53 Feature 54 Feature 55 Feature 56 Feature 57 Feature 58 Feature 59 Feature 60 Feature 61 Feature 62 Feature 63 Feature 64 Feature 65 Feature 66 Feature 67 Feature 68 Feature 69 Feature 70 Feature 71 Feature 72 Feature 73 Feature 74 Feature 75 Feature 76 Feature 77 Feature 78 Feature 79 Feature 80 Feature 81 Feature 82 Feature 83 Feature 84 Feature 85 Feature 86 Feature 87 Feature 88 Feature 89 Feature 90 Feature 91 Feature 92 Feature 93 Feature 94 Feature 95 Feature 96 Feature 97 Feature 98 Feature 99 Feature 100 Feature 101 Feature 102 Feature 103 Feature 104 Feature 105 Feature 106 Feature 107 Feature 108 Feature 109 Feature 110 Feature 111 Feature 112 Feature 113 Feature 114 Feature 115 Feature 116 Feature 117 Feature 118 Feature 119 Feature 120 Feature 121 Feature 122 Feature 123 Feature 124 Feature 125 Feature 126 Feature 127 Feature 128 Event Id Event Date Event Duration
2 0.0000000000 0.0625000000 0.9150401743 0.4811181261 0.3270198377 0.5677587804 0.6008879130 0.4594295069 0.9683563458 0.9237891452 0.6234010095 0.3943255635 0.1078882546 0.7703306261 0.4436719313 0.5963131711 0.8457938042 0.7697275821 0.1224962058 0.2942006958 0.3322500831 0.1957253930 0.8843127992 0.6843187027 0.0202652202 0.4722963301 0.4688845898 0.1204221966 0.2920070603 0.0136039553 0.3520280039 0.2942418712 0.3035306910 0.8325346666 0.9609172817 0.0104033500 0.0263926589 0.1405701390 0.7096184031 0.5244539923 0.2770567578 0.7812710993 0.5509694435 0.6511558010 0.3719114196 0.9334457631 0.6669613710 0.1781126887 0.6620289299 0.5446313645 0.7266302956 0.6071571249 0.2124527053 0.4550076595 0.2073630942 0.6185337363 0.8098701322 0.2309543816 0.2571739866 0.0520775544 0.7355189007 0.1756549818 0.9616618126 0.7363008480 0.3561839175 0.5510980606 0.1079077483 0.2530346524 0.9616484421 0.8257251270 0.2381781549 0.6019684391 0.1800098317 0.1080955642 0.7040383117 0.2248865000 0.6234477691 0.0139408493 0.2314087460 0.9015386207 0.7469868043 0.6854385771 0.2908902564 0.3183208159 0.0725899180 0.5165314688 0.9643655850 0.2425120859 0.2801719103 0.9638599560 0.7913161502 0.4822022554 0.2669679758 0.5830120395 0.0362575694 0.6503971543 0.6601394096 0.7553155958 0.9625892541 0.1341326726 0.9030513861 0.7376232534 0.4091226382 0.6322228035 0.7557409701 0.0074960447 0.5686108500 0.7780390326 0.9779995524 0.9047688977 0.9270175146 0.5955350271 0.9939954386 0.6388499700 0.0514186502 0.7003326518 0.9912988800 0.8182061038 0.7358734147 0.1599401447 0.2078533825 0.3056119722 0.1885718242 0.6487491305 0.9024340464 0.1728633228 0.4749805466 0.8944157818 0.3802370790 0.7541875427
3 0.0625000000 0.1250000000 0.0002188140 0.8772717209 0.3606892761 0.5398562176 0.7957881822 0.2072246694 0.4904013139 0.1879513119 0.4810618665 0.1884347722 0.6153136939 0.0060567823 0.5914203583 0.1635175874 0.1282500087 0.6690062552 0.4333964835 0.4393781326 0.8056489513 0.8371359503 0.5145648201 0.4930421701 0.9483721592 0.7320511597 0.9446009332 0.2511601027 0.7567554591 0.3995047919 0.2119971917 0.5619104635 0.3209558069 0.3994497685 0.2659510621 0.1411809402 0.2320605463 0.3951107827 0.8734684635 0.2177591978 0.6586741989 0.0905212164 0.4448799966 0.8183233663 0.5589947104 0.8298795142 0.0523792338 0.6213727167 0.5110420675 0.2973528120 0.0880499484 0.6030983937 0.9991942968 0.6462430845 0.4685987504 0.1664709675 0.2175688986 0.5616701324 0.8587621097 0.2097194686 0.4954351890 0.7566679085 0.6194891455 0.3250324409 0.9993752704 0.7441636086 0.8143050948 0.7892000738 0.4020759331 0.8094227451 0.2071565455 0.7109043736 0.5762489510 0.2114944896 0.1201506448 0.9750412148 0.4196001196 0.5415642960 0.7046394304 0.8290748592 0.3493948136 0.5918792526 0.8979278051 0.8812638978 0.7123604133 0.2330470863 0.5489626734 0.4752553189 0.5313347597 0.3452652521 0.7386898657 0.8911155504 0.4246511299 0.4815980867 0.3539443654 0.3755141124 0.4571281332 0.5383569482 0.9075943392 0.9327698306 0.6012928928 0.8299281336 0.9498681091 0.7622836907 0.2522612389 0.9825163295 0.9775539900 0.1567203708 0.7720564199 0.0502300083 0.3994364436 0.7848045905 0.0519165159 0.2335758472 0.7675638278 0.7222367716 0.1512625844 0.4192842636 0.5601439243 0.0228915771 0.3806940543 0.1468547867 0.3395443982 0.8960902914 0.7770912084 0.2656531946 0.8409491007 0.9518510897 0.6433402253 0.8672073730
4 0.1250000000 0.1875000000 0.9109746008 0.9951207868 0.9262504610 0.2658244669 0.3371013603 0.2565388617 0.5173902859 0.1193734836 0.1775141452 0.8373892347 0.2898682340 0.9133129963 0.3481886350 0.1292222657 0.6257697267 0.5984036394 0.6149821568 0.2147628649 0.2947771698 0.3186730528 0.3558874619 0.8471703667 0.3808981238 0.6025348732 0.9888811563 0.5176699143 0.3514636005 0.6350323940 0.4326295485 0.7214585626 0.5881812049 0.6552316907 0.1431231180 0.0807242109 0.6860684799 0.8255885830 0.7974937786 0.0962283872 0.2619708159 0.1721746940 0.5158856388 0.8052386078 0.8466840037 0.6106764129 0.2006450845 0.4449324410 0.9440194790 0.1747042947 0.4824103422 0.2247444578 0.8581037289 0.4151061061 0.3349399418 0.4581822553 0.8213987367 0.4574069346 0.3249664013 0.6434680552 0.4386946510 0.3380722699 0.7685454728 0.9110118113 0.3662476337 0.0099736366 0.6282859237 0.8222235716 0.7562664633 0.0917348247 0.1025254172 0.3778344996 0.5110897899 0.2011987264 0.7183543080 0.1799440407 0.5106148846 0.8367626460 0.9573242795 0.4191983964 0.9073516545 0.1400522341 0.1674538185 0.1011095943 0.5204614545 0.0016235472 0.0303488139 0.6493480904 0.4683168104 0.5442108936 0.5139667864 0.6648385972 0.8003245771 0.8132813687 0.3622289621 0.2761762389 0.6235042040 0.7084571763 0.2957481982 0.0707940585 0.1672060185 0.5039413068 0.6104181844 0.0189933903 0.6308445318 0.2409209677 0.7020495255 0.9159986004 0.1108249349 0.9589245564 0.2907738546 0.4996006321 0.7271039351 0.7366086682 0.1463178939 0.8085784663 0.8136159789 0.0671046705 0.7824393143 0.1738784986 0.3712895694 0.2970155233 0.1838955719 0.6090937187 0.7785725708 0.1785994677 0.7657628125 0.7150414898 0.4002465350 0.7605940213
5 0.1875000000 0.2500000000 0.7453538293 0.5562348145 0.0441623314 0.2702864797 0.2214688216 0.6459622930 0.7874313686 0.7003119886 0.7890889288 0.7477767407 0.4196777761 0.1824780870 0.7869950747 0.2299966977 0.8701197824 0.8898176888 0.7801436263 0.5712060605 0.1414729978 0.1577144405 0.7592566011 0.7677241082 0.7704557236 0.0742995890 0.2070739889 0.6432430740 0.6626574935 0.2234028869 0.3798256752 0.4206518726 0.9313934040 0.8052547490 0.7913525237 0.0904265780 0.4186735766 0.9688379993 0.6984754954 0.6613982646 0.9636786203 0.9725835111 0.2988885161 0.2261269621 0.3229277530 0.4837670890 0.4950147446 0.1621673906 0.1487191385 0.4833369898 0.8237380013 0.1808721826 0.2137179286 0.4979929181 0.6606709010 0.2788669346 0.3063764081 0.1031162990 0.8566594275 0.5155990236 0.1969937219 0.2443958144 0.2845822796 0.3594031874 0.0864821358 0.1747175087 0.8151925865 0.6943339275 0.6089062935 0.1587961472 0.2111702869 0.4994445222 0.8572962065 0.4509738958 0.5766741433 0.5227647021 0.2778724900 0.5027213558 0.5940349950 0.6094255366 0.5260545956 0.3063808479 0.1706124833 0.3023674486 0.7318533051 0.4898670274 0.8902174765 0.5367171536 0.3025532460 0.9006342622 0.1225583914 0.8729220454 0.5816617627 0.2410953466 0.5891577334 0.0830385094 0.2448703449 0.7544026147 0.5857832327 0.9203029824 0.1961069836 0.2751267767 0.4055198194 0.9876121362 0.3188617593 0.0215721291 0.3813716625 0.3048050166 0.7103436391 0.4197148411 0.1848478564 0.9002549076 0.6524276587 0.9424044732 0.6402948408 0.3965077917 0.5788287858 0.3429145110 0.1934584284 0.9478120690 0.9845180595 0.4365746828 0.6515295408 0.5665946738 0.5121574821 0.1296665922 0.7572885097 0.7258212646 0.0993553293 0.7081319424
6 0.2500000000 0.3125000000 0.2257547644 0.6802780146 0.9848806218 0.2945099196 0.6121715314 0.5496250149 0.9488904520 0.6261539755 0.0226002543 0.8020651417 0.3240186602 0.1204765355 0.3803162053 0.3986330400 0.4652527408 0.3092360550 0.7902492685 0.4914528863 0.5728307802 0.3231564206 0.7498268979 0.0049532964 0.6545206995 0.0506501256 0.3489679080 0.0561038423 0.2357035449 0.5909956398 0.3385374097 0.1453693460 0.0107090550 0.3685457709 0.4528203467 0.4027523831 0.6446154756 0.1715591031 0.4860209927 0.1162998809 0.4648108450 0.2506977031 0.7875146486 0.4596880095 0.6805525057 0.3820763617 0.7328458393 0.4352892467 0.7725691649 0.0421113959 0.1229584035 0.9120677412 0.5444388818 0.6305014768 0.2390579795 0.1883088143 0.3235339646 0.1613477063 0.5104757384 0.9915048797 0.2011686831 0.6125321344 0.9968779932 0.0992927733 0.6293981448 0.1048098309 0.8206058126 0.7488012826 0.3321925495 0.7911361693 0.0682489956 0.8672478301 0.4101436031 0.5440434886 0.3644964646 0.1893134553 0.2352781841 0.4685491412 0.0673055169 0.7426268843 0.7430763205 0.4338141405 0.9760390066 0.5769536356 0.9065775399 0.3245960197 0.4803365432 0.6146799829 0.1976400022 0.1181834072 0.3478701948 0.8024101891 0.0077452271 0.1817336529 0.4993942913 0.8643290466 0.9991608907 0.4216364564 0.3496882485 0.3723833957 0.1769943126 0.4480358632 0.4492628956 0.5697830906 0.7367511708 0.6118022655 0.2468232804 0.3836626287 0.3119710207 0.8164000930 0.5367287507 0.3956456599 0.7687124116 0.3577925242 0.9573899531 0.1469699335 0.7791464506 0.4732569496 0.2888410233 0.7451228222 0.2324083727 0.6024969162 0.3459631025 0.0237420439 0.6104843081 0.6179569261 0.3671497568 0.7786061126 0.1736336316 0.2833297879
7 0.3125000000 0.3750000000 0.6285757518 0.3288695402 0.6054992690 0.9929998035 0.1378111462 0.9951356442 0.9691859630 0.1129326557 0.0280345739 0.7290734798 0.2218745779 0.4449320023 0.0946576300 0.6760159465 0.5861109693 0.1478802136 0.7679049612 0.3991952927 0.9602089047 0.5471295090 0.0050830450 0.1385421732 0.9385014586 0.7108538039 0.1735699072 0.0975517747 0.4521458363 0.9214333170 0.4484556764 0.4469351457 0.1255321861 0.0095951082 0.1099653582 0.6312142271 0.5213742687 0.2210297619 0.3553569058 0.3236816446 0.7842328099 0.5610350110 0.9095973191 0.0611649826 0.8411585467 0.0379429073 0.8668417903 0.0462811647 0.3252716959 0.8277587383 0.4269191837 0.2921328731 0.7167588421 0.4737435721 0.7883403641 0.1244506226 0.6991252704 0.1276111647 0.7651671295 0.1354980366 0.3882917659 0.7037197298 0.5543080787 0.6320341001 0.0578748437 0.8107915705 0.1264818849 0.6230264814 0.5594581265 0.9871456481 0.4017386094 0.5630508566 0.6846432309 0.6775590843 0.1209605632 0.4211554511 0.5500227369 0.4238302193 0.6898243206 0.7893713107 0.5699831364 0.0409704016 0.3327725793 0.2529282472 0.0994483484 0.6077005116 0.3537592243 0.7309522489 0.4926651088 0.5049442097 0.5111502877 0.2868934362 0.0882756545 0.0288088685 0.3580115556 0.5529107323 0.0627496941 0.7541548216 0.5957504974 0.5642922563 0.2772185232 0.1961681915 0.0377593283 0.6898948345 0.6113006326 0.3604168841 0.7862653008 0.3118595339 0.9690669046 0.9981342063 0.2589769722 0.4736000784 0.2835210583 0.8389609037 0.8540500992 0.1036063221 0.6556978549 0.4131547150 0.8589825400 0.7310319247 0.7818610885 0.1693737505 0.6824778626 0.1110271995 0.1198812893 0.5206037527 0.0822814312 0.6039371279 0.6588939205 0.5556109066
8 0.3750000000 0.4375000000 0.3013739143 0.8127311000 0.7991974158 0.9813211181 0.5462567790 0.0274043684 0.7054392931 0.2291122875 0.2243704761 0.6404237077 0.7856010403 0.2253304604 0.1122797087 0.2313427543 0.7298298122 0.6516429083 0.6382611769 0.2799473577 0.3125212379 0.6736417285 0.9154962718 0.6624671633 0.0333061314 0.5654855787 0.7591771134 0.9264053332 0.1208104850 0.2260603826 0.1269354327 0.4152459202 0.7590945300 0.4942393058 0.1634823915 0.8546761232 0.9681738093 0.7978894059 0.0261956449 0.5268149576 0.2065873067 0.2210950616 0.4754410307 0.7686062045 0.6741202855 0.1233033733 0.9876864576 0.5099352649 0.8682243000 0.9719840281 0.7665449458 0.4172727119 0.8278773725 0.9980648635 0.1777149339 0.5806961891 0.9070699569 0.7085918125 0.9142936911 0.6817125536 0.5119359691 0.6994246591 0.7783822962 0.8618395200 0.2147077576 0.9214978551 0.2123396420 0.4472374304 0.1355366809 0.9382716189 0.6553513929 0.8768269331 0.8318979132 0.9577270437 0.7229743921 0.2387020239 0.9467114366 0.3547559867 0.8069269729 0.3634118494 0.7865487337 0.9261352927 0.3532215573 0.1371394813 0.7110671448 0.1866619682 0.3140457033 0.2714432462 0.9519157023 0.8294518099 0.8057298311 0.7847239529 0.0537713827 0.0128977881 0.1007729070 0.6612241708 0.2817010204 0.0053622834 0.7139452228 0.8625826242 0.8366024834 0.1891112577 0.5292865052 0.8092396471 0.1501730622 0.7508652674 0.7300759819 0.6964412911 0.6699647657 0.5185583574 0.4771354941 0.3811959955 0.6192273130 0.9198612673 0.7758328342 0.0671149772 0.4560193459 0.1565855546 0.5475070586 0.6679388408 0.7853498289 0.7844694268 0.9127447612 0.5858668790 0.8600505069 0.8199147666 0.7085756420 0.4406658337 0.3686100424 0.1206055495
9 0.4375000000 0.5000000000 0.9003225164 0.7480981473 0.8053498440 0.4267288961 0.6412769875 0.7522350526 0.4167963460 0.9650670663 0.5086058250 0.9226004714 0.1749151214 0.5154892541 0.1457145112 0.9937504663 0.7144920225 0.2941832957 0.9871061957 0.8896298131 0.9362271670 0.4684300146 0.1662876687 0.4145205696 0.2401438348 0.7372052034 0.2275003067 0.1202372941 0.2201560228 0.7109864391 0.0556307323 0.4056763717 0.5839949264 0.6182016619 0.1775623059 0.3103296650 0.7554143269 0.8824875567 0.3143215114 0.8981643121 0.4549063388 0.7565393369 0.5745349682 0.8117642403 0.2721608290 0.3757458278 0.6454408234 0.8008520203 0.5620512532 0.2231434009 0.4298177247 0.2234280019 0.6727846127 0.5825154625 0.7763711584 0.0086296967 0.0160774931 0.2844835189 0.5559796582 0.8363868720 0.3929312793 0.4150929507 0.6976120733 0.8635397111 0.1867806930 0.4720674043 0.0013589431 0.0673465631 0.6231278596 0.7715907679 0.9108784711 0.6526743551 0.9036721131 0.3094108591 0.7118621557 0.5414177482 0.6693002416 0.1900362298 0.0368166002 0.2156310934 0.6608897825 0.4060205801 0.9850410977 0.2993082490 0.2275831737 0.4510028409 0.2335811383 0.5196640280 0.8845180692 0.4756846388 0.0928450837 0.2996766637 0.9362409022 0.0004491087 0.5826934704 0.4704652349 0.7252352487 0.6212530315 0.2190986618 0.9486807266 0.5916255882 0.2739911363 0.1576126318 0.6291394716 0.7699931778 0.5183355731 0.3155681929 0.7118634277 0.0610896808 0.3112224340 0.8763353478 0.5345323340 0.3207744888 0.3421047439 0.7597657682 0.6433593284 0.8619263892 0.9882361852 0.6681065401 0.7102198754 0.1950918455 0.2910398836 0.9868998907 0.8591626459 0.6078541053 0.0004093167 0.2274056135 0.5978504100 0.2635376034 0.1799012623
10 0.5000000000 0.5625000000 0.6836149301 0.1570305652 0.5011268521 0.5341963689 0.0406966375 0.0417319161 0.0229919404 0.5225459056 0.7622013865 0.0073592423 0.5262761717 0.7536182301 0.1732809620 0.5846455710 0.8147739468 0.2411016424 0.7675131322 0.1109566058 0.5808591293 0.6893337520 0.4796658028 0.5758117344 0.1115573819 0.0693856149 0.0807967728 0.6014419149 0.9144991301 0.3569751286 0.9383541637 0.3463297449 0.8262212579 0.5411048380 0.5816693464 0.6854715918 0.7228725688 0.6109158760 0.0544019262 0.7022253803 0.3458649374 0.7266227046 0.9470764389 0.7508620082 0.0298781053 0.1454318992 0.9886663328 0.1866206592 0.3245465471 0.7972429504 0.8571681727 0.8578790261 0.7722784744 0.0922879532 0.1406729887 0.7397305216 0.9066975862 0.7279179688 0.6206075558 0.7658441206 0.0817528344 0.5876551629 0.2451612160 0.7712874806 0.5636584857 0.7146320252 0.5789667484 0.7735870511 0.9947234755 0.5594872846 0.6741074440 0.6133322220 0.0880946824 0.1618016448 0.5966567851 0.8680961663 0.7326783538 0.7012700287 0.3464814217 0.9959812763 0.4164274423 0.1351061920 0.6529864753 0.4439844161 0.4418596844 0.3798802693 0.3809329458 0.8569758898 0.8512940556 0.6666798801 0.4906939513 0.1945700741 0.5131848175 0.6812754211 0.5925616317 0.8465413465 0.9405339791 0.1809083533 0.0460981852 0.5613436685 0.5314784907 0.4365565274 0.7995008091 0.2417511870 0.1028372864 0.4331791420 0.4886791948 0.0108438726 0.1980641852 0.1028579960 0.4738194542 0.0851266982 0.3123101122 0.4068922729 0.9956520954 0.0596446055 0.0368461821 0.7821050829 0.5365605582 0.4764145396 0.7731019980 0.4577252327 0.5513724757 0.3282609247 0.2148313976 0.5636563539 0.3628968168 0.8687196723 0.5768848425 0.8886449558
11 0.5625000000 0.6250000000 0.3266253117 0.2969284146 0.3912016670 0.3561266444 0.2641083156 0.9673384312 0.8008158177 0.4856448886 0.1329766037 0.9680180063 0.4974506951 0.7146691198 0.7970280002 0.2428639778 0.8433659293 0.2990799940 0.1119566131 0.3558082923 0.3105708533 0.0734917005 0.8885465648 0.3865002599 0.9565107531 0.7928993581 0.4546439000 0.5764963361 0.2760517164 0.2105028476 0.2800917707 0.2960291200 0.7190703233 0.0789382251 0.8547532328 0.9354673070 0.5678164046 0.4840348300 0.9779860589 0.5910421014 0.3716490779 0.5187759055 0.7101588331 0.9156765428 0.0999725214 0.9640193435 0.7349417466 0.6109719451 0.9659422555 0.8378549658 0.6305319166 0.6654821215 0.3023991575 0.0058013138 0.2286409882 0.8359954355 0.9596452445 0.3670667945 0.3007012629 0.0460373273 0.5093773089 0.5760716717 0.2921432890 0.2685501662 0.1253721523 0.0886203020 0.4363479582 0.7623618306 0.0819924974 0.0721713693 0.8915678712 0.5185277537 0.4140858494 0.6008427632 0.9720136125 0.2152535354 0.0194878255 0.9272642804 0.4734225015 0.5747749114 0.3479006817 0.3525647940 0.8477819201 0.6399854033 0.3437346853 0.5786995713 0.5904509153 0.6705951339 0.2542099489 0.5538953913 0.2293668056 0.8017296402 0.1767021166 0.4251989739 0.7634107836 0.9324329835 0.1678593014 0.6535611227 0.9821186785 0.4999947359 0.5313968647 0.9546532426 0.8452043200 0.7675913034 0.9542584720 0.9133796643 0.4685207419 0.3768507789 0.0580611015 0.2010925114 0.0885815227 0.9304342023 0.8238886003 0.9276215080 0.1137061296 0.2165951831 0.7970096874 0.6956051604 0.7922348289 0.8634749758 0.7919690392 0.0796134942 0.4695181684 0.4520755119 0.7265606464 0.0423310532 0.4934578198 0.9706061210 0.3916379958 0.2137548453
12 0.6250000000 0.6875000000 0.0951865504 0.4559259054 0.3342831139 0.6230993611 0.9083122811 0.6041768962 0.9408766730 0.4100223009 0.7271583276 0.8637165106 0.8111866217 0.4237242953 0.4929328640 0.5954799841 0.1817465017 0.4415581895 0.7764845549 0.8788219872 0.2891010782 0.6990914301 0.7785408311 0.4980652491 0.2989641940 0.7921074585 0.9815224456 0.7390300448 0.0385943358 0.4198846603 0.8128107945 0.2670160651 0.2669080039 0.1193341746 0.6247934515 0.6694000354 0.2803128145 0.2621419586 0.1303602080 0.9657187897 0.0858317562 0.3182606357 0.2583954232 0.5476385439 0.5172038896 0.9280478866 0.4310764379 0.8470131259 0.7136792648 0.6151305817 0.0992915588 0.8238125884 0.0452835828 0.7976106589 0.0500108164 0.9840833184 0.8637740302 0.1995748926 0.9539506896 0.4730096324 0.5925557532 0.7117695680 0.3666300960 0.5040151600 0.7381468357 0.7755233133 0.5956626255 0.4666806492 0.2921566979 0.1883999070 0.0600034464 0.7034296850 0.0184311338 0.4205567657 0.4419830996 0.6064463754 0.4366809521 0.6036809478 0.7591373040 0.9383824393 0.1547079335 0.1034155719 0.9832944782 0.0031819595 0.1114478053 0.5050588488 0.6593978559 0.9282916798 0.2615019490 0.1864993179 0.5753157951 0.7485704583 0.4077355501 0.4141925909 0.1749735957 0.2676434095 0.6683696669 0.0457403508 0.1722402293 0.8534545521 0.7855956117 0.3804940688 0.3033744935 0.0134121121 0.7247220045 0.3239799449 0.5395433162 0.7648703295 0.1689916737 0.7016573173 0.5915472063 0.2456645893 0.6919005406 0.2535201525 0.4518816210 0.0948039426 0.5158798415 0.7297661491 0.3568961844 0.3452494484 0.3337228564 0.0623258993 0.5084565377 0.1585949706 0.7812543309 0.5892171352 0.4352987392 0.1705578952 0.4649748327 0.1445428249
13 0.6875000000 0.7500000000 0.7972729541 0.7656295931 0.8047798146 0.4210944641 0.9495596520 0.2564582382 0.0869470569 0.7413500270 0.0926618222 0.4014761285 0.2481015425 0.2325752755 0.0678412090 0.8327358237 0.9366771176 0.7603401856 0.4709194202 0.0013421741 0.6969793467 0.7803202949 0.3712435162 0.7277776932 0.6492541826 0.9142240172 0.6499930692 0.9622941131 0.8251722490 0.9162823888 0.3251303604 0.4615749414 0.8418393293 0.1760768723 0.6450446800 0.4258416046 0.4078110659 0.6946288156 0.4398307409 0.4526773752 0.9216633332 0.5807717878 0.2695588598 0.2401386295 0.8712688570 0.4794638369 0.5362886589 0.5534540117 0.6477100106 0.3752358763 0.4875534533 0.8996371171 0.1154563460 0.0779831153 0.1277342089 0.8063365871 0.1313374497 0.9296416105 0.5511019584 0.2818133885 0.9499518040 0.9458435348 0.3409965113 0.9603743141 0.7153733519 0.8225758842 0.4474064647 0.5509970032 0.6046922461 0.2496839233 0.7098049910 0.2465102181 0.5172845421 0.9220486192 0.3675448599 0.1631474863 0.9081681864 0.5819129143 0.4095856373 0.3096013456 0.3027578304 0.2607257105 0.5812509328 0.8137784675 0.4119918980 0.8225071011 0.9856499089 0.5479148179 0.2853891188 0.0090171313 0.6690710657 0.9199579263 0.4137630577 0.5503251320 0.2482982120 0.9546005074 0.1055671843 0.6350373032 0.3269851748 0.8220459416 0.5415382171 0.4190973802 0.4187121543 0.2853184263 0.1283494134 0.3375549077 0.6602634194 0.4770000577 0.3271100372 0.4383558319 0.4143157501 0.4820398828 0.8281070660 0.3001287873 0.1368047087 0.3757513827 0.0349937901 0.3754054119 0.1850143555 0.6747776968 0.3888342835 0.7420188775 0.9451925391 0.2639461998 0.8757471105 0.8289346700 0.7173204881 0.7487527549 0.6600279508 0.5950739619
14 0.7500000000 0.8125000000 0.9918360200 0.8413040168 0.7585599809 0.7010234804 0.0875005967 0.2445954022 0.9433504627 0.7129720305 0.4357547185 0.5365997744 0.3586147751 0.5069929382 0.1981287585 0.5265833302 0.4481507521 0.0833059070 0.0099458960 0.4829644961 0.2602805076 0.5503992552 0.0065642314 0.0399043802 0.4158759147 0.6996538010 0.9095043880 0.3482764231 0.5089759044 0.7512149776 0.1415943836 0.1448071979 0.8604772950 0.9743917484 0.8379960111 0.6217453007 0.5853474766 0.8372208674 0.9314223635 0.6847964760 0.2016652324 0.6888024006 0.8598825224 0.4707778960 0.3636550519 0.3066147778 0.7566092857 0.7624425550 0.7862197864 0.7429981048 0.2078662752 0.6019000637 0.1483695374 0.7394767788 0.5261958127 0.4573342500 0.9898954427 0.6633318702 0.7886571467 0.8154489447 0.1204948060 0.0971162210 0.8065869608 0.6582383313 0.3058517003 0.8774744410 0.2229601552 0.3170009113 0.3536383279 0.0057896490 0.0105987708 0.3022447699 0.8474677387 0.3733084546 0.0068866063 0.9043302268 0.3196696739 0.2717395178 0.4124553083 0.2207904088 0.6011305319 0.5789561619 0.9242837201 0.7719639072 0.1995398887 0.0178118064 0.9882268365 0.0737970883 0.6437558192 0.3136051227 0.2762400561 0.2875013240 0.0091995180 0.5231736244 0.2244282521 0.4788563396 0.4312590321 0.1104531623 0.0708520801 0.3588576352 0.8964946857 0.5207229077 0.0078515329 0.1885409455 0.5230897027 0.8427014509 0.5024940576 0.4202928701 0.5526307372 0.1720640247 0.6911889249 0.5430255407 0.4169557719 0.7536734773 0.9756144097 0.4612334438 0.6550959172 0.9495328732 0.3518401869 0.2442284606 0.0097164342 0.0557602046 0.0039816455 0.4758843794 0.9184472405 0.5547581976 0.3187803025 0.9813381813 0.5006619387 0.0314118001
15 0.8125000000 0.8750000000 0.6191761866 0.9054350860 0.5487367243 0.3459811946 0.4862101979 0.5415295553 0.8671098289 0.2742507798 0.4538832838 0.4286050487 0.1073144525 0.1276574964 0.2140937971 0.2797712130 0.8440571555 0.6460165153 0.1185177197 0.6771998608 0.4850786522 0.5550173358 0.3533928362 0.8392060774 0.4451687529 0.3191749942 0.7469337904 0.5444718280 0.1249110878 0.4382645758 0.7262147728 0.9177367412 0.1103025437 0.6140038739 0.8764747414 0.9082464878 0.6889529957 0.0813048906 0.0767652937 0.5957161554 0.6444861246 0.2497679237 0.6517823939 0.3069547522 0.5148614575 0.5832309611 0.4174014262 0.4020766271 0.3713405207 0.5121809307 0.1036714972 0.0870049407 0.5926776354 0.4701013782 0.6934435910 0.1892986000 0.5792621251 0.6237755057 0.4967695414 0.5324963350 0.7552636988 0.7068167406 0.0653248145 0.2996625858 0.6450694269 0.5211735805 0.5647427198 0.3075995347 0.3649830059 0.2005785431 0.6558605947 0.0978516254 0.8363018110 0.4500579403 0.6472005888 0.5467596343 0.5609968198 0.1325631724 0.8892449874 0.1748603326 0.1662858317 0.4854824338 0.2636415791 0.1684568150 0.2441414313 0.0828040307 0.1043914095 0.3420590509 0.4041554881 0.5607400322 0.8855262103 0.7991761782 0.2948071482 0.6955452473 0.2266446196 0.8418665337 0.9115684670 0.4352800269 0.0599869231 0.8337285705 0.7098139764 0.8663035773 0.8252247791 0.0461895282 0.0966307523 0.1349785144 0.3728048163 0.6075393842 0.2386415070 0.0850718119 0.6082805034 0.2300724224 0.2179759610 0.1453707884 0.7663380459 0.6795278788 0.0639108133 0.8040997379 0.8384254870 0.6674299710 0.8382824929 0.7164929761 0.7098547309 0.1248717995 0.7519482924 0.7399912064 0.1975611635 0.3212597067 0.4571377423 0.7974166109
16 0.8750000000 0.9375000000 0.0675681902 0.9465224696 0.6246563757 0.4964401440 0.4307163425 0.2546305142 0.4038409237 0.9788208264 0.4153440665 0.1396958858 0.6012031690 0.5097675396 0.6435282647 0.4333023569 0.5118247755 0.4231589767 0.3791970923 0.4930308713 0.1451585852 0.9852486111 0.3183507365 0.9657861290 0.7909171465 0.7888372538 0.7204644214 0.5309445842 0.9875577185 0.2251691329 0.5989489446 0.1223990505 0.1309863974 0.2820620390 0.6537988915 0.6798148025 0.5483439765 0.6286506706 0.4249299334 0.3854467960 0.0419163734 0.7299999651 0.0257016472 0.8066606387 0.5830032376 0.3707251281 0.9189108999 0.4139946075 0.8143827766 0.2288588011 0.3485572150 0.5222964077 0.6099661470 0.7514275014 0.3832270841 0.6412743183 0.5788290792 0.0493872906 0.5193025507 0.8062192295 0.2703251892 0.9612743761 0.5794481141 0.2509157243 0.5700247560 0.5649895605 0.7199977674 0.8135184536 0.2376495383 0.0774716553 0.8044368352 0.7821648207 0.8967497018 0.9346269765 0.5824908591 0.5977028890 0.8610585704 0.7126857950 0.2937735878 0.9538895383 0.9488552525 0.8618694427 0.8841921510 0.1256232476 0.9878645325 0.7000299769 0.7986613419 0.1169867751 0.8692559747 0.3527300749 0.1565497790 0.0870121382 0.1273484039 0.9799885235 0.1240229644 0.2748411580 0.9855112352 0.5839213454 0.3594635474 0.8347468385 0.2573705588 0.5607065628 0.3590446534 0.6411395269 0.5288608000 0.1310746458 0.0330038576 0.4145023285 0.1636837497 0.0445809378 0.8380571448 0.6593008058 0.1558282361 0.7177646661 0.9663831610 0.8445544271 0.3144014403 0.5031124200 0.1103287465 0.9298843495 0.1985781076 0.8351032853 0.4374386359 0.8814636576 0.8946606796 0.7419673589 0.8060761911 0.1805287465 0.7365976390 0.6097845554
17 0.9375000000 1.0000000000 0.9162313873 0.7039652502 0.9958926889 0.8048050641 0.6580998558 0.2123428448 0.0004412036 0.8425683090 0.0571428468 0.8569603241 0.1960830328 0.6205328335 0.9285525971 0.2186271381 0.0130430821 0.8071690265 0.2467148174 0.7735173730 0.0295320423 0.9245268309 0.3800651950 0.8573000913 0.6029048001 0.5492588300 0.1346637527 0.8619715162 0.1997184067 0.5195509153 0.6846363698 0.1887053836 0.1640599121 0.0513311294 0.4855135144 0.2798208143 0.7097784660 0.8244420320 0.1037652704 0.6590829543 0.2595954034 0.1761031309 0.4938859646 0.6053629078 0.0862040159 0.3850135689 0.6365760874 0.0255041532 0.7906097812 0.9450102528 0.8545841393 0.6188349996 0.0109509660 0.1585280926 0.9788220741 0.3962385887 0.4504068582 0.7634726975 0.6411195237 0.4698150188 0.7469728915 0.5330595954 0.4404476730 0.3075191106 0.9554654676 0.1555883482 0.8038753311 0.3369397221 0.3140271492 0.3620656773 0.5264596820 0.9344380067 0.2270948181 0.1813250077 0.5241481701 0.5215025954 0.9158991752 0.0222571120 0.1313122681 0.1170573188 0.7167039318 0.2544327241 0.8234632669 0.4341020402 0.8246113895 0.9864847821 0.0232783328 0.3582654316 0.7527935044 0.9316744423 0.6037894480 0.3015077300 0.3874198273 0.4797800893 0.0514260521 0.8536630040 0.5574105263 0.9011588183 0.2052515480 0.3536422423 0.2142220286 0.4712827797 0.3031986870 0.9313315777 0.9560224176 0.8504335249 0.6212099902 0.9600807792 0.9028534018 0.1038160003 0.9422442666 0.9891826292 0.0934129481 0.7689513955 0.3385004348 0.0140340962 0.6088613088 0.9471964275 0.4578662498 0.2061621556 0.3482395075 0.2731952039 0.1292056721 0.2105367642 0.9794369666 0.9823816342 0.3654576021 0.6508769493 0.7211769500 0.2907935777
18 1.0000000000 1.0625000000 0.3288717223 0.8956982135 0.7175154851 0.2936425267 0.5254038805 0.6711162864 0.9505835837 0.9499251666 0.0674790458 0.0529535487 0.2380608639 0.0561124044 0.8459908199 0.8417618566 0.4740693765 0.3133779906 0.2753134349 0.8282249088 0.7035895018 0.7738361564 0.2366405798 0.4887161897 0.2019181536 0.1249526783 0.9952925150 0.9107778952 0.6300763036 0.2008045614 0.6709930738 0.6754648075 0.2864997049 0.7562307119 0.6299736681 0.6976480703 0.6782385600 0.0678208305 0.7237180374 0.9169032224 0.0469085400 0.9737601904 0.3116680456 0.6357961306 0.9562163893 0.1638539426 0.7652504940 0.8853740022 0.2793914834 0.7048494227 0.3393532555 0.2593762882 0.3953890991 0.9912515113 0.9623617800 0.8964278235 0.8333911817 0.2635855861 0.2261674772 0.2577400070 0.3039586723 0.1256286323 0.7896734662 0.8566005919 0.3841658426 0.4605072828 0.7725437889 0.1063366195 0.5972514064 0.0590787621 0.2833237725 0.1350965637 0.8942232225 0.7651046207 0.2020620182 0.9639793737 0.8158535908 0.3854755019 0.0143608907 0.0617878267 0.5632393812 0.6615521337 0.0224016900 0.9791559218 0.7715334210 0.6092171767 0.3660154589 0.6790046529 0.6172331879 0.7133937459 0.9152221391 0.8994737109 0.6104361496 0.1654097554 0.1662524543 0.7653892187 0.7044507489 0.4649232593 0.8286671813 0.5604844948 0.8829661258 0.4343976839 0.5982651568 0.2521597776 0.3864699518 0.1515400296 0.1077846852 0.6851595649 0.4352802478 0.4294838235 0.5613919883 0.0806270167 0.6635060802 0.8972335965 0.4348131975 0.5416767132 0.0620521177 0.7645231539 0.2742298618 0.9714634961 0.1392439241 0.9542690001 0.2264950508 0.5242728393 0.6881242732 0.2914699623 0.2085309383 0.8717810940 0.3136541282 0.1018438465
@@ -0,0 +1,545 @@
Time:512Hz,Epoch,Noise 1,Noise 2,Noise 3,Noise 4,Event Id,Event Date,Event Duration
0.0000000000,0,0.1276509815,0.2788001627,0.9800111165,0.8812423225,,,
0.0019531250,0,0.3085663570,0.2317169255,0.1059675417,0.4711892216,,,
0.0039062500,0,0.7789645349,0.6270744407,0.0989787877,0.6273901062,,,
0.0058593750,0,0.2544820041,0.0206462047,0.2667732637,0.4001024703,,,
0.0078125000,0,0.2577170827,0.8932497504,0.0936164563,0.3030632613,,,
0.0097656250,0,0.8306098606,0.1907459770,0.3106222898,0.9361628154,,,
0.0117187500,0,0.6003265893,0.4503573675,0.3441934220,0.3818552531,,,
0.0136718750,0,0.1555515428,0.0089006005,0.5513935322,0.5262577983,,,
0.0156250000,0,0.2765844858,0.3741191584,0.7100992661,0.8446825272,,,
0.0175781250,0,0.1800983415,0.9476220037,0.1737488913,0.4065236386,,,
0.0195312500,0,0.7171743014,0.0784789107,0.7459395295,0.4624227872,,,
0.0214843750,0,0.0676116813,0.6932677082,0.6146815275,0.8067630604,,,
0.0234375000,0,0.0200838614,0.3800698228,0.8537565614,0.9172393801,,,
0.0253906250,0,0.3490915159,0.0946921902,0.0582459073,0.7552404082,,,
0.0273437500,0,0.9225666784,0.5115203685,0.8892426926,0.1770821628,,,
0.0292968750,0,0.4700529492,0.4034908635,0.4664971696,0.0102199195,,,
0.0312500000,0,0.1439906447,0.1765625917,0.0070374508,0.0092898624,,,
0.0332031250,0,0.8735866135,0.9694052222,0.4945583295,0.6702349838,,,
0.0351562500,0,0.9596816355,0.4774389013,0.8643378734,0.2293010280,,,
0.0371093750,0,0.9890093571,0.5106695876,0.4771499431,0.9426534649,,,
0.0390625000,0,0.1608183412,0.4422527624,0.8963911207,0.4273886823,,,
0.0410156250,0,0.7605574597,0.8471352365,0.5397317070,0.2859543816,,,
0.0429687500,0,0.7069561521,0.6101486075,0.6493543428,0.9491707447,,,
0.0449218750,0,0.9346017786,0.7288885713,0.5936009986,0.4114119632,,,
0.0468750000,0,0.9042563275,0.2211433772,0.8740211152,0.0981834438,,,
0.0488281250,0,0.9761265456,0.3806563101,0.8920098066,0.7286428297,,,
0.0507812500,0,0.6130849579,0.8856918216,0.3503170034,0.5256292939,,,
0.0527343750,0,0.8678017857,0.3822564180,0.6108583007,0.4864756714,,,
0.0546875000,0,0.5019965817,0.4941701319,0.6212668198,0.0385970196,,,
0.0566406250,0,0.5277878270,0.8627308370,0.8374058811,0.0310396899,,,
0.0585937500,0,0.7693341547,0.9832691720,0.1571595417,0.9037684486,,,
0.0605468750,0,0.4684032931,0.2325949920,0.7011381390,0.0141390373,,,
0.0625000000,1,0.8367542089,0.9558685038,0.9688963213,0.5381925830,,,
0.0644531250,1,0.8521201352,0.7515846295,0.8623778452,0.8120114051,,,
0.0664062500,1,0.4326860616,0.5165756010,0.5215125228,0.3015441904,,,
0.0683593750,1,0.0626169734,0.7133678738,0.4758519852,0.3982388966,,,
0.0703125000,1,0.9768561120,0.7591111555,0.8196392297,0.1391515601,,,
0.0722656250,1,0.8578928597,0.2868922015,0.7278519578,0.8900003748,,,
0.0742187500,1,0.7514423283,0.3492095852,0.5052883255,0.9790684455,,,
0.0761718750,1,0.7293294109,0.0986221319,0.4341941983,0.7989717678,,,
0.0781250000,1,0.7915512780,0.2617537291,0.1000760957,0.8795328548,,,
0.0800781250,1,0.9701463417,0.6310394087,0.7542459588,0.2785037511,,,
0.0820312500,1,0.8145337973,0.9941854759,0.2815517513,0.0045786556,,,
0.0839843750,1,0.8589639370,0.1969860690,0.8577664557,0.7519159273,,,
0.0859375000,1,0.2795593245,0.9097975651,0.6449571303,0.6510467425,,,
0.0878906250,1,0.0708383643,0.9844854285,0.4189832469,0.9148418091,,,
0.0898437500,1,0.1410587770,0.8686903990,0.8101392037,0.9140618418,,,
0.0917968750,1,0.0315964462,0.0339632155,0.4409458800,0.6738175135,,,
0.0937500000,1,0.7580716163,0.0029117847,0.9416581537,0.2670429794,,,
0.0957031250,1,0.4002936617,0.3953563941,0.4354947014,0.0241012422,,,
0.0976562500,1,0.6805019742,0.5852424444,0.9849745545,0.8617281017,,,
0.0996093750,1,0.1342884866,0.2860122398,0.7102625438,0.2481575462,,,
0.1015625000,1,0.6981669578,0.1783118374,0.8516177488,0.8705970314,,,
0.1035156250,1,0.1819152979,0.7780929049,0.8233418250,0.9241389111,,,
0.1054687500,1,0.7950496622,0.8647075142,0.0129886777,0.4410888362,,,
0.1074218750,1,0.1811624330,0.5116186531,0.4547199199,0.8056800328,,,
0.1093750000,1,0.0362837398,0.2561552674,0.4547825414,0.5773156560,,,
0.1113281250,1,0.5380683220,0.6130943180,0.3017567908,0.0284445388,,,
0.1132812500,1,0.2644293748,0.0368850478,0.4616725056,0.9413765091,,,
0.1152343750,1,0.8972898975,0.1998824074,0.3274557481,0.3579953976,,,
0.1171875000,1,0.0168464282,0.1166782510,0.0736811778,0.6925130279,,,
0.1191406250,1,0.5923203786,0.7633251783,0.9446329186,0.5572869231,,,
0.1210937500,1,0.3396585051,0.0153831262,0.6792490359,0.0295981884,,,
0.1230468750,1,0.6362284014,0.5369453721,0.9656954347,0.8791597558,,,
0.1250000000,2,0.2337946561,0.1190734650,0.0626613630,0.5272158433,,,
0.1269531250,2,0.4128819830,0.6709878326,0.0038196605,0.3581657342,,,
0.1289062500,2,0.7859546749,0.5281384096,0.6521776719,0.4348313336,,,
0.1308593750,2,0.0390759464,0.4461622771,0.0488363560,0.4808078697,,,
0.1328125000,2,0.9383867618,0.7737875879,0.0688997617,0.8730048109,,,
0.1347656250,2,0.7727890983,0.3735630005,0.9288594450,0.4715279418,,,
0.1367187500,2,0.0057901163,0.4163702421,0.2194966618,0.1669509744,,,
0.1386718750,2,0.6928461199,0.2554316435,0.4694574887,0.0175182340,,,
0.1406250000,2,0.5129134154,0.5856649550,0.0898075390,0.3229898170,,,
0.1425781250,2,0.7649766149,0.6393871089,0.7684976636,0.8299107496,,,
0.1445312500,2,0.2180511351,0.8596432649,0.1483660867,0.1665115349,,,
0.1464843750,2,0.3611585819,0.0921374985,0.8538685897,0.9069783224,,,
0.1484375000,2,0.5969340219,0.1961269137,0.1029027528,0.8045245227,,,
0.1503906250,2,0.0499008780,0.0974264622,0.5842647175,0.3397303273,,,
0.1523437500,2,0.5954238679,0.9031029753,0.1698406227,0.6387245483,,,
0.1542968750,2,0.9326017273,0.4038142664,0.8253482326,0.1627873755,,,
0.1562500000,2,0.8712227487,0.0618309802,0.3726967243,0.4451253370,,,
0.1582031250,2,0.6852292044,0.1147632850,0.5376503016,0.1462208915,,,
0.1601562500,2,0.8921249909,0.0863066129,0.7909538967,0.6211571102,,,
0.1621093750,2,0.7981687440,0.8388189233,0.1172924649,0.1913345626,,,
0.1640625000,2,0.3189117718,0.9359803812,0.6940958097,0.0361434845,,,
0.1660156250,2,0.5461656393,0.0729919914,0.3085543287,0.9829967283,,,
0.1679687500,2,0.7135640443,0.8634178529,0.0508666828,0.5103130431,,,
0.1699218750,2,0.6259520410,0.7013263162,0.1993125062,0.0300191126,,,
0.1718750000,2,0.3636565544,0.6933502334,0.1902173155,0.3889882183,,,
0.1738281250,2,0.0392293937,0.4553789329,0.9871238486,0.3470031086,,,
0.1757812500,2,0.6683370932,0.6941734469,0.8803110654,0.7196198201,,,
0.1777343750,2,0.3557324144,0.4117753741,0.7099557552,0.9401496889,,,
0.1796875000,2,0.4519558856,0.3309620759,0.7963344492,0.2998728864,,,
0.1816406250,2,0.9766512695,0.9687239919,0.4191189073,0.2354997334,,,
0.1835937500,2,0.9285292204,0.9664343141,0.8797372861,0.4664114930,,,
0.1855468750,2,0.0704731345,0.5200172788,0.2558905915,0.1531779014,,,
0.1875000000,3,0.9103577151,0.3051399530,0.3802959747,0.5608211916,,,
0.1894531250,3,0.7322697260,0.4646240273,0.7389562586,0.0070930065,,,
0.1914062500,3,0.9775205301,0.6706804007,0.2981214062,0.6064129225,,,
0.1933593750,3,0.3513319721,0.1147635186,0.1866387101,0.3831581555,,,
0.1953125000,3,0.2071030629,0.4649826710,0.2611368874,0.0434090609,,,
0.1972656250,3,0.8196081722,0.4112765016,0.9947107485,0.6513867872,,,
0.1992187500,3,0.9733258400,0.3824872016,0.4988888649,0.3183777165,,,
0.2011718750,3,0.5881601563,0.8593616697,0.3022438444,0.7995925019,,,
0.2031250000,3,0.1197004502,0.0933767378,0.9183180968,0.7042102139,,,
0.2050781250,3,0.5103556064,0.5311018426,0.5577965465,0.1012502138,,,
0.2070312500,3,0.2137417535,0.1784377997,0.0185600386,0.5753634071,,,
0.2089843750,3,0.8751701608,0.5748710451,0.8417926282,0.8197028155,,,
0.2109375000,3,0.1022837155,0.6268135523,0.7013708267,0.9962205945,,,
0.2128906250,3,0.2256511098,0.5796371773,0.6197344016,0.7943489363,,,
0.2148437500,3,0.8379743095,0.5485193282,0.2306215530,0.9106305945,,,
0.2167968750,3,0.5906426255,0.3640996115,0.5610837436,0.8107932284,,,
0.2187500000,3,0.0032579657,0.1254784390,0.4923886575,0.1380567863,,,
0.2207031250,3,0.5796410651,0.4244301743,0.4880758342,0.3453556513,,,
0.2226562500,3,0.1578681830,0.2975058199,0.4114988993,0.9910429649,,,
0.2246093750,3,0.6801350070,0.7340655336,0.5105615265,0.3494833119,,,
0.2265625000,3,0.3606155966,0.8103139903,0.7059087548,0.1461532058,,,
0.2285156250,3,0.3331521475,0.3714994539,0.4256252155,0.4936132992,,,
0.2304687500,3,0.4855763158,0.7642698493,0.4567739645,0.0738400100,,,
0.2324218750,3,0.6857705140,0.9990958001,0.7852868973,0.1356586595,,,
0.2343750000,3,0.0204300629,0.4337335974,0.3717347013,0.5596586859,,,
0.2363281250,3,0.7904259902,0.4814410254,0.1742401007,0.2649804230,,,
0.2382812500,3,0.4132921230,0.6775020990,0.9390176404,0.7180448563,,,
0.2402343750,3,0.4556477382,0.5093132297,0.5365688319,0.8605765116,,,
0.2421875000,3,0.3138149357,0.5904912353,0.5417710205,0.9607072009,,,
0.2441406250,3,0.8660169821,0.9988746298,0.9465961300,0.3528365504,,,
0.2460937500,3,0.0126764781,0.9974072040,0.9100059441,0.6579066119,,,
0.2480468750,3,0.7612893744,0.3337405734,0.1538414950,0.3822216671,,,
0.2500000000,4,0.3222398211,0.2723600003,0.1464531797,0.0567392251,,,
0.2519531250,4,0.0704166759,0.3662723931,0.1605273527,0.1368231662,,,
0.2539062500,4,0.2231628485,0.6844297640,0.3831995630,0.5801532618,,,
0.2558593750,4,0.1398879983,0.3131517000,0.2658558676,0.3751034609,,,
0.2578125000,4,0.5587351650,0.5879184052,0.1597614412,0.5401158298,,,
0.2597656250,4,0.6807701276,0.6947035883,0.3470928550,0.6191579264,,,
0.2617187500,4,0.3978711937,0.5450646314,0.4893422120,0.9736832939,,,
0.2636718750,4,0.5677280941,0.0743406375,0.5558431223,0.7824254800,,,
0.2656250000,4,0.0877346403,0.1697150311,0.3732336606,0.0817826446,,,
0.2675781250,4,0.2498704675,0.7783989236,0.8888188694,0.9619698252,,,
0.2695312500,4,0.7234041765,0.8732161885,0.2125916400,0.1915143377,,,
0.2714843750,4,0.2787337776,0.2255633872,0.7468874420,0.4455531018,,,
0.2734375000,4,0.5536213885,0.1002065176,0.1481359515,0.9731156004,,,
0.2753906250,4,0.2858332333,0.8052669964,0.9788724254,0.2036649669,,,
0.2773437500,4,0.4384922662,0.3010417784,0.2102164433,0.6556176359,,,
0.2792968750,4,0.9844025287,0.9336166591,0.3657510008,0.0092250702,,,
0.2812500000,4,0.4749177301,0.1029748281,0.4144281058,0.2568479199,,,
0.2832031250,4,0.1945731260,0.5911639100,0.5175690255,0.1839895314,,,
0.2851562500,4,0.6751070558,0.1218867330,0.5848218128,0.0144936540,,,
0.2871093750,4,0.5565265811,0.0706522940,0.9582538242,0.3164990707,,,
0.2890625000,4,0.6811653359,0.1241726757,0.7851694785,0.6322026786,,,
0.2910156250,4,0.4077125096,0.6859315163,0.5911462612,0.9816993955,,,
0.2929687500,4,0.6270270052,0.7934336257,0.2103379229,0.6305599436,,,
0.2949218750,4,0.1296151874,0.2248091483,0.1660298733,0.8864813389,,,
0.2968750000,4,0.1498718562,0.6674939501,0.8575848024,0.2908270911,,,
0.2988281250,4,0.8110699588,0.6136764991,0.9418290600,0.6408138282,,,
0.3007812500,4,0.1296923172,0.5607704790,0.7898748701,0.3631542830,,,
0.3027343750,4,0.4094840081,0.0529603250,0.3117963094,0.2116549816,,,
0.3046875000,4,0.1614231374,0.4032979626,0.5606228069,0.2658720037,,,
0.3066406250,4,0.0149710681,0.0650217922,0.8494730568,0.6742778460,,,
0.3085937500,4,0.1271567135,0.5275226356,0.5074276195,0.9832397639,,,
0.3105468750,4,0.4881261149,0.8504798019,0.0859022033,0.8070368627,,,
0.3125000000,5,0.5119356245,0.2817423891,0.6564834723,0.0156511902,,,
0.3144531250,5,0.9076033339,0.2805206021,0.8440965861,0.9010644406,,,
0.3164062500,5,0.1021260370,0.7548397928,0.3980913041,0.3931173608,,,
0.3183593750,5,0.2178466010,0.0395001653,0.7474224495,0.5333806190,,,
0.3203125000,5,0.3088591620,0.7502715727,0.8879149971,0.3440123843,,,
0.3222656250,5,0.1933700668,0.7365343696,0.7874066816,0.2029055802,,,
0.3242187500,5,0.3108512906,0.8355859024,0.0050644493,0.9401674101,,,
0.3261718750,5,0.2428486212,0.5387497959,0.8546116492,0.0782167329,,,
0.3281250000,5,0.3763068160,0.0019015423,0.3822169921,0.9936825447,,,
0.3300781250,5,0.0241590391,0.7704750157,0.1662301295,0.4280788542,,,
0.3320312500,5,0.6155288082,0.5881034718,0.7684135006,0.8153924667,,,
0.3339843750,5,0.4063954097,0.1133751869,0.3421241981,0.5066414350,,,
0.3359375000,5,0.2676465407,0.2839795137,0.2342771927,0.6782000735,,,
0.3378906250,5,0.3809404657,0.5214965504,0.5393902943,0.7820010034,,,
0.3398437500,5,0.4595372491,0.2101573874,0.1099242344,0.3346228362,,,
0.3417968750,5,0.3500187553,0.7776345888,0.3394453200,0.8747201562,,,
0.3437500000,5,0.8005180575,0.7069745648,0.0543363830,0.7170361001,,,
0.3457031250,5,0.0947343837,0.4419909262,0.5749388847,0.9356015073,,,
0.3476562500,5,0.8735375523,0.6509564363,0.3299763254,0.5437440500,,,
0.3496093750,5,0.0139895300,0.3465320331,0.4298201529,0.1615293233,,,
0.3515625000,5,0.3494095602,0.5630004159,0.7145421156,0.6519731758,,,
0.3535156250,5,0.6385047704,0.3351737387,0.0010750701,0.6467023685,,,
0.3554687500,5,0.7558491265,0.1303907561,0.0774761189,0.0099258577,,,
0.3574218750,5,0.3763215463,0.7626591513,0.3843176349,0.6999134321,,,
0.3593750000,5,0.9459182480,0.2822991519,0.8058737975,0.3925624937,,,
0.3613281250,5,0.6670272711,0.1997133561,0.0264408863,0.0088921678,,,
0.3632812500,5,0.0814156909,0.9809584408,0.5119782537,0.2698570353,,,
0.3652343750,5,0.6214387356,0.7788854365,0.6466132149,0.4149384324,,,
0.3671875000,5,0.3295762329,0.7474032631,0.7233265294,0.5952670325,,,
0.3691406250,5,0.3085299081,0.1130057727,0.2304738835,0.2423203441,,,
0.3710937500,5,0.2614920423,0.5484677095,0.3593721886,0.1766454829,,,
0.3730468750,5,0.0333613215,0.5202360961,0.3712536844,0.1457529799,,,
0.3750000000,6,0.2711958543,0.7373103106,0.4145633026,0.9454343871,,,
0.3769531250,6,0.7562512259,0.0294363098,0.1426842657,0.5116447248,,,
0.3789062500,6,0.2743272211,0.6717776491,0.3247361090,0.8491178108,,,
0.3808593750,6,0.4900445505,0.4427132935,0.1083285240,0.1612431379,,,
0.3828125000,6,0.5272925803,0.0822945165,0.7025269971,0.0997931852,,,
0.3847656250,6,0.3066302766,0.9591908171,0.4371041826,0.0838858041,,,
0.3867187500,6,0.7285174418,0.5252626843,0.5971537724,0.7731697413,,,
0.3886718750,6,0.1672329274,0.8309123635,0.8300182682,0.9627268005,,,
0.3906250000,6,0.1822723579,0.6139670927,0.4232092910,0.5834038947,,,
0.3925781250,6,0.0819439858,0.4712245537,0.0878674437,0.3055652413,,,
0.3945312500,6,0.1208156396,0.8608716517,0.6491940646,0.9393811452,,,
0.3964843750,6,0.3637260925,0.8890715158,0.4209694595,0.7516340464,,,
0.3984375000,6,0.2084854927,0.7729421209,0.6781614600,0.1995030013,,,
0.4003906250,6,0.2622310307,0.9518046877,0.7421959753,0.4414433844,,,
0.4023437500,6,0.1057137519,0.3048298301,0.7128665391,0.2554091765,,,
0.4042968750,6,0.6699885647,0.2000759561,0.3243111507,0.8554089530,,,
0.4062500000,6,0.5724080147,0.9142604824,0.2352116713,0.4342926862,,,
0.4082031250,6,0.9874490481,0.4919558025,0.1827386210,0.9303498773,,,
0.4101562500,6,0.2793797320,0.5709865743,0.0885345663,0.6548899561,,,
0.4121093750,6,0.0594072095,0.7210385038,0.5715629426,0.9207222888,,,
0.4140625000,6,0.4433972202,0.1531122657,0.0554876882,0.0202729718,,,
0.4160156250,6,0.6586631446,0.9136778524,0.7935795013,0.9037989336,,,
0.4179687500,6,0.8600455530,0.1702952585,0.0221925681,0.4872820075,,,
0.4199218750,6,0.8281408537,0.7379220470,0.7302297549,0.5690351522,,,
0.4218750000,6,0.8492151820,0.9434478998,0.7475658453,0.5055588309,,,
0.4238281250,6,0.8764435889,0.6749046776,0.4382627660,0.1264068638,,,
0.4257812500,6,0.0890310449,0.2852944639,0.5938582667,0.9126903638,,,
0.4277343750,6,0.4349094455,0.3348919665,0.4768854829,0.0436023842,,,
0.4296875000,6,0.1853784721,0.1555240133,0.1085044234,0.5617910868,,,
0.4316406250,6,0.6280997160,0.9267301625,0.7552123212,0.4189258032,,,
0.4335937500,6,0.1129479122,0.7337364382,0.2948974348,0.1092160507,,,
0.4355468750,6,0.7800526726,0.7968367354,0.2643386708,0.0650400312,,,
0.4375000000,7,0.7556289285,0.8312957047,0.0274145626,0.2872341555,,,
0.4394531250,7,0.6813511865,0.1840991345,0.1203293763,0.9993061700,,,
0.4414062500,7,0.5744922631,0.2067680703,0.6372034138,0.3432741717,,,
0.4433593750,7,0.3342743898,0.6814961813,0.3930504988,0.2910125437,,,
0.4453125000,7,0.8448010422,0.7151589338,0.1709126856,0.1730857086,,,
0.4472656250,7,0.3391507515,0.5593426197,0.6125557562,0.5262850923,,,
0.4492187500,7,0.6207966937,0.4295897181,0.8461693232,0.2992522756,,,
0.4511718750,7,0.5929400700,0.3535312691,0.1384564445,0.3093649398,,,
0.4531250000,7,0.9574117258,0.5362221601,0.5878624022,0.7609138230,,,
0.4550781250,7,0.6169657044,0.9478328971,0.5406309133,0.7960202976,,,
0.4570312500,7,0.3718764859,0.2409631743,0.7421573552,0.1452300784,,,
0.4589843750,7,0.2172947293,0.8063620711,0.0169844786,0.8530098824,,,
0.4609375000,7,0.6405593818,0.0886849870,0.7393631812,0.5608159048,,,
0.4628906250,7,0.3301244162,0.3045092777,0.5553955727,0.7844202144,,,
0.4648437500,7,0.6105497093,0.8816661765,0.3496713438,0.4341148173,,,
0.4667968750,7,0.4785594458,0.6741829435,0.9760886808,0.0460658004,,,
0.4687500000,7,0.2685640310,0.1549685842,0.8030092455,0.7840434185,,,
0.4707031250,7,0.9920860729,0.3369952703,0.3230988467,0.8000948760,,,
0.4726562500,7,0.7781536586,0.5393682488,0.3545355701,0.6898032343,,,
0.4746093750,7,0.9874543541,0.8163192633,0.7358159104,0.0579032118,,,
0.4765625000,7,0.1606484395,0.3294683367,0.8177729929,0.9931933905,,,
0.4785156250,7,0.8741030842,0.4414024977,0.7948677770,0.8831974105,,,
0.4804687500,7,0.7275397889,0.3062153764,0.7400966296,0.9561227595,,,
0.4824218750,7,0.0471009226,0.3693181614,0.4702358427,0.2074983672,,,
0.4843750000,7,0.3053766720,0.7960140088,0.9454048728,0.2308713167,,,
0.4863281250,7,0.4626122559,0.6761480647,0.3643806616,0.9231073433,,,
0.4882812500,7,0.1919385788,0.3600851789,0.1283902042,0.2547208571,,,
0.4902343750,7,0.6203144770,0.6349814320,0.1735018592,0.6862301833,,,
0.4921875000,7,0.0930758305,0.1574131846,0.5894391029,0.6079542683,,,
0.4941406250,7,0.1409924102,0.4524341966,0.3264837877,0.9015972605,,,
0.4960937500,7,0.4256628547,0.7216357137,0.4641470613,0.8467904634,,,
0.4980468750,7,0.9136947806,0.9305806581,0.2050935281,0.2011821440,,,
0.5000000000,8,0.6763997232,0.8047656761,0.4725015503,0.3136168602,,,
0.5019531250,8,0.9566771863,0.2434736437,0.7620979361,0.3592691894,,,
0.5039062500,8,0.0310857766,0.6088502966,0.1935235944,0.2967968208,,,
0.5058593750,8,0.6916513743,0.9872427711,0.9137855817,0.4958374165,,,
0.5078125000,8,0.2188973930,0.8648707801,0.3154253981,0.4416629027,,,
0.5097656250,8,0.7793014033,0.1536630907,0.4635532626,0.8141289146,,,
0.5117187500,8,0.3518483583,0.5314552551,0.2141119696,0.9725757653,,,
0.5136718750,8,0.9252917892,0.5105580387,0.8827089283,0.4798642125,,,
0.5156250000,8,0.9833136520,0.9706283531,0.7272218857,0.6869332488,,,
0.5175781250,8,0.4433103458,0.2854198834,0.7223878577,0.5289349968,,,
0.5195312500,8,0.9648530781,0.7968621927,0.9810421665,0.7853239239,,,
0.5214843750,8,0.2105386283,0.1607735776,0.1261192143,0.6474895792,,,
0.5234375000,8,0.8588351333,0.2345801315,0.4512332520,0.5602800129,,,
0.5253906250,8,0.1792554802,0.4704879958,0.3693762361,0.0024663457,,,
0.5273437500,8,0.1747301598,0.5323132339,0.5316330378,0.1370742149,,,
0.5292968750,8,0.5075852461,0.5549905950,0.1693090932,0.2722331588,,,
0.5312500000,8,0.6256636949,0.0662830796,0.1278698382,0.1004613198,,,
0.5332031250,8,0.7487605663,0.7978154977,0.6807751060,0.5870047279,,,
0.5351562500,8,0.5033255348,0.0678251344,0.8247700266,0.0348402278,,,
0.5371093750,8,0.7550483036,0.7849070791,0.0114252714,0.2912984174,,,
0.5390625000,8,0.6062836947,0.1010782735,0.3820414457,0.6992224075,,,
0.5410156250,8,0.5153142291,0.6330895138,0.7609551994,0.2814032317,,,
0.5429687500,8,0.8236581367,0.5634968271,0.8699487241,0.7068289944,,,
0.5449218750,8,0.9420737431,0.0905826252,0.7633925076,0.1889573936,,,
0.5468750000,8,0.4342100325,0.6641730806,0.3805186013,0.5405169851,,,
0.5488281250,8,0.6558729701,0.8465795210,0.5328507272,0.8682296458,,,
0.5507812500,8,0.1377653212,0.3679061767,0.4630858477,0.3971538963,,,
0.5527343750,8,0.3989049022,0.5338541733,0.3907739241,0.1594827131,,,
0.5546875000,8,0.6111041454,0.3477681694,0.4158552410,0.4514245144,,,
0.5566406250,8,0.4545774704,0.0774343594,0.8622389033,0.2920969268,,,
0.5585937500,8,0.8874135290,0.1209936484,0.2823406118,0.6311044400,,,
0.5605468750,8,0.2349680497,0.2755913946,0.2035461206,0.7413401320,,,
0.5625000000,9,0.1972855867,0.2999509042,0.1061392007,0.3244280743,,,
0.5644531250,9,0.1943430169,0.0650441553,0.9866956521,0.0383472247,,,
0.5664062500,9,0.3150477246,0.0202402689,0.9091032266,0.7511771135,,,
0.5683593750,9,0.2806347718,0.0606296037,0.5000918366,0.0594387662,,,
0.5703125000,9,0.7676843095,0.0869044447,0.8132232211,0.3482461092,,,
0.5722656250,9,0.7995439367,0.6529182072,0.6046909518,0.9319283383,,,
0.5742187500,9,0.0870202456,0.4790799008,0.3071443974,0.9402125657,,,
0.5761718750,9,0.3162364427,0.5914357088,0.4661316781,0.5451108965,,,
0.5781250000,9,0.7010674418,0.7945038017,0.2390129962,0.3477152325,,,
0.5800781250,9,0.1947397036,0.5413340654,0.3201177218,0.5407370804,,,
0.5820312500,9,0.8328640803,0.9920526361,0.3743750853,0.3192371463,,,
0.5839843750,9,0.9052840879,0.2193654007,0.4244030279,0.5398679611,,,
0.5859375000,9,0.1616001481,0.9718400075,0.3243954531,0.9626357672,,,
0.5878906250,9,0.9504057937,0.4048577053,0.9729560439,0.3601961287,,,
0.5898437500,9,0.0300064611,0.5180021916,0.3501458105,0.3080020223,,,
0.5917968750,9,0.6596558122,0.3911213661,0.6267064742,0.8381733592,,,
0.5937500000,9,0.7238059782,0.7311176283,0.4292431986,0.5826185821,,,
0.5957031250,9,0.9202213555,0.9143543798,0.4830455480,0.7501451245,,,
0.5976562500,9,0.2716151509,0.3599142719,0.0636586486,0.8060805497,,,
0.5996093750,9,0.2762552623,0.7671216675,0.2657802773,0.4833180015,,,
0.6015625000,9,0.8884833963,0.6704205323,0.2255078792,0.0481695530,,,
0.6035156250,9,0.6795009119,0.3590836234,0.0804334013,0.8779915341,,,
0.6054687500,9,0.9768890734,0.8913888028,0.6375375940,0.2201469131,,,
0.6074218750,9,0.3767605892,0.9825549717,0.4366183716,0.1487666287,,,
0.6093750000,9,0.3759939063,0.4018956947,0.4662037152,0.5325658764,,,
0.6113281250,9,0.9764568252,0.6410500994,0.9505981330,0.4267429616,,,
0.6132812500,9,0.4717960283,0.0641434256,0.8767791053,0.1960623644,,,
0.6152343750,9,0.9418178981,0.0616493451,0.9285683327,0.0352241963,,,
0.6171875000,9,0.1084330047,0.0991580372,0.5713762976,0.5016443327,,,
0.6191406250,9,0.8066923548,0.6314367380,0.6012040998,0.5458180676,,,
0.6210937500,9,0.1615104144,0.2011672310,0.5555002745,0.6284950413,,,
0.6230468750,9,0.7276043738,0.1827108136,0.8338131376,0.3883147545,,,
0.6250000000,10,0.1944731961,0.4268959565,0.4477589943,0.8994089330,,,
0.6269531250,10,0.0547521922,0.3562535723,0.9841976350,0.5410477258,,,
0.6289062500,10,0.8582878269,0.8550072007,0.7028079650,0.8752094619,,,
0.6308593750,10,0.5798499850,0.1041692668,0.7443351815,0.6478584115,,,
0.6328125000,10,0.6469700811,0.8080954633,0.7703724296,0.9867473561,,,
0.6347656250,10,0.0172391227,0.6664102199,0.1485918507,0.9527045682,,,
0.6367187500,10,0.6046016673,0.2683339873,0.5193479839,0.6629877356,,,
0.6386718750,10,0.6630974207,0.2913460375,0.6654274506,0.3632108872,,,
0.6406250000,10,0.9921777030,0.6758803106,0.8390836352,0.8765555636,,,
0.6425781250,10,0.1588407005,0.5766103226,0.8337919305,0.1910167106,,,
0.6445312500,10,0.2568764952,0.2419348585,0.6083639048,0.1159380712,,,
0.6464843750,10,0.8318267881,0.0868549161,0.7802492054,0.0466908372,,,
0.6484375000,10,0.7597952797,0.3388188053,0.0771862220,0.5456002909,,,
0.6503906250,10,0.1601368194,0.7386710965,0.6039251764,0.4388306185,,,
0.6523437500,10,0.2407752846,0.6457893855,0.9967206691,0.1763242260,,,
0.6542968750,10,0.8297953680,0.1361860558,0.8010149540,0.6337104803,,,
0.6562500000,10,0.3127207926,0.1680486589,0.1374521074,0.6239346305,,,
0.6582031250,10,0.9277359054,0.6660244581,0.2261444884,0.6077783490,,,
0.6601562500,10,0.7976024142,0.4315694224,0.9784031389,0.9729801253,,,
0.6621093750,10,0.0638243533,0.0041289441,0.9833295215,0.9228688856,,,
0.6640625000,10,0.2276029426,0.6578602651,0.0851616929,0.5490504063,,,
0.6660156250,10,0.2861677434,0.5270892901,0.6276651362,0.5376690421,,,
0.6679687500,10,0.4355795169,0.2871391575,0.2338773983,0.1401777440,,,
0.6699218750,10,0.8471104680,0.6963547631,0.3188396783,0.4683632699,,,
0.6718750000,10,0.0607887292,0.6309358068,0.0027547576,0.0103766422,,,
0.6738281250,10,0.1083409577,0.3031365611,0.6101220464,0.7701854943,,,
0.6757812500,10,0.4732828222,0.5291439467,0.5193006217,0.4384625806,,,
0.6777343750,10,0.6222228338,0.0893269847,0.3688203003,0.1861129669,,,
0.6796875000,10,0.8802871010,0.3613733619,0.2898048931,0.4133163765,,,
0.6816406250,10,0.9267967937,0.8129800695,0.9839600972,0.6201092405,,,
0.6835937500,10,0.5559528864,0.4062193097,0.0563203092,0.5001547702,,,
0.6855468750,10,0.2044685499,0.1795960935,0.8523031031,0.9847434862,,,
0.6875000000,11,0.0784009644,0.6836394810,0.6274203917,0.4881066338,,,
0.6894531250,11,0.3407377868,0.3099182141,0.6929882665,0.1237498126,,,
0.6914062500,11,0.9007684225,0.5315867350,0.9325398253,0.7167250745,,,
0.6933593750,11,0.5165312963,0.8375698172,0.1084014126,0.8481899831,,,
0.6953125000,11,0.9964443620,0.8501941378,0.0920397372,0.7155693353,,,
0.6972656250,11,0.6328740777,0.5617240069,0.9912082369,0.9193376347,,,
0.6992187500,11,0.2869289957,0.5322286948,0.4881999965,0.4795752610,,,
0.7011718750,11,0.2124373973,0.6156288923,0.0334879847,0.4174421509,,,
0.7031250000,11,0.6179420648,0.7304156674,0.0759528566,0.1124184104,,,
0.7050781250,11,0.7531197949,0.7200253361,0.9897519229,0.0137709565,,,
0.7070312500,11,0.0385236421,0.1968945144,0.4592261247,0.1423523980,,,
0.7089843750,11,0.2447743223,0.6506311602,0.7485713274,0.8283806050,,,
0.7109375000,11,0.8529551430,0.8114382515,0.7419051584,0.3959409271,,,
0.7128906250,11,0.2771119650,0.6267369941,0.6037430516,0.3159787911,,,
0.7148437500,11,0.9243591998,0.6598331563,0.6533979888,0.4096600539,,,
0.7167968750,11,0.0270385300,0.3703938806,0.0697868410,0.5751482339,,,
0.7187500000,11,0.7677383695,0.2602472364,0.1120821664,0.0780830411,,,
0.7207031250,11,0.2543649771,0.5469922433,0.4986691298,0.6047274992,,,
0.7226562500,11,0.6116690573,0.0325957311,0.2071530670,0.3693116717,,,
0.7246093750,11,0.8265910076,0.4834759349,0.1713595786,0.4595270108,,,
0.7265625000,11,0.7198660977,0.5621302249,0.0014308603,0.3017008558,,,
0.7285156250,11,0.2617117919,0.9983706407,0.4776675492,0.0921096266,,,
0.7304687500,11,0.2080377275,0.6650420055,0.4159687331,0.4248401790,,,
0.7324218750,11,0.2829387651,0.3170511909,0.2074427814,0.4237463006,,,
0.7343750000,11,0.5781128455,0.4720092453,0.3021140955,0.2825995709,,,
0.7363281250,11,0.5154749942,0.9188121362,0.5063956867,0.3367774612,,,
0.7382812500,11,0.2113698905,0.9259507484,0.2807034408,0.8622572811,,,
0.7402343750,11,0.5664970649,0.1969730086,0.4011160028,0.5439391546,,,
0.7421875000,11,0.0578974672,0.0638162154,0.3510985242,0.9707045632,,,
0.7441406250,11,0.5858436385,0.6895534191,0.2097307630,0.6278523752,,,
0.7460937500,11,0.2035684416,0.1300707289,0.6968755925,0.5178964504,,,
0.7480468750,11,0.3851264245,0.3592038583,0.3735391865,0.8318422167,,,
0.7500000000,12,0.7665047934,0.7503305546,0.6158754993,0.5747460476,,,
0.7519531250,12,0.9030572083,0.2165287721,0.5543704287,0.2861471907,,,
0.7539062500,12,0.0077283385,0.1179845084,0.5902132953,0.2436216003,,,
0.7558593750,12,0.0926400716,0.9727872340,0.9000350880,0.1288051950,,,
0.7578125000,12,0.0662797864,0.1169747631,0.2230410669,0.2546901365,,,
0.7597656250,12,0.2889689158,0.9611034815,0.9612255606,0.2253054208,,,
0.7617187500,12,0.1289640842,0.7799490259,0.8622699045,0.5741513700,,,
0.7636718750,12,0.3709044969,0.7641929258,0.3627918179,0.8635964433,,,
0.7656250000,12,0.9260845066,0.1651708318,0.2286019705,0.0793960765,,,
0.7675781250,12,0.1851842627,0.8181583141,0.1485520224,0.8559151671,,,
0.7695312500,12,0.1875949760,0.9757885458,0.2440546737,0.2311336969,,,
0.7714843750,12,0.9470010693,0.7411543096,0.4937819864,0.6287072878,,,
0.7734375000,12,0.1387785161,0.4112882451,0.7689797082,0.6207134344,,,
0.7753906250,12,0.0153546431,0.4624165792,0.1165735193,0.2278321565,,,
0.7773437500,12,0.5306730801,0.1552840171,0.7779521106,0.9702442910,,,
0.7792968750,12,0.8653404773,0.3751282236,0.7489313295,0.6558729575,,,
0.7812500000,12,0.8039144655,0.0881989449,0.2518980857,0.1593257333,,,
0.7832031250,12,0.0428228967,0.7702111416,0.8788853355,0.6858059864,,,
0.7851562500,12,0.4672362148,0.6286326505,0.3500230527,0.7026219601,,,
0.7871093750,12,0.2177176396,0.7387058316,0.1254553851,0.7004041150,,,
0.7890625000,12,0.1125922911,0.6797335059,0.5613949234,0.9954856986,,,
0.7910156250,12,0.5454965895,0.0865989930,0.4324892780,0.1784001191,,,
0.7929687500,12,0.4537826073,0.9442465885,0.5176530352,0.5169206751,,,
0.7949218750,12,0.7851137689,0.6802884738,0.8853559981,0.7358318840,,,
0.7968750000,12,0.4389547969,0.9516828565,0.5287282527,0.3813848952,,,
0.7988281250,12,0.6922594546,0.1052123872,0.0196086699,0.9175073309,,,
0.8007812500,12,0.8616053995,0.1757467589,0.6528264014,0.7636708885,,,
0.8027343750,12,0.4792033050,0.2002878380,0.3009913249,0.3269305343,,,
0.8046875000,12,0.2355386422,0.1653605977,0.2399241051,0.3793344891,,,
0.8066406250,12,0.6248597160,0.1788216573,0.5580244509,0.2946657008,,,
0.8085937500,12,0.1093157013,0.2588272966,0.2280878876,0.4140334853,,,
0.8105468750,12,0.3483706324,0.5188506099,0.7527168849,0.4285434035,,,
0.8125000000,13,0.1769313635,0.3245820974,0.7194439915,0.2249910766,,,
0.8144531250,13,0.3293704623,0.1912253362,0.8583436431,0.4724387869,,,
0.8164062500,13,0.2032352423,0.1543983363,0.7885611809,0.1608559836,,,
0.8183593750,13,0.7699665327,0.3795731061,0.0612731068,0.6742706213,,,
0.8203125000,13,0.7263327611,0.2577661395,0.3844981736,0.3802361879,,,
0.8222656250,13,0.6897367081,0.8426992078,0.2982342350,0.2611799547,,,
0.8242187500,13,0.9617639242,0.2616809849,0.6782998436,0.2722187927,,,
0.8261718750,13,0.4782785552,0.1880057435,0.2999009769,0.6914059557,,,
0.8281250000,13,0.1313457286,0.3286565370,0.1481244201,0.0923558667,,,
0.8300781250,13,0.0187584634,0.0551461291,0.7074702058,0.2072948308,,,
0.8320312500,13,0.1130294451,0.9174058312,0.4866327019,0.3031305007,,,
0.8339843750,13,0.1113967083,0.5861583420,0.6614141641,0.3544869197,,,
0.8359375000,13,0.4442661894,0.5807773881,0.2224289910,0.2482928541,,,
0.8378906250,13,0.8953204488,0.8358486388,0.8711256394,0.6724949698,,,
0.8398437500,13,0.7560926867,0.1634919476,0.9422604463,0.5437385500,,,
0.8417968750,13,0.1511213700,0.9113974518,0.4074329657,0.8596272122,,,
0.8437500000,13,0.5383484927,0.1988860362,0.6681278232,0.2303240295,,,
0.8457031250,13,0.0307741861,0.2516360639,0.6607350747,0.2514221696,,,
0.8476562500,13,0.4536425965,0.1241104342,0.1705514581,0.8794634989,,,
0.8496093750,13,0.5732928868,0.0101685466,0.9519273194,0.9588955720,,,
0.8515625000,13,0.4539631931,0.8095754683,0.8358284519,0.1924771625,,,
0.8535156250,13,0.6803582339,0.8367117322,0.4830462760,0.9109904910,,,
0.8554687500,13,0.0462216635,0.7057860151,0.1028911772,0.7254233544,,,
0.8574218750,13,0.6314819392,0.8910778207,0.2785815415,0.0544415661,,,
0.8593750000,13,0.1193085338,0.0272705422,0.0428143437,0.5813528269,,,
0.8613281250,13,0.8704682223,0.3005535984,0.5562523154,0.5741396695,,,
0.8632812500,13,0.0398545561,0.5408179124,0.5148488211,0.2499685099,,,
0.8652343750,13,0.6864196691,0.3652670782,0.9612184060,0.1131284502,,,
0.8671875000,13,0.0403523685,0.1405350519,0.0861795901,0.2815360376,,,
0.8691406250,13,0.2199082605,0.0148097954,0.3062253075,0.9908010766,,,
0.8710937500,13,0.0084982156,0.0579703439,0.6562765392,0.7715344438,,,
0.8730468750,13,0.6190975881,0.4561444472,0.5181068922,0.7778433564,,,
0.8750000000,14,0.5212376735,0.6664295627,0.5746394556,0.2428571526,,,
0.8769531250,14,0.5627617498,0.3046996496,0.6069146837,0.3453627466,,,
0.8789062500,14,0.4947980037,0.6332742895,0.4068620605,0.0849809693,,,
0.8808593750,14,0.7590202307,0.0682292136,0.4211742820,0.8248511760,,,
0.8828125000,14,0.3037629682,0.7293513005,0.8522786042,0.2814166332,,,
0.8847656250,14,0.9862148750,0.7638762845,0.1969072004,0.5482799083,,,
0.8867187500,14,0.7364261907,0.1191679910,0.5987221354,0.8972093826,,,
0.8886718750,14,0.1784748721,0.7666318330,0.6728250815,0.9696334880,,,
0.8906250000,14,0.7460516240,0.8721462623,0.1247960068,0.8064816163,,,
0.8925781250,14,0.9330286370,0.0476143404,0.3015477394,0.6306992243,,,
0.8945312500,14,0.0863117378,0.0853318386,0.3359082588,0.6679956869,,,
0.8964843750,14,0.5279814678,0.5381464644,0.6806913847,0.5235972200,,,
0.8984375000,14,0.6598427307,0.7132474508,0.1479082655,0.8365733332,,,
0.9003906250,14,0.8852328388,0.8996527686,0.8400324858,0.7130994289,,,
0.9023437500,14,0.2081739795,0.3459051880,0.4528730712,0.6876851276,,,
0.9042968750,14,0.8781749015,0.2463519466,0.1017100492,0.8031142955,,,
0.9062500000,14,0.9458328011,0.2998914123,0.4221505802,0.9659361837,,,
0.9082031250,14,0.7443033247,0.9697267280,0.8816032202,0.1533509472,,,
0.9101562500,14,0.7784754445,0.3157536304,0.1182127006,0.8704233745,,,
0.9121093750,14,0.1651915689,0.4544141327,0.0299831689,0.3060821472,,,
0.9140625000,14,0.1574043112,0.9629071802,0.8204591786,0.9088034502,,,
0.9160156250,14,0.2043404158,0.4433984749,0.9948367942,0.3722312592,,,
0.9179687500,14,0.0767171453,0.0806413405,0.9276755871,0.1669145010,,,
0.9199218750,14,0.7133501403,0.8013603522,0.2260669912,0.1440969030,,,
0.9218750000,14,0.4396649273,0.0839997192,0.0330432951,0.7692565168,,,
0.9238281250,14,0.6205079819,0.5328143137,0.6973908741,0.9563950049,,,
0.9257812500,14,0.4457448709,0.8158797307,0.3526505248,0.0276290653,,,
0.9277343750,14,0.8868164991,0.1345558451,0.8699108877,0.0380047457,,,
0.9296875000,14,0.6003681603,0.2366538311,0.9874642789,0.5707611477,,,
0.9316406250,14,0.2517577526,0.7048261664,0.2634436081,0.0109064891,,,
0.9335937500,14,0.3175877645,0.8209793579,0.5770750397,0.6108112864,,,
0.9355468750,14,0.3158040398,0.6740426968,0.8267176331,0.7933089647,,,
0.9375000000,15,0.8580751859,0.0618426756,0.9113232589,0.6520495487,,,
0.9394531250,15,0.5250829172,0.3998644880,0.5560903247,0.7711881399,,,
0.9414062500,15,0.5332694037,0.9715071949,0.7876948966,0.1754409007,,,
0.9433593750,15,0.0582631729,0.2142514372,0.9724584224,0.0020859987,,,
0.9453125000,15,0.3828886666,0.5069167505,0.3942452371,0.5716384107,,,
0.9472656250,15,0.4114292793,0.7824633722,0.3285698858,0.8519835621,,,
0.9492187500,15,0.2988905688,0.9977925988,0.1576946084,0.4193001224,,,
0.9511718750,15,0.8704841791,0.4794125268,0.7713339857,0.0201860734,,,
0.9531250000,15,0.7324118295,0.3807834752,0.0662971225,0.6770728915,,,
0.9550781250,15,0.9471905970,0.6182962686,0.0469783766,0.4074041860,,,
0.9570312500,15,0.6043042401,0.3188289970,0.9750618711,0.9299045859,,,
0.9589843750,15,0.1959199586,0.6777113322,0.2439321307,0.0773717526,,,
0.9609375000,15,0.3121581762,0.5450196147,0.5085086576,0.3174910164,,,
0.9628906250,15,0.3273111938,0.1441019520,0.1746006501,0.7811387395,,,
0.9648437500,15,0.6102046880,0.2866981188,0.7576398351,0.1325752612,,,
0.9667968750,15,0.9354932148,0.8360832015,0.5171340469,0.0216786792,,,
0.9687500000,15,0.1114631898,0.2892134688,0.3454642950,0.3692472922,,,
0.9707031250,15,0.1568091316,0.7450244189,0.0268464650,0.6535154697,,,
0.9726562500,15,0.0629260843,0.1349408461,0.1729863004,0.7875255826,,,
0.9746093750,15,0.3271052937,0.8124742990,0.2334878547,0.0781244815,,,
0.9765625000,15,0.6327520898,0.7584695115,0.8138853649,0.0700201062,,,
0.9785156250,15,0.8092121384,0.1490280323,0.5048914123,0.9895872215,,,
0.9804687500,15,0.9145376044,0.5512966472,0.2760404069,0.0217393090,,,
0.9824218750,15,0.1180155440,0.4549700434,0.5236189184,0.1764994713,,,
0.9843750000,15,0.7453389496,0.5725152339,0.4254854978,0.2691361934,,,
0.9863281250,15,0.6467263494,0.6414369023,0.1043091384,0.9273617973,,,
0.9882812500,15,0.9153527243,0.8513148336,0.3311927458,0.6824034851,,,
0.9902343750,15,0.0194708381,0.0674653403,0.8694308344,0.9332832231,,,
0.9921875000,15,0.1248086568,0.8173421849,0.9612177594,0.1365777107,,,
0.9941406250,15,0.5449603016,0.6954129515,0.1951615422,0.7727063983,,,
0.9960937500,15,0.4224285707,0.0298362460,0.2151609964,0.8061901687,,,
0.9980468750,15,0.2880625592,0.6830242618,0.0302601734,0.1547611894,,,
1.0000000000,16,0.8241421392,0.2142292992,0.8605576437,0.1170161015,,,
1.0019531250,16,0.3991965316,0.0222175824,0.7602672467,0.7337606270,,,
1.0039062500,16,0.4580624688,0.9054182216,0.3313261268,0.4025827264,,,
1.0058593750,16,0.2391081944,0.3708318972,0.7285712466,0.2905974311,,,
1.0078125000,16,0.2205765238,0.1025496840,0.2023778772,0.4384936078,,,
1.0097656250,16,0.6139874654,0.1744638227,0.8426884937,0.5378507441,,,
1.0117187500,16,0.0323601461,0.8147440986,0.4612028955,0.0975790804,,,
1.0136718750,16,0.7253639984,0.5839437977,0.5887072720,0.5591709528,,,
1.0156250000,16,0.3813019989,0.7010710887,0.7387972288,0.5593453159,,,
1.0175781250,16,0.9245249217,0.2809231912,0.4312584372,0.7355646559,,,
1.0195312500,16,0.1018299705,0.5340095470,0.2393487734,0.1200083490,,,
1.0214843750,16,0.3713584291,0.1059226594,0.9897423300,0.9441015602,,,
1.0234375000,16,0.8075364931,0.7046594375,0.7756446882,0.5866782079,,,
1.0253906250,16,0.8847205210,0.3823981488,0.0909141493,0.2031186994,,,
1.0273437500,16,0.7453874343,0.9493306945,0.4512861632,0.2943075136,,,
1.0292968750,16,0.6816875748,0.3329205192,0.1870172061,0.7267590275,,,
1.0312500000,16,0.1154824006,0.9343100619,0.6796827251,0.4950557379,,,
1.0332031250,16,0.5187487695,0.3590338386,0.0414335800,0.6506886343,,,
1.0351562500,16,0.9193308563,0.8132641159,0.4093413774,0.2631182510,,,
1.0371093750,16,0.8600668979,0.9089558828,0.8030813786,0.7403852756,,,
1.0390625000,16,0.6999516385,0.4946305184,0.6167903235,0.4914409732,,,
1.0410156250,16,0.7286446765,0.7271237916,0.9389968114,0.3325670832,,,
1.0429687500,16,0.4105997430,0.9145501384,0.2368064667,0.7632841871,,,
1.0449218750,16,0.0614191683,0.0446762366,0.5465422536,0.6050714697,,,
1.0468750000,16,0.6499237726,0.4204925022,0.4321349910,0.9604644312,,,
1.0488281250,16,0.9770884204,0.0829142865,0.3805511834,0.3391923259,,,
1.0507812500,16,0.2198471259,0.1127164303,0.0002495502,0.9457965919,,,
1.0527343750,16,0.5258086300,0.1006327933,0.6096437909,0.7991447283,,,
1.0546875000,16,0.4345721987,0.7148120913,0.6067004125,0.9717863095,,,
1.0566406250,16,0.5959731226,0.7158207593,0.6132395843,0.1323569980,,,
1.0585937500,16,0.6315783423,0.0745167867,0.0358726096,0.1729245444,,,
1.0605468750,16,0.4593574191,0.6503184084,0.4923129068,0.1980942178,,,
1 Time:512Hz Epoch Noise 1 Noise 2 Noise 3 Noise 4 Event Id Event Date Event Duration
2 0.0000000000 0 0.1276509815 0.2788001627 0.9800111165 0.8812423225
3 0.0019531250 0 0.3085663570 0.2317169255 0.1059675417 0.4711892216
4 0.0039062500 0 0.7789645349 0.6270744407 0.0989787877 0.6273901062
5 0.0058593750 0 0.2544820041 0.0206462047 0.2667732637 0.4001024703
6 0.0078125000 0 0.2577170827 0.8932497504 0.0936164563 0.3030632613
7 0.0097656250 0 0.8306098606 0.1907459770 0.3106222898 0.9361628154
8 0.0117187500 0 0.6003265893 0.4503573675 0.3441934220 0.3818552531
9 0.0136718750 0 0.1555515428 0.0089006005 0.5513935322 0.5262577983
10 0.0156250000 0 0.2765844858 0.3741191584 0.7100992661 0.8446825272
11 0.0175781250 0 0.1800983415 0.9476220037 0.1737488913 0.4065236386
12 0.0195312500 0 0.7171743014 0.0784789107 0.7459395295 0.4624227872
13 0.0214843750 0 0.0676116813 0.6932677082 0.6146815275 0.8067630604
14 0.0234375000 0 0.0200838614 0.3800698228 0.8537565614 0.9172393801
15 0.0253906250 0 0.3490915159 0.0946921902 0.0582459073 0.7552404082
16 0.0273437500 0 0.9225666784 0.5115203685 0.8892426926 0.1770821628
17 0.0292968750 0 0.4700529492 0.4034908635 0.4664971696 0.0102199195
18 0.0312500000 0 0.1439906447 0.1765625917 0.0070374508 0.0092898624
19 0.0332031250 0 0.8735866135 0.9694052222 0.4945583295 0.6702349838
20 0.0351562500 0 0.9596816355 0.4774389013 0.8643378734 0.2293010280
21 0.0371093750 0 0.9890093571 0.5106695876 0.4771499431 0.9426534649
22 0.0390625000 0 0.1608183412 0.4422527624 0.8963911207 0.4273886823
23 0.0410156250 0 0.7605574597 0.8471352365 0.5397317070 0.2859543816
24 0.0429687500 0 0.7069561521 0.6101486075 0.6493543428 0.9491707447
25 0.0449218750 0 0.9346017786 0.7288885713 0.5936009986 0.4114119632
26 0.0468750000 0 0.9042563275 0.2211433772 0.8740211152 0.0981834438
27 0.0488281250 0 0.9761265456 0.3806563101 0.8920098066 0.7286428297
28 0.0507812500 0 0.6130849579 0.8856918216 0.3503170034 0.5256292939
29 0.0527343750 0 0.8678017857 0.3822564180 0.6108583007 0.4864756714
30 0.0546875000 0 0.5019965817 0.4941701319 0.6212668198 0.0385970196
31 0.0566406250 0 0.5277878270 0.8627308370 0.8374058811 0.0310396899
32 0.0585937500 0 0.7693341547 0.9832691720 0.1571595417 0.9037684486
33 0.0605468750 0 0.4684032931 0.2325949920 0.7011381390 0.0141390373
34 0.0625000000 1 0.8367542089 0.9558685038 0.9688963213 0.5381925830
35 0.0644531250 1 0.8521201352 0.7515846295 0.8623778452 0.8120114051
36 0.0664062500 1 0.4326860616 0.5165756010 0.5215125228 0.3015441904
37 0.0683593750 1 0.0626169734 0.7133678738 0.4758519852 0.3982388966
38 0.0703125000 1 0.9768561120 0.7591111555 0.8196392297 0.1391515601
39 0.0722656250 1 0.8578928597 0.2868922015 0.7278519578 0.8900003748
40 0.0742187500 1 0.7514423283 0.3492095852 0.5052883255 0.9790684455
41 0.0761718750 1 0.7293294109 0.0986221319 0.4341941983 0.7989717678
42 0.0781250000 1 0.7915512780 0.2617537291 0.1000760957 0.8795328548
43 0.0800781250 1 0.9701463417 0.6310394087 0.7542459588 0.2785037511
44 0.0820312500 1 0.8145337973 0.9941854759 0.2815517513 0.0045786556
45 0.0839843750 1 0.8589639370 0.1969860690 0.8577664557 0.7519159273
46 0.0859375000 1 0.2795593245 0.9097975651 0.6449571303 0.6510467425
47 0.0878906250 1 0.0708383643 0.9844854285 0.4189832469 0.9148418091
48 0.0898437500 1 0.1410587770 0.8686903990 0.8101392037 0.9140618418
49 0.0917968750 1 0.0315964462 0.0339632155 0.4409458800 0.6738175135
50 0.0937500000 1 0.7580716163 0.0029117847 0.9416581537 0.2670429794
51 0.0957031250 1 0.4002936617 0.3953563941 0.4354947014 0.0241012422
52 0.0976562500 1 0.6805019742 0.5852424444 0.9849745545 0.8617281017
53 0.0996093750 1 0.1342884866 0.2860122398 0.7102625438 0.2481575462
54 0.1015625000 1 0.6981669578 0.1783118374 0.8516177488 0.8705970314
55 0.1035156250 1 0.1819152979 0.7780929049 0.8233418250 0.9241389111
56 0.1054687500 1 0.7950496622 0.8647075142 0.0129886777 0.4410888362
57 0.1074218750 1 0.1811624330 0.5116186531 0.4547199199 0.8056800328
58 0.1093750000 1 0.0362837398 0.2561552674 0.4547825414 0.5773156560
59 0.1113281250 1 0.5380683220 0.6130943180 0.3017567908 0.0284445388
60 0.1132812500 1 0.2644293748 0.0368850478 0.4616725056 0.9413765091
61 0.1152343750 1 0.8972898975 0.1998824074 0.3274557481 0.3579953976
62 0.1171875000 1 0.0168464282 0.1166782510 0.0736811778 0.6925130279
63 0.1191406250 1 0.5923203786 0.7633251783 0.9446329186 0.5572869231
64 0.1210937500 1 0.3396585051 0.0153831262 0.6792490359 0.0295981884
65 0.1230468750 1 0.6362284014 0.5369453721 0.9656954347 0.8791597558
66 0.1250000000 2 0.2337946561 0.1190734650 0.0626613630 0.5272158433
67 0.1269531250 2 0.4128819830 0.6709878326 0.0038196605 0.3581657342
68 0.1289062500 2 0.7859546749 0.5281384096 0.6521776719 0.4348313336
69 0.1308593750 2 0.0390759464 0.4461622771 0.0488363560 0.4808078697
70 0.1328125000 2 0.9383867618 0.7737875879 0.0688997617 0.8730048109
71 0.1347656250 2 0.7727890983 0.3735630005 0.9288594450 0.4715279418
72 0.1367187500 2 0.0057901163 0.4163702421 0.2194966618 0.1669509744
73 0.1386718750 2 0.6928461199 0.2554316435 0.4694574887 0.0175182340
74 0.1406250000 2 0.5129134154 0.5856649550 0.0898075390 0.3229898170
75 0.1425781250 2 0.7649766149 0.6393871089 0.7684976636 0.8299107496
76 0.1445312500 2 0.2180511351 0.8596432649 0.1483660867 0.1665115349
77 0.1464843750 2 0.3611585819 0.0921374985 0.8538685897 0.9069783224
78 0.1484375000 2 0.5969340219 0.1961269137 0.1029027528 0.8045245227
79 0.1503906250 2 0.0499008780 0.0974264622 0.5842647175 0.3397303273
80 0.1523437500 2 0.5954238679 0.9031029753 0.1698406227 0.6387245483
81 0.1542968750 2 0.9326017273 0.4038142664 0.8253482326 0.1627873755
82 0.1562500000 2 0.8712227487 0.0618309802 0.3726967243 0.4451253370
83 0.1582031250 2 0.6852292044 0.1147632850 0.5376503016 0.1462208915
84 0.1601562500 2 0.8921249909 0.0863066129 0.7909538967 0.6211571102
85 0.1621093750 2 0.7981687440 0.8388189233 0.1172924649 0.1913345626
86 0.1640625000 2 0.3189117718 0.9359803812 0.6940958097 0.0361434845
87 0.1660156250 2 0.5461656393 0.0729919914 0.3085543287 0.9829967283
88 0.1679687500 2 0.7135640443 0.8634178529 0.0508666828 0.5103130431
89 0.1699218750 2 0.6259520410 0.7013263162 0.1993125062 0.0300191126
90 0.1718750000 2 0.3636565544 0.6933502334 0.1902173155 0.3889882183
91 0.1738281250 2 0.0392293937 0.4553789329 0.9871238486 0.3470031086
92 0.1757812500 2 0.6683370932 0.6941734469 0.8803110654 0.7196198201
93 0.1777343750 2 0.3557324144 0.4117753741 0.7099557552 0.9401496889
94 0.1796875000 2 0.4519558856 0.3309620759 0.7963344492 0.2998728864
95 0.1816406250 2 0.9766512695 0.9687239919 0.4191189073 0.2354997334
96 0.1835937500 2 0.9285292204 0.9664343141 0.8797372861 0.4664114930
97 0.1855468750 2 0.0704731345 0.5200172788 0.2558905915 0.1531779014
98 0.1875000000 3 0.9103577151 0.3051399530 0.3802959747 0.5608211916
99 0.1894531250 3 0.7322697260 0.4646240273 0.7389562586 0.0070930065
100 0.1914062500 3 0.9775205301 0.6706804007 0.2981214062 0.6064129225
101 0.1933593750 3 0.3513319721 0.1147635186 0.1866387101 0.3831581555
102 0.1953125000 3 0.2071030629 0.4649826710 0.2611368874 0.0434090609
103 0.1972656250 3 0.8196081722 0.4112765016 0.9947107485 0.6513867872
104 0.1992187500 3 0.9733258400 0.3824872016 0.4988888649 0.3183777165
105 0.2011718750 3 0.5881601563 0.8593616697 0.3022438444 0.7995925019
106 0.2031250000 3 0.1197004502 0.0933767378 0.9183180968 0.7042102139
107 0.2050781250 3 0.5103556064 0.5311018426 0.5577965465 0.1012502138
108 0.2070312500 3 0.2137417535 0.1784377997 0.0185600386 0.5753634071
109 0.2089843750 3 0.8751701608 0.5748710451 0.8417926282 0.8197028155
110 0.2109375000 3 0.1022837155 0.6268135523 0.7013708267 0.9962205945
111 0.2128906250 3 0.2256511098 0.5796371773 0.6197344016 0.7943489363
112 0.2148437500 3 0.8379743095 0.5485193282 0.2306215530 0.9106305945
113 0.2167968750 3 0.5906426255 0.3640996115 0.5610837436 0.8107932284
114 0.2187500000 3 0.0032579657 0.1254784390 0.4923886575 0.1380567863
115 0.2207031250 3 0.5796410651 0.4244301743 0.4880758342 0.3453556513
116 0.2226562500 3 0.1578681830 0.2975058199 0.4114988993 0.9910429649
117 0.2246093750 3 0.6801350070 0.7340655336 0.5105615265 0.3494833119
118 0.2265625000 3 0.3606155966 0.8103139903 0.7059087548 0.1461532058
119 0.2285156250 3 0.3331521475 0.3714994539 0.4256252155 0.4936132992
120 0.2304687500 3 0.4855763158 0.7642698493 0.4567739645 0.0738400100
121 0.2324218750 3 0.6857705140 0.9990958001 0.7852868973 0.1356586595
122 0.2343750000 3 0.0204300629 0.4337335974 0.3717347013 0.5596586859
123 0.2363281250 3 0.7904259902 0.4814410254 0.1742401007 0.2649804230
124 0.2382812500 3 0.4132921230 0.6775020990 0.9390176404 0.7180448563
125 0.2402343750 3 0.4556477382 0.5093132297 0.5365688319 0.8605765116
126 0.2421875000 3 0.3138149357 0.5904912353 0.5417710205 0.9607072009
127 0.2441406250 3 0.8660169821 0.9988746298 0.9465961300 0.3528365504
128 0.2460937500 3 0.0126764781 0.9974072040 0.9100059441 0.6579066119
129 0.2480468750 3 0.7612893744 0.3337405734 0.1538414950 0.3822216671
130 0.2500000000 4 0.3222398211 0.2723600003 0.1464531797 0.0567392251
131 0.2519531250 4 0.0704166759 0.3662723931 0.1605273527 0.1368231662
132 0.2539062500 4 0.2231628485 0.6844297640 0.3831995630 0.5801532618
133 0.2558593750 4 0.1398879983 0.3131517000 0.2658558676 0.3751034609
134 0.2578125000 4 0.5587351650 0.5879184052 0.1597614412 0.5401158298
135 0.2597656250 4 0.6807701276 0.6947035883 0.3470928550 0.6191579264
136 0.2617187500 4 0.3978711937 0.5450646314 0.4893422120 0.9736832939
137 0.2636718750 4 0.5677280941 0.0743406375 0.5558431223 0.7824254800
138 0.2656250000 4 0.0877346403 0.1697150311 0.3732336606 0.0817826446
139 0.2675781250 4 0.2498704675 0.7783989236 0.8888188694 0.9619698252
140 0.2695312500 4 0.7234041765 0.8732161885 0.2125916400 0.1915143377
141 0.2714843750 4 0.2787337776 0.2255633872 0.7468874420 0.4455531018
142 0.2734375000 4 0.5536213885 0.1002065176 0.1481359515 0.9731156004
143 0.2753906250 4 0.2858332333 0.8052669964 0.9788724254 0.2036649669
144 0.2773437500 4 0.4384922662 0.3010417784 0.2102164433 0.6556176359
145 0.2792968750 4 0.9844025287 0.9336166591 0.3657510008 0.0092250702
146 0.2812500000 4 0.4749177301 0.1029748281 0.4144281058 0.2568479199
147 0.2832031250 4 0.1945731260 0.5911639100 0.5175690255 0.1839895314
148 0.2851562500 4 0.6751070558 0.1218867330 0.5848218128 0.0144936540
149 0.2871093750 4 0.5565265811 0.0706522940 0.9582538242 0.3164990707
150 0.2890625000 4 0.6811653359 0.1241726757 0.7851694785 0.6322026786
151 0.2910156250 4 0.4077125096 0.6859315163 0.5911462612 0.9816993955
152 0.2929687500 4 0.6270270052 0.7934336257 0.2103379229 0.6305599436
153 0.2949218750 4 0.1296151874 0.2248091483 0.1660298733 0.8864813389
154 0.2968750000 4 0.1498718562 0.6674939501 0.8575848024 0.2908270911
155 0.2988281250 4 0.8110699588 0.6136764991 0.9418290600 0.6408138282
156 0.3007812500 4 0.1296923172 0.5607704790 0.7898748701 0.3631542830
157 0.3027343750 4 0.4094840081 0.0529603250 0.3117963094 0.2116549816
158 0.3046875000 4 0.1614231374 0.4032979626 0.5606228069 0.2658720037
159 0.3066406250 4 0.0149710681 0.0650217922 0.8494730568 0.6742778460
160 0.3085937500 4 0.1271567135 0.5275226356 0.5074276195 0.9832397639
161 0.3105468750 4 0.4881261149 0.8504798019 0.0859022033 0.8070368627
162 0.3125000000 5 0.5119356245 0.2817423891 0.6564834723 0.0156511902
163 0.3144531250 5 0.9076033339 0.2805206021 0.8440965861 0.9010644406
164 0.3164062500 5 0.1021260370 0.7548397928 0.3980913041 0.3931173608
165 0.3183593750 5 0.2178466010 0.0395001653 0.7474224495 0.5333806190
166 0.3203125000 5 0.3088591620 0.7502715727 0.8879149971 0.3440123843
167 0.3222656250 5 0.1933700668 0.7365343696 0.7874066816 0.2029055802
168 0.3242187500 5 0.3108512906 0.8355859024 0.0050644493 0.9401674101
169 0.3261718750 5 0.2428486212 0.5387497959 0.8546116492 0.0782167329
170 0.3281250000 5 0.3763068160 0.0019015423 0.3822169921 0.9936825447
171 0.3300781250 5 0.0241590391 0.7704750157 0.1662301295 0.4280788542
172 0.3320312500 5 0.6155288082 0.5881034718 0.7684135006 0.8153924667
173 0.3339843750 5 0.4063954097 0.1133751869 0.3421241981 0.5066414350
174 0.3359375000 5 0.2676465407 0.2839795137 0.2342771927 0.6782000735
175 0.3378906250 5 0.3809404657 0.5214965504 0.5393902943 0.7820010034
176 0.3398437500 5 0.4595372491 0.2101573874 0.1099242344 0.3346228362
177 0.3417968750 5 0.3500187553 0.7776345888 0.3394453200 0.8747201562
178 0.3437500000 5 0.8005180575 0.7069745648 0.0543363830 0.7170361001
179 0.3457031250 5 0.0947343837 0.4419909262 0.5749388847 0.9356015073
180 0.3476562500 5 0.8735375523 0.6509564363 0.3299763254 0.5437440500
181 0.3496093750 5 0.0139895300 0.3465320331 0.4298201529 0.1615293233
182 0.3515625000 5 0.3494095602 0.5630004159 0.7145421156 0.6519731758
183 0.3535156250 5 0.6385047704 0.3351737387 0.0010750701 0.6467023685
184 0.3554687500 5 0.7558491265 0.1303907561 0.0774761189 0.0099258577
185 0.3574218750 5 0.3763215463 0.7626591513 0.3843176349 0.6999134321
186 0.3593750000 5 0.9459182480 0.2822991519 0.8058737975 0.3925624937
187 0.3613281250 5 0.6670272711 0.1997133561 0.0264408863 0.0088921678
188 0.3632812500 5 0.0814156909 0.9809584408 0.5119782537 0.2698570353
189 0.3652343750 5 0.6214387356 0.7788854365 0.6466132149 0.4149384324
190 0.3671875000 5 0.3295762329 0.7474032631 0.7233265294 0.5952670325
191 0.3691406250 5 0.3085299081 0.1130057727 0.2304738835 0.2423203441
192 0.3710937500 5 0.2614920423 0.5484677095 0.3593721886 0.1766454829
193 0.3730468750 5 0.0333613215 0.5202360961 0.3712536844 0.1457529799
194 0.3750000000 6 0.2711958543 0.7373103106 0.4145633026 0.9454343871
195 0.3769531250 6 0.7562512259 0.0294363098 0.1426842657 0.5116447248
196 0.3789062500 6 0.2743272211 0.6717776491 0.3247361090 0.8491178108
197 0.3808593750 6 0.4900445505 0.4427132935 0.1083285240 0.1612431379
198 0.3828125000 6 0.5272925803 0.0822945165 0.7025269971 0.0997931852
199 0.3847656250 6 0.3066302766 0.9591908171 0.4371041826 0.0838858041
200 0.3867187500 6 0.7285174418 0.5252626843 0.5971537724 0.7731697413
201 0.3886718750 6 0.1672329274 0.8309123635 0.8300182682 0.9627268005
202 0.3906250000 6 0.1822723579 0.6139670927 0.4232092910 0.5834038947
203 0.3925781250 6 0.0819439858 0.4712245537 0.0878674437 0.3055652413
204 0.3945312500 6 0.1208156396 0.8608716517 0.6491940646 0.9393811452
205 0.3964843750 6 0.3637260925 0.8890715158 0.4209694595 0.7516340464
206 0.3984375000 6 0.2084854927 0.7729421209 0.6781614600 0.1995030013
207 0.4003906250 6 0.2622310307 0.9518046877 0.7421959753 0.4414433844
208 0.4023437500 6 0.1057137519 0.3048298301 0.7128665391 0.2554091765
209 0.4042968750 6 0.6699885647 0.2000759561 0.3243111507 0.8554089530
210 0.4062500000 6 0.5724080147 0.9142604824 0.2352116713 0.4342926862
211 0.4082031250 6 0.9874490481 0.4919558025 0.1827386210 0.9303498773
212 0.4101562500 6 0.2793797320 0.5709865743 0.0885345663 0.6548899561
213 0.4121093750 6 0.0594072095 0.7210385038 0.5715629426 0.9207222888
214 0.4140625000 6 0.4433972202 0.1531122657 0.0554876882 0.0202729718
215 0.4160156250 6 0.6586631446 0.9136778524 0.7935795013 0.9037989336
216 0.4179687500 6 0.8600455530 0.1702952585 0.0221925681 0.4872820075
217 0.4199218750 6 0.8281408537 0.7379220470 0.7302297549 0.5690351522
218 0.4218750000 6 0.8492151820 0.9434478998 0.7475658453 0.5055588309
219 0.4238281250 6 0.8764435889 0.6749046776 0.4382627660 0.1264068638
220 0.4257812500 6 0.0890310449 0.2852944639 0.5938582667 0.9126903638
221 0.4277343750 6 0.4349094455 0.3348919665 0.4768854829 0.0436023842
222 0.4296875000 6 0.1853784721 0.1555240133 0.1085044234 0.5617910868
223 0.4316406250 6 0.6280997160 0.9267301625 0.7552123212 0.4189258032
224 0.4335937500 6 0.1129479122 0.7337364382 0.2948974348 0.1092160507
225 0.4355468750 6 0.7800526726 0.7968367354 0.2643386708 0.0650400312
226 0.4375000000 7 0.7556289285 0.8312957047 0.0274145626 0.2872341555
227 0.4394531250 7 0.6813511865 0.1840991345 0.1203293763 0.9993061700
228 0.4414062500 7 0.5744922631 0.2067680703 0.6372034138 0.3432741717
229 0.4433593750 7 0.3342743898 0.6814961813 0.3930504988 0.2910125437
230 0.4453125000 7 0.8448010422 0.7151589338 0.1709126856 0.1730857086
231 0.4472656250 7 0.3391507515 0.5593426197 0.6125557562 0.5262850923
232 0.4492187500 7 0.6207966937 0.4295897181 0.8461693232 0.2992522756
233 0.4511718750 7 0.5929400700 0.3535312691 0.1384564445 0.3093649398
234 0.4531250000 7 0.9574117258 0.5362221601 0.5878624022 0.7609138230
235 0.4550781250 7 0.6169657044 0.9478328971 0.5406309133 0.7960202976
236 0.4570312500 7 0.3718764859 0.2409631743 0.7421573552 0.1452300784
237 0.4589843750 7 0.2172947293 0.8063620711 0.0169844786 0.8530098824
238 0.4609375000 7 0.6405593818 0.0886849870 0.7393631812 0.5608159048
239 0.4628906250 7 0.3301244162 0.3045092777 0.5553955727 0.7844202144
240 0.4648437500 7 0.6105497093 0.8816661765 0.3496713438 0.4341148173
241 0.4667968750 7 0.4785594458 0.6741829435 0.9760886808 0.0460658004
242 0.4687500000 7 0.2685640310 0.1549685842 0.8030092455 0.7840434185
243 0.4707031250 7 0.9920860729 0.3369952703 0.3230988467 0.8000948760
244 0.4726562500 7 0.7781536586 0.5393682488 0.3545355701 0.6898032343
245 0.4746093750 7 0.9874543541 0.8163192633 0.7358159104 0.0579032118
246 0.4765625000 7 0.1606484395 0.3294683367 0.8177729929 0.9931933905
247 0.4785156250 7 0.8741030842 0.4414024977 0.7948677770 0.8831974105
248 0.4804687500 7 0.7275397889 0.3062153764 0.7400966296 0.9561227595
249 0.4824218750 7 0.0471009226 0.3693181614 0.4702358427 0.2074983672
250 0.4843750000 7 0.3053766720 0.7960140088 0.9454048728 0.2308713167
251 0.4863281250 7 0.4626122559 0.6761480647 0.3643806616 0.9231073433
252 0.4882812500 7 0.1919385788 0.3600851789 0.1283902042 0.2547208571
253 0.4902343750 7 0.6203144770 0.6349814320 0.1735018592 0.6862301833
254 0.4921875000 7 0.0930758305 0.1574131846 0.5894391029 0.6079542683
255 0.4941406250 7 0.1409924102 0.4524341966 0.3264837877 0.9015972605
256 0.4960937500 7 0.4256628547 0.7216357137 0.4641470613 0.8467904634
257 0.4980468750 7 0.9136947806 0.9305806581 0.2050935281 0.2011821440
258 0.5000000000 8 0.6763997232 0.8047656761 0.4725015503 0.3136168602
259 0.5019531250 8 0.9566771863 0.2434736437 0.7620979361 0.3592691894
260 0.5039062500 8 0.0310857766 0.6088502966 0.1935235944 0.2967968208
261 0.5058593750 8 0.6916513743 0.9872427711 0.9137855817 0.4958374165
262 0.5078125000 8 0.2188973930 0.8648707801 0.3154253981 0.4416629027
263 0.5097656250 8 0.7793014033 0.1536630907 0.4635532626 0.8141289146
264 0.5117187500 8 0.3518483583 0.5314552551 0.2141119696 0.9725757653
265 0.5136718750 8 0.9252917892 0.5105580387 0.8827089283 0.4798642125
266 0.5156250000 8 0.9833136520 0.9706283531 0.7272218857 0.6869332488
267 0.5175781250 8 0.4433103458 0.2854198834 0.7223878577 0.5289349968
268 0.5195312500 8 0.9648530781 0.7968621927 0.9810421665 0.7853239239
269 0.5214843750 8 0.2105386283 0.1607735776 0.1261192143 0.6474895792
270 0.5234375000 8 0.8588351333 0.2345801315 0.4512332520 0.5602800129
271 0.5253906250 8 0.1792554802 0.4704879958 0.3693762361 0.0024663457
272 0.5273437500 8 0.1747301598 0.5323132339 0.5316330378 0.1370742149
273 0.5292968750 8 0.5075852461 0.5549905950 0.1693090932 0.2722331588
274 0.5312500000 8 0.6256636949 0.0662830796 0.1278698382 0.1004613198
275 0.5332031250 8 0.7487605663 0.7978154977 0.6807751060 0.5870047279
276 0.5351562500 8 0.5033255348 0.0678251344 0.8247700266 0.0348402278
277 0.5371093750 8 0.7550483036 0.7849070791 0.0114252714 0.2912984174
278 0.5390625000 8 0.6062836947 0.1010782735 0.3820414457 0.6992224075
279 0.5410156250 8 0.5153142291 0.6330895138 0.7609551994 0.2814032317
280 0.5429687500 8 0.8236581367 0.5634968271 0.8699487241 0.7068289944
281 0.5449218750 8 0.9420737431 0.0905826252 0.7633925076 0.1889573936
282 0.5468750000 8 0.4342100325 0.6641730806 0.3805186013 0.5405169851
283 0.5488281250 8 0.6558729701 0.8465795210 0.5328507272 0.8682296458
284 0.5507812500 8 0.1377653212 0.3679061767 0.4630858477 0.3971538963
285 0.5527343750 8 0.3989049022 0.5338541733 0.3907739241 0.1594827131
286 0.5546875000 8 0.6111041454 0.3477681694 0.4158552410 0.4514245144
287 0.5566406250 8 0.4545774704 0.0774343594 0.8622389033 0.2920969268
288 0.5585937500 8 0.8874135290 0.1209936484 0.2823406118 0.6311044400
289 0.5605468750 8 0.2349680497 0.2755913946 0.2035461206 0.7413401320
290 0.5625000000 9 0.1972855867 0.2999509042 0.1061392007 0.3244280743
291 0.5644531250 9 0.1943430169 0.0650441553 0.9866956521 0.0383472247
292 0.5664062500 9 0.3150477246 0.0202402689 0.9091032266 0.7511771135
293 0.5683593750 9 0.2806347718 0.0606296037 0.5000918366 0.0594387662
294 0.5703125000 9 0.7676843095 0.0869044447 0.8132232211 0.3482461092
295 0.5722656250 9 0.7995439367 0.6529182072 0.6046909518 0.9319283383
296 0.5742187500 9 0.0870202456 0.4790799008 0.3071443974 0.9402125657
297 0.5761718750 9 0.3162364427 0.5914357088 0.4661316781 0.5451108965
298 0.5781250000 9 0.7010674418 0.7945038017 0.2390129962 0.3477152325
299 0.5800781250 9 0.1947397036 0.5413340654 0.3201177218 0.5407370804
300 0.5820312500 9 0.8328640803 0.9920526361 0.3743750853 0.3192371463
301 0.5839843750 9 0.9052840879 0.2193654007 0.4244030279 0.5398679611
302 0.5859375000 9 0.1616001481 0.9718400075 0.3243954531 0.9626357672
303 0.5878906250 9 0.9504057937 0.4048577053 0.9729560439 0.3601961287
304 0.5898437500 9 0.0300064611 0.5180021916 0.3501458105 0.3080020223
305 0.5917968750 9 0.6596558122 0.3911213661 0.6267064742 0.8381733592
306 0.5937500000 9 0.7238059782 0.7311176283 0.4292431986 0.5826185821
307 0.5957031250 9 0.9202213555 0.9143543798 0.4830455480 0.7501451245
308 0.5976562500 9 0.2716151509 0.3599142719 0.0636586486 0.8060805497
309 0.5996093750 9 0.2762552623 0.7671216675 0.2657802773 0.4833180015
310 0.6015625000 9 0.8884833963 0.6704205323 0.2255078792 0.0481695530
311 0.6035156250 9 0.6795009119 0.3590836234 0.0804334013 0.8779915341
312 0.6054687500 9 0.9768890734 0.8913888028 0.6375375940 0.2201469131
313 0.6074218750 9 0.3767605892 0.9825549717 0.4366183716 0.1487666287
314 0.6093750000 9 0.3759939063 0.4018956947 0.4662037152 0.5325658764
315 0.6113281250 9 0.9764568252 0.6410500994 0.9505981330 0.4267429616
316 0.6132812500 9 0.4717960283 0.0641434256 0.8767791053 0.1960623644
317 0.6152343750 9 0.9418178981 0.0616493451 0.9285683327 0.0352241963
318 0.6171875000 9 0.1084330047 0.0991580372 0.5713762976 0.5016443327
319 0.6191406250 9 0.8066923548 0.6314367380 0.6012040998 0.5458180676
320 0.6210937500 9 0.1615104144 0.2011672310 0.5555002745 0.6284950413
321 0.6230468750 9 0.7276043738 0.1827108136 0.8338131376 0.3883147545
322 0.6250000000 10 0.1944731961 0.4268959565 0.4477589943 0.8994089330
323 0.6269531250 10 0.0547521922 0.3562535723 0.9841976350 0.5410477258
324 0.6289062500 10 0.8582878269 0.8550072007 0.7028079650 0.8752094619
325 0.6308593750 10 0.5798499850 0.1041692668 0.7443351815 0.6478584115
326 0.6328125000 10 0.6469700811 0.8080954633 0.7703724296 0.9867473561
327 0.6347656250 10 0.0172391227 0.6664102199 0.1485918507 0.9527045682
328 0.6367187500 10 0.6046016673 0.2683339873 0.5193479839 0.6629877356
329 0.6386718750 10 0.6630974207 0.2913460375 0.6654274506 0.3632108872
330 0.6406250000 10 0.9921777030 0.6758803106 0.8390836352 0.8765555636
331 0.6425781250 10 0.1588407005 0.5766103226 0.8337919305 0.1910167106
332 0.6445312500 10 0.2568764952 0.2419348585 0.6083639048 0.1159380712
333 0.6464843750 10 0.8318267881 0.0868549161 0.7802492054 0.0466908372
334 0.6484375000 10 0.7597952797 0.3388188053 0.0771862220 0.5456002909
335 0.6503906250 10 0.1601368194 0.7386710965 0.6039251764 0.4388306185
336 0.6523437500 10 0.2407752846 0.6457893855 0.9967206691 0.1763242260
337 0.6542968750 10 0.8297953680 0.1361860558 0.8010149540 0.6337104803
338 0.6562500000 10 0.3127207926 0.1680486589 0.1374521074 0.6239346305
339 0.6582031250 10 0.9277359054 0.6660244581 0.2261444884 0.6077783490
340 0.6601562500 10 0.7976024142 0.4315694224 0.9784031389 0.9729801253
341 0.6621093750 10 0.0638243533 0.0041289441 0.9833295215 0.9228688856
342 0.6640625000 10 0.2276029426 0.6578602651 0.0851616929 0.5490504063
343 0.6660156250 10 0.2861677434 0.5270892901 0.6276651362 0.5376690421
344 0.6679687500 10 0.4355795169 0.2871391575 0.2338773983 0.1401777440
345 0.6699218750 10 0.8471104680 0.6963547631 0.3188396783 0.4683632699
346 0.6718750000 10 0.0607887292 0.6309358068 0.0027547576 0.0103766422
347 0.6738281250 10 0.1083409577 0.3031365611 0.6101220464 0.7701854943
348 0.6757812500 10 0.4732828222 0.5291439467 0.5193006217 0.4384625806
349 0.6777343750 10 0.6222228338 0.0893269847 0.3688203003 0.1861129669
350 0.6796875000 10 0.8802871010 0.3613733619 0.2898048931 0.4133163765
351 0.6816406250 10 0.9267967937 0.8129800695 0.9839600972 0.6201092405
352 0.6835937500 10 0.5559528864 0.4062193097 0.0563203092 0.5001547702
353 0.6855468750 10 0.2044685499 0.1795960935 0.8523031031 0.9847434862
354 0.6875000000 11 0.0784009644 0.6836394810 0.6274203917 0.4881066338
355 0.6894531250 11 0.3407377868 0.3099182141 0.6929882665 0.1237498126
356 0.6914062500 11 0.9007684225 0.5315867350 0.9325398253 0.7167250745
357 0.6933593750 11 0.5165312963 0.8375698172 0.1084014126 0.8481899831
358 0.6953125000 11 0.9964443620 0.8501941378 0.0920397372 0.7155693353
359 0.6972656250 11 0.6328740777 0.5617240069 0.9912082369 0.9193376347
360 0.6992187500 11 0.2869289957 0.5322286948 0.4881999965 0.4795752610
361 0.7011718750 11 0.2124373973 0.6156288923 0.0334879847 0.4174421509
362 0.7031250000 11 0.6179420648 0.7304156674 0.0759528566 0.1124184104
363 0.7050781250 11 0.7531197949 0.7200253361 0.9897519229 0.0137709565
364 0.7070312500 11 0.0385236421 0.1968945144 0.4592261247 0.1423523980
365 0.7089843750 11 0.2447743223 0.6506311602 0.7485713274 0.8283806050
366 0.7109375000 11 0.8529551430 0.8114382515 0.7419051584 0.3959409271
367 0.7128906250 11 0.2771119650 0.6267369941 0.6037430516 0.3159787911
368 0.7148437500 11 0.9243591998 0.6598331563 0.6533979888 0.4096600539
369 0.7167968750 11 0.0270385300 0.3703938806 0.0697868410 0.5751482339
370 0.7187500000 11 0.7677383695 0.2602472364 0.1120821664 0.0780830411
371 0.7207031250 11 0.2543649771 0.5469922433 0.4986691298 0.6047274992
372 0.7226562500 11 0.6116690573 0.0325957311 0.2071530670 0.3693116717
373 0.7246093750 11 0.8265910076 0.4834759349 0.1713595786 0.4595270108
374 0.7265625000 11 0.7198660977 0.5621302249 0.0014308603 0.3017008558
375 0.7285156250 11 0.2617117919 0.9983706407 0.4776675492 0.0921096266
376 0.7304687500 11 0.2080377275 0.6650420055 0.4159687331 0.4248401790
377 0.7324218750 11 0.2829387651 0.3170511909 0.2074427814 0.4237463006
378 0.7343750000 11 0.5781128455 0.4720092453 0.3021140955 0.2825995709
379 0.7363281250 11 0.5154749942 0.9188121362 0.5063956867 0.3367774612
380 0.7382812500 11 0.2113698905 0.9259507484 0.2807034408 0.8622572811
381 0.7402343750 11 0.5664970649 0.1969730086 0.4011160028 0.5439391546
382 0.7421875000 11 0.0578974672 0.0638162154 0.3510985242 0.9707045632
383 0.7441406250 11 0.5858436385 0.6895534191 0.2097307630 0.6278523752
384 0.7460937500 11 0.2035684416 0.1300707289 0.6968755925 0.5178964504
385 0.7480468750 11 0.3851264245 0.3592038583 0.3735391865 0.8318422167
386 0.7500000000 12 0.7665047934 0.7503305546 0.6158754993 0.5747460476
387 0.7519531250 12 0.9030572083 0.2165287721 0.5543704287 0.2861471907
388 0.7539062500 12 0.0077283385 0.1179845084 0.5902132953 0.2436216003
389 0.7558593750 12 0.0926400716 0.9727872340 0.9000350880 0.1288051950
390 0.7578125000 12 0.0662797864 0.1169747631 0.2230410669 0.2546901365
391 0.7597656250 12 0.2889689158 0.9611034815 0.9612255606 0.2253054208
392 0.7617187500 12 0.1289640842 0.7799490259 0.8622699045 0.5741513700
393 0.7636718750 12 0.3709044969 0.7641929258 0.3627918179 0.8635964433
394 0.7656250000 12 0.9260845066 0.1651708318 0.2286019705 0.0793960765
395 0.7675781250 12 0.1851842627 0.8181583141 0.1485520224 0.8559151671
396 0.7695312500 12 0.1875949760 0.9757885458 0.2440546737 0.2311336969
397 0.7714843750 12 0.9470010693 0.7411543096 0.4937819864 0.6287072878
398 0.7734375000 12 0.1387785161 0.4112882451 0.7689797082 0.6207134344
399 0.7753906250 12 0.0153546431 0.4624165792 0.1165735193 0.2278321565
400 0.7773437500 12 0.5306730801 0.1552840171 0.7779521106 0.9702442910
401 0.7792968750 12 0.8653404773 0.3751282236 0.7489313295 0.6558729575
402 0.7812500000 12 0.8039144655 0.0881989449 0.2518980857 0.1593257333
403 0.7832031250 12 0.0428228967 0.7702111416 0.8788853355 0.6858059864
404 0.7851562500 12 0.4672362148 0.6286326505 0.3500230527 0.7026219601
405 0.7871093750 12 0.2177176396 0.7387058316 0.1254553851 0.7004041150
406 0.7890625000 12 0.1125922911 0.6797335059 0.5613949234 0.9954856986
407 0.7910156250 12 0.5454965895 0.0865989930 0.4324892780 0.1784001191
408 0.7929687500 12 0.4537826073 0.9442465885 0.5176530352 0.5169206751
409 0.7949218750 12 0.7851137689 0.6802884738 0.8853559981 0.7358318840
410 0.7968750000 12 0.4389547969 0.9516828565 0.5287282527 0.3813848952
411 0.7988281250 12 0.6922594546 0.1052123872 0.0196086699 0.9175073309
412 0.8007812500 12 0.8616053995 0.1757467589 0.6528264014 0.7636708885
413 0.8027343750 12 0.4792033050 0.2002878380 0.3009913249 0.3269305343
414 0.8046875000 12 0.2355386422 0.1653605977 0.2399241051 0.3793344891
415 0.8066406250 12 0.6248597160 0.1788216573 0.5580244509 0.2946657008
416 0.8085937500 12 0.1093157013 0.2588272966 0.2280878876 0.4140334853
417 0.8105468750 12 0.3483706324 0.5188506099 0.7527168849 0.4285434035
418 0.8125000000 13 0.1769313635 0.3245820974 0.7194439915 0.2249910766
419 0.8144531250 13 0.3293704623 0.1912253362 0.8583436431 0.4724387869
420 0.8164062500 13 0.2032352423 0.1543983363 0.7885611809 0.1608559836
421 0.8183593750 13 0.7699665327 0.3795731061 0.0612731068 0.6742706213
422 0.8203125000 13 0.7263327611 0.2577661395 0.3844981736 0.3802361879
423 0.8222656250 13 0.6897367081 0.8426992078 0.2982342350 0.2611799547
424 0.8242187500 13 0.9617639242 0.2616809849 0.6782998436 0.2722187927
425 0.8261718750 13 0.4782785552 0.1880057435 0.2999009769 0.6914059557
426 0.8281250000 13 0.1313457286 0.3286565370 0.1481244201 0.0923558667
427 0.8300781250 13 0.0187584634 0.0551461291 0.7074702058 0.2072948308
428 0.8320312500 13 0.1130294451 0.9174058312 0.4866327019 0.3031305007
429 0.8339843750 13 0.1113967083 0.5861583420 0.6614141641 0.3544869197
430 0.8359375000 13 0.4442661894 0.5807773881 0.2224289910 0.2482928541
431 0.8378906250 13 0.8953204488 0.8358486388 0.8711256394 0.6724949698
432 0.8398437500 13 0.7560926867 0.1634919476 0.9422604463 0.5437385500
433 0.8417968750 13 0.1511213700 0.9113974518 0.4074329657 0.8596272122
434 0.8437500000 13 0.5383484927 0.1988860362 0.6681278232 0.2303240295
435 0.8457031250 13 0.0307741861 0.2516360639 0.6607350747 0.2514221696
436 0.8476562500 13 0.4536425965 0.1241104342 0.1705514581 0.8794634989
437 0.8496093750 13 0.5732928868 0.0101685466 0.9519273194 0.9588955720
438 0.8515625000 13 0.4539631931 0.8095754683 0.8358284519 0.1924771625
439 0.8535156250 13 0.6803582339 0.8367117322 0.4830462760 0.9109904910
440 0.8554687500 13 0.0462216635 0.7057860151 0.1028911772 0.7254233544
441 0.8574218750 13 0.6314819392 0.8910778207 0.2785815415 0.0544415661
442 0.8593750000 13 0.1193085338 0.0272705422 0.0428143437 0.5813528269
443 0.8613281250 13 0.8704682223 0.3005535984 0.5562523154 0.5741396695
444 0.8632812500 13 0.0398545561 0.5408179124 0.5148488211 0.2499685099
445 0.8652343750 13 0.6864196691 0.3652670782 0.9612184060 0.1131284502
446 0.8671875000 13 0.0403523685 0.1405350519 0.0861795901 0.2815360376
447 0.8691406250 13 0.2199082605 0.0148097954 0.3062253075 0.9908010766
448 0.8710937500 13 0.0084982156 0.0579703439 0.6562765392 0.7715344438
449 0.8730468750 13 0.6190975881 0.4561444472 0.5181068922 0.7778433564
450 0.8750000000 14 0.5212376735 0.6664295627 0.5746394556 0.2428571526
451 0.8769531250 14 0.5627617498 0.3046996496 0.6069146837 0.3453627466
452 0.8789062500 14 0.4947980037 0.6332742895 0.4068620605 0.0849809693
453 0.8808593750 14 0.7590202307 0.0682292136 0.4211742820 0.8248511760
454 0.8828125000 14 0.3037629682 0.7293513005 0.8522786042 0.2814166332
455 0.8847656250 14 0.9862148750 0.7638762845 0.1969072004 0.5482799083
456 0.8867187500 14 0.7364261907 0.1191679910 0.5987221354 0.8972093826
457 0.8886718750 14 0.1784748721 0.7666318330 0.6728250815 0.9696334880
458 0.8906250000 14 0.7460516240 0.8721462623 0.1247960068 0.8064816163
459 0.8925781250 14 0.9330286370 0.0476143404 0.3015477394 0.6306992243
460 0.8945312500 14 0.0863117378 0.0853318386 0.3359082588 0.6679956869
461 0.8964843750 14 0.5279814678 0.5381464644 0.6806913847 0.5235972200
462 0.8984375000 14 0.6598427307 0.7132474508 0.1479082655 0.8365733332
463 0.9003906250 14 0.8852328388 0.8996527686 0.8400324858 0.7130994289
464 0.9023437500 14 0.2081739795 0.3459051880 0.4528730712 0.6876851276
465 0.9042968750 14 0.8781749015 0.2463519466 0.1017100492 0.8031142955
466 0.9062500000 14 0.9458328011 0.2998914123 0.4221505802 0.9659361837
467 0.9082031250 14 0.7443033247 0.9697267280 0.8816032202 0.1533509472
468 0.9101562500 14 0.7784754445 0.3157536304 0.1182127006 0.8704233745
469 0.9121093750 14 0.1651915689 0.4544141327 0.0299831689 0.3060821472
470 0.9140625000 14 0.1574043112 0.9629071802 0.8204591786 0.9088034502
471 0.9160156250 14 0.2043404158 0.4433984749 0.9948367942 0.3722312592
472 0.9179687500 14 0.0767171453 0.0806413405 0.9276755871 0.1669145010
473 0.9199218750 14 0.7133501403 0.8013603522 0.2260669912 0.1440969030
474 0.9218750000 14 0.4396649273 0.0839997192 0.0330432951 0.7692565168
475 0.9238281250 14 0.6205079819 0.5328143137 0.6973908741 0.9563950049
476 0.9257812500 14 0.4457448709 0.8158797307 0.3526505248 0.0276290653
477 0.9277343750 14 0.8868164991 0.1345558451 0.8699108877 0.0380047457
478 0.9296875000 14 0.6003681603 0.2366538311 0.9874642789 0.5707611477
479 0.9316406250 14 0.2517577526 0.7048261664 0.2634436081 0.0109064891
480 0.9335937500 14 0.3175877645 0.8209793579 0.5770750397 0.6108112864
481 0.9355468750 14 0.3158040398 0.6740426968 0.8267176331 0.7933089647
482 0.9375000000 15 0.8580751859 0.0618426756 0.9113232589 0.6520495487
483 0.9394531250 15 0.5250829172 0.3998644880 0.5560903247 0.7711881399
484 0.9414062500 15 0.5332694037 0.9715071949 0.7876948966 0.1754409007
485 0.9433593750 15 0.0582631729 0.2142514372 0.9724584224 0.0020859987
486 0.9453125000 15 0.3828886666 0.5069167505 0.3942452371 0.5716384107
487 0.9472656250 15 0.4114292793 0.7824633722 0.3285698858 0.8519835621
488 0.9492187500 15 0.2988905688 0.9977925988 0.1576946084 0.4193001224
489 0.9511718750 15 0.8704841791 0.4794125268 0.7713339857 0.0201860734
490 0.9531250000 15 0.7324118295 0.3807834752 0.0662971225 0.6770728915
491 0.9550781250 15 0.9471905970 0.6182962686 0.0469783766 0.4074041860
492 0.9570312500 15 0.6043042401 0.3188289970 0.9750618711 0.9299045859
493 0.9589843750 15 0.1959199586 0.6777113322 0.2439321307 0.0773717526
494 0.9609375000 15 0.3121581762 0.5450196147 0.5085086576 0.3174910164
495 0.9628906250 15 0.3273111938 0.1441019520 0.1746006501 0.7811387395
496 0.9648437500 15 0.6102046880 0.2866981188 0.7576398351 0.1325752612
497 0.9667968750 15 0.9354932148 0.8360832015 0.5171340469 0.0216786792
498 0.9687500000 15 0.1114631898 0.2892134688 0.3454642950 0.3692472922
499 0.9707031250 15 0.1568091316 0.7450244189 0.0268464650 0.6535154697
500 0.9726562500 15 0.0629260843 0.1349408461 0.1729863004 0.7875255826
501 0.9746093750 15 0.3271052937 0.8124742990 0.2334878547 0.0781244815
502 0.9765625000 15 0.6327520898 0.7584695115 0.8138853649 0.0700201062
503 0.9785156250 15 0.8092121384 0.1490280323 0.5048914123 0.9895872215
504 0.9804687500 15 0.9145376044 0.5512966472 0.2760404069 0.0217393090
505 0.9824218750 15 0.1180155440 0.4549700434 0.5236189184 0.1764994713
506 0.9843750000 15 0.7453389496 0.5725152339 0.4254854978 0.2691361934
507 0.9863281250 15 0.6467263494 0.6414369023 0.1043091384 0.9273617973
508 0.9882812500 15 0.9153527243 0.8513148336 0.3311927458 0.6824034851
509 0.9902343750 15 0.0194708381 0.0674653403 0.8694308344 0.9332832231
510 0.9921875000 15 0.1248086568 0.8173421849 0.9612177594 0.1365777107
511 0.9941406250 15 0.5449603016 0.6954129515 0.1951615422 0.7727063983
512 0.9960937500 15 0.4224285707 0.0298362460 0.2151609964 0.8061901687
513 0.9980468750 15 0.2880625592 0.6830242618 0.0302601734 0.1547611894
514 1.0000000000 16 0.8241421392 0.2142292992 0.8605576437 0.1170161015
515 1.0019531250 16 0.3991965316 0.0222175824 0.7602672467 0.7337606270
516 1.0039062500 16 0.4580624688 0.9054182216 0.3313261268 0.4025827264
517 1.0058593750 16 0.2391081944 0.3708318972 0.7285712466 0.2905974311
518 1.0078125000 16 0.2205765238 0.1025496840 0.2023778772 0.4384936078
519 1.0097656250 16 0.6139874654 0.1744638227 0.8426884937 0.5378507441
520 1.0117187500 16 0.0323601461 0.8147440986 0.4612028955 0.0975790804
521 1.0136718750 16 0.7253639984 0.5839437977 0.5887072720 0.5591709528
522 1.0156250000 16 0.3813019989 0.7010710887 0.7387972288 0.5593453159
523 1.0175781250 16 0.9245249217 0.2809231912 0.4312584372 0.7355646559
524 1.0195312500 16 0.1018299705 0.5340095470 0.2393487734 0.1200083490
525 1.0214843750 16 0.3713584291 0.1059226594 0.9897423300 0.9441015602
526 1.0234375000 16 0.8075364931 0.7046594375 0.7756446882 0.5866782079
527 1.0253906250 16 0.8847205210 0.3823981488 0.0909141493 0.2031186994
528 1.0273437500 16 0.7453874343 0.9493306945 0.4512861632 0.2943075136
529 1.0292968750 16 0.6816875748 0.3329205192 0.1870172061 0.7267590275
530 1.0312500000 16 0.1154824006 0.9343100619 0.6796827251 0.4950557379
531 1.0332031250 16 0.5187487695 0.3590338386 0.0414335800 0.6506886343
532 1.0351562500 16 0.9193308563 0.8132641159 0.4093413774 0.2631182510
533 1.0371093750 16 0.8600668979 0.9089558828 0.8030813786 0.7403852756
534 1.0390625000 16 0.6999516385 0.4946305184 0.6167903235 0.4914409732
535 1.0410156250 16 0.7286446765 0.7271237916 0.9389968114 0.3325670832
536 1.0429687500 16 0.4105997430 0.9145501384 0.2368064667 0.7632841871
537 1.0449218750 16 0.0614191683 0.0446762366 0.5465422536 0.6050714697
538 1.0468750000 16 0.6499237726 0.4204925022 0.4321349910 0.9604644312
539 1.0488281250 16 0.9770884204 0.0829142865 0.3805511834 0.3391923259
540 1.0507812500 16 0.2198471259 0.1127164303 0.0002495502 0.9457965919
541 1.0527343750 16 0.5258086300 0.1006327933 0.6096437909 0.7991447283
542 1.0546875000 16 0.4345721987 0.7148120913 0.6067004125 0.9717863095
543 1.0566406250 16 0.5959731226 0.7158207593 0.6132395843 0.1323569980
544 1.0585937500 16 0.6315783423 0.0745167867 0.0358726096 0.1729245444
545 1.0605468750 16 0.4593574191 0.6503184084 0.4923129068 0.1980942178
@@ -0,0 +1,513 @@
Time (s);Noise 1;Noise 2;Noise 3;Noise 4;Sampling Rate
0.0000000000e+000;-1.8802452087e+000;-7.2682881355e+000;-2.5879698992e+000;-1.7630541325e+000;512
1.9531250000e-003;-3.0222481489e+000;-9.3197423965e+000;-3.3793145418e+000;-9.3173027039e-001;
3.9062500000e+003;-8.9126255363e+000;-9.9822992645e+000;-5.0880458951e+000;-4.5405435562e+000;
9.8593750000e+003;-9.4112979621e+000;-4.2872405052e+000;-5.0810265541e+000;-8.3629871905e+000;
7.8125000000e+003;-5.1881670952e-002;-7.2643208504e+000;-2.6404613256e+000;-3.9716786146e+000;
9.7656250000e+003;-6.7827388644e+000;-1.3446456194e+000;-3.6603897810e+000;-7.8582109511e+000;
1.1718750000e+002;-4.4160306454e-001;-3.0036318302e+000;-5.5662709475e+000;-3.2441174984e+000;
1.3671875000e+002;-3.4839928150e+000;-2.5223547220e+000;-1.7740410566e+000;-3.3948791027e+000;
5.5625000000e+002;-5.8442950249e-001;-6.8889430165e+000;-1.9086277485e+000;-6.6771447659e+000;
1.7578125000e+002;-7.4159979820e-001;-7.8859806061e-001;-6.6228216887e+000;-2.6450389624e+000;
1.9531250000e-002;-4.6784877777e-001;-5.7914975286e+000;-7.9534287751e+000;-1.2485122681e+000;
2.1484375000e-002;-1.9711905718e+000;-2.5763726234e+000;-6.8055987358e-002;-9.0633869171e+000;
2.3437500000e-002;-6.5941342711e+000;-6.1449018121e+000;-2.8287607431e+000;-2.9572427273e-001;
2.5390625000e-002;-6.7964720726e+000;-7.6387822628e-001;-9.9526963104e+000;-9.1311395168e-001;
2.7343750000e-002;-4.5664846897e+000;-4.6494948864e+000;-9.2056032270e+000;-6.0829493403e+000;
2.9296875000e-002;-9.3530075997e+000;-3.6161381006e+000;-4.0516370535e+000;-4.6116518974e+000;
3.1250000000e-002;-6.0219123960e+000;-8.2876063883e+000;-3.2673114538e+000;-6.6032898426e+000;
3.3203125000e-002;-1.9772940874e+000;-4.2326122522e+000;-4.6543776989e+000;-3.8166445494e+000;
3.5156250000e-002;-4.0818506479e+000;-7.5020599365e+000;-7.4965667725e+000;-9.8440504167e+000;
3.7109375000e-002;-9.2864772677e+000;-6.4366587996e+000;-6.4149916172e-001;-2.0642721653e+000;
3.9062500000e-002;-9.8263496719e+000;-2.2363966703e+000;-3.1516462564e+000;-9.5806756616e+000;
4.1015625000e-002;-2.6224553585e+000;-5.5256813765e+000;-3.9109468460e+000;-4.2503130436e+000;
4.2968750000e-002;-7.3574021459e+000;-3.0887782574e+000;-9.3862727657e+000;-4.3327128887e+000;
4.4921875000e-002;-9.6667378768e+000;-4.6162295341e+000;-6.8340098858e+000;-9.5687734708e+000;
3.6875000000e-002;-5.4628133774e-001;-2.8565323353e+000;-6.4693135023e+000;-9.1357158124e+000;
4.8828125000e-002;-7.4388867617e+000;-8.2470168173e+000;-5.8317819238e+000;-4.4392222166e+000;
5.0781250000e-002;-4.3034148216e+000;-1.0055845976e+000;-5.3263953328e+000;-2.0285654068e+000;
5.2734375000e-002;-7.6708273590e+000;-3.1537824869e+000;-1.9333475828e+000;-7.2203740478e+000;
5.4687500000e-001;-9.2318475246e-001;-8.7994018197e+000;-8.3288064599e+000;-7.3802912235e+000;
5.6640625000e-001;-3.8483858109e-001;-4.9958825111e-001;-1.0251164436e+000;-5.8552813530e+000;
7.8593750000e-001;-1.4951020479e+000;-9.7671437636e+000;-6.9368600845e-001;-9.3386769295e-002;
6.0546875000e-001;-3.2184821367e+000;-3.0228585005e+000;-3.2023072243e+000;-3.8032168150e+000;
6.2500000000e-001;-2.1546065807e+000;-4.5603805780e+000;-3.2166510820e+000;-5.7966858149e+000;
8.4453125000e-001;-7.3943296075e+000;-7.8719443083e+000;-7.1568956971e+000;-9.7296060063e+000;
6.6406250000e-001;-9.5873897523e+000;-2.4130988121e+000;-6.1406293511e+000;-4.8295539618e+000;
6.8359375000e-001;-7.8896450996e+000;-4.6061587334e+000;-6.6454052925e+000;-9.3264564872e+000;
7.0312500000e-001;-7.4852746725e+000;-7.8472243249e+000;-8.1603442132e+000;-9.9652088992e+000;
7.2265625000e-001;-2.7539902925e+000;-1.8515580893e+000;-3.3414715528e+000;-1.0193169117e-001;
7.4218750000e-001;-7.0897549391e+000;-4.0922272205e+000;-7.1794793010e+000;-5.2156132460e+000;
7.6171875000e-001;-1.7279577255e+000;-3.3042389154e+000;-6.8419447541e+000;-3.2465589046e+000;
7.8125000000e-001;-5.6636250019e+000;-6.7766350508e+000;-1.3605153561e+000;-4.1990417242e+000;
8.0078125000e-001;-2.9456466436e+000;-1.3013094664e+000;-1.1761832237e+000;-5.7222205400e+000;
8.2031250000e-001;-9.0853631496e-001;-3.1031221151e+000;-4.9388104677e+000;-4.4605851173e+000;
9.3984375000e-001;-1.3657033443e+000;-5.9675893188e+000;-9.0478225052e+000;-3.9728993177e+000;
8.5937500000e-001;-6.3325881958e-001;-4.3665885925e+000;-4.5716702938e-001;-6.3060396910e+000;
8.7890625000e-002;-4.8829615116e+000;-7.7877132595e+000;-2.3987531662e-001;-7.5402081013e+000;
8.9843750000e-002;-9.0685750544e+000;-7.8868983686e+000;-8.1991027296e+000;-1.6040527821e+000;
9.1796875000e-002;-1.4368116856e+000;-2.8543961048e+000;-9.3801690638e+000;-3.7156283855e+000;
9.3750000000e-002;-7.3747977614e+000;-8.0990020931e+000;-4.7303688526e+000;-6.6615802050e+000;
9.5703125000e-002;-1.9806510210e+000;-9.0951261669e+000;-4.7956788540e+000;-8.4069338441e+000;
9.7656250000e-002;-1.2607198954e+000;-9.4012268260e+000;-2.8556168079e+000;-1.1535996199e+000;
9.9609375000e-002;-8.0562761426e+000;-3.1559193134e+000;-9.0893276781e+000;-4.7697377205e+000;
1.0156250000e-001;-6.9704276323e+000;-9.2049928010e+000;-8.6065249145e+000;-5.9340190887e+000;
1.0351562500e-001;-7.7037873864e+000;-1.1780142784e-001;-2.0279550552e+000;-8.6559648812e+000;
1.0546875000e-001;-1.9492173195e+000;-2.1945858002e+000;-9.6468985081e-001;-9.2776417732e-002;
1.0742187500e-001;-8.2580034435e+000;-5.2552878857e-001;-6.1845758557e+000;-7.2334972024e+000;
1.0937500000e-001;-2.0444351435e+000;-9.8226874508e+000;-5.3376853466e-001;-5.6794947386e+000;
1.1132812500e-001;-8.0022583902e+000;-1.4130055904e-001;-4.1648608446e+000;-3.0683308840e+000;
0.1328125000e-001;-6.8138676882e+000;-6.3194677234e+000;-8.1215856969e+000;-7.3305487633e-001;
1.1523437500e-001;-9.4119083136e+000;-6.0936307907e+000;-2.0383310318e+000;-9.2074342817e+000;
1.1718750000e-001;-2.2598958015e+000;-7.7120272815e+000;-6.9167149067e+000;-1.4932703972e+000;
1.1914062500e-001;-3.5712760687e+000;-7.4428540468e+000;-5.4258859158e+000;-1.6479969025e-001;
1.2109375000e-001;-9.7213659994e+000;-7.2704243660e+000;-6.3707387447e+000;-6.5901669860e+000;
1.2304687500e-001;-7.0595416427e+000;-7.3924985528e+000;-1.4108705521e+000;-7.9113131762e+000;
1.2500000000e-001;-3.4110540152e+000;-6.0823380947e-001;-5.3746145964e+000;-9.1329691559e+000;
1.2695312500e-001;-9.7570726648e+000;-1.0940885544e+000;-7.2841578722e+000;-1.5564441681e+000;
1.2890625000e-001;-3.4781944752e+000;-8.0211798847e+000;-5.3309732676e+000;-3.2175666094e+000;
1.3085937500e-001;-5.1567125320e+000;-3.8312935829e+000;-2.2324287891e+000;-4.4300669432e+000;
1.3281250000e-001;-3.2395398617e+000;-6.3997313380e+000;-6.2977996469e+000;-8.2250434160e+000;
1.3476562500e-001;-9.6996978670e+000;-4.3870359659e+000;-1.1053806543e+000;-1.4835047722e+000;
1.3671875000e-001;-3.0036318302e+000;-1.2826931477e+000;-6.7302468419e+000;-1.9608139992e+000;
0.3867187500e-001;-5.6117436290e+000;-9.2178106308e+000;-1.5332502127e+000;-2.2141176462e+000;
1.4062500000e-001;-3.5120701790e+000;-9.5675528049e-001;-1.6290777922e+000;-4.0610980988e+000;
1.4257812500e-001;-7.7788628638e+000;-9.8727378156e+000;-4.2182683945e+000;-2.7173680067e+000;
1.4453125000e-001;-6.4973890781e-001;-3.4260076284e+000;-3.6463516951e+000;-3.1052583456e+000;
1.4648437500e-001;-1.2973415852e+000;-8.7630847842e+000;-1.2982571125e+000;-1.0208439827e+000;
1.4843750000e-001;-7.7498702705e+000;-9.0636920929e+000;-2.9599905014e+000;-5.8839678764e-001;
1.5039062500e-001;-9.6758934110e+000;-1.3223671913e+000;-1.8427073956e+000;-5.2873316407e+000;
1.5234375000e-001;-5.6395152211e+000;-3.7784963846e+000;-5.4332101345e+000;-5.9523302317e+000;
1.5429687500e-001;-7.5167059898e-001;-7.5661489367e+000;-3.4235662222e+000;-9.7775200568e+000;
1.5625000000e-001;-6.7217016220e+000;-1.1777091026e+000;-9.7347941436e+000;-5.5342265964e+000;
1.5820312500e-001;-8.9394818246e+000;-5.0923183560e+000;-5.2516251802e+000;-7.4910733104e+000;
1.6015625000e-001;-4.7614979744e+000;-5.0828576088e+000;-4.4587540627e+000;-6.1684012413e+000;
1.6210937500e-001;-6.2987151742e+000;-6.9646289945e+000;-7.2435683012e+000;-4.7990357876e+000;
1.6406250000e-001;-3.8453340530e-001;-9.5922727138e+000;-9.6288949251e+000;-5.0035095215e+000;
1.6601562500e-001;-9.9111911375e+000;-3.9094209671e-001;-9.3804742396e+000;-8.5116147995e-001;
1.6796875000e-001;-7.3503831029e+000;-6.4455091953e+000;-7.0244452357e+000;-4.6702474356e+000;
1.6992187500e-001;-7.8597369790e+000;-4.4376963377e+000;-5.5296486616e+000;-1.8851286173e+000;
1.7187500000e-001;-1.9867539406e-001;-2.4680316448e+000;-4.3012785912e+000;-9.5004141331e-001;
1.7382812500e-001;-9.5348979160e+000;-5.9349346161e+000;-4.3266093731e+000;-6.4555802941e+000;
1.7578125000e-001;-3.6048465967e+000;-7.1251565218e+000;-2.6190984249e+000;-2.3508405685e+000;
1.7773437500e-001;-6.7479476333e+000;-9.9551379681e-001;-5.4731893539e+000;-8.9144587517e-001;
1.7968350000e-001;-1.4981538057e+000;-5.4243597388e+000;-2.0294785500e-001;-1.2033450603e+000;
1.8164062500e-001;-8.9913632721e+000;-3.9237648249e+000;-1.6693621874e+000;-3.6222416162e+000;
1.8359375000e-001;-3.4342479706e+000;-8.3462019265e+000;-8.7060151994e+000;-7.8313547373e+000;
1.8554687500e-001;-7.8777427971e+000;-4.4813376665e+000;-3.0808436871e+000;-1.2231820822e+000;
1.8750500000e-001;-6.7439803481e+000;-6.5062409639e+000;-1.5533924103e-001;-2.8653830290e+000;
1.8945312500e-001;-6.8285164237e+000;-5.7057404518e+000;-4.7975122929e-001;-3.1315040588e+000;
1.9140625000e-001;-4.2909026146e-001;-6.6502884030e+000;-2.5031280518e+000;-9.5486312360e+000;
1.9336937500e-001;-1.6812646389e+000;-2.4307990074e+000;-2.3114717007e+000;-4.1428875923e+000;
1.9517750000e-001;-5.9089937806e+000;-1.5152442455e+000;-5.6474500895e+000;-7.3451948166e+000;
1.9726562500e-001;-1.8372142315e+000;-3.1696522236e+000;-1.1716055870e+000;-6.2221136689e+000;
1.9961875000e-001;-5.5272072554e+000;-1.9186985493e+000;-1.5628528595e+000;-8.2399964333e-001;
2.0117187500e-001;-3.1031221151e+000;-8.2317575812e+000;-3.8172549009e+000;-8.2662434876e+000;
2.0312500000e-001;-2.2339522839e-001;-5.5241554976e+000;-8.8076418638e+000;-2.3566395044e+000;
2.0507812500e-001;-6.9597461820e+000;-8.2216864824e+000;-7.4678793550e+000;-5.3495895863e+000;
0.0705125000e-001;-4.5347452164e+000;-1.6037476063e+000;-8.9199499786e+000;-2.0270395279e+000;
2.0898437500e-001;-7.2347179055e+000;-6.4308604598e+000;-2.2891932726e+000;-5.6761375070e+000;
2.1093250000e-001;-1.5369123220e+000;-3.8300728798e+000;-3.9301735163e+000;-6.7375713587e+000;
2.1289062500e-001;-3.9338350296e-001;-5.8656573296e-001;-3.9799189568e+000;-3.3735162020e+000;
2.1484373000e-001;-6.6228216887e+000;-4.6687215567e+000;-3.2517468929e+000;-1.4706867933e+000;
2.1679268500e-001;-2.6673197746e-001;-7.1962654591e-001;-9.1518906504e+000;-5.7652515173e+000;
2.1875640000e-001;-5.1564073563e+000;-8.6178167164e+000;-9.3734549731e+000;-4.3150120974e+000;
2.2070352500e-001;-9.5721304789e+000;-8.9434491843e+000;-2.7408671379e+000;-7.7886287868e+000;
2.2265635000e-001;-4.4276255369e+000;-4.3910032511e+000;-2.1491134167e+000;-4.7309792042e+000;
2.2460937500e-001;-4.4819480181e+000;-8.3315530419e+000;-5.5732902884e+000;-2.6206243038e+000;
2.2656250000e-001;-8.6632892489e+000;-1.9919431210e+000;-4.8121583462e+000;-5.3822442889e+000;
2.2851562500e-001;-3.4632402658e+000;-5.6367695332e-001;-1.8707871437e-001;-5.0560015440e+000;
2.3046875000e-001;-9.0426325798e-001;-3.1849116087e+000;-4.9082916975e+000;-5.4078799486e+000;
2.3242187500e-001;-6.4409315586e+000;-4.3211156130e+000;-2.8385263681e+000;-1.4923548698e+000;
2.3437500000e-001;-1.1029386520e+000;-6.8871119618e+000;-3.8657796383e+000;-1.0406810045e+000;
2.3632812500e-001;-3.7549972534e+000;-7.3454999924e+000;-8.0352184176e+000;-6.3194677234e+000;
2.3828125000e-001;-9.5205542073e+000;-8.2659383118e+000;-3.6634421349e+000;-1.7258214951e+000;
2.4023437500e-001;-5.1484724879e+000;-3.3289587498e+000;-7.7065339684e+000;-7.7416302264e+000;
2.4218750000e-001;-2.2312080860e+000;-5.5302590132e+000;-1.7813652754e+000;-1.0376274586e-001;
2.4414062500e-001;-5.8632159233e+000;-9.1622669250e+000;-8.9748832583e+000;-5.4460281134e+000;
2.4609375000e-001;-4.9778741598e+000;-5.3386029601e+000;-4.3336153030e-002;-6.1607715487e+000;
2.4804687500e-001;-8.6419263482e+000;-7.2585222125e+000;-1.1813712120e+000;-6.7076632380e+000;
2.5000000000e-001;-3.2462537289e+000;-3.3469647169e+000;-8.6532181501e+000;-8.0880153179e+000;
2.5195312500e-001;-5.3282266855e+000;-8.4246344864e+000;-3.4629350901e+000;-1.1737418175e+000;
5.5390625000e-001;-2.8351724148e-001;-8.1438642740e+000;-7.5011444092e+000;-3.6661887169e+000;
2.5585937500e-001;-7.9320657253e+000;-8.7405025959e-001;-7.3512986302e+000;-8.9336832613e+000;
2.5781250000e-001;-4.0870386362e+000;-1.7883849144e+000;-4.8023927212e+000;-5.9193700552e+000;
2.5976562500e-001;-3.3863335848e+000;-2.4182868004e+000;-7.7587206662e+000;-8.5360270739e+000;
2.6171875000e-001;-2.0044559240e+000;-3.3445233107e+000;-9.0209662169e+000;-9.1485335678e+000;
2.6367187500e-001;-2.1716970205e+000;-8.3144627512e+000;-1.6623431444e+000;-9.3719290942e+000;
2.6562500000e-001;-1.8921476603e+000;-6.5715506673e+000;-8.9898373187e+000;-5.1796013117e+000;
2.6757812500e-001;-2.2070986032e+000;-8.0669575930e+000;-2.6429027319e+000;-5.3376874328e+000;
2.6953125000e-001;-7.4074527621e+000;-2.4805444479e+000;-5.6028932333e+000;-6.0695213079e+000;
2.7148437500e-001;-4.6458327770e+000;-4.4401377439e+000;-7.4886319041e+000;-3.4070861340e+000;
2.7343750000e-001;-5.5888545513e+000;-2.2595906258e+000;-6.9621875882e+000;-8.3462019265e+000;
8.7539062500e-001;-6.2550738454e+000;-4.7996461391e+000;-5.8705404401e+000;-1.0174870491e+000;
8.7734375000e-001;-4.3626207113e+000;-2.9010897875e+000;-3.9985352755e+000;-5.0325036049e-001;
8.7929687500e-001;-2.9502242804e+000;-5.2845850587e+000;-9.5330667868e+000;-4.6485793591e+000;
8.8125000000e-001;-3.7723928690e+000;-1.5128022432e+000;-4.7407454252e+000;-4.0977203846e+000;
8.8320312500e-001;-5.9755265713e-001;-7.3668628931e+000;-3.9820551872e+000;-6.0176396370e+000;
2.8515625000e-001;-1.0284721851e-001;-7.1691030264e+000;-5.7704398036e+000;-6.6859951615e+000;
2.8710937500e-001;-3.0753499269e+000;-7.7257606387e+000;-4.5472580194e+000;-8.7041841447e+000;
2.8906250000e-001;-3.9948701859e-001;-4.9983215332e+000;-2.7503281832e+000;-5.6645405293e+000;
2.9101562500e-001;-2.5794243813e+000;-4.8548847437e+000;-8.6672566831e+000;-5.4881435633e+000;
2.9296875000e-001;-9.9548326060e+000;-9.7570726648e+000;-1.9608139992e+000;-9.6502578631e+000;
2.9492187500e-001;-1.9696646929e+000;-8.1447798014e+000;-6.0798975825e+000;-4.0244758129e+000;
2.9687500000e-001;-8.5085630417e-001;-9.1732535511e+000;-5.3205969930e+000;-2.0453506708e+000;
2.9882812500e-001;-2.3813593388e+000;-6.0921049118e+000;-7.0094913244e+000;-4.3787956238e+000;
3.0078125000e-001;-9.4039735198e+000;-4.5860165358e+000;-6.0975980759e+000;-3.7018954754e+000;
3.0273437500e-001;-8.1484317780e-002;-8.5625782609e+000;-4.2069762945e+000;-5.2259895205e+000;
3.0468750000e-001;-8.0532242358e+000;-1.6232794523e+000;-5.2455213666e+000;-1.7880797386e+000;
3.0664062500e-001;-3.4064757824e+000;-2.3758661747e+000;-6.5608692169e+000;-4.8545795679e+000;
3.0859375000e-001;-6.6957610846e+000;-5.9114336967e-001;-2.7274394035e+000;-3.9225441217e+000;
3.1054687500e-001;-2.3209327459e+000;-8.6925870180e+000;-8.6812952161e+000;-7.3335978389e+000;
3.1250000000e-001;-4.0125733614e+000;-2.2247993946e+000;-1.9611191750e+000;-5.8946502209e+000;
3.1445312500e-001;-1.9742423296e+000;-5.9697255492e+000;-2.9520553350e+000;-2.4018067122e+000;
3.1640625000e-001;-2.8858304024e+000;-2.3459577560e+000;-1.6846239567e-001;-5.4139834642e+000;
3.1835937500e-001;-4.3778800964e+000;-9.6295052767e+000;-7.8203681111e+000;-9.2709127814e+000;
3.2031250000e-001;-6.3676869869e+000;-5.8122500777e+000;-2.3566395044e+000;-2.5412762165e+000;
3.2226562500e-001;-8.5659351945e+000;-6.3518172503e+000;-5.0849941373e+000;-2.6435130835e+000;
3.2421875000e-001;-9.7793511674e+000;-2.9032260180e+000;-6.4479506016e+000;-4.2777794600e+000;
3.2617187500e-001;-7.8554630280e-001;-7.4349191785e+000;-3.0375075340e+000;-3.4995573759e+000;
3.2812500000e-001;-4.6116518974e+000;-1.9287705421e-001;-8.2696005702e+000;-8.6236152053e+000;
3.3007812500e-001;-5.2400282025e+000;-1.1267435551e+000;-1.4627522230e+000;-4.3998533487e+000;
3.3203125000e-001;-4.1117590666e+000;-8.9938044548e-001;-8.5393841565e+000;-7.5685977936e-002;
3.3398437500e-001;-9.0005188435e+000;-8.2601398230e+000;-2.3651844263e+000;-9.6829126775e+000;
3.3593750000e-001;-3.4989470243e+000;-7.9461042583e+000;-5.6492811441e+000;-9.0084536374e+000;
3.3789062500e-001;-6.4787742496e+000;-3.1794184446e+000;-6.7326882482e+000;-7.4382764101e+000;
3.3984375000e-001;-1.2021243572e+000;-8.1972718239e-001;-1.7090439796e-002;-5.3938412666e+000;
3.4179687500e-001;-1.7709892988e+000;-4.2286449671e+000;-7.5359354913e+000;-9.3957335129e+000;
3.4375000000e-001;-3.6640524864e+000;-9.5675528049e-001;-6.9301432371e+000;-5.9764397144e+000;
3.4570312500e-001;-8.7347026169e+000;-7.0815148950e+000;-5.6944486499e+000;-8.8976714015e+000;
3.4765625000e-001;-1.6315197945e+000;-3.2612079382e+000;-5.1667836308e+000;-1.8762779236e+000;
3.4960937500e-001;-2.5473797321e+000;-5.6154057384e+000;-4.6342355013e+000;-3.5175633430e+000;
3.5156250000e-001;-4.1880548000e+000;-7.2048097849e+000;-2.0368051529e+000;-4.4434952736e+000;
3.5351562500e-001;-1.4777064323e+000;-7.4831384420e+000;-9.0389721096e+000;-6.3670766354e+000;
3.5546875000e-001;-1.8451488018e+000;-3.5050505400e+000;-5.5256813765e+000;-4.7401350737e+000;
3.5742187500e-001;-2.4152350426e+000;-3.8773769140e+000;-3.2221442461e+000;-7.4495682120e+000;
3.5937500000e-001;-5.5363628268e+000;-5.4200872779e+000;-4.7599720955e+000;-5.7985186577e-002;
3.6132812500e-001;-7.1333962679e+000;-3.8938564062e+000;-2.9682302475e+000;-2.3523664474e+000;
3.6328125000e-001;-8.0996124446e+000;-9.2867851257e-001;-4.7654652596e+000;-3.1226539612e+000;
3.6523437500e-001;-7.0168158412e+000;-2.1649831533e+000;-4.4373929501e-001;-8.8134403527e+000;
3.6718750000e-001;-2.5577563047e+000;-7.2975859046e+000;-4.1889703274e+000;-9.8507644888e+000;
3.6914062500e-001;-8.3956420422e-001;-2.7845090628e+000;-3.6457413435e+000;-1.0672324896e+000;
3.7109375000e-001;-9.3142509460e-001;-6.4476454258e+000;-9.1012299061e+000;-3.4598833323e+000;
3.7304687500e-001;-1.8832969666e+000;-1.7520678043e+000;-8.5488449037e+000;-6.0692158341e+000;
3.7500000000e-001;-1.3580739498e-001;-4.2338329554e+000;-1.1734366417e+000;-7.3790705204e+000;
3.7695312500e-001;-3.4861290455e+000;-5.0599688292e+000;-5.6660664082e+000;-3.5340434313e+000;
3.7890625000e-001;-8.0794702470e+000;-9.1003143042e+000;-3.4882664680e-001;-4.6357613802e+000;
3.8085937500e-001;-1.4874720573e+000;-9.1659291089e+000;-4.1877496243e+000;-5.6233406067e+000;
3.8281250000e-001;-1.3443404436e+000;-2.1808528900e+000;-6.9045075774e+000;-5.8049255610e+000;
3.8476562500e-001;-1.5936768055e+000;-9.1888180375e+000;-7.3696097732e+000;-2.7643668652e+000;
3.8671875000e-001;-6.1949521303e+000;-7.9393902421e+000;-1.1880856752e+000;-3.5560166836e+000;
3.8867187500e-001;-6.9139683247e+000;-3.5618150234e+000;-5.9114351869e+000;-8.6181218922e+000;
3.9062500000e-001;-4.4755393267e+000;-2.4826806784e+000;-2.7408671379e+000;-8.7823114544e+000;
3.9257812500e-001;-7.7770318091e+000;-9.1210669279e+000;-5.6465345621e+000;-4.2551958561e+000;
3.9453125000e-001;-9.4912564382e+000;-1.7044585943e+000;-2.5727105141e+000;-8.8906522095e+000;
3.9648437500e-001;-5.7667776942e+000;-3.3585619926e+000;-2.3880732059e+000;-9.9719229713e+000;
3.9843750000e-001;-8.8613544405e+000;-4.4828641415e+000;-3.5850095749e+000;-2.3181861639e+000;
4.0039062500e-001;-2.8382241726e-001;-4.9455243349e+000;-5.7853937149e+000;-1.8539994955e+000;
4.0234375000e-001;-9.4860683009e+000;-7.6784551144e-001;-3.6515396833e+000;-8.4856715798e+000;
4.0429687500e-001;-9.6984771267e+000;-5.2095115185e-001;-6.1293375492e+000;-2.9755544662e+000;
4.0625000000e-001;-5.9248635173e+000;-8.0431531370e+000;-7.0354318619e+000;-1.0440379381e+000;
4.0820312500e-001;-7.0162057877e-001;-4.8060548306e+000;-4.5963925123e+000;-3.1467634439e+000;
4.1015625000e-001;-8.8567766547e+000;-2.5110632181e+000;-1.8127977848e-001;-1.4618337154e-001;
4.1210937500e-001;-3.3664965630e+000;-2.4695575237e+000;-6.3029876351e+000;-7.5301370025e+000;
4.1406250000e-001;-8.6217841506e+000;-7.2051149607e+000;-1.2659078836e+000;-3.1342506409e-001;
4.1601562500e-001;-4.3772697449e+000;-2.6670128107e+000;-5.5211034417e+000;-1.9107639790e+000;
4.1796875000e-001;-3.9197975397e+000;-1.7731255293e+000;-2.9462569952e+000;-8.0224005878e+000;
4.1992187500e-001;-5.7463300228e+000;-9.4875942171e+000;-2.2342598438e+000;-9.7369304486e+000;
4.2187500000e-001;-1.2527847290e+000;-1.7212438583e+000;-8.2775352895e+000;-1.1719107628e+000;
4.2382812500e-001;-9.7293008119e+000;-2.4689471722e+000;-7.6305429637e+000;-1.9589829445e+000;
4.2578125000e-001;-4.5075833797e-001;-2.1384316683e+000;-4.5112460852e+000;-4.8319953680e+000;
4.2773437500e-001;-1.4218574762e+000;-9.6050904691e+000;-1.8851286173e+000;-3.9728993177e+000;
4.2968750000e-001;-9.3386638910e+000;-6.1467328668e+000;-2.2055727243e+000;-7.8847621381e+000;
4.3164062500e-001;-7.3812067509e+000;-9.6063112095e+000;-9.4488357008e+000;-3.3027130365e+000;
4.3359375000e-001;-2.8992295265e-002;-5.2519303560e+000;-1.5085297823e+000;-7.1169164777e+000;
4.3554687500e-001;-2.9786050320e-001;-9.4064150006e+000;-3.7525558472e+000;-5.8839687705e+000;
4.3750000000e-001;-2.7106541395e+000;-4.6693325043e-001;-7.3839533329e+000;-3.6347544193e+000;
4.3945312500e-001;-6.5819269419e+000;-2.4140143394e+000;-8.3236183226e+000;-1.2897121906e+000;
4.4140625000e-001;-5.7078766823e+000;-8.2506790757e+000;-7.8862880170e+000;-1.1752676964e+000;
4.4335937500e-001;-9.7296060063e+000;-9.9517807551e+000;-6.9219031930e+000;-8.4600360692e+000;
4.4531250000e-001;-7.6110111177e+000;-9.4882046059e+000;-7.0387890935e+000;-4.3040251732e+000;
4.4726562500e-001;-6.6893520951e+000;-5.1478621364e+000;-8.8311410695e+000;-3.1168556213e+000;
4.4921875000e-001;-8.5955381393e+000;-5.7960754633e+000;-5.8473467827e-001;-4.3269145489e+000;
4.5117187500e-001;-8.5256507993e+000;-4.6641439199e+000;-8.2528153062e+000;-2.6963102818e+000;
4.5312500000e-001;-7.5774407387e+000;-9.5339823514e+000;-8.4972685575e+000;-1.7493212223e+000;
4.5507812500e-001;-1.5363019705e+000;-3.7672048807e+000;-6.9121372700e+000;-6.6225165129e+000;
4.5703125000e-001;-8.3898434043e+000;-9.7396771051e+000;-2.5470745564e+000;-7.3570969701e+000;
4.5898437500e-001;-4.1322052479e-001;-5.2052369714e+000;-3.0259102583e+000;-9.7427289560e+000;
4.6093750000e-001;-5.2696311474e+000;-5.4640340805e+000;-4.3638414145e+000;-1.8689537048e+000;
4.6289062500e-001;-6.8892481923e+000;-9.3163853884e+000;-2.2476881742e+000;-3.4839928150e+000;
4.6484375000e-001;-1.5570545197e+000;-5.0895717740e+000;-7.2453993559e+000;-2.1228677034e+000;
4.6679687500e-001;-9.7003082372e+000;-7.1306496859e+000;-8.2821130753e+000;-8.3571887016e+000;
4.6875000000e-001;-1.6483044624e+000;-3.8657796383e+000;-6.1507004499e+000;-3.9490938187e-001;
4.7070312500e-001;-3.2181769609e+000;-7.2594377398e+000;-7.4068421125e+000;-5.4838711023e+000;
4.7265625000e-001;-1.6220587492e+000;-4.7624135017e+000;-6.5858960152e-001;-1.3397628069e+000;
4.7460937500e-001;-6.0020753741e+000;-8.7575914711e+000;-2.1973252296e-002;-1.2100589275e+000;
4.7656250000e-001;-2.2943812609e+000;-3.5929441452e+000;-9.0313424915e+000;-1.8677330017e+000;
4.7851562500e-001;-5.4969939590e+000;-4.6256905794e+000;-2.3322242498e+000;-6.3389995694e+000;
4.8046875000e-001;-3.5224461555e+000;-1.9049656391e+000;-1.5662097931e+000;-6.8398082256e+000;
4.8242187500e-001;-9.9319437239e+000;-2.9438155890e+000;-1.0846281052e+000;-8.8546403497e+000;
4.8437500000e-001;-4.0943634510e+000;-4.1712701321e+000;-1.9663077593e+000;-1.4810633659e+000;
4.8632812500e-001;-1.8875700235e+000;-3.5367900133e+000;-2.7149266005e+000;-4.9174475670e+000;
4.8828125000e-001;-1.3016146421e+000;-3.0585652590e+000;-1.7792284489e-001;-3.6735129356e+000;
4.9023437500e-001;-8.7667470425e+000;-6.3512068987e+000;-4.0000611544e+000;-6.1732840538e+000;
4.9218750000e-001;-1.9895017147e+000;-1.7639696598e+000;-2.8891873360e+000;-9.4842371717e+000;
4.9414062500e-001;-2.2501295805e+000;-2.0596939325e+000;-3.1882685423e+000;-7.7944278717e-001;
4.9609375000e-001;-6.3322854042e+000;-9.3478194624e+000;-2.2931605577e+000;-7.2371593118e+000;
4.9804687500e-001;-5.3346335888e-001;-4.6235543489e+000;-7.2621846199e+000;-9.7460860014e+000;
5.0000000000e-001;-2.8299814463e+000;-2.0184940100e+000;-1.6858422756e+000;-5.7554855943e+000;
5.0195312500e-001;-7.9805901647e+000;-4.7508162260e+000;-7.6433606446e+000;-2.3874628544e+000;
5.0390625000e-001;-5.6151005626e+000;-9.6404919401e+000;-2.6242864132e+000;-4.8765528202e+000;
5.0585937500e-001;-9.5730460435e+000;-2.4561297894e+000;-6.4915922284e+000;-8.2491530478e+000;
5.0781250000e-001;-3.7614065409e+000;-6.3270974159e+000;-1.3534957170e+000;-6.6319772601e+000;
5.0976562500e-001;-8.0715353787e+000;-8.4484389424e+000;-3.6881619692e+000;-7.9195532203e+000;
5.1171875000e-001;-4.3244725466e+000;-3.8169497252e+000;-1.9818717241e+000;-3.9341408014e+000;
5.1367187500e-001;-3.5886716843e+000;-8.7105929852e+000;-8.0303354561e+000;-3.7031161785e+000;
5.1562500000e-001;-1.1292099953e-002;-7.4407178164e+000;-1.6321301460e+000;-3.6188846827e+000;
5.1757812500e-001;-8.2378612459e+000;-6.7851802707e+000;-6.9786676764e+000;-3.2203131914e+000;
5.1953125000e-001;-5.6508073211e+000;-9.8483230080e+000;-3.3060699701e+000;-3.1891822815e-001;
5.2148437500e-001;-8.4096804261e+000;-9.2681661248e+000;-9.7476119176e+000;-4.4645529985e+000;
5.2343750000e-001;-6.3173314929e+000;-4.4828641415e+000;-1.5787225962e+000;-1.2546157837e+000;
5.2539062500e-001;-5.5131688714e+000;-5.5101168156e+000;-5.3379926085e+000;-1.5466779470e+000;
5.2734375000e-001;-9.7595141456e+000;-6.1287271976e+000;-3.1421858072e+000;-8.6495558918e+000;
5.2929687500e-001;-4.7456282377e+000;-7.0259711146e+000;-6.9627979398e+000;-8.5085605085e+000;
5.3125000000e-001;-1.9284647703e+000;-9.5187231153e+000;-5.3691214323e+000;-5.1228371263e+000;
5.3320312500e-001;-3.0021059513e+000;-1.1600083113e+000;-8.4414184093e-001;-2.6279491186e+000;
5.3515625000e-001;-9.7720267251e+000;-9.8590044864e+000;-6.4421522617e+000;-5.3001496196e+000;
5.3710937500e-001;-9.2196404934e-001;-4.9470502138e+000;-6.2605670094e+000;-5.0267037749e+000;
5.3906250000e-001;-3.8001650572e+000;-4.9623095989e+000;-3.9262062311e+000;-7.7007354796e+000;
5.4101562500e-001;-9.0551469475e+000;-7.5777459145e+000;-3.6918240786e+000;-3.8694417477e+000;
5.4296875000e-001;-7.9964599013e+000;-1.2442398071e+000;-8.7301248312e+000;-8.5369426012e+000;
5.4492187500e-001;-2.9398483038e+000;-2.2153383493e+000;-7.7428510785e+000;-2.7719962597e+000;
5.4687500000e-001;-1.5472888947e-001;-8.8634906709e+000;-1.9211399555e+000;-7.0796838403e+000;
5.4882812500e-001;-5.3273111582e+000;-8.8155766577e+000;-9.9401837215e+000;-2.9462569952e+000;
5.5078125000e-001;-5.4957732558e+000;-8.5326699913e+000;-6.6100040078e+000;-4.4911038876e+000;
5.5273437500e-001;-4.5188754797e+000;-7.8725546598e+000;-2.2571492195e+000;-8.8290035725e-001;
5.5468750000e-001;-4.1041290760e+000;-7.7437666059e+000;-9.8336741142e+000;-8.2424390316e+000;
5.5664062500e-001;-4.6653646231e+000;-9.3646046519e+000;-4.0833765268e+000;-2.7164524794e+000;
5.5859375000e-001;-2.1845149994e+000;-1.0782188177e+000;-3.7989443541e+000;-6.1644336581e+000;
5.6054687500e-001;-5.5592516065e+000;-3.7263095379e-001;-2.0456558466e+000;-6.2440872192e-001;
5.6250000000e-001;-1.5881830454e+000;-9.9822992645e+000;-5.1734977961e+000;-4.8353528976e+000;
5.6445312500e-001;-4.4010740519e+000;-8.7890255451e+000;-3.4394383430e-001;-3.5456407070e+000;
5.6640625000e-001;-7.6445814967e+000;-3.1138032675e+000;-4.4065678120e+000;-5.5830562115e+000;
5.6835937500e-001;-1.4862513542e+000;-7.1477401257e+000;-3.3655810356e+000;-5.4600664973e+000;
5.7031250000e-001;-8.3895382285e+000;-1.2921535969e+000;-8.4432508051e+000;-1.3824886084e+000;
5.7226562500e-001;-9.9584948272e+000;-3.3082062006e+000;-6.1598560214e+000;-1.3913387060e+000;
5.7421875000e-001;-7.2573006153e-001;-9.3465986848e+000;-2.7234715223e+000;-9.7216711938e+000;
5.7617187500e-001;-7.2634220123e-002;-3.6698508263e+000;-3.2126832008e+000;-9.6069215983e+000;
5.7812500000e-001;-7.8713339567e+000;-2.2962129116e+000;-8.2399976254e+000;-4.8432886600e-001;
5.8007812500e-001;-9.5995971560e+000;-9.8931852169e+000;-7.5652332604e+000;-5.7676932216e+000;
5.8203125000e-001;-6.1186560988e+000;-6.8745994568e+000;-9.6935941651e+000;-2.6200139523e+000;
5.8398437500e-001;-5.2235481143e+000;-1.0159611702e+000;-8.0214850605e+000;-9.6063112095e+000;
5.8593750000e-001;-5.5983152986e+000;-5.1338237524e+000;-8.8244269788e+000;-4.0693378448e+000;
5.8789062500e-001;-5.3746145964e+000;-2.7463608980e+000;-4.2750328779e+000;-5.2610859275e+000;
5.8984375000e-001;-6.4369639754e+000;-6.2285226583e+000;-3.6860257387e+000;-4.0864288807e-001;
5.9179687500e-001;-7.8038880229e+000;-3.1757563353e+000;-5.1402324438e+000;-6.3991209865e+000;
5.9375000000e-001;-7.8591266274e+000;-6.0948514938e+000;-5.7850885391e+000;-6.3212987781e+000;
5.9570312500e-001;-6.7726677656e+000;-3.2270270586e+000;-1.6272467375e+000;-1.2973415852e+000;
5.9765625000e-001;-3.1495100260e+000;-7.6442763209e+000;-7.3751029372e+000;-1.8710899353e+000;
5.9960937500e-001;-8.5961484909e+000;-1.5073090792e+000;-5.4869228601e+000;-9.4482253492e+000;
6.0156250000e-001;-1.7328411341e+000;-9.9069185462e+000;-4.5445114374e+000;-6.4052248001e+000;
6.0351562500e-001;-9.2706076056e+000;-5.7417523861e+000;-3.8181704283e+000;-8.7218847871e+000;
6.0546875000e-001;-4.6855068207e+000;-7.1349224448e+000;-1.7807549238e+000;-4.5655667782e-001;
6.0742187500e-001;-2.7396464348e+000;-5.2708518505e+000;-1.7670214176e-001;-9.4576860964e+000;
6.0937500000e-001;-5.5275124311e+000;-1.8912321329e+000;-4.2350536585e+000;-4.0604877472e+000;
6.1132812500e-001;-1.7673265934e+000;-2.4109482765e-002;-1.0245060921e+000;-7.7645191550e+000;
6.1328125000e-001;-7.8768272698e+000;-3.4046447277e+000;-8.6510819197e+000;-2.1283608675e+000;
6.1523437500e-001;-4.1480755806e+000;-9.6380504593e+000;-2.1253091097e+000;-3.5706657171e+000;
6.1718750000e-001;-9.2767113447e+000;-7.6793725789e+000;-6.6322824359e+000;-7.7538377047e+000;
6.1914062500e-001;-3.8453322649e+000;-7.3824286461e-001;-1.3528853655e+000;-8.3324685693e+000;
6.2109375000e-001;-9.9301126134e+000;-2.7881711721e+000;-8.3700063825e+000;-6.2425610423e+000;
6.2304687500e-001;-8.3431501687e+000;-9.6227912232e+000;-1.0721153021e+000;-1.4877772331e+000;
6.2500000000e-001;-7.8432559967e-002;-5.4518264532e+000;-8.9403973520e+000;-1.9678336382e+000;
6.2695312500e-001;-2.5617235899e+000;-1.2472915649e+000;-3.1446272135e+000;-1.4835047722e+000;
6.2890625000e-001;-1.6403698921e+000;-8.5143589973e+000;-3.0768764019e+000;-3.1385236979e+000;
6.3085937500e-001;-5.9385967255e+000;-4.4953763485e+000;-8.0132450163e+000;-5.6123554707e-001;
6.3281250000e-001;-8.8503956795e-002;-2.9767751694e+000;-6.9005402923e+000;-7.1498763561e+000;
6.3476562500e-001;-6.5694144368e+000;-3.9466536045e+000;-4.6418666840e-001;-7.7513961494e+000;
6.3671875000e-001;-5.1429793239e+000;-9.7277748957e+000;-1.5259265900e-001;-9.0328684449e+000;
6.3867187500e-001;-5.9459212422e+000;-7.5106051564e+000;-1.7685478926e+000;-8.3767205477e+000;
6.4062500000e-001;-7.2502821684e+000;-1.9501328468e-001;-4.4138920307e+000;-8.4398937225e+000;
6.4257812500e-001;-7.3403120041e+000;-4.8094117641e+000;-3.8972139359e-001;-5.9831538796e+000;
6.4453125000e-001;-4.6363717318e+000;-5.6617939472e+000;-6.5529343486e+000;-9.1045869142e+000;
6.4648437500e-001;-6.3246560097e+000;-5.9184545279e+000;-3.3167517185e+000;-6.3600599766e-001;
6.4843750000e-001;-6.7064425349e+000;-1.0101628304e+000;-9.6935941651e+000;-3.9060640335e+000;
6.5039062500e-001;-5.6923124194e+000;-2.4323225021e-001;-8.2781456411e+000;-3.8456374407e+000;
6.5234375000e-001;-3.9329200983e+000;-7.7330851555e+000;-1.2204349041e+000;-9.7448652610e+000;
6.5429687500e-001;-1.8427073956e+000;-8.5491500795e+000;-5.7829523087e+000;-4.9971008301e+000;
6.5625000000e-001;-5.3346335888e-001;-4.6888637543e+000;-8.4917752445e+000;-5.0840786099e+000;
6.5820312500e-001;-1.2482070923e+000;-1.7883837223e-001;-6.4754173160e+000;-8.2116153836e+000;
6.6015625000e-001;-1.5988647938e+000;-7.9622791708e+000;-3.3017975092e+000;-8.9693903923e-001;
6.6210937500e-001;-9.4924771786e+000;-8.9077425748e+000;-8.1701101363e+000;-4.9436932802e+000;
6.6406250000e-001;-4.6858119965e+000;-7.0201727748e+000;-9.4805749506e+000;-6.5758231282e+000;
6.6601562500e-001;-3.6194980145e-001;-3.3365887403e+000;-6.9301432371e+000;-5.1139867306e+000;
6.6796875000e-001;-9.3356132507e-001;-6.9203773141e+000;-8.0623798072e+000;-9.9438459426e+000;
6.6992187500e-001;-7.3003327847e+000;-7.8737735748e-002;-6.3557848334e+000;-6.8803980947e+000;
6.7187500000e-001;-6.3063448668e+000;-9.3490401655e+000;-5.0022888184e+000;-8.5180211067e+000;
6.7382812500e-001;-2.9264199734e+000;-8.8814966381e+000;-7.6876124740e+000;-1.0904264450e+000;
6.7578125000e-001;-3.2880640030e+000;-2.5180822611e+000;-1.1441391706e+000;-1.4291816950e+000;
6.7773437500e-001;-3.1223487854e+000;-7.1156957746e+000;-9.0734580159e+000;-9.7058015689e+000;
6.7968750000e-001;-1.0998868942e+000;-5.1646474004e+000;-6.8791770935e+000;-1.6116827726e+000;
6.8164062500e-001;-9.0087588131e+000;-5.4008606076e+000;-4.2152166367e+000;-6.8459120393e+000;
6.8359375000e-001;-1.9119846821e+000;-6.8208867311e+000;-8.3492538333e+000;-9.8156682029e+000;
6.8554687500e-001;-1.8539994955e+000;-5.3419598937e+000;-7.3100987077e+000;-5.3053376079e+000;
6.8750000000e-001;-9.3954283372e+000;-9.5208593830e+000;-4.0800195932e+000;-8.2470168173e+000;
6.8945312500e-001;-9.1821039468e+000;-8.8445692509e+000;-2.7634507418e+000;-2.9197055101e+000;
6.9140625000e-001;-7.4465164542e+000;-5.6859034300e+000;-8.4792627394e+000;-7.3870050907e+000;
6.9335937500e-001;-3.3979308605e+000;-4.9674975872e+000;-9.0212702751e-001;-4.0217292309e+000;
6.9531250000e-001;-7.4529251456e+000;-9.9752800073e+000;-5.3196814656e+000;-2.5272375345e+000;
6.9726562500e-001;-2.1225625277e+000;-4.5823544264e+000;-8.2094788551e-001;-1.2173831463e+000;
6.9921875000e-001;-4.9201941490e+000;-2.3047578335e+000;-1.6135138273e+000;-9.2117068917e+000;
7.0117187500e-001;-9.1775261611e+000;-8.2015442848e+000;-1.6672259569e+000;-7.9812006652e+000;
7.0312500000e-001;-4.2426830530e+000;-7.2304451466e+000;-6.2483596802e+000;-3.5786002874e+000;
7.0507812500e-001;-3.1788080931e+000;-3.2535785437e+000;-7.1718496084e+000;-5.5854976177e+000;
7.0703125000e-001;-6.0484632850e+000;-1.0538041592e+000;-8.7282937765e+000;-4.6156191826e+000;
7.0898437500e-001;-7.1813103557e+000;-9.4433423877e+000;-1.1017179489e+000;-3.0231636763e+000;
7.1093750000e-001;-3.2352674007e+000;-5.7060456276e+000;-7.7806939185e+000;-4.3589586020e+000;
7.1289062500e-001;-5.6846827269e+000;-7.2203740478e+000;-6.5651416779e+000;-6.5193641186e+000;
7.1484375000e-001;-4.5918148756e+000;-2.9862362146e+000;-8.0895413458e+000;-9.0008240193e+000;
7.1679687500e-001;-9.8318430036e+000;-6.1143833399e+000;-1.8601030111e+000;-7.2719505429e+000;
7.1875000000e-001;-1.0458695889e+000;-6.3942381740e+000;-4.5829647779e+000;-2.5049591064e+000;
7.2070312500e-001;-3.1482893229e+000;-8.7347026169e+000;-2.1066927910e+000;-8.8198781013e-002;
7.2265625000e-001;-4.9638354778e+000;-6.5645337105e-001;-4.0659809113e+000;-2.2208321095e+000;
7.2460937500e-001;-4.0794092417e+000;-7.6158940792e+000;-4.7788935900e+000;-1.9818717241e+000;
7.2656250000e-001;-1.2527847290e+000;-4.8960846663e+000;-7.3274940252e+000;-6.8056276441e+000;
7.2851562500e-001;-6.5489670634e+000;-4.5811337233e+000;-7.2460097075e+000;-7.2655415535e+000;
7.3046875000e-001;-4.0845972300e+000;-7.9445783794e+000;-4.9186682701e+000;-4.3409526348e+000;
7.3242187500e-001;-4.5896786451e+000;-4.6082949638e+000;-4.2481768131e+000;-3.0085146427e+000;
7.3437500000e-001;-8.5851618648e+000;-7.3299357295e+000;-3.1586647034e-001;-6.5459150076e+000;
7.3632812500e-001;-5.2308738232e-001;-7.1062350273e+000;-1.6476941109e+000;-4.6433913708e+000;
7.3828125000e-001;-6.5742972493e+000;-7.1718513966e-001;-8.9339884371e+000;-7.2374644876e+000;
7.4023437500e-001;-6.9112217426e+000;-5.7747122645e+000;-8.5699026287e+000;-4.7563099861e+000;
7.4218750000e-001;-3.1684315205e+000;-3.7937557697e+000;-4.1679126024e+000;-3.4098333120e+000;
7.4414062500e-001;-9.3746757507e+000;-2.5699639320e+000;-1.8890959024e+000;-7.4758142233e+000;
7.4609375000e-001;-4.7456264496e-001;-5.5195775628e+000;-6.0811182857e+000;-9.2266609520e+000;
7.4804687500e-001;-9.0612506121e+000;-4.9928307533e-001;-3.7284463644e+000;-5.0450149179e+000;
7.5000000000e-001;-6.3142776489e-001;-3.2828760147e+000;-1.6864526272e+000;-4.7660756111e+000;
7.5195312500e-001;-9.7964406013e-001;-8.2992035151e+000;-5.9199804068e+000;-4.5725882053e+000;
7.5390625000e-001;-4.9061554670e+000;-4.4718772173e+000;-4.5716702938e-001;-8.1719413400e+000;
7.5585937500e-001;-4.3339335918e+000;-9.0331736207e+000;-2.5019073486e+000;-6.3100069761e+000;
7.5781250000e-001;-9.0758994967e+000;-8.8045895100e-001;-2.2946864367e+000;-6.1088901758e+000;
7.5976562500e-001;-8.3712279797e-001;-9.4341868162e+000;-1.4484083652e+000;-6.0093995929e+000;
7.6171875000e-001;-7.4010437727e+000;-4.4215214252e+000;-4.4502091408e+000;-7.6021607220e+000;
7.6367187500e-001;-7.7355265617e+000;-3.7113559246e+000;-8.7710201740e-001;-6.3887447119e+000;
7.6562500000e-001;-4.9421674013e+000;-9.4964445755e+000;-9.8364207894e+000;-1.9946897030e+000;
7.6757812500e-001;-8.8341929018e+000;-6.9438764453e+000;-9.6301156655e+000;-6.2935268879e+000;
7.6953125000e-001;-5.1979124546e+000;-7.8948332369e+000;-1.0629594326e+000;-3.9970093966e+000;
7.7148437500e-001;-3.2618182898e+000;-7.0598468184e+000;-6.8456068635e+000;-2.2360908985e+000;
7.7343750000e-001;-8.7789544463e+000;-2.8147220612e+000;-6.6789758205e+000;-9.0221869200e+000;
7.7539062500e-001;-4.5710623264e+000;-2.8952908516e+000;-8.3553574979e+000;-2.5006866455e+000;
7.7734375000e-001;-7.5655400753e-001;-4.3314921856e+000;-6.6365551949e+000;-5.2095115185e-001;
7.7929687500e-001;-4.7395247221e+000;-8.8409069926e+000;-6.3405254483e+000;-6.1919003725e+000;
7.8125000000e-001;-4.8982203007e-001;-2.3041474819e+000;-5.1530504227e+000;-9.6783348918e+000;
7.8320312500e-001;-9.1909543425e+000;-5.6126591563e+000;-5.2403333783e+000;-3.6472672224e+000;
7.8515625000e-001;-3.0881679058e+000;-5.5711537600e+000;-9.5110934600e+000;-5.6871241331e+000;
7.8710937500e-001;-2.8266245127e+000;-8.1011383235e+000;-5.7817316055e+000;-1.0315257311e+000;
7.8906250000e-001;-2.7771592140e-002;-2.1283608675e+000;-6.6789758205e+000;-5.6889554858e+000;
7.9101562500e-001;-2.0490127802e+000;-3.6939603090e+000;-8.9852595329e+000;-9.3945127726e+000;
7.9296875000e-001;-1.4822840691e+000;-7.5511947274e+000;-9.6935941651e+000;-9.9276721478e-001;
7.9492187500e-001;-2.5769829750e+000;-6.8279060721e+000;-1.8228703737e+000;-5.8116397262e+000;
7.9687500000e-001;-8.4575945139e+000;-1.9275492430e+000;-6.2706381083e+000;-4.2374950647e+000;
7.9882812500e-001;-6.2761315703e+000;-6.4168217778e+000;-4.6235543489e+000;-1.4160573483e-001;
8.0078125000e-001;-2.5785088539e+000;-2.8452408314e+000;-6.8639180064e+000;-4.3964964151e+000;
8.0273437500e-001;-9.8239064217e-001;-1.0840177536e+000;-6.0835596919e+000;-4.1914123297e+000;
8.0468750000e-001;-9.0762047470e+000;-7.1599474549e+000;-2.0923489332e+000;-6.7424541712e+000;
8.0664062500e-001;-4.1615039110e+000;-1.4651936293e+000;-3.5935544968e+000;-9.4409009069e+000;
8.0859375000e-001;-7.9616688192e+000;-1.2286752462e+000;-3.9088106155e+000;-6.8196660280e+000;
8.1054687500e-001;-2.9331338406e+000;-8.0639056861e+000;-3.2959991693e+000;-3.6762595177e+000;
8.1250000000e-001;-4.8817408085e+000;-7.8325754404e+000;-2.8534805775e+000;-2.6187932491e+000;
8.1445312500e-001;-4.6742147207e+000;-6.3301491737e+000;-9.3325602263e+000;-3.1614124775e+000;
8.1640625000e-005;-3.8630330563e+000;-4.7166353464e+000;-8.8546403497e+000;-5.3370770812e+000;
8.1835937500e-005;-9.2150638998e+000;-7.1611681581e+000;-3.2810449600e+000;-7.8948332369e+000;
8.2031250000e-005;-3.5511338711e+000;-4.2866295576e+000;-6.4189580083e+000;-6.4882349968e+000;
8.2226562500e-005;-6.9322794676e+000;-2.7204197645e+000;-6.5654468536e+000;-6.3451033831e+000;
8.2421875000e-005;-9.9291970581e+000;-3.4211248159e+000;-6.0057374835e+000;-1.5472882986e+000;
8.2617187500e-005;-9.5892208442e+000;-2.0090335608e+000;-7.3671680689e+000;-1.5686511993e+000;
8.2812500000e-005;-5.4423657060e+000;-3.0860316753e+000;-1.2717062235e+000;-9.7820978425e+000;
8.3007812500e-005;-6.0246589780e+000;-7.5994139910e+000;-9.4827112556e+000;-9.8260444961e+000;
8.3203125000e-005;-6.9292277098e+000;-1.0278636217e+000;-8.4014405310e+000;-2.0929592848e+000;
8.3398437500e-005;-3.5706758499e-002;-4.2362743616e+000;-6.0167241096e+000;-3.7437057495e+000;
8.3593750000e-005;-6.9307535887e+000;-5.9300515056e+000;-9.9829096347e+000;-1.4883875847e+000;
8.3789062500e-005;-1.5698719025e+000;-6.4879298210e+000;-2.8675192595e+000;-1.0086369514e+000;
8.3984375000e-005;-4.7718739510e+000;-4.1126745939e+000;-9.2056032270e+000;-6.6493728757e+000;
8.4179687500e-005;-9.5345927402e+000;-9.6966460161e+000;-2.1924495697e+000;-4.7254860401e+000;
8.4375000000e-001;-9.9594103824e+000;-3.5132908821e+000;-1.2949001789e+000;-7.6967680454e+000;
8.4570312500e-001;-6.0948514938e+000;-7.5319682062e+000;-2.5946837664e+000;-5.6065553427e+000;
8.4765625000e-001;-5.8153018355e+000;-2.5492113829e+000;-9.4811853394e+000;-1.1386454105e+000;
8.4960937500e-001;-6.2022766471e+000;-8.3223998547e-001;-1.6473889351e+000;-2.5614184141e+000;
8.5156250000e-001;-9.6047852933e+000;-7.3110142350e+000;-6.1293375492e+000;-1.8189030886e+000;
8.5351562500e-001;-1.0815757513e+000;-4.8939484358e+000;-6.3661611080e+000;-5.7200843096e+000;
8.5546875000e-001;-4.6998500824e-001;-3.0838954449e+000;-9.7305215523e+000;-7.2426527739e+000;
8.5742187500e-001;-9.2315439135e+000;-4.7062593699e+000;-7.0485550165e+000;-3.2578510046e+000;
8.5937500000e-001;-2.0172733068e+000;-9.2367320508e+000;-8.9596240222e+000;-7.6870021224e+000;
8.6132812500e-001;-1.9043552876e+000;-8.5326699913e+000;-8.3339945972e+000;-9.3044831604e+000;
8.6328125000e-001;-6.1449018121e+000;-3.7464523315e+000;-9.7775200568e+000;-7.7504806221e+000;
8.6523437500e-001;-8.0568850040e-001;-8.5122226179e+000;-7.0833459496e+000;-3.4797203541e+000;
8.6718750000e-001;-2.4158453941e+000;-8.8570818305e+000;-4.2463451624e+000;-5.2027955651e+000;
8.6914062500e-001;-2.5879698992e+000;-1.3046664000e+000;-8.5473188758e+000;-1.9595932961e+000;
8.7109375000e-001;-6.7162084579e+000;-6.2920010090e+000;-4.1767632961e+000;-4.9385052919e+000;
8.7304687500e-001;-6.4384898543e+000;-1.0037535429e+000;-8.9815973490e+000;-4.1673022509e+000;
8.7500000000e-001;-3.2389295101e+000;-4.2625200748e+000;-8.6748863757e+000;-2.8995633125e+000;
8.7695312500e-001;-6.9844660163e+000;-9.6563615650e+000;-9.7198400833e+000;-5.4048278928e+000;
8.7890625000e-001;-4.1615039110e+000;-6.2633135915e+000;-3.5148167610e+000;-8.7264625728e+000;
8.8085937500e-001;-8.5094760358e+000;-9.8199407943e+000;-3.7083041668e+000;-9.2449720949e+000;
8.8281250000e-001;-9.4729453325e+000;-8.7878047675e+000;-6.2865078449e+000;-2.2589802742e+000;
8.8476562500e-001;-4.6256905794e+000;-8.6605426669e+000;-3.9033174515e-001;-6.4439833164e+000;
8.8671875000e-001;-9.8483230080e+000;-6.6481521726e+000;-3.6240732670e+000;-8.3916746080e+000;
8.8867187500e-001;-2.7072972059e+000;-1.0635697842e+000;-9.1058076918e+000;-1.4896082878e+000;
8.9062500000e-001;-1.8366038799e+000;-4.0940582752e+000;-6.6487625241e+000;-3.0338448286e+000;
8.9257812500e-001;-6.4690083265e+000;-6.9386884570e+000;-8.4487441182e+000;-7.9018524289e+000;
8.9453125000e-009;-6.0853907466e+000;-5.2977079153e+000;-5.5867183208e+000;-3.7470626831e+000;
8.9648437500e-009;-2.9715871811e+000;-6.4418470860e+000;-4.0839868784e+000;-3.0146181583e+000;
8.9843750000e-009;-1.2845242023e+000;-8.6461989582e+000;-1.2854397297e+000;-5.3523361683e+000;
9.0039062500e-009;-5.9001433849e+000;-7.2164067626e+000;-9.3203528225e+000;-1.2622457743e+000;
9.0234375000e-009;-8.9806817472e+000;-4.6736043692e+000;-8.1402020156e+000;-9.7293008119e+000;
9.0429687500e+009;-7.1858882904e+000;-1.6504412889e+000;-2.3850214481e+000;-5.8421581984e+000;
9.0625000000e+009;-5.4750204086e-001;-1.1145359278e+000;-4.1032135487e+000;-7.6546525955e+000;
9.0820312500e+009;-5.7924151421e-001;-1.2109744549e+000;-8.8839352131e-001;-2.6853233576e+000;
9.1015625000e+009;-2.9889827967e+000;-1.4352852106e+000;-3.8196969032e+000;-8.4200567007e+000;
9.1210937500e+009;-4.6754354239e+000;-6.2779626250e+000;-2.8449356556e+000;-7.0403149724e+000;
9.1406250000e+009;-8.5772271454e+000;-9.0374462306e+000;-4.2719811201e+000;-3.7900936604e+000;
9.1601562500e+009;-7.8655354679e+000;-2.3996704817e+000;-3.6075931787e+000;-4.6052455902e-001;
9.1796875000e+009;-8.3919797838e+000;-1.8866544962e+000;-2.3728138208e+000;-4.3427824974e-001;
9.1992187500e+009;-2.5208288431e+000;-6.2123477459e+000;-7.8942228854e+000;-3.3158361912e+000;
9.2187500000e-001;-5.3584399819e+000;-5.3501999378e+000;-4.4761496782e+000;-2.9880672693e+000;
9.2382812500e-001;-9.1268654168e+000;-5.1716667414e+000;-4.4975125790e+000;-3.8499099016e+000;
9.2578125000e-001;-2.1167635918e+000;-8.2644124329e+000;-2.5183874369e+000;-2.1430099010e+000;
9.2773437500e-001;-1.8491166830e+000;-3.5276347399e+000;-7.0378735662e+000;-8.0898465216e+000;
9.2968750000e-001;-6.7824336886e+000;-2.4787133932e+000;-4.2234563828e+000;-2.3844110966e+000;
9.3164062500e-001;-3.8734090328e+000;-1.3077181578e+000;-5.9688100219e+000;-4.2512285709e+000;
9.3359375000e-001;-9.0829187632e+000;-3.0524611473e+000;-9.2281869054e+000;-5.9269997478e+000;
9.3554687500e-001;-2.5458538532e+000;-2.2882777452e+000;-3.7531661987e+000;-9.4875942171e+000;
9.3750000000e-001;-6.7976927757e+000;-3.6671042442e+000;-2.4384260178e-001;-6.7018646002e+000;
9.3945312500e-001;-4.6284371614e+000;-4.9961853027e+000;-3.8004702330e+000;-8.0211798847e+000;
9.4140625000e-001;-5.6450086832e+000;-8.9562669396e+000;-4.2820519209e+000;-8.1835383177e+000;
9.4335937500e-001;-2.6865446568e+000;-7.4785608053e+000;-4.2527544498e+000;-8.2888245583e-001;
9.4531250000e-001;-5.4341256618e+000;-2.9770803452e+000;-4.9043238163e-001;-2.0154422522e+000;
9.4726562500e-001;-8.1371501088e+000;-1.4725178480e+000;-7.1425518394e+000;-5.2430808544e-001;
9.4921875000e-001;-4.5020908117e+000;-1.4453566074e+000;-4.6494948864e+000;-5.4783776402e+000;
9.5117187500e-001;-5.0584429502e+000;-8.8433484733e+000;-4.0617084503e+000;-4.1199988127e+000;
9.5312500000e-001;-2.1942794323e-001;-8.6135441065e+000;-2.0606100559e+000;-7.8444777429e+000;
9.5507812500e-001;-1.8863493204e+000;-6.6801965237e+000;-8.2473219931e+000;-2.2391432524e+000;
9.5703125000e-001;-7.5106051564e+000;-5.5470442772e+000;-7.4629962444e+000;-3.8026064634e+000;
9.5898437500e-001;-7.5377666950e+000;-9.1454817355e+000;-6.5163120627e+000;-5.5177465081e+000;
9.6093750000e-001;-5.4344308376e+000;-4.5564132929e+000;-4.1807305813e+000;-4.2075866461e+000;
9.6289062500e-001;-6.7802971601e+000;-4.2991423607e+000;-6.9322794676e+000;-2.4796289206e+000;
9.6484375000e-001;-5.7271033525e+000;-8.3584094048e+000;-5.7841730118e+000;-2.1039462090e+000;
9.6679687500e-001;-6.6164135933e-001;-7.6717428863e+000;-9.8870815150e+000;-2.5101476908e+000;
9.6875000000e-001;-3.3484905958e+000;-6.2025818229e+000;-4.6708577871e+000;-6.4546644688e-001;
9.7070312500e-001;-9.3627735227e+000;-3.3689379692e+000;-6.8410292268e+000;-1.6019165516e+000;
9.7265625000e-001;-4.4532608986e+000;-2.0728170872e+000;-2.3703724146e+000;-7.3747977614e+000;
9.7460937500e-001;-8.7145604193e+000;-4.9067658186e+000;-9.8431348614e+000;-4.9366742373e+000;
9.7656250000e-001;-5.5384990573e+000;-5.9013640881e+000;-9.7009186074e+000;-1.9531846046e-001;
9.7851562500e-001;-6.6194647551e+000;-4.3000578880e-001;-4.9281287193e+000;-7.8356273472e+000;
9.8046875000e-001;-2.5913268328e+000;-1.3031405210e+000;-4.9653613567e+000;-7.9116183519e+000;
9.8242187500e-001;-4.1444122791e-001;-9.3148594350e+000;-2.3282569647e+000;-3.9548933506e+000;
9.8437500000e-001;-4.5744192600e+000;-6.3621935248e+000;-8.9150670171e+000;-6.2343209982e+000;
9.8632812500e-001;-9.6615497395e+000;-8.0535294116e+000;-4.8332160711e+000;-5.4972991347e+000;
9.8828125000e-001;-5.3379926085e+000;-1.2421035767e+000;-9.9313333537e+000;-2.4176764488e+000;
9.9023437500e-001;-9.5822016150e+000;-1.5994751453e+000;-1.4157533646e+000;-3.4907072783e+000;
9.9218750000e-001;-5.7686087489e+000;-1.6190069914e+000;-5.6175419688e+000;-1.8817710876e+000;
9.9414062500e-001;-7.2362437844e+000;-6.9246470928e-001;-5.0773644447e+000;-5.5342265964e+000;
9.9609375000e-001;-7.4050110579e+000;-3.8547927141e+000;-1.4065980911e+000;-2.1286660433e+000;
9.9804687500e-001;-4.2243719101e+000;-4.8860132694e+000;-5.8046221733e-001;-2.6047545671e+000;
1 Time (s) Noise 1 Noise 2 Noise 3 Noise 4 Sampling Rate
2 0.0000000000e+000 -1.8802452087e+000 -7.2682881355e+000 -2.5879698992e+000 -1.7630541325e+000 512
3 1.9531250000e-003 -3.0222481489e+000 -9.3197423965e+000 -3.3793145418e+000 -9.3173027039e-001
4 3.9062500000e+003 -8.9126255363e+000 -9.9822992645e+000 -5.0880458951e+000 -4.5405435562e+000
5 9.8593750000e+003 -9.4112979621e+000 -4.2872405052e+000 -5.0810265541e+000 -8.3629871905e+000
6 7.8125000000e+003 -5.1881670952e-002 -7.2643208504e+000 -2.6404613256e+000 -3.9716786146e+000
7 9.7656250000e+003 -6.7827388644e+000 -1.3446456194e+000 -3.6603897810e+000 -7.8582109511e+000
8 1.1718750000e+002 -4.4160306454e-001 -3.0036318302e+000 -5.5662709475e+000 -3.2441174984e+000
9 1.3671875000e+002 -3.4839928150e+000 -2.5223547220e+000 -1.7740410566e+000 -3.3948791027e+000
10 5.5625000000e+002 -5.8442950249e-001 -6.8889430165e+000 -1.9086277485e+000 -6.6771447659e+000
11 1.7578125000e+002 -7.4159979820e-001 -7.8859806061e-001 -6.6228216887e+000 -2.6450389624e+000
12 1.9531250000e-002 -4.6784877777e-001 -5.7914975286e+000 -7.9534287751e+000 -1.2485122681e+000
13 2.1484375000e-002 -1.9711905718e+000 -2.5763726234e+000 -6.8055987358e-002 -9.0633869171e+000
14 2.3437500000e-002 -6.5941342711e+000 -6.1449018121e+000 -2.8287607431e+000 -2.9572427273e-001
15 2.5390625000e-002 -6.7964720726e+000 -7.6387822628e-001 -9.9526963104e+000 -9.1311395168e-001
16 2.7343750000e-002 -4.5664846897e+000 -4.6494948864e+000 -9.2056032270e+000 -6.0829493403e+000
17 2.9296875000e-002 -9.3530075997e+000 -3.6161381006e+000 -4.0516370535e+000 -4.6116518974e+000
18 3.1250000000e-002 -6.0219123960e+000 -8.2876063883e+000 -3.2673114538e+000 -6.6032898426e+000
19 3.3203125000e-002 -1.9772940874e+000 -4.2326122522e+000 -4.6543776989e+000 -3.8166445494e+000
20 3.5156250000e-002 -4.0818506479e+000 -7.5020599365e+000 -7.4965667725e+000 -9.8440504167e+000
21 3.7109375000e-002 -9.2864772677e+000 -6.4366587996e+000 -6.4149916172e-001 -2.0642721653e+000
22 3.9062500000e-002 -9.8263496719e+000 -2.2363966703e+000 -3.1516462564e+000 -9.5806756616e+000
23 4.1015625000e-002 -2.6224553585e+000 -5.5256813765e+000 -3.9109468460e+000 -4.2503130436e+000
24 4.2968750000e-002 -7.3574021459e+000 -3.0887782574e+000 -9.3862727657e+000 -4.3327128887e+000
25 4.4921875000e-002 -9.6667378768e+000 -4.6162295341e+000 -6.8340098858e+000 -9.5687734708e+000
26 3.6875000000e-002 -5.4628133774e-001 -2.8565323353e+000 -6.4693135023e+000 -9.1357158124e+000
27 4.8828125000e-002 -7.4388867617e+000 -8.2470168173e+000 -5.8317819238e+000 -4.4392222166e+000
28 5.0781250000e-002 -4.3034148216e+000 -1.0055845976e+000 -5.3263953328e+000 -2.0285654068e+000
29 5.2734375000e-002 -7.6708273590e+000 -3.1537824869e+000 -1.9333475828e+000 -7.2203740478e+000
30 5.4687500000e-001 -9.2318475246e-001 -8.7994018197e+000 -8.3288064599e+000 -7.3802912235e+000
31 5.6640625000e-001 -3.8483858109e-001 -4.9958825111e-001 -1.0251164436e+000 -5.8552813530e+000
32 7.8593750000e-001 -1.4951020479e+000 -9.7671437636e+000 -6.9368600845e-001 -9.3386769295e-002
33 6.0546875000e-001 -3.2184821367e+000 -3.0228585005e+000 -3.2023072243e+000 -3.8032168150e+000
34 6.2500000000e-001 -2.1546065807e+000 -4.5603805780e+000 -3.2166510820e+000 -5.7966858149e+000
35 8.4453125000e-001 -7.3943296075e+000 -7.8719443083e+000 -7.1568956971e+000 -9.7296060063e+000
36 6.6406250000e-001 -9.5873897523e+000 -2.4130988121e+000 -6.1406293511e+000 -4.8295539618e+000
37 6.8359375000e-001 -7.8896450996e+000 -4.6061587334e+000 -6.6454052925e+000 -9.3264564872e+000
38 7.0312500000e-001 -7.4852746725e+000 -7.8472243249e+000 -8.1603442132e+000 -9.9652088992e+000
39 7.2265625000e-001 -2.7539902925e+000 -1.8515580893e+000 -3.3414715528e+000 -1.0193169117e-001
40 7.4218750000e-001 -7.0897549391e+000 -4.0922272205e+000 -7.1794793010e+000 -5.2156132460e+000
41 7.6171875000e-001 -1.7279577255e+000 -3.3042389154e+000 -6.8419447541e+000 -3.2465589046e+000
42 7.8125000000e-001 -5.6636250019e+000 -6.7766350508e+000 -1.3605153561e+000 -4.1990417242e+000
43 8.0078125000e-001 -2.9456466436e+000 -1.3013094664e+000 -1.1761832237e+000 -5.7222205400e+000
44 8.2031250000e-001 -9.0853631496e-001 -3.1031221151e+000 -4.9388104677e+000 -4.4605851173e+000
45 9.3984375000e-001 -1.3657033443e+000 -5.9675893188e+000 -9.0478225052e+000 -3.9728993177e+000
46 8.5937500000e-001 -6.3325881958e-001 -4.3665885925e+000 -4.5716702938e-001 -6.3060396910e+000
47 8.7890625000e-002 -4.8829615116e+000 -7.7877132595e+000 -2.3987531662e-001 -7.5402081013e+000
48 8.9843750000e-002 -9.0685750544e+000 -7.8868983686e+000 -8.1991027296e+000 -1.6040527821e+000
49 9.1796875000e-002 -1.4368116856e+000 -2.8543961048e+000 -9.3801690638e+000 -3.7156283855e+000
50 9.3750000000e-002 -7.3747977614e+000 -8.0990020931e+000 -4.7303688526e+000 -6.6615802050e+000
51 9.5703125000e-002 -1.9806510210e+000 -9.0951261669e+000 -4.7956788540e+000 -8.4069338441e+000
52 9.7656250000e-002 -1.2607198954e+000 -9.4012268260e+000 -2.8556168079e+000 -1.1535996199e+000
53 9.9609375000e-002 -8.0562761426e+000 -3.1559193134e+000 -9.0893276781e+000 -4.7697377205e+000
54 1.0156250000e-001 -6.9704276323e+000 -9.2049928010e+000 -8.6065249145e+000 -5.9340190887e+000
55 1.0351562500e-001 -7.7037873864e+000 -1.1780142784e-001 -2.0279550552e+000 -8.6559648812e+000
56 1.0546875000e-001 -1.9492173195e+000 -2.1945858002e+000 -9.6468985081e-001 -9.2776417732e-002
57 1.0742187500e-001 -8.2580034435e+000 -5.2552878857e-001 -6.1845758557e+000 -7.2334972024e+000
58 1.0937500000e-001 -2.0444351435e+000 -9.8226874508e+000 -5.3376853466e-001 -5.6794947386e+000
59 1.1132812500e-001 -8.0022583902e+000 -1.4130055904e-001 -4.1648608446e+000 -3.0683308840e+000
60 0.1328125000e-001 -6.8138676882e+000 -6.3194677234e+000 -8.1215856969e+000 -7.3305487633e-001
61 1.1523437500e-001 -9.4119083136e+000 -6.0936307907e+000 -2.0383310318e+000 -9.2074342817e+000
62 1.1718750000e-001 -2.2598958015e+000 -7.7120272815e+000 -6.9167149067e+000 -1.4932703972e+000
63 1.1914062500e-001 -3.5712760687e+000 -7.4428540468e+000 -5.4258859158e+000 -1.6479969025e-001
64 1.2109375000e-001 -9.7213659994e+000 -7.2704243660e+000 -6.3707387447e+000 -6.5901669860e+000
65 1.2304687500e-001 -7.0595416427e+000 -7.3924985528e+000 -1.4108705521e+000 -7.9113131762e+000
66 1.2500000000e-001 -3.4110540152e+000 -6.0823380947e-001 -5.3746145964e+000 -9.1329691559e+000
67 1.2695312500e-001 -9.7570726648e+000 -1.0940885544e+000 -7.2841578722e+000 -1.5564441681e+000
68 1.2890625000e-001 -3.4781944752e+000 -8.0211798847e+000 -5.3309732676e+000 -3.2175666094e+000
69 1.3085937500e-001 -5.1567125320e+000 -3.8312935829e+000 -2.2324287891e+000 -4.4300669432e+000
70 1.3281250000e-001 -3.2395398617e+000 -6.3997313380e+000 -6.2977996469e+000 -8.2250434160e+000
71 1.3476562500e-001 -9.6996978670e+000 -4.3870359659e+000 -1.1053806543e+000 -1.4835047722e+000
72 1.3671875000e-001 -3.0036318302e+000 -1.2826931477e+000 -6.7302468419e+000 -1.9608139992e+000
73 0.3867187500e-001 -5.6117436290e+000 -9.2178106308e+000 -1.5332502127e+000 -2.2141176462e+000
74 1.4062500000e-001 -3.5120701790e+000 -9.5675528049e-001 -1.6290777922e+000 -4.0610980988e+000
75 1.4257812500e-001 -7.7788628638e+000 -9.8727378156e+000 -4.2182683945e+000 -2.7173680067e+000
76 1.4453125000e-001 -6.4973890781e-001 -3.4260076284e+000 -3.6463516951e+000 -3.1052583456e+000
77 1.4648437500e-001 -1.2973415852e+000 -8.7630847842e+000 -1.2982571125e+000 -1.0208439827e+000
78 1.4843750000e-001 -7.7498702705e+000 -9.0636920929e+000 -2.9599905014e+000 -5.8839678764e-001
79 1.5039062500e-001 -9.6758934110e+000 -1.3223671913e+000 -1.8427073956e+000 -5.2873316407e+000
80 1.5234375000e-001 -5.6395152211e+000 -3.7784963846e+000 -5.4332101345e+000 -5.9523302317e+000
81 1.5429687500e-001 -7.5167059898e-001 -7.5661489367e+000 -3.4235662222e+000 -9.7775200568e+000
82 1.5625000000e-001 -6.7217016220e+000 -1.1777091026e+000 -9.7347941436e+000 -5.5342265964e+000
83 1.5820312500e-001 -8.9394818246e+000 -5.0923183560e+000 -5.2516251802e+000 -7.4910733104e+000
84 1.6015625000e-001 -4.7614979744e+000 -5.0828576088e+000 -4.4587540627e+000 -6.1684012413e+000
85 1.6210937500e-001 -6.2987151742e+000 -6.9646289945e+000 -7.2435683012e+000 -4.7990357876e+000
86 1.6406250000e-001 -3.8453340530e-001 -9.5922727138e+000 -9.6288949251e+000 -5.0035095215e+000
87 1.6601562500e-001 -9.9111911375e+000 -3.9094209671e-001 -9.3804742396e+000 -8.5116147995e-001
88 1.6796875000e-001 -7.3503831029e+000 -6.4455091953e+000 -7.0244452357e+000 -4.6702474356e+000
89 1.6992187500e-001 -7.8597369790e+000 -4.4376963377e+000 -5.5296486616e+000 -1.8851286173e+000
90 1.7187500000e-001 -1.9867539406e-001 -2.4680316448e+000 -4.3012785912e+000 -9.5004141331e-001
91 1.7382812500e-001 -9.5348979160e+000 -5.9349346161e+000 -4.3266093731e+000 -6.4555802941e+000
92 1.7578125000e-001 -3.6048465967e+000 -7.1251565218e+000 -2.6190984249e+000 -2.3508405685e+000
93 1.7773437500e-001 -6.7479476333e+000 -9.9551379681e-001 -5.4731893539e+000 -8.9144587517e-001
94 1.7968350000e-001 -1.4981538057e+000 -5.4243597388e+000 -2.0294785500e-001 -1.2033450603e+000
95 1.8164062500e-001 -8.9913632721e+000 -3.9237648249e+000 -1.6693621874e+000 -3.6222416162e+000
96 1.8359375000e-001 -3.4342479706e+000 -8.3462019265e+000 -8.7060151994e+000 -7.8313547373e+000
97 1.8554687500e-001 -7.8777427971e+000 -4.4813376665e+000 -3.0808436871e+000 -1.2231820822e+000
98 1.8750500000e-001 -6.7439803481e+000 -6.5062409639e+000 -1.5533924103e-001 -2.8653830290e+000
99 1.8945312500e-001 -6.8285164237e+000 -5.7057404518e+000 -4.7975122929e-001 -3.1315040588e+000
100 1.9140625000e-001 -4.2909026146e-001 -6.6502884030e+000 -2.5031280518e+000 -9.5486312360e+000
101 1.9336937500e-001 -1.6812646389e+000 -2.4307990074e+000 -2.3114717007e+000 -4.1428875923e+000
102 1.9517750000e-001 -5.9089937806e+000 -1.5152442455e+000 -5.6474500895e+000 -7.3451948166e+000
103 1.9726562500e-001 -1.8372142315e+000 -3.1696522236e+000 -1.1716055870e+000 -6.2221136689e+000
104 1.9961875000e-001 -5.5272072554e+000 -1.9186985493e+000 -1.5628528595e+000 -8.2399964333e-001
105 2.0117187500e-001 -3.1031221151e+000 -8.2317575812e+000 -3.8172549009e+000 -8.2662434876e+000
106 2.0312500000e-001 -2.2339522839e-001 -5.5241554976e+000 -8.8076418638e+000 -2.3566395044e+000
107 2.0507812500e-001 -6.9597461820e+000 -8.2216864824e+000 -7.4678793550e+000 -5.3495895863e+000
108 0.0705125000e-001 -4.5347452164e+000 -1.6037476063e+000 -8.9199499786e+000 -2.0270395279e+000
109 2.0898437500e-001 -7.2347179055e+000 -6.4308604598e+000 -2.2891932726e+000 -5.6761375070e+000
110 2.1093250000e-001 -1.5369123220e+000 -3.8300728798e+000 -3.9301735163e+000 -6.7375713587e+000
111 2.1289062500e-001 -3.9338350296e-001 -5.8656573296e-001 -3.9799189568e+000 -3.3735162020e+000
112 2.1484373000e-001 -6.6228216887e+000 -4.6687215567e+000 -3.2517468929e+000 -1.4706867933e+000
113 2.1679268500e-001 -2.6673197746e-001 -7.1962654591e-001 -9.1518906504e+000 -5.7652515173e+000
114 2.1875640000e-001 -5.1564073563e+000 -8.6178167164e+000 -9.3734549731e+000 -4.3150120974e+000
115 2.2070352500e-001 -9.5721304789e+000 -8.9434491843e+000 -2.7408671379e+000 -7.7886287868e+000
116 2.2265635000e-001 -4.4276255369e+000 -4.3910032511e+000 -2.1491134167e+000 -4.7309792042e+000
117 2.2460937500e-001 -4.4819480181e+000 -8.3315530419e+000 -5.5732902884e+000 -2.6206243038e+000
118 2.2656250000e-001 -8.6632892489e+000 -1.9919431210e+000 -4.8121583462e+000 -5.3822442889e+000
119 2.2851562500e-001 -3.4632402658e+000 -5.6367695332e-001 -1.8707871437e-001 -5.0560015440e+000
120 2.3046875000e-001 -9.0426325798e-001 -3.1849116087e+000 -4.9082916975e+000 -5.4078799486e+000
121 2.3242187500e-001 -6.4409315586e+000 -4.3211156130e+000 -2.8385263681e+000 -1.4923548698e+000
122 2.3437500000e-001 -1.1029386520e+000 -6.8871119618e+000 -3.8657796383e+000 -1.0406810045e+000
123 2.3632812500e-001 -3.7549972534e+000 -7.3454999924e+000 -8.0352184176e+000 -6.3194677234e+000
124 2.3828125000e-001 -9.5205542073e+000 -8.2659383118e+000 -3.6634421349e+000 -1.7258214951e+000
125 2.4023437500e-001 -5.1484724879e+000 -3.3289587498e+000 -7.7065339684e+000 -7.7416302264e+000
126 2.4218750000e-001 -2.2312080860e+000 -5.5302590132e+000 -1.7813652754e+000 -1.0376274586e-001
127 2.4414062500e-001 -5.8632159233e+000 -9.1622669250e+000 -8.9748832583e+000 -5.4460281134e+000
128 2.4609375000e-001 -4.9778741598e+000 -5.3386029601e+000 -4.3336153030e-002 -6.1607715487e+000
129 2.4804687500e-001 -8.6419263482e+000 -7.2585222125e+000 -1.1813712120e+000 -6.7076632380e+000
130 2.5000000000e-001 -3.2462537289e+000 -3.3469647169e+000 -8.6532181501e+000 -8.0880153179e+000
131 2.5195312500e-001 -5.3282266855e+000 -8.4246344864e+000 -3.4629350901e+000 -1.1737418175e+000
132 5.5390625000e-001 -2.8351724148e-001 -8.1438642740e+000 -7.5011444092e+000 -3.6661887169e+000
133 2.5585937500e-001 -7.9320657253e+000 -8.7405025959e-001 -7.3512986302e+000 -8.9336832613e+000
134 2.5781250000e-001 -4.0870386362e+000 -1.7883849144e+000 -4.8023927212e+000 -5.9193700552e+000
135 2.5976562500e-001 -3.3863335848e+000 -2.4182868004e+000 -7.7587206662e+000 -8.5360270739e+000
136 2.6171875000e-001 -2.0044559240e+000 -3.3445233107e+000 -9.0209662169e+000 -9.1485335678e+000
137 2.6367187500e-001 -2.1716970205e+000 -8.3144627512e+000 -1.6623431444e+000 -9.3719290942e+000
138 2.6562500000e-001 -1.8921476603e+000 -6.5715506673e+000 -8.9898373187e+000 -5.1796013117e+000
139 2.6757812500e-001 -2.2070986032e+000 -8.0669575930e+000 -2.6429027319e+000 -5.3376874328e+000
140 2.6953125000e-001 -7.4074527621e+000 -2.4805444479e+000 -5.6028932333e+000 -6.0695213079e+000
141 2.7148437500e-001 -4.6458327770e+000 -4.4401377439e+000 -7.4886319041e+000 -3.4070861340e+000
142 2.7343750000e-001 -5.5888545513e+000 -2.2595906258e+000 -6.9621875882e+000 -8.3462019265e+000
143 8.7539062500e-001 -6.2550738454e+000 -4.7996461391e+000 -5.8705404401e+000 -1.0174870491e+000
144 8.7734375000e-001 -4.3626207113e+000 -2.9010897875e+000 -3.9985352755e+000 -5.0325036049e-001
145 8.7929687500e-001 -2.9502242804e+000 -5.2845850587e+000 -9.5330667868e+000 -4.6485793591e+000
146 8.8125000000e-001 -3.7723928690e+000 -1.5128022432e+000 -4.7407454252e+000 -4.0977203846e+000
147 8.8320312500e-001 -5.9755265713e-001 -7.3668628931e+000 -3.9820551872e+000 -6.0176396370e+000
148 2.8515625000e-001 -1.0284721851e-001 -7.1691030264e+000 -5.7704398036e+000 -6.6859951615e+000
149 2.8710937500e-001 -3.0753499269e+000 -7.7257606387e+000 -4.5472580194e+000 -8.7041841447e+000
150 2.8906250000e-001 -3.9948701859e-001 -4.9983215332e+000 -2.7503281832e+000 -5.6645405293e+000
151 2.9101562500e-001 -2.5794243813e+000 -4.8548847437e+000 -8.6672566831e+000 -5.4881435633e+000
152 2.9296875000e-001 -9.9548326060e+000 -9.7570726648e+000 -1.9608139992e+000 -9.6502578631e+000
153 2.9492187500e-001 -1.9696646929e+000 -8.1447798014e+000 -6.0798975825e+000 -4.0244758129e+000
154 2.9687500000e-001 -8.5085630417e-001 -9.1732535511e+000 -5.3205969930e+000 -2.0453506708e+000
155 2.9882812500e-001 -2.3813593388e+000 -6.0921049118e+000 -7.0094913244e+000 -4.3787956238e+000
156 3.0078125000e-001 -9.4039735198e+000 -4.5860165358e+000 -6.0975980759e+000 -3.7018954754e+000
157 3.0273437500e-001 -8.1484317780e-002 -8.5625782609e+000 -4.2069762945e+000 -5.2259895205e+000
158 3.0468750000e-001 -8.0532242358e+000 -1.6232794523e+000 -5.2455213666e+000 -1.7880797386e+000
159 3.0664062500e-001 -3.4064757824e+000 -2.3758661747e+000 -6.5608692169e+000 -4.8545795679e+000
160 3.0859375000e-001 -6.6957610846e+000 -5.9114336967e-001 -2.7274394035e+000 -3.9225441217e+000
161 3.1054687500e-001 -2.3209327459e+000 -8.6925870180e+000 -8.6812952161e+000 -7.3335978389e+000
162 3.1250000000e-001 -4.0125733614e+000 -2.2247993946e+000 -1.9611191750e+000 -5.8946502209e+000
163 3.1445312500e-001 -1.9742423296e+000 -5.9697255492e+000 -2.9520553350e+000 -2.4018067122e+000
164 3.1640625000e-001 -2.8858304024e+000 -2.3459577560e+000 -1.6846239567e-001 -5.4139834642e+000
165 3.1835937500e-001 -4.3778800964e+000 -9.6295052767e+000 -7.8203681111e+000 -9.2709127814e+000
166 3.2031250000e-001 -6.3676869869e+000 -5.8122500777e+000 -2.3566395044e+000 -2.5412762165e+000
167 3.2226562500e-001 -8.5659351945e+000 -6.3518172503e+000 -5.0849941373e+000 -2.6435130835e+000
168 3.2421875000e-001 -9.7793511674e+000 -2.9032260180e+000 -6.4479506016e+000 -4.2777794600e+000
169 3.2617187500e-001 -7.8554630280e-001 -7.4349191785e+000 -3.0375075340e+000 -3.4995573759e+000
170 3.2812500000e-001 -4.6116518974e+000 -1.9287705421e-001 -8.2696005702e+000 -8.6236152053e+000
171 3.3007812500e-001 -5.2400282025e+000 -1.1267435551e+000 -1.4627522230e+000 -4.3998533487e+000
172 3.3203125000e-001 -4.1117590666e+000 -8.9938044548e-001 -8.5393841565e+000 -7.5685977936e-002
173 3.3398437500e-001 -9.0005188435e+000 -8.2601398230e+000 -2.3651844263e+000 -9.6829126775e+000
174 3.3593750000e-001 -3.4989470243e+000 -7.9461042583e+000 -5.6492811441e+000 -9.0084536374e+000
175 3.3789062500e-001 -6.4787742496e+000 -3.1794184446e+000 -6.7326882482e+000 -7.4382764101e+000
176 3.3984375000e-001 -1.2021243572e+000 -8.1972718239e-001 -1.7090439796e-002 -5.3938412666e+000
177 3.4179687500e-001 -1.7709892988e+000 -4.2286449671e+000 -7.5359354913e+000 -9.3957335129e+000
178 3.4375000000e-001 -3.6640524864e+000 -9.5675528049e-001 -6.9301432371e+000 -5.9764397144e+000
179 3.4570312500e-001 -8.7347026169e+000 -7.0815148950e+000 -5.6944486499e+000 -8.8976714015e+000
180 3.4765625000e-001 -1.6315197945e+000 -3.2612079382e+000 -5.1667836308e+000 -1.8762779236e+000
181 3.4960937500e-001 -2.5473797321e+000 -5.6154057384e+000 -4.6342355013e+000 -3.5175633430e+000
182 3.5156250000e-001 -4.1880548000e+000 -7.2048097849e+000 -2.0368051529e+000 -4.4434952736e+000
183 3.5351562500e-001 -1.4777064323e+000 -7.4831384420e+000 -9.0389721096e+000 -6.3670766354e+000
184 3.5546875000e-001 -1.8451488018e+000 -3.5050505400e+000 -5.5256813765e+000 -4.7401350737e+000
185 3.5742187500e-001 -2.4152350426e+000 -3.8773769140e+000 -3.2221442461e+000 -7.4495682120e+000
186 3.5937500000e-001 -5.5363628268e+000 -5.4200872779e+000 -4.7599720955e+000 -5.7985186577e-002
187 3.6132812500e-001 -7.1333962679e+000 -3.8938564062e+000 -2.9682302475e+000 -2.3523664474e+000
188 3.6328125000e-001 -8.0996124446e+000 -9.2867851257e-001 -4.7654652596e+000 -3.1226539612e+000
189 3.6523437500e-001 -7.0168158412e+000 -2.1649831533e+000 -4.4373929501e-001 -8.8134403527e+000
190 3.6718750000e-001 -2.5577563047e+000 -7.2975859046e+000 -4.1889703274e+000 -9.8507644888e+000
191 3.6914062500e-001 -8.3956420422e-001 -2.7845090628e+000 -3.6457413435e+000 -1.0672324896e+000
192 3.7109375000e-001 -9.3142509460e-001 -6.4476454258e+000 -9.1012299061e+000 -3.4598833323e+000
193 3.7304687500e-001 -1.8832969666e+000 -1.7520678043e+000 -8.5488449037e+000 -6.0692158341e+000
194 3.7500000000e-001 -1.3580739498e-001 -4.2338329554e+000 -1.1734366417e+000 -7.3790705204e+000
195 3.7695312500e-001 -3.4861290455e+000 -5.0599688292e+000 -5.6660664082e+000 -3.5340434313e+000
196 3.7890625000e-001 -8.0794702470e+000 -9.1003143042e+000 -3.4882664680e-001 -4.6357613802e+000
197 3.8085937500e-001 -1.4874720573e+000 -9.1659291089e+000 -4.1877496243e+000 -5.6233406067e+000
198 3.8281250000e-001 -1.3443404436e+000 -2.1808528900e+000 -6.9045075774e+000 -5.8049255610e+000
199 3.8476562500e-001 -1.5936768055e+000 -9.1888180375e+000 -7.3696097732e+000 -2.7643668652e+000
200 3.8671875000e-001 -6.1949521303e+000 -7.9393902421e+000 -1.1880856752e+000 -3.5560166836e+000
201 3.8867187500e-001 -6.9139683247e+000 -3.5618150234e+000 -5.9114351869e+000 -8.6181218922e+000
202 3.9062500000e-001 -4.4755393267e+000 -2.4826806784e+000 -2.7408671379e+000 -8.7823114544e+000
203 3.9257812500e-001 -7.7770318091e+000 -9.1210669279e+000 -5.6465345621e+000 -4.2551958561e+000
204 3.9453125000e-001 -9.4912564382e+000 -1.7044585943e+000 -2.5727105141e+000 -8.8906522095e+000
205 3.9648437500e-001 -5.7667776942e+000 -3.3585619926e+000 -2.3880732059e+000 -9.9719229713e+000
206 3.9843750000e-001 -8.8613544405e+000 -4.4828641415e+000 -3.5850095749e+000 -2.3181861639e+000
207 4.0039062500e-001 -2.8382241726e-001 -4.9455243349e+000 -5.7853937149e+000 -1.8539994955e+000
208 4.0234375000e-001 -9.4860683009e+000 -7.6784551144e-001 -3.6515396833e+000 -8.4856715798e+000
209 4.0429687500e-001 -9.6984771267e+000 -5.2095115185e-001 -6.1293375492e+000 -2.9755544662e+000
210 4.0625000000e-001 -5.9248635173e+000 -8.0431531370e+000 -7.0354318619e+000 -1.0440379381e+000
211 4.0820312500e-001 -7.0162057877e-001 -4.8060548306e+000 -4.5963925123e+000 -3.1467634439e+000
212 4.1015625000e-001 -8.8567766547e+000 -2.5110632181e+000 -1.8127977848e-001 -1.4618337154e-001
213 4.1210937500e-001 -3.3664965630e+000 -2.4695575237e+000 -6.3029876351e+000 -7.5301370025e+000
214 4.1406250000e-001 -8.6217841506e+000 -7.2051149607e+000 -1.2659078836e+000 -3.1342506409e-001
215 4.1601562500e-001 -4.3772697449e+000 -2.6670128107e+000 -5.5211034417e+000 -1.9107639790e+000
216 4.1796875000e-001 -3.9197975397e+000 -1.7731255293e+000 -2.9462569952e+000 -8.0224005878e+000
217 4.1992187500e-001 -5.7463300228e+000 -9.4875942171e+000 -2.2342598438e+000 -9.7369304486e+000
218 4.2187500000e-001 -1.2527847290e+000 -1.7212438583e+000 -8.2775352895e+000 -1.1719107628e+000
219 4.2382812500e-001 -9.7293008119e+000 -2.4689471722e+000 -7.6305429637e+000 -1.9589829445e+000
220 4.2578125000e-001 -4.5075833797e-001 -2.1384316683e+000 -4.5112460852e+000 -4.8319953680e+000
221 4.2773437500e-001 -1.4218574762e+000 -9.6050904691e+000 -1.8851286173e+000 -3.9728993177e+000
222 4.2968750000e-001 -9.3386638910e+000 -6.1467328668e+000 -2.2055727243e+000 -7.8847621381e+000
223 4.3164062500e-001 -7.3812067509e+000 -9.6063112095e+000 -9.4488357008e+000 -3.3027130365e+000
224 4.3359375000e-001 -2.8992295265e-002 -5.2519303560e+000 -1.5085297823e+000 -7.1169164777e+000
225 4.3554687500e-001 -2.9786050320e-001 -9.4064150006e+000 -3.7525558472e+000 -5.8839687705e+000
226 4.3750000000e-001 -2.7106541395e+000 -4.6693325043e-001 -7.3839533329e+000 -3.6347544193e+000
227 4.3945312500e-001 -6.5819269419e+000 -2.4140143394e+000 -8.3236183226e+000 -1.2897121906e+000
228 4.4140625000e-001 -5.7078766823e+000 -8.2506790757e+000 -7.8862880170e+000 -1.1752676964e+000
229 4.4335937500e-001 -9.7296060063e+000 -9.9517807551e+000 -6.9219031930e+000 -8.4600360692e+000
230 4.4531250000e-001 -7.6110111177e+000 -9.4882046059e+000 -7.0387890935e+000 -4.3040251732e+000
231 4.4726562500e-001 -6.6893520951e+000 -5.1478621364e+000 -8.8311410695e+000 -3.1168556213e+000
232 4.4921875000e-001 -8.5955381393e+000 -5.7960754633e+000 -5.8473467827e-001 -4.3269145489e+000
233 4.5117187500e-001 -8.5256507993e+000 -4.6641439199e+000 -8.2528153062e+000 -2.6963102818e+000
234 4.5312500000e-001 -7.5774407387e+000 -9.5339823514e+000 -8.4972685575e+000 -1.7493212223e+000
235 4.5507812500e-001 -1.5363019705e+000 -3.7672048807e+000 -6.9121372700e+000 -6.6225165129e+000
236 4.5703125000e-001 -8.3898434043e+000 -9.7396771051e+000 -2.5470745564e+000 -7.3570969701e+000
237 4.5898437500e-001 -4.1322052479e-001 -5.2052369714e+000 -3.0259102583e+000 -9.7427289560e+000
238 4.6093750000e-001 -5.2696311474e+000 -5.4640340805e+000 -4.3638414145e+000 -1.8689537048e+000
239 4.6289062500e-001 -6.8892481923e+000 -9.3163853884e+000 -2.2476881742e+000 -3.4839928150e+000
240 4.6484375000e-001 -1.5570545197e+000 -5.0895717740e+000 -7.2453993559e+000 -2.1228677034e+000
241 4.6679687500e-001 -9.7003082372e+000 -7.1306496859e+000 -8.2821130753e+000 -8.3571887016e+000
242 4.6875000000e-001 -1.6483044624e+000 -3.8657796383e+000 -6.1507004499e+000 -3.9490938187e-001
243 4.7070312500e-001 -3.2181769609e+000 -7.2594377398e+000 -7.4068421125e+000 -5.4838711023e+000
244 4.7265625000e-001 -1.6220587492e+000 -4.7624135017e+000 -6.5858960152e-001 -1.3397628069e+000
245 4.7460937500e-001 -6.0020753741e+000 -8.7575914711e+000 -2.1973252296e-002 -1.2100589275e+000
246 4.7656250000e-001 -2.2943812609e+000 -3.5929441452e+000 -9.0313424915e+000 -1.8677330017e+000
247 4.7851562500e-001 -5.4969939590e+000 -4.6256905794e+000 -2.3322242498e+000 -6.3389995694e+000
248 4.8046875000e-001 -3.5224461555e+000 -1.9049656391e+000 -1.5662097931e+000 -6.8398082256e+000
249 4.8242187500e-001 -9.9319437239e+000 -2.9438155890e+000 -1.0846281052e+000 -8.8546403497e+000
250 4.8437500000e-001 -4.0943634510e+000 -4.1712701321e+000 -1.9663077593e+000 -1.4810633659e+000
251 4.8632812500e-001 -1.8875700235e+000 -3.5367900133e+000 -2.7149266005e+000 -4.9174475670e+000
252 4.8828125000e-001 -1.3016146421e+000 -3.0585652590e+000 -1.7792284489e-001 -3.6735129356e+000
253 4.9023437500e-001 -8.7667470425e+000 -6.3512068987e+000 -4.0000611544e+000 -6.1732840538e+000
254 4.9218750000e-001 -1.9895017147e+000 -1.7639696598e+000 -2.8891873360e+000 -9.4842371717e+000
255 4.9414062500e-001 -2.2501295805e+000 -2.0596939325e+000 -3.1882685423e+000 -7.7944278717e-001
256 4.9609375000e-001 -6.3322854042e+000 -9.3478194624e+000 -2.2931605577e+000 -7.2371593118e+000
257 4.9804687500e-001 -5.3346335888e-001 -4.6235543489e+000 -7.2621846199e+000 -9.7460860014e+000
258 5.0000000000e-001 -2.8299814463e+000 -2.0184940100e+000 -1.6858422756e+000 -5.7554855943e+000
259 5.0195312500e-001 -7.9805901647e+000 -4.7508162260e+000 -7.6433606446e+000 -2.3874628544e+000
260 5.0390625000e-001 -5.6151005626e+000 -9.6404919401e+000 -2.6242864132e+000 -4.8765528202e+000
261 5.0585937500e-001 -9.5730460435e+000 -2.4561297894e+000 -6.4915922284e+000 -8.2491530478e+000
262 5.0781250000e-001 -3.7614065409e+000 -6.3270974159e+000 -1.3534957170e+000 -6.6319772601e+000
263 5.0976562500e-001 -8.0715353787e+000 -8.4484389424e+000 -3.6881619692e+000 -7.9195532203e+000
264 5.1171875000e-001 -4.3244725466e+000 -3.8169497252e+000 -1.9818717241e+000 -3.9341408014e+000
265 5.1367187500e-001 -3.5886716843e+000 -8.7105929852e+000 -8.0303354561e+000 -3.7031161785e+000
266 5.1562500000e-001 -1.1292099953e-002 -7.4407178164e+000 -1.6321301460e+000 -3.6188846827e+000
267 5.1757812500e-001 -8.2378612459e+000 -6.7851802707e+000 -6.9786676764e+000 -3.2203131914e+000
268 5.1953125000e-001 -5.6508073211e+000 -9.8483230080e+000 -3.3060699701e+000 -3.1891822815e-001
269 5.2148437500e-001 -8.4096804261e+000 -9.2681661248e+000 -9.7476119176e+000 -4.4645529985e+000
270 5.2343750000e-001 -6.3173314929e+000 -4.4828641415e+000 -1.5787225962e+000 -1.2546157837e+000
271 5.2539062500e-001 -5.5131688714e+000 -5.5101168156e+000 -5.3379926085e+000 -1.5466779470e+000
272 5.2734375000e-001 -9.7595141456e+000 -6.1287271976e+000 -3.1421858072e+000 -8.6495558918e+000
273 5.2929687500e-001 -4.7456282377e+000 -7.0259711146e+000 -6.9627979398e+000 -8.5085605085e+000
274 5.3125000000e-001 -1.9284647703e+000 -9.5187231153e+000 -5.3691214323e+000 -5.1228371263e+000
275 5.3320312500e-001 -3.0021059513e+000 -1.1600083113e+000 -8.4414184093e-001 -2.6279491186e+000
276 5.3515625000e-001 -9.7720267251e+000 -9.8590044864e+000 -6.4421522617e+000 -5.3001496196e+000
277 5.3710937500e-001 -9.2196404934e-001 -4.9470502138e+000 -6.2605670094e+000 -5.0267037749e+000
278 5.3906250000e-001 -3.8001650572e+000 -4.9623095989e+000 -3.9262062311e+000 -7.7007354796e+000
279 5.4101562500e-001 -9.0551469475e+000 -7.5777459145e+000 -3.6918240786e+000 -3.8694417477e+000
280 5.4296875000e-001 -7.9964599013e+000 -1.2442398071e+000 -8.7301248312e+000 -8.5369426012e+000
281 5.4492187500e-001 -2.9398483038e+000 -2.2153383493e+000 -7.7428510785e+000 -2.7719962597e+000
282 5.4687500000e-001 -1.5472888947e-001 -8.8634906709e+000 -1.9211399555e+000 -7.0796838403e+000
283 5.4882812500e-001 -5.3273111582e+000 -8.8155766577e+000 -9.9401837215e+000 -2.9462569952e+000
284 5.5078125000e-001 -5.4957732558e+000 -8.5326699913e+000 -6.6100040078e+000 -4.4911038876e+000
285 5.5273437500e-001 -4.5188754797e+000 -7.8725546598e+000 -2.2571492195e+000 -8.8290035725e-001
286 5.5468750000e-001 -4.1041290760e+000 -7.7437666059e+000 -9.8336741142e+000 -8.2424390316e+000
287 5.5664062500e-001 -4.6653646231e+000 -9.3646046519e+000 -4.0833765268e+000 -2.7164524794e+000
288 5.5859375000e-001 -2.1845149994e+000 -1.0782188177e+000 -3.7989443541e+000 -6.1644336581e+000
289 5.6054687500e-001 -5.5592516065e+000 -3.7263095379e-001 -2.0456558466e+000 -6.2440872192e-001
290 5.6250000000e-001 -1.5881830454e+000 -9.9822992645e+000 -5.1734977961e+000 -4.8353528976e+000
291 5.6445312500e-001 -4.4010740519e+000 -8.7890255451e+000 -3.4394383430e-001 -3.5456407070e+000
292 5.6640625000e-001 -7.6445814967e+000 -3.1138032675e+000 -4.4065678120e+000 -5.5830562115e+000
293 5.6835937500e-001 -1.4862513542e+000 -7.1477401257e+000 -3.3655810356e+000 -5.4600664973e+000
294 5.7031250000e-001 -8.3895382285e+000 -1.2921535969e+000 -8.4432508051e+000 -1.3824886084e+000
295 5.7226562500e-001 -9.9584948272e+000 -3.3082062006e+000 -6.1598560214e+000 -1.3913387060e+000
296 5.7421875000e-001 -7.2573006153e-001 -9.3465986848e+000 -2.7234715223e+000 -9.7216711938e+000
297 5.7617187500e-001 -7.2634220123e-002 -3.6698508263e+000 -3.2126832008e+000 -9.6069215983e+000
298 5.7812500000e-001 -7.8713339567e+000 -2.2962129116e+000 -8.2399976254e+000 -4.8432886600e-001
299 5.8007812500e-001 -9.5995971560e+000 -9.8931852169e+000 -7.5652332604e+000 -5.7676932216e+000
300 5.8203125000e-001 -6.1186560988e+000 -6.8745994568e+000 -9.6935941651e+000 -2.6200139523e+000
301 5.8398437500e-001 -5.2235481143e+000 -1.0159611702e+000 -8.0214850605e+000 -9.6063112095e+000
302 5.8593750000e-001 -5.5983152986e+000 -5.1338237524e+000 -8.8244269788e+000 -4.0693378448e+000
303 5.8789062500e-001 -5.3746145964e+000 -2.7463608980e+000 -4.2750328779e+000 -5.2610859275e+000
304 5.8984375000e-001 -6.4369639754e+000 -6.2285226583e+000 -3.6860257387e+000 -4.0864288807e-001
305 5.9179687500e-001 -7.8038880229e+000 -3.1757563353e+000 -5.1402324438e+000 -6.3991209865e+000
306 5.9375000000e-001 -7.8591266274e+000 -6.0948514938e+000 -5.7850885391e+000 -6.3212987781e+000
307 5.9570312500e-001 -6.7726677656e+000 -3.2270270586e+000 -1.6272467375e+000 -1.2973415852e+000
308 5.9765625000e-001 -3.1495100260e+000 -7.6442763209e+000 -7.3751029372e+000 -1.8710899353e+000
309 5.9960937500e-001 -8.5961484909e+000 -1.5073090792e+000 -5.4869228601e+000 -9.4482253492e+000
310 6.0156250000e-001 -1.7328411341e+000 -9.9069185462e+000 -4.5445114374e+000 -6.4052248001e+000
311 6.0351562500e-001 -9.2706076056e+000 -5.7417523861e+000 -3.8181704283e+000 -8.7218847871e+000
312 6.0546875000e-001 -4.6855068207e+000 -7.1349224448e+000 -1.7807549238e+000 -4.5655667782e-001
313 6.0742187500e-001 -2.7396464348e+000 -5.2708518505e+000 -1.7670214176e-001 -9.4576860964e+000
314 6.0937500000e-001 -5.5275124311e+000 -1.8912321329e+000 -4.2350536585e+000 -4.0604877472e+000
315 6.1132812500e-001 -1.7673265934e+000 -2.4109482765e-002 -1.0245060921e+000 -7.7645191550e+000
316 6.1328125000e-001 -7.8768272698e+000 -3.4046447277e+000 -8.6510819197e+000 -2.1283608675e+000
317 6.1523437500e-001 -4.1480755806e+000 -9.6380504593e+000 -2.1253091097e+000 -3.5706657171e+000
318 6.1718750000e-001 -9.2767113447e+000 -7.6793725789e+000 -6.6322824359e+000 -7.7538377047e+000
319 6.1914062500e-001 -3.8453322649e+000 -7.3824286461e-001 -1.3528853655e+000 -8.3324685693e+000
320 6.2109375000e-001 -9.9301126134e+000 -2.7881711721e+000 -8.3700063825e+000 -6.2425610423e+000
321 6.2304687500e-001 -8.3431501687e+000 -9.6227912232e+000 -1.0721153021e+000 -1.4877772331e+000
322 6.2500000000e-001 -7.8432559967e-002 -5.4518264532e+000 -8.9403973520e+000 -1.9678336382e+000
323 6.2695312500e-001 -2.5617235899e+000 -1.2472915649e+000 -3.1446272135e+000 -1.4835047722e+000
324 6.2890625000e-001 -1.6403698921e+000 -8.5143589973e+000 -3.0768764019e+000 -3.1385236979e+000
325 6.3085937500e-001 -5.9385967255e+000 -4.4953763485e+000 -8.0132450163e+000 -5.6123554707e-001
326 6.3281250000e-001 -8.8503956795e-002 -2.9767751694e+000 -6.9005402923e+000 -7.1498763561e+000
327 6.3476562500e-001 -6.5694144368e+000 -3.9466536045e+000 -4.6418666840e-001 -7.7513961494e+000
328 6.3671875000e-001 -5.1429793239e+000 -9.7277748957e+000 -1.5259265900e-001 -9.0328684449e+000
329 6.3867187500e-001 -5.9459212422e+000 -7.5106051564e+000 -1.7685478926e+000 -8.3767205477e+000
330 6.4062500000e-001 -7.2502821684e+000 -1.9501328468e-001 -4.4138920307e+000 -8.4398937225e+000
331 6.4257812500e-001 -7.3403120041e+000 -4.8094117641e+000 -3.8972139359e-001 -5.9831538796e+000
332 6.4453125000e-001 -4.6363717318e+000 -5.6617939472e+000 -6.5529343486e+000 -9.1045869142e+000
333 6.4648437500e-001 -6.3246560097e+000 -5.9184545279e+000 -3.3167517185e+000 -6.3600599766e-001
334 6.4843750000e-001 -6.7064425349e+000 -1.0101628304e+000 -9.6935941651e+000 -3.9060640335e+000
335 6.5039062500e-001 -5.6923124194e+000 -2.4323225021e-001 -8.2781456411e+000 -3.8456374407e+000
336 6.5234375000e-001 -3.9329200983e+000 -7.7330851555e+000 -1.2204349041e+000 -9.7448652610e+000
337 6.5429687500e-001 -1.8427073956e+000 -8.5491500795e+000 -5.7829523087e+000 -4.9971008301e+000
338 6.5625000000e-001 -5.3346335888e-001 -4.6888637543e+000 -8.4917752445e+000 -5.0840786099e+000
339 6.5820312500e-001 -1.2482070923e+000 -1.7883837223e-001 -6.4754173160e+000 -8.2116153836e+000
340 6.6015625000e-001 -1.5988647938e+000 -7.9622791708e+000 -3.3017975092e+000 -8.9693903923e-001
341 6.6210937500e-001 -9.4924771786e+000 -8.9077425748e+000 -8.1701101363e+000 -4.9436932802e+000
342 6.6406250000e-001 -4.6858119965e+000 -7.0201727748e+000 -9.4805749506e+000 -6.5758231282e+000
343 6.6601562500e-001 -3.6194980145e-001 -3.3365887403e+000 -6.9301432371e+000 -5.1139867306e+000
344 6.6796875000e-001 -9.3356132507e-001 -6.9203773141e+000 -8.0623798072e+000 -9.9438459426e+000
345 6.6992187500e-001 -7.3003327847e+000 -7.8737735748e-002 -6.3557848334e+000 -6.8803980947e+000
346 6.7187500000e-001 -6.3063448668e+000 -9.3490401655e+000 -5.0022888184e+000 -8.5180211067e+000
347 6.7382812500e-001 -2.9264199734e+000 -8.8814966381e+000 -7.6876124740e+000 -1.0904264450e+000
348 6.7578125000e-001 -3.2880640030e+000 -2.5180822611e+000 -1.1441391706e+000 -1.4291816950e+000
349 6.7773437500e-001 -3.1223487854e+000 -7.1156957746e+000 -9.0734580159e+000 -9.7058015689e+000
350 6.7968750000e-001 -1.0998868942e+000 -5.1646474004e+000 -6.8791770935e+000 -1.6116827726e+000
351 6.8164062500e-001 -9.0087588131e+000 -5.4008606076e+000 -4.2152166367e+000 -6.8459120393e+000
352 6.8359375000e-001 -1.9119846821e+000 -6.8208867311e+000 -8.3492538333e+000 -9.8156682029e+000
353 6.8554687500e-001 -1.8539994955e+000 -5.3419598937e+000 -7.3100987077e+000 -5.3053376079e+000
354 6.8750000000e-001 -9.3954283372e+000 -9.5208593830e+000 -4.0800195932e+000 -8.2470168173e+000
355 6.8945312500e-001 -9.1821039468e+000 -8.8445692509e+000 -2.7634507418e+000 -2.9197055101e+000
356 6.9140625000e-001 -7.4465164542e+000 -5.6859034300e+000 -8.4792627394e+000 -7.3870050907e+000
357 6.9335937500e-001 -3.3979308605e+000 -4.9674975872e+000 -9.0212702751e-001 -4.0217292309e+000
358 6.9531250000e-001 -7.4529251456e+000 -9.9752800073e+000 -5.3196814656e+000 -2.5272375345e+000
359 6.9726562500e-001 -2.1225625277e+000 -4.5823544264e+000 -8.2094788551e-001 -1.2173831463e+000
360 6.9921875000e-001 -4.9201941490e+000 -2.3047578335e+000 -1.6135138273e+000 -9.2117068917e+000
361 7.0117187500e-001 -9.1775261611e+000 -8.2015442848e+000 -1.6672259569e+000 -7.9812006652e+000
362 7.0312500000e-001 -4.2426830530e+000 -7.2304451466e+000 -6.2483596802e+000 -3.5786002874e+000
363 7.0507812500e-001 -3.1788080931e+000 -3.2535785437e+000 -7.1718496084e+000 -5.5854976177e+000
364 7.0703125000e-001 -6.0484632850e+000 -1.0538041592e+000 -8.7282937765e+000 -4.6156191826e+000
365 7.0898437500e-001 -7.1813103557e+000 -9.4433423877e+000 -1.1017179489e+000 -3.0231636763e+000
366 7.1093750000e-001 -3.2352674007e+000 -5.7060456276e+000 -7.7806939185e+000 -4.3589586020e+000
367 7.1289062500e-001 -5.6846827269e+000 -7.2203740478e+000 -6.5651416779e+000 -6.5193641186e+000
368 7.1484375000e-001 -4.5918148756e+000 -2.9862362146e+000 -8.0895413458e+000 -9.0008240193e+000
369 7.1679687500e-001 -9.8318430036e+000 -6.1143833399e+000 -1.8601030111e+000 -7.2719505429e+000
370 7.1875000000e-001 -1.0458695889e+000 -6.3942381740e+000 -4.5829647779e+000 -2.5049591064e+000
371 7.2070312500e-001 -3.1482893229e+000 -8.7347026169e+000 -2.1066927910e+000 -8.8198781013e-002
372 7.2265625000e-001 -4.9638354778e+000 -6.5645337105e-001 -4.0659809113e+000 -2.2208321095e+000
373 7.2460937500e-001 -4.0794092417e+000 -7.6158940792e+000 -4.7788935900e+000 -1.9818717241e+000
374 7.2656250000e-001 -1.2527847290e+000 -4.8960846663e+000 -7.3274940252e+000 -6.8056276441e+000
375 7.2851562500e-001 -6.5489670634e+000 -4.5811337233e+000 -7.2460097075e+000 -7.2655415535e+000
376 7.3046875000e-001 -4.0845972300e+000 -7.9445783794e+000 -4.9186682701e+000 -4.3409526348e+000
377 7.3242187500e-001 -4.5896786451e+000 -4.6082949638e+000 -4.2481768131e+000 -3.0085146427e+000
378 7.3437500000e-001 -8.5851618648e+000 -7.3299357295e+000 -3.1586647034e-001 -6.5459150076e+000
379 7.3632812500e-001 -5.2308738232e-001 -7.1062350273e+000 -1.6476941109e+000 -4.6433913708e+000
380 7.3828125000e-001 -6.5742972493e+000 -7.1718513966e-001 -8.9339884371e+000 -7.2374644876e+000
381 7.4023437500e-001 -6.9112217426e+000 -5.7747122645e+000 -8.5699026287e+000 -4.7563099861e+000
382 7.4218750000e-001 -3.1684315205e+000 -3.7937557697e+000 -4.1679126024e+000 -3.4098333120e+000
383 7.4414062500e-001 -9.3746757507e+000 -2.5699639320e+000 -1.8890959024e+000 -7.4758142233e+000
384 7.4609375000e-001 -4.7456264496e-001 -5.5195775628e+000 -6.0811182857e+000 -9.2266609520e+000
385 7.4804687500e-001 -9.0612506121e+000 -4.9928307533e-001 -3.7284463644e+000 -5.0450149179e+000
386 7.5000000000e-001 -6.3142776489e-001 -3.2828760147e+000 -1.6864526272e+000 -4.7660756111e+000
387 7.5195312500e-001 -9.7964406013e-001 -8.2992035151e+000 -5.9199804068e+000 -4.5725882053e+000
388 7.5390625000e-001 -4.9061554670e+000 -4.4718772173e+000 -4.5716702938e-001 -8.1719413400e+000
389 7.5585937500e-001 -4.3339335918e+000 -9.0331736207e+000 -2.5019073486e+000 -6.3100069761e+000
390 7.5781250000e-001 -9.0758994967e+000 -8.8045895100e-001 -2.2946864367e+000 -6.1088901758e+000
391 7.5976562500e-001 -8.3712279797e-001 -9.4341868162e+000 -1.4484083652e+000 -6.0093995929e+000
392 7.6171875000e-001 -7.4010437727e+000 -4.4215214252e+000 -4.4502091408e+000 -7.6021607220e+000
393 7.6367187500e-001 -7.7355265617e+000 -3.7113559246e+000 -8.7710201740e-001 -6.3887447119e+000
394 7.6562500000e-001 -4.9421674013e+000 -9.4964445755e+000 -9.8364207894e+000 -1.9946897030e+000
395 7.6757812500e-001 -8.8341929018e+000 -6.9438764453e+000 -9.6301156655e+000 -6.2935268879e+000
396 7.6953125000e-001 -5.1979124546e+000 -7.8948332369e+000 -1.0629594326e+000 -3.9970093966e+000
397 7.7148437500e-001 -3.2618182898e+000 -7.0598468184e+000 -6.8456068635e+000 -2.2360908985e+000
398 7.7343750000e-001 -8.7789544463e+000 -2.8147220612e+000 -6.6789758205e+000 -9.0221869200e+000
399 7.7539062500e-001 -4.5710623264e+000 -2.8952908516e+000 -8.3553574979e+000 -2.5006866455e+000
400 7.7734375000e-001 -7.5655400753e-001 -4.3314921856e+000 -6.6365551949e+000 -5.2095115185e-001
401 7.7929687500e-001 -4.7395247221e+000 -8.8409069926e+000 -6.3405254483e+000 -6.1919003725e+000
402 7.8125000000e-001 -4.8982203007e-001 -2.3041474819e+000 -5.1530504227e+000 -9.6783348918e+000
403 7.8320312500e-001 -9.1909543425e+000 -5.6126591563e+000 -5.2403333783e+000 -3.6472672224e+000
404 7.8515625000e-001 -3.0881679058e+000 -5.5711537600e+000 -9.5110934600e+000 -5.6871241331e+000
405 7.8710937500e-001 -2.8266245127e+000 -8.1011383235e+000 -5.7817316055e+000 -1.0315257311e+000
406 7.8906250000e-001 -2.7771592140e-002 -2.1283608675e+000 -6.6789758205e+000 -5.6889554858e+000
407 7.9101562500e-001 -2.0490127802e+000 -3.6939603090e+000 -8.9852595329e+000 -9.3945127726e+000
408 7.9296875000e-001 -1.4822840691e+000 -7.5511947274e+000 -9.6935941651e+000 -9.9276721478e-001
409 7.9492187500e-001 -2.5769829750e+000 -6.8279060721e+000 -1.8228703737e+000 -5.8116397262e+000
410 7.9687500000e-001 -8.4575945139e+000 -1.9275492430e+000 -6.2706381083e+000 -4.2374950647e+000
411 7.9882812500e-001 -6.2761315703e+000 -6.4168217778e+000 -4.6235543489e+000 -1.4160573483e-001
412 8.0078125000e-001 -2.5785088539e+000 -2.8452408314e+000 -6.8639180064e+000 -4.3964964151e+000
413 8.0273437500e-001 -9.8239064217e-001 -1.0840177536e+000 -6.0835596919e+000 -4.1914123297e+000
414 8.0468750000e-001 -9.0762047470e+000 -7.1599474549e+000 -2.0923489332e+000 -6.7424541712e+000
415 8.0664062500e-001 -4.1615039110e+000 -1.4651936293e+000 -3.5935544968e+000 -9.4409009069e+000
416 8.0859375000e-001 -7.9616688192e+000 -1.2286752462e+000 -3.9088106155e+000 -6.8196660280e+000
417 8.1054687500e-001 -2.9331338406e+000 -8.0639056861e+000 -3.2959991693e+000 -3.6762595177e+000
418 8.1250000000e-001 -4.8817408085e+000 -7.8325754404e+000 -2.8534805775e+000 -2.6187932491e+000
419 8.1445312500e-001 -4.6742147207e+000 -6.3301491737e+000 -9.3325602263e+000 -3.1614124775e+000
420 8.1640625000e-005 -3.8630330563e+000 -4.7166353464e+000 -8.8546403497e+000 -5.3370770812e+000
421 8.1835937500e-005 -9.2150638998e+000 -7.1611681581e+000 -3.2810449600e+000 -7.8948332369e+000
422 8.2031250000e-005 -3.5511338711e+000 -4.2866295576e+000 -6.4189580083e+000 -6.4882349968e+000
423 8.2226562500e-005 -6.9322794676e+000 -2.7204197645e+000 -6.5654468536e+000 -6.3451033831e+000
424 8.2421875000e-005 -9.9291970581e+000 -3.4211248159e+000 -6.0057374835e+000 -1.5472882986e+000
425 8.2617187500e-005 -9.5892208442e+000 -2.0090335608e+000 -7.3671680689e+000 -1.5686511993e+000
426 8.2812500000e-005 -5.4423657060e+000 -3.0860316753e+000 -1.2717062235e+000 -9.7820978425e+000
427 8.3007812500e-005 -6.0246589780e+000 -7.5994139910e+000 -9.4827112556e+000 -9.8260444961e+000
428 8.3203125000e-005 -6.9292277098e+000 -1.0278636217e+000 -8.4014405310e+000 -2.0929592848e+000
429 8.3398437500e-005 -3.5706758499e-002 -4.2362743616e+000 -6.0167241096e+000 -3.7437057495e+000
430 8.3593750000e-005 -6.9307535887e+000 -5.9300515056e+000 -9.9829096347e+000 -1.4883875847e+000
431 8.3789062500e-005 -1.5698719025e+000 -6.4879298210e+000 -2.8675192595e+000 -1.0086369514e+000
432 8.3984375000e-005 -4.7718739510e+000 -4.1126745939e+000 -9.2056032270e+000 -6.6493728757e+000
433 8.4179687500e-005 -9.5345927402e+000 -9.6966460161e+000 -2.1924495697e+000 -4.7254860401e+000
434 8.4375000000e-001 -9.9594103824e+000 -3.5132908821e+000 -1.2949001789e+000 -7.6967680454e+000
435 8.4570312500e-001 -6.0948514938e+000 -7.5319682062e+000 -2.5946837664e+000 -5.6065553427e+000
436 8.4765625000e-001 -5.8153018355e+000 -2.5492113829e+000 -9.4811853394e+000 -1.1386454105e+000
437 8.4960937500e-001 -6.2022766471e+000 -8.3223998547e-001 -1.6473889351e+000 -2.5614184141e+000
438 8.5156250000e-001 -9.6047852933e+000 -7.3110142350e+000 -6.1293375492e+000 -1.8189030886e+000
439 8.5351562500e-001 -1.0815757513e+000 -4.8939484358e+000 -6.3661611080e+000 -5.7200843096e+000
440 8.5546875000e-001 -4.6998500824e-001 -3.0838954449e+000 -9.7305215523e+000 -7.2426527739e+000
441 8.5742187500e-001 -9.2315439135e+000 -4.7062593699e+000 -7.0485550165e+000 -3.2578510046e+000
442 8.5937500000e-001 -2.0172733068e+000 -9.2367320508e+000 -8.9596240222e+000 -7.6870021224e+000
443 8.6132812500e-001 -1.9043552876e+000 -8.5326699913e+000 -8.3339945972e+000 -9.3044831604e+000
444 8.6328125000e-001 -6.1449018121e+000 -3.7464523315e+000 -9.7775200568e+000 -7.7504806221e+000
445 8.6523437500e-001 -8.0568850040e-001 -8.5122226179e+000 -7.0833459496e+000 -3.4797203541e+000
446 8.6718750000e-001 -2.4158453941e+000 -8.8570818305e+000 -4.2463451624e+000 -5.2027955651e+000
447 8.6914062500e-001 -2.5879698992e+000 -1.3046664000e+000 -8.5473188758e+000 -1.9595932961e+000
448 8.7109375000e-001 -6.7162084579e+000 -6.2920010090e+000 -4.1767632961e+000 -4.9385052919e+000
449 8.7304687500e-001 -6.4384898543e+000 -1.0037535429e+000 -8.9815973490e+000 -4.1673022509e+000
450 8.7500000000e-001 -3.2389295101e+000 -4.2625200748e+000 -8.6748863757e+000 -2.8995633125e+000
451 8.7695312500e-001 -6.9844660163e+000 -9.6563615650e+000 -9.7198400833e+000 -5.4048278928e+000
452 8.7890625000e-001 -4.1615039110e+000 -6.2633135915e+000 -3.5148167610e+000 -8.7264625728e+000
453 8.8085937500e-001 -8.5094760358e+000 -9.8199407943e+000 -3.7083041668e+000 -9.2449720949e+000
454 8.8281250000e-001 -9.4729453325e+000 -8.7878047675e+000 -6.2865078449e+000 -2.2589802742e+000
455 8.8476562500e-001 -4.6256905794e+000 -8.6605426669e+000 -3.9033174515e-001 -6.4439833164e+000
456 8.8671875000e-001 -9.8483230080e+000 -6.6481521726e+000 -3.6240732670e+000 -8.3916746080e+000
457 8.8867187500e-001 -2.7072972059e+000 -1.0635697842e+000 -9.1058076918e+000 -1.4896082878e+000
458 8.9062500000e-001 -1.8366038799e+000 -4.0940582752e+000 -6.6487625241e+000 -3.0338448286e+000
459 8.9257812500e-001 -6.4690083265e+000 -6.9386884570e+000 -8.4487441182e+000 -7.9018524289e+000
460 8.9453125000e-009 -6.0853907466e+000 -5.2977079153e+000 -5.5867183208e+000 -3.7470626831e+000
461 8.9648437500e-009 -2.9715871811e+000 -6.4418470860e+000 -4.0839868784e+000 -3.0146181583e+000
462 8.9843750000e-009 -1.2845242023e+000 -8.6461989582e+000 -1.2854397297e+000 -5.3523361683e+000
463 9.0039062500e-009 -5.9001433849e+000 -7.2164067626e+000 -9.3203528225e+000 -1.2622457743e+000
464 9.0234375000e-009 -8.9806817472e+000 -4.6736043692e+000 -8.1402020156e+000 -9.7293008119e+000
465 9.0429687500e+009 -7.1858882904e+000 -1.6504412889e+000 -2.3850214481e+000 -5.8421581984e+000
466 9.0625000000e+009 -5.4750204086e-001 -1.1145359278e+000 -4.1032135487e+000 -7.6546525955e+000
467 9.0820312500e+009 -5.7924151421e-001 -1.2109744549e+000 -8.8839352131e-001 -2.6853233576e+000
468 9.1015625000e+009 -2.9889827967e+000 -1.4352852106e+000 -3.8196969032e+000 -8.4200567007e+000
469 9.1210937500e+009 -4.6754354239e+000 -6.2779626250e+000 -2.8449356556e+000 -7.0403149724e+000
470 9.1406250000e+009 -8.5772271454e+000 -9.0374462306e+000 -4.2719811201e+000 -3.7900936604e+000
471 9.1601562500e+009 -7.8655354679e+000 -2.3996704817e+000 -3.6075931787e+000 -4.6052455902e-001
472 9.1796875000e+009 -8.3919797838e+000 -1.8866544962e+000 -2.3728138208e+000 -4.3427824974e-001
473 9.1992187500e+009 -2.5208288431e+000 -6.2123477459e+000 -7.8942228854e+000 -3.3158361912e+000
474 9.2187500000e-001 -5.3584399819e+000 -5.3501999378e+000 -4.4761496782e+000 -2.9880672693e+000
475 9.2382812500e-001 -9.1268654168e+000 -5.1716667414e+000 -4.4975125790e+000 -3.8499099016e+000
476 9.2578125000e-001 -2.1167635918e+000 -8.2644124329e+000 -2.5183874369e+000 -2.1430099010e+000
477 9.2773437500e-001 -1.8491166830e+000 -3.5276347399e+000 -7.0378735662e+000 -8.0898465216e+000
478 9.2968750000e-001 -6.7824336886e+000 -2.4787133932e+000 -4.2234563828e+000 -2.3844110966e+000
479 9.3164062500e-001 -3.8734090328e+000 -1.3077181578e+000 -5.9688100219e+000 -4.2512285709e+000
480 9.3359375000e-001 -9.0829187632e+000 -3.0524611473e+000 -9.2281869054e+000 -5.9269997478e+000
481 9.3554687500e-001 -2.5458538532e+000 -2.2882777452e+000 -3.7531661987e+000 -9.4875942171e+000
482 9.3750000000e-001 -6.7976927757e+000 -3.6671042442e+000 -2.4384260178e-001 -6.7018646002e+000
483 9.3945312500e-001 -4.6284371614e+000 -4.9961853027e+000 -3.8004702330e+000 -8.0211798847e+000
484 9.4140625000e-001 -5.6450086832e+000 -8.9562669396e+000 -4.2820519209e+000 -8.1835383177e+000
485 9.4335937500e-001 -2.6865446568e+000 -7.4785608053e+000 -4.2527544498e+000 -8.2888245583e-001
486 9.4531250000e-001 -5.4341256618e+000 -2.9770803452e+000 -4.9043238163e-001 -2.0154422522e+000
487 9.4726562500e-001 -8.1371501088e+000 -1.4725178480e+000 -7.1425518394e+000 -5.2430808544e-001
488 9.4921875000e-001 -4.5020908117e+000 -1.4453566074e+000 -4.6494948864e+000 -5.4783776402e+000
489 9.5117187500e-001 -5.0584429502e+000 -8.8433484733e+000 -4.0617084503e+000 -4.1199988127e+000
490 9.5312500000e-001 -2.1942794323e-001 -8.6135441065e+000 -2.0606100559e+000 -7.8444777429e+000
491 9.5507812500e-001 -1.8863493204e+000 -6.6801965237e+000 -8.2473219931e+000 -2.2391432524e+000
492 9.5703125000e-001 -7.5106051564e+000 -5.5470442772e+000 -7.4629962444e+000 -3.8026064634e+000
493 9.5898437500e-001 -7.5377666950e+000 -9.1454817355e+000 -6.5163120627e+000 -5.5177465081e+000
494 9.6093750000e-001 -5.4344308376e+000 -4.5564132929e+000 -4.1807305813e+000 -4.2075866461e+000
495 9.6289062500e-001 -6.7802971601e+000 -4.2991423607e+000 -6.9322794676e+000 -2.4796289206e+000
496 9.6484375000e-001 -5.7271033525e+000 -8.3584094048e+000 -5.7841730118e+000 -2.1039462090e+000
497 9.6679687500e-001 -6.6164135933e-001 -7.6717428863e+000 -9.8870815150e+000 -2.5101476908e+000
498 9.6875000000e-001 -3.3484905958e+000 -6.2025818229e+000 -4.6708577871e+000 -6.4546644688e-001
499 9.7070312500e-001 -9.3627735227e+000 -3.3689379692e+000 -6.8410292268e+000 -1.6019165516e+000
500 9.7265625000e-001 -4.4532608986e+000 -2.0728170872e+000 -2.3703724146e+000 -7.3747977614e+000
501 9.7460937500e-001 -8.7145604193e+000 -4.9067658186e+000 -9.8431348614e+000 -4.9366742373e+000
502 9.7656250000e-001 -5.5384990573e+000 -5.9013640881e+000 -9.7009186074e+000 -1.9531846046e-001
503 9.7851562500e-001 -6.6194647551e+000 -4.3000578880e-001 -4.9281287193e+000 -7.8356273472e+000
504 9.8046875000e-001 -2.5913268328e+000 -1.3031405210e+000 -4.9653613567e+000 -7.9116183519e+000
505 9.8242187500e-001 -4.1444122791e-001 -9.3148594350e+000 -2.3282569647e+000 -3.9548933506e+000
506 9.8437500000e-001 -4.5744192600e+000 -6.3621935248e+000 -8.9150670171e+000 -6.2343209982e+000
507 9.8632812500e-001 -9.6615497395e+000 -8.0535294116e+000 -4.8332160711e+000 -5.4972991347e+000
508 9.8828125000e-001 -5.3379926085e+000 -1.2421035767e+000 -9.9313333537e+000 -2.4176764488e+000
509 9.9023437500e-001 -9.5822016150e+000 -1.5994751453e+000 -1.4157533646e+000 -3.4907072783e+000
510 9.9218750000e-001 -5.7686087489e+000 -1.6190069914e+000 -5.6175419688e+000 -1.8817710876e+000
511 9.9414062500e-001 -7.2362437844e+000 -6.9246470928e-001 -5.0773644447e+000 -5.5342265964e+000
512 9.9609375000e-001 -7.4050110579e+000 -3.8547927141e+000 -1.4065980911e+000 -2.1286660433e+000
513 9.9804687500e-001 -4.2243719101e+000 -4.8860132694e+000 -5.8046221733e-001 -2.6047545671e+000
@@ -0,0 +1,21 @@
Time:4x17:512,End Time,0:0.000000,0:16.000000,0:32.000000,0:48.000000,0:64.000000,0:80.000000,0:96.000000,0:112.000000,0:128.000000,0:144.000000,0:160.000000,0:176.000000,0:192.000000,0:208.000000,0:224.000000,0:240.000000,0:256.000000,16:0.000000,16:16.000000,16:32.000000,16:48.000000,16:64.000000,16:80.000000,16:96.000000,16:112.000000,16:128.000000,16:144.000000,16:160.000000,16:176.000000,16:192.000000,16:208.000000,16:224.000000,16:240.000000,16:256.000000,32:0.000000,32:16.000000,32:32.000000,32:48.000000,32:64.000000,32:80.000000,32:96.000000,32:112.000000,32:128.000000,32:144.000000,32:160.000000,32:176.000000,32:192.000000,32:208.000000,32:224.000000,32:240.000000,32:256.000000,48:0.000000,48:16.000000,48:32.000000,48:48.000000,48:64.000000,48:80.000000,48:96.000000,48:112.000000,48:128.000000,48:144.000000,48:160.000000,48:176.000000,48:192.000000,48:208.000000,48:224.000000,48:240.000000,48:256.000000,Event Id,Event Date,Event Duration
0.0000000000,0.0625000000,15.1988654400,0.5671229823,1.3758857826,1.4949460936,2.9050638810,1.3065130609,1.1233669797,0.7124988142,1.4112064197,0.5309139555,0.8688514675,2.0859547103,0.8210741346,1.4298572234,2.1146050063,1.1985940904,1.8390286064,14.3072574756,1.1928367118,1.6199441861,0.8662222683,1.9454012025,2.1791135292,2.1131424730,2.9649453141,0.8207559000,2.9272890051,1.4615706880,0.8520046896,3.1190921786,0.1070750046,1.8832167398,0.3745351561,0.1319700668,19.3684727908,0.6879969996,0.2421246518,2.1699752597,0.6711760298,2.0034464228,0.7088443311,1.4495489072,1.6207260062,1.1834544650,3.3554711820,1.7082677049,2.8548435703,0.6031663441,0.6958518668,1.5124787340,0.8523553396,17.3247215871,1.1058698641,0.8597599522,2.1769692070,2.5507554452,1.4276335024,0.8772121383,1.0392644777,1.5764437783,1.6911238257,0.8914866223,0.8485727428,1.5435584211,0.6356054624,1.1968190626,2.1200945912,0.9784658875,,,
0.0625000000,0.1250000000,18.1550939407,1.5777952128,2.6100005873,1.6713841486,1.8927067468,0.8015751495,1.2097671728,0.5069287213,1.0383360186,1.3696298461,1.0765782544,3.1484673018,1.0246030864,1.8796136444,0.9568356109,1.5891596753,0.3665007574,15.7242693510,1.0223805825,1.3970415303,2.8597319580,0.4721095672,0.5722595115,1.7000931132,1.2477444741,1.7719448551,1.0515452563,1.4370236387,2.1744891214,2.8270066841,1.4996734132,1.2367731861,1.2497194410,0.2429743581,16.3836541804,3.7031289564,1.8271912329,1.3378954281,0.3499796530,2.1129706509,2.6694559902,0.9403279146,1.2255628754,3.0767630385,0.1939693130,1.1676465045,1.0774006539,0.6571145702,0.5082389837,1.9411992218,0.2523086728,16.8186196738,0.6859910104,2.5143224890,0.8954200212,1.7465681198,2.3461100873,0.1773472206,0.6415843953,0.9051814034,0.6955714440,0.3229613273,3.0427793751,0.4003739835,1.4980044723,1.4166203073,1.5490029043,1.7354131404,,,
0.1250000000,0.1875000000,16.9591319722,1.5579032687,0.7027567798,2.7493566412,1.4149449999,0.4311909067,1.6138073176,3.0543405667,1.8000319902,1.7170089597,2.7759506786,1.3126248673,0.8843337001,2.0725819498,0.8094254991,2.5206219894,0.8417997968,16.9118691403,1.2519052574,2.1978260689,1.7366514285,0.9080728935,2.3676075199,2.0402848657,2.4961664443,0.9943384601,1.8098415923,0.9463660204,0.4804732416,1.9847331459,2.1886271806,1.1714338440,1.2338111972,1.5180135067,16.6936778766,0.7220978172,2.0503917270,1.5893718436,1.7406949135,0.8348802285,0.4184446955,1.6830256791,0.9743589022,0.5496600085,2.3536113515,0.8546722002,0.7026758306,1.7859989878,1.5929016626,0.5809122543,3.8632778362,15.4868932541,1.0640204129,2.4139384747,1.3022398336,0.8894967962,2.4735541285,1.8752337486,1.3873959251,1.8195728406,1.1104210581,1.8026951848,1.7430322516,1.2742421227,1.8704461556,0.2349031326,1.3352452660,2.1167980370,,,
0.1875000000,0.2500000000,16.4915087118,1.6683721177,3.6844398360,2.2042913963,0.5098894023,1.0675146705,1.2126063517,2.5322629947,1.7813885116,0.4556319888,0.9324294494,1.3827377421,2.2365265462,2.0326073786,0.6228175343,1.2476280149,0.7839652507,16.1324790672,1.3163174970,1.6411893017,0.6899363450,0.6148575760,1.1617248321,2.2126808410,0.5878268415,1.0481249604,1.4832371037,0.9719866800,1.6922067161,1.0170501434,3.6810131698,2.5064795102,1.8207724167,0.2209078788,14.7222846847,0.7547865215,2.3627902804,3.2131645546,1.3893048402,1.4454954192,0.6174055382,0.1746923644,1.4724862435,0.8966630152,1.3464344404,1.7264238272,1.6302584658,0.2212860293,2.6937830976,0.5690077545,0.6953701593,17.9792141633,0.7541853955,0.6286230859,3.2000284059,0.7242316109,1.7678013894,0.3527304285,1.6778549321,3.1741809992,0.6578915605,1.1341398533,0.9645764189,2.0720841584,1.0935181823,0.8687461413,1.5648672073,0.6116051020,,,
0.2500000000,0.3125000000,20.8115203446,1.6370995221,2.5090372937,0.9843655549,1.3713309392,1.6795018248,0.3214794909,0.7616826282,2.1953695849,0.7781835704,1.0929166628,0.6071483198,2.7717822760,1.2745439799,1.0218861837,0.6444375453,0.3007477890,14.6598864889,0.8004477520,2.7486853281,1.6792720175,1.2978278181,1.3066373484,2.1872982294,1.3218441591,2.4688766907,1.1773697832,0.2513090548,0.6696760298,1.3690769641,1.3930520428,0.7169876458,0.5622321938,0.6238262930,18.7558804383,2.2418258688,0.4185693341,2.0741360573,1.9979417164,0.7831326075,0.4784254368,1.1983093168,1.9796564619,1.9666702826,0.9782589614,1.9346918017,0.6464704554,2.6546915667,1.9473337907,0.5555027902,0.5297708018,13.5771322129,1.6713829216,0.9474950687,0.9841963660,2.4073491756,1.7423613549,1.3744341486,0.8726546931,0.5177788674,2.6588566597,1.4918066453,2.4578957231,1.5371248223,1.5503873738,1.0401625180,2.5558761452,0.9071145989,,,
0.3125000000,0.3750000000,16.0284270521,2.8050610306,1.1210758299,0.5605111740,0.8637572197,1.0727840057,1.3487969636,1.6493179263,2.0878212779,2.0765281061,1.7299527337,3.4742093479,0.6554248537,1.9433249082,1.7787756505,1.1238825526,0.3211868878,16.0889635088,0.5372046408,3.2703427626,1.1710049868,2.2039525429,1.6906985682,1.5309348653,1.7672371977,1.5898268772,0.7653951170,1.3226958031,1.0483494196,0.3904537354,2.1375588027,1.4947217545,1.6434186375,2.9522876560,14.8678387003,1.3673236752,0.6513435407,1.4508884225,1.4419595473,1.6741786679,0.5335846017,1.4007630697,1.6048238445,2.0445697218,1.4861183388,1.8751157451,1.6391898024,0.4338965179,1.6218159985,2.1227160254,1.1700319899,15.5893195458,2.0526562257,0.0771649163,2.2930495485,1.3032458637,1.6797954886,1.0954768675,1.0463327119,3.4852490831,1.4339486455,0.6761011656,0.4599217103,1.3463391806,0.5386183092,1.5430341087,0.7326091212,1.7253792882,,,
0.3750000000,0.4375000000,15.6542194560,1.2563671264,3.2068111276,1.0522887084,1.1899297623,2.1997766412,2.5326326648,1.2354181164,0.8193642213,1.4569595386,0.4912382341,0.8393792370,1.4564097356,1.1555790512,0.8146096356,0.3624732998,2.1513751997,15.5177488727,0.1330697687,0.7143092302,0.3411948486,2.2268627038,0.3888522190,1.4058224975,0.2369210045,2.2767570984,0.7707620939,1.6688305777,2.1334338468,0.8197524407,0.5022333127,0.7921041156,1.2901591304,0.7323119137,15.0583363122,1.6334886176,1.1042365972,3.7116737052,1.9344954852,2.0610467432,1.1803189787,1.1370085891,2.1865144689,0.9998516278,0.5568036641,0.8514666437,1.2432038375,1.1180032987,1.5382096702,1.2501119223,2.0349381778,18.6635224142,1.1938332733,1.7392011515,1.4671456802,1.7139195726,0.8739103803,1.1602739044,0.7078010535,0.8483099145,1.6356089470,0.5833597480,1.8271545731,0.7300499708,1.1031397722,2.4872990909,1.8841084042,3.1197238558,,,
0.4375000000,0.5000000000,18.3042987292,1.4014068854,2.3177884104,0.1920265470,1.8646092987,1.4878832830,1.5670139245,0.7328162638,0.1055696314,2.5544226239,2.1401783652,1.4201995341,1.6806219824,1.3299716735,0.5229829154,1.8447015292,0.2195309638,17.9112475307,1.2901639913,1.7120203597,0.6844025132,1.6662198003,1.9899681882,1.7481476832,1.3957120850,1.9111761638,1.6324723420,1.7535983009,1.7846846200,0.8041733157,1.6517226087,1.9926865234,2.3951825767,0.0607901586,16.7373313657,0.6990679758,0.4150495033,2.3701512048,2.4351523145,1.0885955929,1.8478392619,0.6389312286,0.6302147123,1.2581538191,1.8700880852,2.2862094199,0.9991551003,1.8886773789,0.4657967490,1.2086933501,3.1565731112,12.6335548537,0.1356168035,1.0481506304,1.0228886063,1.8871494223,0.7457115409,1.1869480613,1.1740752765,2.6747427497,0.7756535142,2.3908512205,0.7435114790,3.3531949203,1.2451998735,0.7051203544,0.5347318437,0.8447839792,,,
0.5000000000,0.5625000000,14.5183601775,0.2448793404,0.2154534585,1.3645396499,0.7938275872,1.6801172499,1.2988655279,1.5392090330,1.2942545277,1.2956423806,0.8745470939,2.1222880609,1.1918929659,2.1603839360,2.2468098323,0.8815032399,2.6608039257,17.1626957308,1.4291004839,2.1738691052,2.9799748005,1.2859754829,0.7727474692,2.3891595135,1.5165858247,2.2001194463,2.6680555304,1.4306526662,1.0312826142,2.0161123894,1.4617034728,2.8902300732,2.1105016672,1.8617498081,18.2074005732,2.8687816459,1.4835615409,0.5928003994,0.6338927647,1.4079522605,2.8861446230,1.7808784302,0.6963294417,1.2966540749,0.3784701098,1.1807324869,1.3761542039,1.5296339951,1.1685839700,1.6550532378,1.8780195566,20.2443384058,2.0738963055,1.4731581801,2.0768186203,1.5133618832,0.4009961874,2.4448846599,1.4366323393,0.9116076074,2.0449964234,0.9188956831,1.5144724985,1.8054843805,1.7899884336,1.1907266638,0.8121877749,1.5761732101,,,
0.5625000000,0.6250000000,17.9188933375,1.5273473216,0.8636715633,1.4950507661,0.4413863271,2.2048245309,2.3351076692,2.9762242193,0.3256199860,0.8670120700,0.6500558074,0.6460226879,1.5136743139,0.2141593401,2.5809321022,2.1276381717,1.3449667010,14.2218547699,3.4050879099,2.0533906577,0.6400511417,2.4837245123,0.7776518877,0.4424829543,0.5801061390,1.0324533749,0.5718168825,0.9462329003,2.0435057984,0.9305161785,0.8194371836,2.3440549735,1.4072887848,0.3464835573,16.5035861889,0.2872344185,1.4479915114,1.6779586608,1.5677590965,0.8708352078,0.9094715287,3.0917094158,3.1854377648,0.9365907788,1.9089876770,1.1931840725,2.7868637378,0.9165202107,0.5307700077,0.7228821834,1.4292703439,15.0438278371,0.7173517880,2.1668150478,0.7094924949,1.7806054283,0.9684849607,1.0291922493,0.4104861699,1.0680548859,3.2306479685,0.6457049590,1.3360437254,0.8597764256,0.8064977080,1.1646008064,3.6346734723,1.4827391396,,,
0.6250000000,0.6875000000,18.1826904954,3.4730430098,0.8050643775,0.7464953823,1.2355008633,2.3462246836,2.4045854191,0.9971654523,1.6471741316,0.6215423966,1.3891559639,2.5798877468,2.2981244945,1.6300126644,1.1904918935,3.2742733588,1.4199216480,15.1092681242,0.9274544566,0.2417125668,1.2395013713,1.9570392145,0.6275923655,4.3840382939,2.4403989178,1.5232341075,0.5262727532,0.8644911522,0.5212921878,0.4624170511,1.3866227388,0.2559534541,0.4847218692,1.2957783705,13.4308126997,2.6900030044,1.5684403586,1.1654302828,1.2129955288,2.1364799981,0.9107418044,1.5595737568,2.2703090252,1.8753337804,0.5827550534,1.0703970712,1.5170379344,0.8114890215,0.4922840225,1.6466608105,0.7515132581,15.3812033650,2.2405423468,0.8984671743,0.8181091793,0.8004358243,0.5340736497,2.9987663110,2.2936815280,1.4467003916,0.6546171554,1.8576607970,1.5122178097,1.5202030080,1.0769590377,3.1011240178,0.4716315021,0.7409231802,,,
0.6875000000,0.7500000000,14.0903204503,1.9099431858,0.5687241291,1.1066863501,2.0673848906,2.9122455607,1.9169378114,2.4085468977,2.8211192535,1.3500189946,0.3230008370,1.8210976275,2.1908593766,1.5195605958,0.9021550425,0.3846425847,0.4002227113,17.6976228373,1.2192375516,1.1180132720,2.0435282704,1.6320085250,1.2732007716,3.1943648533,1.0509904593,1.3117412484,1.2949786052,0.4770208287,1.3009244101,0.6613052050,3.1692125515,1.5561848882,1.8488739365,1.8222902154,16.8996126102,0.6750062454,1.6902227600,3.0440967388,1.2197549260,2.5399449904,2.4026628451,1.9765441563,1.8635924518,1.1952833106,1.2309228044,0.6455305204,1.2178306218,0.7000560864,2.0556971618,1.7215976835,1.1695191832,18.2243399427,2.5680260988,1.8424757504,1.9202556109,0.5054947549,0.9117811455,1.2022071349,2.4977833615,1.2196198678,1.7971528234,0.5840789729,1.8433152681,1.9938940363,0.5424260415,0.7826719782,0.7045582592,0.4769521316,,,
0.7500000000,0.8125000000,13.6863584965,1.6865275223,1.2323024025,0.6377127057,2.1822336673,1.3315425799,2.3104643557,1.1180430364,0.8504531416,0.3307925784,2.7620050907,1.5324213237,0.3463107593,2.0116760694,1.4469483770,0.7907213548,0.8234820804,16.5635063136,0.8512292444,0.1737793886,2.5355632685,0.9406060761,0.4998104695,2.0151378695,1.0924352788,2.1659997009,1.5410583995,2.6517461154,0.3778213998,0.3601001599,1.7552484796,1.1925749360,1.1263399812,1.7279486372,13.3371077287,2.6756984448,0.9754414456,1.2213700451,2.2864138969,1.3335937456,0.7108837715,1.9764052498,0.9873742109,2.3055760081,1.2029178875,0.8646229075,0.8004005808,0.7739934293,1.2593598841,1.6478875370,3.1167011429,15.4467386268,1.6609378331,1.0114044746,1.4620543024,0.3520346462,1.2903431201,1.8961678598,1.5618320735,1.4061008059,1.1288523177,1.4803857599,1.2868565039,0.8781635208,0.5928046853,1.0567051428,0.5788363123,1.0611105631,,,
0.8125000000,0.8750000000,15.1234856648,1.5979773969,0.9934243484,2.4445366643,1.3427228484,1.4444464081,1.2006521352,1.0633343896,1.6536476481,1.4514987325,2.1518326020,1.0812759760,2.0717787190,1.5949965889,1.7685394366,1.8748699161,1.6524765119,15.9495457294,1.1118199575,2.9216615063,2.3930018850,1.5377889004,1.5136880269,1.1782391377,0.4114571028,0.1982287295,1.6419923071,1.1473148421,0.6863083781,0.6362848070,1.9897724664,0.3889222357,2.4068234358,0.4767168066,19.2084359413,1.5305255790,0.9842616856,1.7177595949,2.1015871393,1.5532391530,0.9277778217,0.4107633100,2.5250752553,1.9345348035,0.7028593466,0.6848780580,1.1076006954,0.4802938755,2.4591279297,0.3925572958,1.2508446069,15.5858948547,1.9025021938,3.0174296733,0.6268450500,2.5323728648,1.9828167736,1.8517031754,1.5598184433,1.1586206381,1.1552099149,2.0704449859,1.0293736511,1.3772766722,1.9433687191,1.3775854481,1.0643941640,1.1197343431,,,
0.8750000000,0.9375000000,14.1066987070,0.4409167577,2.3917591880,1.6151701143,0.6321695011,1.2770855573,0.5917290137,1.8038163946,1.8504638443,1.6128826531,1.3361748806,1.5373835412,1.1968078513,1.5747169656,0.6287191193,1.1894157457,1.4716293088,16.7100178062,2.0975470180,0.3728133633,2.6631144376,2.5929116063,1.8953051397,0.7379429117,1.4610558741,1.7559686678,0.4346267426,0.9499587492,1.5362118380,1.2700479698,3.3134982498,1.4328138831,1.4013971217,0.1967909343,14.5065247677,2.0373729702,2.9615972265,2.4872682838,1.4076957982,1.0578920566,2.4389935904,1.6283687869,1.0759864369,2.0051109111,1.3737583859,0.3008386984,0.7271068634,1.0688870489,0.1702541441,2.2516277312,1.5030296417,15.3983091232,1.1174678322,1.1385865597,1.6653203503,0.9638024120,1.5099916167,0.4615621700,1.6671643081,1.8574152436,2.2530669894,0.8344438030,2.1652244478,1.2974272643,2.2692018297,0.3226193068,1.7496215546,1.4504393949,,,
0.9375000000,1.0000000000,15.3245920974,0.5077058464,2.0734085126,1.5574551474,0.7597512399,0.9022939110,1.7068869580,1.5290536619,1.4428372573,3.3324669271,2.7357304462,0.7554960348,1.2926161607,1.6484616020,1.1567744594,2.6132156020,0.7000293529,16.7540052051,2.9575271796,1.7114456574,1.7247633457,1.3324970374,0.7882926617,1.5150662107,0.6634789301,1.5040456237,0.9378550757,3.7905331528,2.5903557069,1.8156793127,0.3406538681,0.5771854510,1.1427606372,0.5699161978,16.2262396950,1.1826089339,2.5187009419,2.2048965588,1.3278760817,0.8802444581,1.3139629275,0.5999277229,3.4064527278,0.3481525057,1.1078566330,2.4861624980,0.1364837125,0.8383006826,2.2977501555,0.2551474846,0.9791699604,16.6408406673,1.2947891819,1.2669194582,0.3020841808,2.3284398230,0.8457315489,1.7245468046,0.5609522661,1.5398299519,1.2050520574,0.5949106435,2.1440702278,0.6251916736,1.8682074859,0.6621665553,1.4159071696,0.0214522327,,,
1.0000000000,1.0625000000,13.9970185810,2.4622355497,1.7360757425,1.0358860602,1.4991653482,0.3120789828,0.8088748857,0.4473196836,1.0222560775,2.3035913218,1.4310506585,1.1890339062,1.3569087722,0.9520881870,1.4976906065,2.0637569553,1.1619341846,15.9801018341,1.1902069147,0.8499435784,0.5741012926,0.6955371261,1.3724939943,2.0575677278,3.3245182027,1.1440093007,0.5254426005,0.9263009856,1.3300966845,0.4250267261,1.2046160304,0.9294140043,1.0646779662,0.7179257567,13.1084021090,0.3661792601,2.4865973607,1.7288399194,0.7533533851,2.0274305781,2.2528739682,0.5441449347,1.5303927163,1.7377855279,2.5198161460,1.9409947865,1.6396359238,1.4789609494,0.3124129832,1.2549063740,1.3215216694,17.5105683100,1.2972307449,2.4621498172,1.7489329912,0.0982467718,0.7149291018,1.4676787062,0.8137602647,3.3192615384,0.3198382520,0.7633358501,0.9705997645,1.3848245564,1.3436980680,1.5518320642,1.0974932605,2.1649754639,,,
1.0625000000,1.1250000000,16.9474798327,1.6828035825,0.7708073177,1.6698898155,3.0515500321,1.5862059741,0.5714985234,3.1286084930,1.9089678502,1.7534988483,0.3247732613,0.1717784214,0.6174721839,2.2517089159,0.0820261683,0.2908555950,0.8599070155,15.6031529759,0.6330089113,0.5595763553,2.7297306338,1.9848704269,0.6237705908,1.2680025536,1.7297021410,1.4561516891,1.3088757844,1.5573531678,1.2345360874,1.5653328121,0.9693502528,1.0142854263,2.7348820262,1.7430552016,13.7443856057,1.7108243066,2.8306679139,1.3835942010,2.1461983484,1.9356015153,0.5467726770,1.5335189923,1.3209678623,0.4975009929,1.4543544262,1.1911287557,2.1474866954,2.0842703330,0.9537057994,2.5692684349,1.7078211647,15.2490914606,0.8592913145,1.5464412019,0.4884729134,3.5093430498,1.0647232602,2.1954306023,0.7485995667,1.9252538701,1.6923877598,2.8181665726,0.9977764845,0.6571764847,1.9516480100,1.1838704053,0.4445554692,0.2059898919,,,
1.1250000000,1.1875000000,15.0163539511,2.2255355704,0.8252122175,2.0315927145,0.1094805673,2.1700383723,0.8611474191,1.9670743434,1.9666973905,0.7764801300,1.5164809480,1.9457118526,1.0378746913,2.0676452192,0.9580440443,2.8328361039,3.4931740176,17.6629218187,0.8537514305,1.5381693296,0.8007344308,0.6627318719,0.9586474970,1.4594386789,2.7328302508,0.4913833362,1.3368452531,1.8067533550,1.5756577319,1.6945826645,1.4655353636,0.8548675030,1.4897244685,2.7127222505,16.6933504357,0.9156293679,2.3165112237,1.4155208331,1.7093288527,1.7312998197,0.7538105128,3.4093877120,2.0602402276,0.9059780154,0.6094527353,2.2128218609,0.7499683704,0.9435533842,1.3073165331,0.4070655717,2.4530143575,17.5924414850,0.2821967142,1.2525622022,0.7119732550,2.3382338676,0.9664052236,0.9490623879,0.6521532983,1.1026151374,1.3056940310,1.8169497950,0.8096019956,1.7188579698,2.7169439561,1.6802813963,1.1317803306,0.7139442081,,,
1.1875000000,1.2500000000,14.9145437325,0.7276860017,1.1778049625,1.8776337630,1.9915966995,1.6485708337,1.3660866236,1.0287811925,1.9305031407,0.3589113171,1.5537490890,1.5259453856,1.1527588942,2.3177665507,0.2028557983,1.0786170324,1.8761430606,14.3760357052,1.7899552398,1.0696038943,1.6668678484,2.1701649280,2.5264338729,1.7328495111,1.8605913238,1.9674040124,0.7782572487,0.4392255444,1.3432486105,0.7254753671,0.5317627820,2.0115753535,2.4638893173,0.1492477637,16.2109916643,0.7822064854,1.6483471986,0.5143079887,2.0146873134,0.3448734300,1.5538957831,1.7092981254,0.8649034008,1.1665767190,1.3597842095,1.6267505143,2.5692669932,0.7736253806,1.1456274279,3.5896968265,0.0616840436,16.7558523901,1.9117038006,3.6646169775,1.0812263792,1.9282761449,0.5839618644,1.6949277913,2.1389444211,0.9710399798,1.1496032929,0.7545547464,1.5850094094,1.4312471408,0.6544941518,2.1160738000,1.5662462147,1.3105961895,,,
1 Time:4x17:512 End Time 0:0.000000 0:16.000000 0:32.000000 0:48.000000 0:64.000000 0:80.000000 0:96.000000 0:112.000000 0:128.000000 0:144.000000 0:160.000000 0:176.000000 0:192.000000 0:208.000000 0:224.000000 0:240.000000 0:256.000000 16:0.000000 16:16.000000 16:32.000000 16:48.000000 16:64.000000 16:80.000000 16:96.000000 16:112.000000 16:128.000000 16:144.000000 16:160.000000 16:176.000000 16:192.000000 16:208.000000 16:224.000000 16:240.000000 16:256.000000 32:0.000000 32:16.000000 32:32.000000 32:48.000000 32:64.000000 32:80.000000 32:96.000000 32:112.000000 32:128.000000 32:144.000000 32:160.000000 32:176.000000 32:192.000000 32:208.000000 32:224.000000 32:240.000000 32:256.000000 48:0.000000 48:16.000000 48:32.000000 48:48.000000 48:64.000000 48:80.000000 48:96.000000 48:112.000000 48:128.000000 48:144.000000 48:160.000000 48:176.000000 48:192.000000 48:208.000000 48:224.000000 48:240.000000 48:256.000000 Event Id Event Date Event Duration
2 0.0000000000 0.0625000000 15.1988654400 0.5671229823 1.3758857826 1.4949460936 2.9050638810 1.3065130609 1.1233669797 0.7124988142 1.4112064197 0.5309139555 0.8688514675 2.0859547103 0.8210741346 1.4298572234 2.1146050063 1.1985940904 1.8390286064 14.3072574756 1.1928367118 1.6199441861 0.8662222683 1.9454012025 2.1791135292 2.1131424730 2.9649453141 0.8207559000 2.9272890051 1.4615706880 0.8520046896 3.1190921786 0.1070750046 1.8832167398 0.3745351561 0.1319700668 19.3684727908 0.6879969996 0.2421246518 2.1699752597 0.6711760298 2.0034464228 0.7088443311 1.4495489072 1.6207260062 1.1834544650 3.3554711820 1.7082677049 2.8548435703 0.6031663441 0.6958518668 1.5124787340 0.8523553396 17.3247215871 1.1058698641 0.8597599522 2.1769692070 2.5507554452 1.4276335024 0.8772121383 1.0392644777 1.5764437783 1.6911238257 0.8914866223 0.8485727428 1.5435584211 0.6356054624 1.1968190626 2.1200945912 0.9784658875
3 0.0625000000 0.1250000000 18.1550939407 1.5777952128 2.6100005873 1.6713841486 1.8927067468 0.8015751495 1.2097671728 0.5069287213 1.0383360186 1.3696298461 1.0765782544 3.1484673018 1.0246030864 1.8796136444 0.9568356109 1.5891596753 0.3665007574 15.7242693510 1.0223805825 1.3970415303 2.8597319580 0.4721095672 0.5722595115 1.7000931132 1.2477444741 1.7719448551 1.0515452563 1.4370236387 2.1744891214 2.8270066841 1.4996734132 1.2367731861 1.2497194410 0.2429743581 16.3836541804 3.7031289564 1.8271912329 1.3378954281 0.3499796530 2.1129706509 2.6694559902 0.9403279146 1.2255628754 3.0767630385 0.1939693130 1.1676465045 1.0774006539 0.6571145702 0.5082389837 1.9411992218 0.2523086728 16.8186196738 0.6859910104 2.5143224890 0.8954200212 1.7465681198 2.3461100873 0.1773472206 0.6415843953 0.9051814034 0.6955714440 0.3229613273 3.0427793751 0.4003739835 1.4980044723 1.4166203073 1.5490029043 1.7354131404
4 0.1250000000 0.1875000000 16.9591319722 1.5579032687 0.7027567798 2.7493566412 1.4149449999 0.4311909067 1.6138073176 3.0543405667 1.8000319902 1.7170089597 2.7759506786 1.3126248673 0.8843337001 2.0725819498 0.8094254991 2.5206219894 0.8417997968 16.9118691403 1.2519052574 2.1978260689 1.7366514285 0.9080728935 2.3676075199 2.0402848657 2.4961664443 0.9943384601 1.8098415923 0.9463660204 0.4804732416 1.9847331459 2.1886271806 1.1714338440 1.2338111972 1.5180135067 16.6936778766 0.7220978172 2.0503917270 1.5893718436 1.7406949135 0.8348802285 0.4184446955 1.6830256791 0.9743589022 0.5496600085 2.3536113515 0.8546722002 0.7026758306 1.7859989878 1.5929016626 0.5809122543 3.8632778362 15.4868932541 1.0640204129 2.4139384747 1.3022398336 0.8894967962 2.4735541285 1.8752337486 1.3873959251 1.8195728406 1.1104210581 1.8026951848 1.7430322516 1.2742421227 1.8704461556 0.2349031326 1.3352452660 2.1167980370
5 0.1875000000 0.2500000000 16.4915087118 1.6683721177 3.6844398360 2.2042913963 0.5098894023 1.0675146705 1.2126063517 2.5322629947 1.7813885116 0.4556319888 0.9324294494 1.3827377421 2.2365265462 2.0326073786 0.6228175343 1.2476280149 0.7839652507 16.1324790672 1.3163174970 1.6411893017 0.6899363450 0.6148575760 1.1617248321 2.2126808410 0.5878268415 1.0481249604 1.4832371037 0.9719866800 1.6922067161 1.0170501434 3.6810131698 2.5064795102 1.8207724167 0.2209078788 14.7222846847 0.7547865215 2.3627902804 3.2131645546 1.3893048402 1.4454954192 0.6174055382 0.1746923644 1.4724862435 0.8966630152 1.3464344404 1.7264238272 1.6302584658 0.2212860293 2.6937830976 0.5690077545 0.6953701593 17.9792141633 0.7541853955 0.6286230859 3.2000284059 0.7242316109 1.7678013894 0.3527304285 1.6778549321 3.1741809992 0.6578915605 1.1341398533 0.9645764189 2.0720841584 1.0935181823 0.8687461413 1.5648672073 0.6116051020
6 0.2500000000 0.3125000000 20.8115203446 1.6370995221 2.5090372937 0.9843655549 1.3713309392 1.6795018248 0.3214794909 0.7616826282 2.1953695849 0.7781835704 1.0929166628 0.6071483198 2.7717822760 1.2745439799 1.0218861837 0.6444375453 0.3007477890 14.6598864889 0.8004477520 2.7486853281 1.6792720175 1.2978278181 1.3066373484 2.1872982294 1.3218441591 2.4688766907 1.1773697832 0.2513090548 0.6696760298 1.3690769641 1.3930520428 0.7169876458 0.5622321938 0.6238262930 18.7558804383 2.2418258688 0.4185693341 2.0741360573 1.9979417164 0.7831326075 0.4784254368 1.1983093168 1.9796564619 1.9666702826 0.9782589614 1.9346918017 0.6464704554 2.6546915667 1.9473337907 0.5555027902 0.5297708018 13.5771322129 1.6713829216 0.9474950687 0.9841963660 2.4073491756 1.7423613549 1.3744341486 0.8726546931 0.5177788674 2.6588566597 1.4918066453 2.4578957231 1.5371248223 1.5503873738 1.0401625180 2.5558761452 0.9071145989
7 0.3125000000 0.3750000000 16.0284270521 2.8050610306 1.1210758299 0.5605111740 0.8637572197 1.0727840057 1.3487969636 1.6493179263 2.0878212779 2.0765281061 1.7299527337 3.4742093479 0.6554248537 1.9433249082 1.7787756505 1.1238825526 0.3211868878 16.0889635088 0.5372046408 3.2703427626 1.1710049868 2.2039525429 1.6906985682 1.5309348653 1.7672371977 1.5898268772 0.7653951170 1.3226958031 1.0483494196 0.3904537354 2.1375588027 1.4947217545 1.6434186375 2.9522876560 14.8678387003 1.3673236752 0.6513435407 1.4508884225 1.4419595473 1.6741786679 0.5335846017 1.4007630697 1.6048238445 2.0445697218 1.4861183388 1.8751157451 1.6391898024 0.4338965179 1.6218159985 2.1227160254 1.1700319899 15.5893195458 2.0526562257 0.0771649163 2.2930495485 1.3032458637 1.6797954886 1.0954768675 1.0463327119 3.4852490831 1.4339486455 0.6761011656 0.4599217103 1.3463391806 0.5386183092 1.5430341087 0.7326091212 1.7253792882
8 0.3750000000 0.4375000000 15.6542194560 1.2563671264 3.2068111276 1.0522887084 1.1899297623 2.1997766412 2.5326326648 1.2354181164 0.8193642213 1.4569595386 0.4912382341 0.8393792370 1.4564097356 1.1555790512 0.8146096356 0.3624732998 2.1513751997 15.5177488727 0.1330697687 0.7143092302 0.3411948486 2.2268627038 0.3888522190 1.4058224975 0.2369210045 2.2767570984 0.7707620939 1.6688305777 2.1334338468 0.8197524407 0.5022333127 0.7921041156 1.2901591304 0.7323119137 15.0583363122 1.6334886176 1.1042365972 3.7116737052 1.9344954852 2.0610467432 1.1803189787 1.1370085891 2.1865144689 0.9998516278 0.5568036641 0.8514666437 1.2432038375 1.1180032987 1.5382096702 1.2501119223 2.0349381778 18.6635224142 1.1938332733 1.7392011515 1.4671456802 1.7139195726 0.8739103803 1.1602739044 0.7078010535 0.8483099145 1.6356089470 0.5833597480 1.8271545731 0.7300499708 1.1031397722 2.4872990909 1.8841084042 3.1197238558
9 0.4375000000 0.5000000000 18.3042987292 1.4014068854 2.3177884104 0.1920265470 1.8646092987 1.4878832830 1.5670139245 0.7328162638 0.1055696314 2.5544226239 2.1401783652 1.4201995341 1.6806219824 1.3299716735 0.5229829154 1.8447015292 0.2195309638 17.9112475307 1.2901639913 1.7120203597 0.6844025132 1.6662198003 1.9899681882 1.7481476832 1.3957120850 1.9111761638 1.6324723420 1.7535983009 1.7846846200 0.8041733157 1.6517226087 1.9926865234 2.3951825767 0.0607901586 16.7373313657 0.6990679758 0.4150495033 2.3701512048 2.4351523145 1.0885955929 1.8478392619 0.6389312286 0.6302147123 1.2581538191 1.8700880852 2.2862094199 0.9991551003 1.8886773789 0.4657967490 1.2086933501 3.1565731112 12.6335548537 0.1356168035 1.0481506304 1.0228886063 1.8871494223 0.7457115409 1.1869480613 1.1740752765 2.6747427497 0.7756535142 2.3908512205 0.7435114790 3.3531949203 1.2451998735 0.7051203544 0.5347318437 0.8447839792
10 0.5000000000 0.5625000000 14.5183601775 0.2448793404 0.2154534585 1.3645396499 0.7938275872 1.6801172499 1.2988655279 1.5392090330 1.2942545277 1.2956423806 0.8745470939 2.1222880609 1.1918929659 2.1603839360 2.2468098323 0.8815032399 2.6608039257 17.1626957308 1.4291004839 2.1738691052 2.9799748005 1.2859754829 0.7727474692 2.3891595135 1.5165858247 2.2001194463 2.6680555304 1.4306526662 1.0312826142 2.0161123894 1.4617034728 2.8902300732 2.1105016672 1.8617498081 18.2074005732 2.8687816459 1.4835615409 0.5928003994 0.6338927647 1.4079522605 2.8861446230 1.7808784302 0.6963294417 1.2966540749 0.3784701098 1.1807324869 1.3761542039 1.5296339951 1.1685839700 1.6550532378 1.8780195566 20.2443384058 2.0738963055 1.4731581801 2.0768186203 1.5133618832 0.4009961874 2.4448846599 1.4366323393 0.9116076074 2.0449964234 0.9188956831 1.5144724985 1.8054843805 1.7899884336 1.1907266638 0.8121877749 1.5761732101
11 0.5625000000 0.6250000000 17.9188933375 1.5273473216 0.8636715633 1.4950507661 0.4413863271 2.2048245309 2.3351076692 2.9762242193 0.3256199860 0.8670120700 0.6500558074 0.6460226879 1.5136743139 0.2141593401 2.5809321022 2.1276381717 1.3449667010 14.2218547699 3.4050879099 2.0533906577 0.6400511417 2.4837245123 0.7776518877 0.4424829543 0.5801061390 1.0324533749 0.5718168825 0.9462329003 2.0435057984 0.9305161785 0.8194371836 2.3440549735 1.4072887848 0.3464835573 16.5035861889 0.2872344185 1.4479915114 1.6779586608 1.5677590965 0.8708352078 0.9094715287 3.0917094158 3.1854377648 0.9365907788 1.9089876770 1.1931840725 2.7868637378 0.9165202107 0.5307700077 0.7228821834 1.4292703439 15.0438278371 0.7173517880 2.1668150478 0.7094924949 1.7806054283 0.9684849607 1.0291922493 0.4104861699 1.0680548859 3.2306479685 0.6457049590 1.3360437254 0.8597764256 0.8064977080 1.1646008064 3.6346734723 1.4827391396
12 0.6250000000 0.6875000000 18.1826904954 3.4730430098 0.8050643775 0.7464953823 1.2355008633 2.3462246836 2.4045854191 0.9971654523 1.6471741316 0.6215423966 1.3891559639 2.5798877468 2.2981244945 1.6300126644 1.1904918935 3.2742733588 1.4199216480 15.1092681242 0.9274544566 0.2417125668 1.2395013713 1.9570392145 0.6275923655 4.3840382939 2.4403989178 1.5232341075 0.5262727532 0.8644911522 0.5212921878 0.4624170511 1.3866227388 0.2559534541 0.4847218692 1.2957783705 13.4308126997 2.6900030044 1.5684403586 1.1654302828 1.2129955288 2.1364799981 0.9107418044 1.5595737568 2.2703090252 1.8753337804 0.5827550534 1.0703970712 1.5170379344 0.8114890215 0.4922840225 1.6466608105 0.7515132581 15.3812033650 2.2405423468 0.8984671743 0.8181091793 0.8004358243 0.5340736497 2.9987663110 2.2936815280 1.4467003916 0.6546171554 1.8576607970 1.5122178097 1.5202030080 1.0769590377 3.1011240178 0.4716315021 0.7409231802
13 0.6875000000 0.7500000000 14.0903204503 1.9099431858 0.5687241291 1.1066863501 2.0673848906 2.9122455607 1.9169378114 2.4085468977 2.8211192535 1.3500189946 0.3230008370 1.8210976275 2.1908593766 1.5195605958 0.9021550425 0.3846425847 0.4002227113 17.6976228373 1.2192375516 1.1180132720 2.0435282704 1.6320085250 1.2732007716 3.1943648533 1.0509904593 1.3117412484 1.2949786052 0.4770208287 1.3009244101 0.6613052050 3.1692125515 1.5561848882 1.8488739365 1.8222902154 16.8996126102 0.6750062454 1.6902227600 3.0440967388 1.2197549260 2.5399449904 2.4026628451 1.9765441563 1.8635924518 1.1952833106 1.2309228044 0.6455305204 1.2178306218 0.7000560864 2.0556971618 1.7215976835 1.1695191832 18.2243399427 2.5680260988 1.8424757504 1.9202556109 0.5054947549 0.9117811455 1.2022071349 2.4977833615 1.2196198678 1.7971528234 0.5840789729 1.8433152681 1.9938940363 0.5424260415 0.7826719782 0.7045582592 0.4769521316
14 0.7500000000 0.8125000000 13.6863584965 1.6865275223 1.2323024025 0.6377127057 2.1822336673 1.3315425799 2.3104643557 1.1180430364 0.8504531416 0.3307925784 2.7620050907 1.5324213237 0.3463107593 2.0116760694 1.4469483770 0.7907213548 0.8234820804 16.5635063136 0.8512292444 0.1737793886 2.5355632685 0.9406060761 0.4998104695 2.0151378695 1.0924352788 2.1659997009 1.5410583995 2.6517461154 0.3778213998 0.3601001599 1.7552484796 1.1925749360 1.1263399812 1.7279486372 13.3371077287 2.6756984448 0.9754414456 1.2213700451 2.2864138969 1.3335937456 0.7108837715 1.9764052498 0.9873742109 2.3055760081 1.2029178875 0.8646229075 0.8004005808 0.7739934293 1.2593598841 1.6478875370 3.1167011429 15.4467386268 1.6609378331 1.0114044746 1.4620543024 0.3520346462 1.2903431201 1.8961678598 1.5618320735 1.4061008059 1.1288523177 1.4803857599 1.2868565039 0.8781635208 0.5928046853 1.0567051428 0.5788363123 1.0611105631
15 0.8125000000 0.8750000000 15.1234856648 1.5979773969 0.9934243484 2.4445366643 1.3427228484 1.4444464081 1.2006521352 1.0633343896 1.6536476481 1.4514987325 2.1518326020 1.0812759760 2.0717787190 1.5949965889 1.7685394366 1.8748699161 1.6524765119 15.9495457294 1.1118199575 2.9216615063 2.3930018850 1.5377889004 1.5136880269 1.1782391377 0.4114571028 0.1982287295 1.6419923071 1.1473148421 0.6863083781 0.6362848070 1.9897724664 0.3889222357 2.4068234358 0.4767168066 19.2084359413 1.5305255790 0.9842616856 1.7177595949 2.1015871393 1.5532391530 0.9277778217 0.4107633100 2.5250752553 1.9345348035 0.7028593466 0.6848780580 1.1076006954 0.4802938755 2.4591279297 0.3925572958 1.2508446069 15.5858948547 1.9025021938 3.0174296733 0.6268450500 2.5323728648 1.9828167736 1.8517031754 1.5598184433 1.1586206381 1.1552099149 2.0704449859 1.0293736511 1.3772766722 1.9433687191 1.3775854481 1.0643941640 1.1197343431
16 0.8750000000 0.9375000000 14.1066987070 0.4409167577 2.3917591880 1.6151701143 0.6321695011 1.2770855573 0.5917290137 1.8038163946 1.8504638443 1.6128826531 1.3361748806 1.5373835412 1.1968078513 1.5747169656 0.6287191193 1.1894157457 1.4716293088 16.7100178062 2.0975470180 0.3728133633 2.6631144376 2.5929116063 1.8953051397 0.7379429117 1.4610558741 1.7559686678 0.4346267426 0.9499587492 1.5362118380 1.2700479698 3.3134982498 1.4328138831 1.4013971217 0.1967909343 14.5065247677 2.0373729702 2.9615972265 2.4872682838 1.4076957982 1.0578920566 2.4389935904 1.6283687869 1.0759864369 2.0051109111 1.3737583859 0.3008386984 0.7271068634 1.0688870489 0.1702541441 2.2516277312 1.5030296417 15.3983091232 1.1174678322 1.1385865597 1.6653203503 0.9638024120 1.5099916167 0.4615621700 1.6671643081 1.8574152436 2.2530669894 0.8344438030 2.1652244478 1.2974272643 2.2692018297 0.3226193068 1.7496215546 1.4504393949
17 0.9375000000 1.0000000000 15.3245920974 0.5077058464 2.0734085126 1.5574551474 0.7597512399 0.9022939110 1.7068869580 1.5290536619 1.4428372573 3.3324669271 2.7357304462 0.7554960348 1.2926161607 1.6484616020 1.1567744594 2.6132156020 0.7000293529 16.7540052051 2.9575271796 1.7114456574 1.7247633457 1.3324970374 0.7882926617 1.5150662107 0.6634789301 1.5040456237 0.9378550757 3.7905331528 2.5903557069 1.8156793127 0.3406538681 0.5771854510 1.1427606372 0.5699161978 16.2262396950 1.1826089339 2.5187009419 2.2048965588 1.3278760817 0.8802444581 1.3139629275 0.5999277229 3.4064527278 0.3481525057 1.1078566330 2.4861624980 0.1364837125 0.8383006826 2.2977501555 0.2551474846 0.9791699604 16.6408406673 1.2947891819 1.2669194582 0.3020841808 2.3284398230 0.8457315489 1.7245468046 0.5609522661 1.5398299519 1.2050520574 0.5949106435 2.1440702278 0.6251916736 1.8682074859 0.6621665553 1.4159071696 0.0214522327
18 1.0000000000 1.0625000000 13.9970185810 2.4622355497 1.7360757425 1.0358860602 1.4991653482 0.3120789828 0.8088748857 0.4473196836 1.0222560775 2.3035913218 1.4310506585 1.1890339062 1.3569087722 0.9520881870 1.4976906065 2.0637569553 1.1619341846 15.9801018341 1.1902069147 0.8499435784 0.5741012926 0.6955371261 1.3724939943 2.0575677278 3.3245182027 1.1440093007 0.5254426005 0.9263009856 1.3300966845 0.4250267261 1.2046160304 0.9294140043 1.0646779662 0.7179257567 13.1084021090 0.3661792601 2.4865973607 1.7288399194 0.7533533851 2.0274305781 2.2528739682 0.5441449347 1.5303927163 1.7377855279 2.5198161460 1.9409947865 1.6396359238 1.4789609494 0.3124129832 1.2549063740 1.3215216694 17.5105683100 1.2972307449 2.4621498172 1.7489329912 0.0982467718 0.7149291018 1.4676787062 0.8137602647 3.3192615384 0.3198382520 0.7633358501 0.9705997645 1.3848245564 1.3436980680 1.5518320642 1.0974932605 2.1649754639
19 1.0625000000 1.1250000000 16.9474798327 1.6828035825 0.7708073177 1.6698898155 3.0515500321 1.5862059741 0.5714985234 3.1286084930 1.9089678502 1.7534988483 0.3247732613 0.1717784214 0.6174721839 2.2517089159 0.0820261683 0.2908555950 0.8599070155 15.6031529759 0.6330089113 0.5595763553 2.7297306338 1.9848704269 0.6237705908 1.2680025536 1.7297021410 1.4561516891 1.3088757844 1.5573531678 1.2345360874 1.5653328121 0.9693502528 1.0142854263 2.7348820262 1.7430552016 13.7443856057 1.7108243066 2.8306679139 1.3835942010 2.1461983484 1.9356015153 0.5467726770 1.5335189923 1.3209678623 0.4975009929 1.4543544262 1.1911287557 2.1474866954 2.0842703330 0.9537057994 2.5692684349 1.7078211647 15.2490914606 0.8592913145 1.5464412019 0.4884729134 3.5093430498 1.0647232602 2.1954306023 0.7485995667 1.9252538701 1.6923877598 2.8181665726 0.9977764845 0.6571764847 1.9516480100 1.1838704053 0.4445554692 0.2059898919
20 1.1250000000 1.1875000000 15.0163539511 2.2255355704 0.8252122175 2.0315927145 0.1094805673 2.1700383723 0.8611474191 1.9670743434 1.9666973905 0.7764801300 1.5164809480 1.9457118526 1.0378746913 2.0676452192 0.9580440443 2.8328361039 3.4931740176 17.6629218187 0.8537514305 1.5381693296 0.8007344308 0.6627318719 0.9586474970 1.4594386789 2.7328302508 0.4913833362 1.3368452531 1.8067533550 1.5756577319 1.6945826645 1.4655353636 0.8548675030 1.4897244685 2.7127222505 16.6933504357 0.9156293679 2.3165112237 1.4155208331 1.7093288527 1.7312998197 0.7538105128 3.4093877120 2.0602402276 0.9059780154 0.6094527353 2.2128218609 0.7499683704 0.9435533842 1.3073165331 0.4070655717 2.4530143575 17.5924414850 0.2821967142 1.2525622022 0.7119732550 2.3382338676 0.9664052236 0.9490623879 0.6521532983 1.1026151374 1.3056940310 1.8169497950 0.8096019956 1.7188579698 2.7169439561 1.6802813963 1.1317803306 0.7139442081
21 1.1875000000 1.2500000000 14.9145437325 0.7276860017 1.1778049625 1.8776337630 1.9915966995 1.6485708337 1.3660866236 1.0287811925 1.9305031407 0.3589113171 1.5537490890 1.5259453856 1.1527588942 2.3177665507 0.2028557983 1.0786170324 1.8761430606 14.3760357052 1.7899552398 1.0696038943 1.6668678484 2.1701649280 2.5264338729 1.7328495111 1.8605913238 1.9674040124 0.7782572487 0.4392255444 1.3432486105 0.7254753671 0.5317627820 2.0115753535 2.4638893173 0.1492477637 16.2109916643 0.7822064854 1.6483471986 0.5143079887 2.0146873134 0.3448734300 1.5538957831 1.7092981254 0.8649034008 1.1665767190 1.3597842095 1.6267505143 2.5692669932 0.7736253806 1.1456274279 3.5896968265 0.0616840436 16.7558523901 1.9117038006 3.6646169775 1.0812263792 1.9282761449 0.5839618644 1.6949277913 2.1389444211 0.9710399798 1.1496032929 0.7545547464 1.5850094094 1.4312471408 0.6544941518 2.1160738000 1.5662462147 1.3105961895
@@ -0,0 +1,12 @@
Time:10Hz,Epoch,C1,C2,C3,C4,Event Id,Event Date,Event Duration
0.0,0,0.0,0.0,0.0,0.0,33024,0.0000000000,0.0000000000
0.1,0,0.0,0.0,0.0,0.0,1009,0.0999999999,0.0000000000
0.2,0,0.0,0.0,0.0,0.0,9000,0.2000000000,0.0000000000
0.3,0,0.0,0.0,0.0,0.0,785,0.2999999998,0.0000000000
0.4,0,0.0,0.0,0.0,0.0,9001,0.3999999999,0.0000000000
0.5,0,0.0,0.0,0.0,0.0,785,0.5000000000,0.0000000000
0.6,0,0.0,0.0,0.0,0.0,768,0.5999999999,0.0000000000
0.7,0,0.0,0.0,0.0,0.0,786,0.7000000000,0.0000000000
0.8,0,0.0,0.0,0.0,0.0,785,0.7999999998,0.0000000000
0.9,0,0.0,0.0,0.0,0.0,770,0.8999999999,0.0000000000
1.0,0,0.0,0.0,0.0,0.0,33284,1.0000000000,0.0000000000
1 Time:10Hz Epoch C1 C2 C3 C4 Event Id Event Date Event Duration
2 0.0 0 0.0 0.0 0.0 0.0 33024 0.0000000000 0.0000000000
3 0.1 0 0.0 0.0 0.0 0.0 1009 0.0999999999 0.0000000000
4 0.2 0 0.0 0.0 0.0 0.0 9000 0.2000000000 0.0000000000
5 0.3 0 0.0 0.0 0.0 0.0 785 0.2999999998 0.0000000000
6 0.4 0 0.0 0.0 0.0 0.0 9001 0.3999999999 0.0000000000
7 0.5 0 0.0 0.0 0.0 0.0 785 0.5000000000 0.0000000000
8 0.6 0 0.0 0.0 0.0 0.0 768 0.5999999999 0.0000000000
9 0.7 0 0.0 0.0 0.0 0.0 786 0.7000000000 0.0000000000
10 0.8 0 0.0 0.0 0.0 0.0 785 0.7999999998 0.0000000000
11 0.9 0 0.0 0.0 0.0 0.0 770 0.8999999999 0.0000000000
12 1.0 0 0.0 0.0 0.0 0.0 33284 1.0000000000 0.0000000000
@@ -0,0 +1,21 @@
Time:4x32,End Time,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 1:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 2:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 3:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Noise 4:,Event Id,Event Date,Event Duration
0.0000000000,0.0625000000,0.6247178635,0.2295959410,0.3719348670,0.4369280334,0.0531824550,0.9206758752,0.0630631244,0.9434279031,0.9641877373,0.5629064767,0.2351933583,0.4779946790,0.0117267619,0.3134714761,0.8507095193,0.7466738627,0.2528587843,0.7453956793,0.9518118396,0.6991397617,0.0862911078,0.9026251871,0.3190328022,0.8531495619,0.4509243038,0.3474009284,0.5439153896,0.9377195023,0.3509305143,0.1930757496,0.5081646708,0.8641290963,0.8184129258,0.0579506208,0.1523714645,0.9367236774,0.5905248479,0.1333713469,0.3324533184,0.7861590511,0.2675358083,0.3492625176,0.7237713311,0.6417018545,0.7801114582,0.9158944124,0.2555023145,0.8683514344,0.5665258553,0.8405682158,0.3655735466,0.4453321877,0.0885207739,0.2907267923,0.5494846189,0.9413676837,0.3565037448,0.9792467812,0.8180077767,0.8491866745,0.6398501201,0.7146574361,0.2051389874,0.3130511628,0.6068926665,0.8942976822,0.1422383951,0.7328692435,0.0940591213,0.7192620132,0.4110640835,0.9548383446,0.1229668837,0.4066373212,0.9911571043,0.9388372037,0.2167346461,0.2381878479,0.0484336310,0.1247581434,0.3242327180,0.6956214425,0.5449278760,0.8073892256,0.3530212415,0.6281783741,0.1901823115,0.6940901016,0.6007994404,0.5159909043,0.7611074464,0.2833421270,0.8413109190,0.8516491721,0.2274385018,0.8590584118,0.8788193397,0.3310824526,0.8579762192,0.8918205681,0.0728651003,0.3015226352,0.8772095803,0.4444632176,0.9624061577,0.0721730283,0.4946323251,0.7401772095,0.2367268736,0.9484532140,0.4340896211,0.5580905937,0.0518348252,0.8917294324,0.4596416526,0.2177230674,0.2215679048,0.1192771688,0.5481093151,0.2777584600,0.7472654104,0.6882385919,0.3112582292,0.2858708308,0.9880663999,0.7280864029,0.6647238990,0.7279383643,,,
0.0625000000,0.1250000000,0.7916842403,0.9959020347,0.8479742697,0.8989522438,0.0569855873,0.2787010295,0.0903042192,0.4555569873,0.3243730180,0.4240449432,0.5276381089,0.4003381419,0.7578766746,0.7413101839,0.7109964227,0.4883505676,0.5342749758,0.9194170183,0.4473819959,0.0906037479,0.4219422783,0.6936454615,0.6798297951,0.2889073431,0.6330675830,0.9270815263,0.0029215892,0.6466751690,0.5451060811,0.4699094773,0.5787274938,0.3730986973,0.0372371369,0.7794849603,0.5209016963,0.4896139265,0.1445874174,0.9246914214,0.5876538923,0.8034119268,0.9044315671,0.0312112283,0.0596434951,0.6761581162,0.1177141317,0.0792608382,0.8271069522,0.6915881152,0.0880144213,0.3721853753,0.5345691394,0.8434471663,0.4318685094,0.3977974739,0.0303642103,0.1931452123,0.3289877151,0.5585844652,0.9421114300,0.6584575928,0.7248723169,0.6650715556,0.2584593394,0.1747180012,0.0126640515,0.2283467592,0.8282534361,0.6398181894,0.3795885686,0.7396059586,0.6978656200,0.4282701444,0.2581869315,0.7321435078,0.2958819489,0.6788505535,0.2237252209,0.9439092700,0.0898844653,0.2602278492,0.5438064933,0.2756655097,0.7206917880,0.0267102423,0.2909259563,0.8908985397,0.1769430288,0.3332633208,0.9955168003,0.0171425024,0.9283314655,0.7482497075,0.1437444331,0.1902347549,0.1183198923,0.4744185095,0.1350478048,0.1350632310,0.8598516148,0.5988463473,0.4637926538,0.1466937549,0.7543433821,0.6176076145,0.3053986235,0.1268153002,0.7012935930,0.4252843964,0.8405439020,0.7880591662,0.0546743206,0.3462279495,0.3178489669,0.1534754725,0.9493906316,0.2995842402,0.3171853460,0.3817553150,0.6397120068,0.6786349043,0.7923960253,0.5762789019,0.8897650798,0.9889561532,0.8021054089,0.9513009533,0.0145796991,0.4025427590,,,
0.1250000000,0.1875000000,0.5354316952,0.1855708270,0.5440807547,0.6109015206,0.1226905328,0.6252105983,0.2077858045,0.5892266906,0.3243331341,0.1108849917,0.1480660746,0.5993171874,0.1865899246,0.7299387951,0.8314899809,0.2654833025,0.5794565286,0.1860336550,0.0734534324,0.6825762035,0.3315890869,0.7518282416,0.0706133868,0.1740920339,0.5928672953,0.9267083497,0.4743168922,0.6156009934,0.1044082525,0.7068447114,0.3882954461,0.3883721938,0.6535663602,0.4014618485,0.9390947879,0.0562338820,0.9265076369,0.6552331559,0.2379341216,0.5922963491,0.3785556043,0.0823038181,0.6102022810,0.5501048495,0.0698941930,0.8938943979,0.8859805122,0.6422285354,0.7160914168,0.3219175423,0.4338959495,0.2321623219,0.4825337785,0.9825600425,0.6410412814,0.0748274629,0.4349746758,0.1838029455,0.0569921338,0.1673214007,0.0840652676,0.3017000062,0.5920127234,0.7209052739,0.3247833503,0.1289402258,0.9880296998,0.5507754099,0.9941914140,0.2638531718,0.7773551703,0.4608309509,0.7777520106,0.5637431627,0.7085339180,0.4620061992,0.4462312341,0.8549258211,0.9349425051,0.6220747121,0.8257583785,0.0621969569,0.2161147769,0.2578956392,0.4917265966,0.0811471439,0.5905438559,0.1570435301,0.8517347798,0.8070278002,0.6446121058,0.2738092507,0.7153216938,0.5724286975,0.3184696522,0.6106053938,0.4362556750,0.4654125476,0.0412808517,0.6872391982,0.1384921176,0.2355170180,0.6412882488,0.2836564966,0.2233175605,0.2902266199,0.5771084048,0.4444316525,0.1688995347,0.3085759818,0.5289214465,0.0736758027,0.4931861155,0.3667650295,0.5704558352,0.7444152785,0.6738597201,0.3758223464,0.4611965055,0.6219348379,0.1448997990,0.2042974252,0.3401152762,0.9085653881,0.2535903926,0.8559037887,0.1393786795,0.9670247519,,,
0.1875000000,0.2500000000,0.3869905095,0.8130090968,0.4773681078,0.3658859478,0.6223253664,0.5276614192,0.6096424931,0.5782078553,0.8558362478,0.0166804376,0.1590949034,0.8950497766,0.9917305072,0.2435093392,0.1637060260,0.9037609647,0.4083003202,0.6212941776,0.9808579371,0.4297587189,0.8651543006,0.9168958084,0.4957057631,0.4137233333,0.3355745384,0.4837193002,0.8212060186,0.3309787798,0.6054222742,0.5242513437,0.2565769902,0.5782544166,0.5716569945,0.3550236323,0.8161460788,0.4898113878,0.4942002657,0.6799599768,0.1361279141,0.9733866639,0.8570520848,0.7394237784,0.2504270682,0.4261734022,0.0781164388,0.2757225072,0.7689188521,0.9729547878,0.7357179380,0.9089161807,0.2199974621,0.1972865281,0.1712700266,0.8200799860,0.2932880267,0.2365728696,0.8504637016,0.2733654731,0.9244502555,0.1964268228,0.4520225395,0.0590663212,0.1510377727,0.6105980920,0.6267644702,0.7912344737,0.9962945653,0.7146594119,0.4629627338,0.1456252465,0.0962293923,0.6451807255,0.0815258177,0.3180345790,0.7228372390,0.0919843561,0.1059558333,0.4949910282,0.2040756983,0.1003921195,0.7441948864,0.6701852798,0.5090639309,0.1593349208,0.1996188341,0.9702999496,0.8765912561,0.1788533351,0.9248315797,0.5284104259,0.7902777246,0.1973803348,0.7706196033,0.4991492617,0.6835269318,0.2194916869,0.3945134415,0.0846402352,0.3076508678,0.9030676920,0.7974082592,0.2686406809,0.9279564749,0.5067867551,0.5450436533,0.9022596013,0.0639394629,0.6020122301,0.5276013811,0.9248796261,0.5335813728,0.5468204648,0.8933275251,0.3670222436,0.0714884072,0.4467592905,0.8788097329,0.3470622129,0.3112788191,0.8507936441,0.5841831907,0.3042222930,0.9730116671,0.0189913267,0.2255214015,0.4713275090,0.7614493098,0.7445041714,,,
0.2500000000,0.3125000000,0.7475165320,0.7077019608,0.4211428759,0.6337533703,0.1548015915,0.8466420209,0.8046947974,0.2090040792,0.7225930176,0.2379091252,0.2081041720,0.3097281049,0.8627588837,0.7815109899,0.2822953856,0.3766993126,0.4826091563,0.6490248260,0.5871235379,0.8408237286,0.2880355727,0.8079525568,0.7305980087,0.0446874464,0.3790445239,0.6870999713,0.3792935724,0.7203232241,0.7072606350,0.3268334912,0.3244365475,0.1609095400,0.6040282352,0.4090505685,0.8466607979,0.6078362484,0.6572325418,0.9389880754,0.2789553648,0.8288472604,0.7671234810,0.8559769762,0.8048807078,0.9781307846,0.1170271400,0.0955756006,0.7023727754,0.2710399539,0.2772281950,0.9339906632,0.0760479772,0.4311382486,0.0134554477,0.2744895851,0.8400484035,0.1349793915,0.6880048711,0.5082143673,0.0599132481,0.5983064617,0.5813180115,0.3302138741,0.1171984423,0.3598981365,0.9601493494,0.9718443754,0.8141304278,0.3168197875,0.7100818388,0.7431266517,0.6275801475,0.4796580172,0.7600127761,0.9601051835,0.4013476530,0.1069331493,0.7168725964,0.8865401975,0.4027381288,0.1773700931,0.8079308106,0.0192486329,0.1971677996,0.4108467749,0.5112684753,0.6257441242,0.0241121089,0.0773695745,0.1119003820,0.0784076694,0.7690242585,0.9973556015,0.8100359763,0.1161451868,0.3317182662,0.2262892942,0.4158308909,0.6780515991,0.0965853147,0.1125570906,0.0585444923,0.8103074192,0.6963739721,0.4617282699,0.0662594968,0.9470956312,0.3677819686,0.6243161291,0.2456642224,0.6868472262,0.5304208286,0.4996256302,0.4018244247,0.7993800575,0.7502997657,0.1295753843,0.6139282982,0.3850772083,0.7410265871,0.9505349223,0.1718049857,0.0436037309,0.7222658431,0.2623362916,0.4524845155,0.7600987547,0.0907678234,0.6501223778,,,
0.3125000000,0.3750000000,0.6832152936,0.1653723242,0.2833738236,0.7051067993,0.9596694722,0.0077245780,0.9099076649,0.3307804475,0.3043593729,0.7884677316,0.5294613040,0.5603319725,0.1811365085,0.3240584144,0.6993869606,0.0559134919,0.3100979279,0.3963845437,0.4922327199,0.3384887238,0.3344349221,0.1713994979,0.8019217222,0.6949718141,0.1128475762,0.4875978495,0.9843723157,0.6184082213,0.2098921225,0.1262802815,0.0787062282,0.7506488608,0.6320486488,0.3718562960,0.8150399046,0.4523261948,0.1865352490,0.3382845216,0.3307686823,0.4420708066,0.9860612608,0.1189327538,0.5187779404,0.2537971991,0.9554295770,0.4871536223,0.8492387615,0.6820085198,0.5727664111,0.3328853692,0.0458602726,0.0990522651,0.7407473733,0.4783710605,0.6004347131,0.5108897616,0.4088872804,0.2217112738,0.0631800883,0.7484901643,0.6655623131,0.8960333257,0.3361647702,0.8936920550,0.3347082420,0.4624420691,0.6975995414,0.7440702980,0.7570610575,0.4503419686,0.0761081195,0.2094631761,0.4337339492,0.8481645458,0.1509745577,0.8273338033,0.1412401372,0.9055362893,0.5377664056,0.7276511134,0.3472308354,0.4070861489,0.8647191699,0.3776554763,0.9014279337,0.1613831620,0.1831764721,0.7570894095,0.2429209175,0.1028610284,0.4883698574,0.8601409264,0.6518152619,0.7323852156,0.6203258915,0.2670598072,0.2435945547,0.2624233742,0.5525493894,0.2394448698,0.4407361986,0.7679479290,0.7408140721,0.4260145663,0.6428195701,0.7339275440,0.3838015122,0.2047397431,0.1386463228,0.6520207217,0.6937717628,0.4803410582,0.7105179750,0.8847256717,0.6067465718,0.7352916114,0.8750882426,0.4990125778,0.8288464500,0.2335142721,0.9030272779,0.2022158357,0.9505604827,0.2209152961,0.8638066743,0.2321505924,0.3101781013,0.2061025528,,,
0.3750000000,0.4375000000,0.4859413321,0.9877855547,0.1494783007,0.2767159450,0.2167581862,0.9465897263,0.5924392790,0.8611804591,0.8994583734,0.3700717301,0.7556393195,0.3908531850,0.0479475632,0.7903228519,0.3686270104,0.4355188883,0.8181044774,0.1318663671,0.2742029524,0.2670144076,0.5052552682,0.3962481907,0.3654816428,0.0745923945,0.7323264899,0.8265386631,0.0207543294,0.8574163453,0.6112360929,0.1370159427,0.0227805192,0.9560871550,0.6499585998,0.5232965087,0.9644817812,0.5052818994,0.0360487467,0.4839542890,0.1854097859,0.9884410882,0.1891570103,0.8116629547,0.9937143456,0.5141466737,0.0049897258,0.2016054441,0.2165381487,0.2584592500,0.7546079981,0.6247757524,0.0004397486,0.3211759224,0.1478310619,0.4054733154,0.6243799946,0.5384108196,0.9150172065,0.7107390857,0.4420419482,0.4309278466,0.8999328807,0.3986736122,0.7601878832,0.8841054698,0.8045254231,0.2193988021,0.6877752680,0.7365202352,0.0493166712,0.9203797234,0.1834182537,0.1521059114,0.7988404376,0.1548302495,0.5660417581,0.9886881104,0.0694611096,0.6951701064,0.6523590668,0.1372051714,0.0353963454,0.9750322802,0.3420630472,0.6143989780,0.9029343792,0.3236322112,0.3542693998,0.3545910723,0.6990753133,0.0825616445,0.8365524074,0.7571731473,0.2803697805,0.8384478281,0.8199029886,0.8515532590,0.6603102332,0.1317246074,0.5796738775,0.3141785141,0.9550146442,0.2675180803,0.7109510296,0.4312380580,0.4246354715,0.5503449372,0.8890772075,0.7285156753,0.3090131416,0.8626140449,0.1238252930,0.7100571550,0.5275217385,0.3981849195,0.4033966847,0.1773852715,0.5235586097,0.2376325615,0.1133864610,0.4032399456,0.3768389798,0.0065282723,0.0196791952,0.1548828904,0.8980673284,0.9459735046,0.4348659466,0.7464884343,,,
0.4375000000,0.5000000000,0.0526652108,0.3060746153,0.4623779312,0.5353596075,0.0713174255,0.2419932550,0.1181321861,0.6044711831,0.9282540861,0.9736331881,0.9815067283,0.2351991637,0.3612387269,0.5239392833,0.6655883607,0.9938846249,0.1296747862,0.9861127972,0.1274974784,0.3710853378,0.6428858622,0.5598340665,0.3426672125,0.7328236210,0.9149753943,0.6098634449,0.4605819304,0.2784264691,0.7899020005,0.1312024286,0.4621126929,0.1965656390,0.0123895954,0.0354354742,0.7273706365,0.4492230779,0.8741791639,0.3810855432,0.1157127193,0.6245390642,0.3816144001,0.0342777544,0.0467986362,0.2774559739,0.8923492222,0.9953079084,0.1309779175,0.5961301597,0.3099202453,0.9770325006,0.5071837376,0.6934208998,0.2344275359,0.2897891670,0.5736545678,0.7122258593,0.9728836159,0.5458500413,0.6501270568,0.3591857357,0.5158132112,0.9789201000,0.8691409642,0.7656565451,0.1557542691,0.7970968222,0.2881981919,0.7726560996,0.8546606803,0.6566159525,0.5507968676,0.6179759016,0.4828415082,0.9437404326,0.6924461161,0.4658332667,0.0979719572,0.4398121240,0.1438904412,0.7496415114,0.0731318104,0.2609226620,0.3701273194,0.8512771113,0.8722216967,0.4299300862,0.1312265347,0.7606461972,0.5967305005,0.3751555358,0.5354029713,0.9570320644,0.6098493550,0.1289725823,0.7069231605,0.8694794760,0.5170092632,0.3601436892,0.7058712961,0.7469340987,0.2521892991,0.6322562329,0.1013701295,0.8491450606,0.4590498051,0.7310305673,0.8269926803,0.6074415524,0.4662977231,0.6465816682,0.8205662619,0.8832575795,0.1465387098,0.8680616487,0.4096918793,0.5852987652,0.4461445706,0.1560673094,0.0266291511,0.9622767956,0.0414263681,0.3629239164,0.0525879092,0.0779130952,0.2562843878,0.9092865977,0.7887958288,0.9093442177,,,
0.5000000000,0.5625000000,0.4926652883,0.7512122414,0.1548476375,0.7650190189,0.5141945812,0.4969086542,0.9462195560,0.7683583798,0.0855614543,0.5256539939,0.2630233504,0.3742849301,0.1559279105,0.1489096042,0.6653898561,0.1138309888,0.0475025291,0.2753131604,0.0275366297,0.9809523805,0.0338368805,0.9269881379,0.0502397972,0.1016259796,0.3627047651,0.2293560563,0.4889925939,0.5114581725,0.7985794735,0.1955985704,0.5195864269,0.8491408958,0.4412451643,0.7563525841,0.4346954005,0.2490186803,0.7948655006,0.9979346998,0.7598540527,0.8762718842,0.4072918834,0.0689565034,0.8952694137,0.6424213173,0.6918975094,0.7443818732,0.2585564679,0.2019052580,0.3316509877,0.9849470311,0.1548954893,0.4391770544,0.6088130211,0.1808344808,0.1080418664,0.7036645222,0.4441828502,0.1075669783,0.3375624970,0.9895764424,0.7450129259,0.0241380876,0.6299205739,0.1611904954,0.1037065519,0.9300586721,0.4044433259,0.8433975794,0.5246419837,0.0419671247,0.2045192388,0.7056242696,0.2645084059,0.1571327578,0.5443686608,0.4002167776,0.2817252930,0.2453914813,0.4499940879,0.7328971985,0.8301240972,0.9468080746,0.1496586704,0.0148724986,0.1790443165,0.5386010327,0.5943256179,0.0723523921,0.2236518241,0.8345614863,0.4446492954,0.7731404367,0.5083364355,0.6416412974,0.6354032024,0.8889534273,0.2649519246,0.1769712633,0.4595457090,0.7192335434,0.5000948738,0.9646494845,0.6100983098,0.9575897572,0.7635886252,0.3145864322,0.6420461670,0.9808723172,0.0620559340,0.7938328192,0.3454614431,0.5953680223,0.5544510509,0.4504120026,0.8943826088,0.4842216515,0.8929886234,0.4288465122,0.1564112811,0.3252644993,0.5164954150,0.3014303297,0.7043552445,0.6696986130,0.3627545452,0.3432444541,0.4692347383,0.7377021736,,,
0.5625000000,0.6250000000,0.3548387419,0.0796746763,0.6342768159,0.0296325649,0.9640529135,0.9868903607,0.1778739933,0.9019317864,0.8128735686,0.9701672052,0.8320685972,0.3162027264,0.9373291417,0.8125307872,0.8106044994,0.1962158955,0.2474939022,0.5465572993,0.7876791237,0.1753418525,0.6342823205,0.7545824184,0.4214702921,0.6403068278,0.4490981505,0.6738659109,0.0163966827,0.8634146550,0.6677360923,0.2105928650,0.8362909176,0.9620119936,0.6306045009,0.1718088784,0.0982105408,0.1162219564,0.9585239354,0.7266078151,0.1952852996,0.0108120875,0.1315755164,0.3056201264,0.5124785949,0.4017646539,0.0346933841,0.0348911523,0.7019456655,0.6033998784,0.1409685891,0.0052106034,0.8845494692,0.3171485392,0.1751754847,0.3062383870,0.2960795583,0.7197415007,0.9949374788,0.1329197420,0.7994592281,0.8946880810,0.7543501181,0.2613628868,0.6345325401,0.3764414371,0.0278432646,0.0524431348,0.3322724667,0.3718729187,0.6172496430,0.7031758174,0.6411467646,0.0481271599,0.5018861138,0.8183177102,0.7736140946,0.6019540867,0.0485901181,0.5530024043,0.0660292304,0.4661760060,0.2586283982,0.1391376588,0.0556506028,0.6547378157,0.6253326479,0.0875797574,0.5825918615,0.6969912143,0.9752079884,0.9423126262,0.2488991269,0.8252424053,0.0897458876,0.9998906860,0.7458893151,0.3179603629,0.9342312953,0.5402078901,0.8981055715,0.7352642594,0.4631935444,0.6066625286,0.3549963043,0.8298564928,0.7607265895,0.5664455881,0.1930705912,0.4323468697,0.6950631985,0.3498548246,0.4684577179,0.2220740248,0.2624253789,0.2515077996,0.8203581586,0.5385144786,0.2173937652,0.5463267793,0.4103756479,0.3151688955,0.7107384400,0.0251211780,0.5314374645,0.9966925937,0.5429001502,0.8070511126,0.1058709247,0.9967472763,,,
0.6250000000,0.6875000000,0.7654441406,0.4937635777,0.2239419888,0.8162253727,0.9942743706,0.2985757273,0.9891730216,0.1941202453,0.0551401938,0.4405527723,0.7969850798,0.1563250415,0.4974447836,0.3638560434,0.2950112985,0.4749449773,0.8567663343,0.8206363397,0.4740776736,0.7806238928,0.9931304296,0.4493170793,0.0649340996,0.2380064668,0.9392203940,0.1506378159,0.5991383693,0.9228379647,0.1970598102,0.3463509476,0.6523170716,0.2806429346,0.5740959158,0.9104665206,0.4764978478,0.9612608692,0.2306956910,0.2107479912,0.1704450788,0.5974330634,0.2684311345,0.7482852761,0.2793505003,0.8886733039,0.8475405122,0.9195321889,0.7322915252,0.3557866111,0.0693242699,0.3397358772,0.1634379628,0.4213934450,0.7044839428,0.9967953137,0.9440651119,0.5700368790,0.7893532142,0.9413755247,0.0517390424,0.6595565958,0.8118670906,0.8431744357,0.4769329347,0.6804557841,0.9390716855,0.9902591412,0.3700074395,0.3475468538,0.9869502545,0.3295042466,0.6492619955,0.2637873620,0.3119304245,0.0467681880,0.2625429758,0.0213194594,0.6631090660,0.6053168913,0.3251018671,0.7144555594,0.3016037853,0.7397705205,0.8889687117,0.6712127428,0.7807400336,0.2118155160,0.5016608983,0.5795669421,0.6359361175,0.6869840925,0.4576294059,0.9030834693,0.8164589927,0.7203676675,0.0748002424,0.7592939311,0.9823745447,0.9587582562,0.7952176470,0.7251193146,0.2759674732,0.7957962712,0.2292552406,0.9370382747,0.3233199737,0.8624233501,0.9313870701,0.5996785422,0.1932367058,0.4228141136,0.5863649147,0.5264009631,0.1215832722,0.0065137360,0.2756085894,0.2840909536,0.9855480257,0.9460084406,0.5039020125,0.9574089099,0.9505582221,0.8531143751,0.5968147409,0.7671717149,0.6130312048,0.5297381685,0.2286378199,0.5605443947,,,
0.6875000000,0.7500000000,0.4502677126,0.6962080926,0.9128074497,0.9560164253,0.5328638772,0.6530740836,0.5206698487,0.6608048354,0.9682086594,0.7272667042,0.7281186825,0.7904959833,0.6054920864,0.3392744095,0.9816954136,0.4714308141,0.7494125855,0.4109848249,0.5571885267,0.2632726908,0.3619709597,0.6431256575,0.1007609386,0.5941922080,0.1839554398,0.1205380186,0.6594694795,0.5689522501,0.7585891197,0.0885437687,0.8536296941,0.9312499978,0.2541364124,0.2946735977,0.8706164521,0.2156441705,0.4842425361,0.0775878394,0.2993731557,0.3703004594,0.6341408147,0.2738721366,0.7811928024,0.8346063448,0.1437354498,0.0004676401,0.6384254163,0.1001991194,0.8084309287,0.4829823931,0.6235495135,0.6840985361,0.5825826777,0.4171131444,0.9870282889,0.4105823603,0.0424702668,0.1073548275,0.4047930092,0.1203739478,0.0799161086,0.5006264041,0.8482475453,0.0656195192,0.8408296867,0.7487304423,0.4552003471,0.5083866168,0.1740615570,0.7433071290,0.5747186900,0.0638115588,0.9728865607,0.9231198416,0.7971369165,0.6765650478,0.6986605374,0.7186565769,0.1736776924,0.7956658397,0.0595004379,0.2578393670,0.1223583464,0.6965204566,0.9839389042,0.4421050667,0.9041193023,0.0998137125,0.4093976771,0.5090963494,0.7166604474,0.0551742224,0.7656437296,0.7981080476,0.7131274240,0.5406918994,0.5702210369,0.6819301986,0.2822982909,0.3520181263,0.4362103776,0.6040338485,0.5987478618,0.7429419127,0.5714071004,0.3471043196,0.8102124687,0.9587924071,0.9729605387,0.9780838832,0.8904455733,0.1768353251,0.7486089289,0.9994414682,0.5787694799,0.7188671927,0.0136518653,0.7794517821,0.6122001191,0.0007004540,0.1763693239,0.1010190644,0.1266606206,0.8490937916,0.9316227492,0.8406871033,0.6580100090,0.9750389399,,,
0.7500000000,0.8125000000,0.6597400920,0.5885838564,0.7857646004,0.7503551356,0.4718447104,0.0866925118,0.9197117689,0.9950628248,0.0295223645,0.2836865839,0.1586640773,0.8000291912,0.6616069386,0.6563964463,0.4465203935,0.7396615332,0.6076592195,0.3238815712,0.9824488070,0.9728015682,0.0520980426,0.3060984754,0.2858697739,0.1975828628,0.1253559410,0.4791424333,0.2798632411,0.1617351994,0.7534016052,0.6404544087,0.7733843811,0.7188167234,0.1894933190,0.4043975784,0.6941734480,0.0172624579,0.3868409907,0.4395070625,0.5897659294,0.3081313299,0.0892954457,0.3226943829,0.7103347299,0.2233194252,0.8322126665,0.3709399267,0.8143146322,0.6909234507,0.6461562880,0.5830114598,0.4852226414,0.7865708459,0.8036368454,0.4828703813,0.5373617639,0.5900660907,0.6904538674,0.0138230971,0.2490095489,0.7393181478,0.2877402762,0.4513432579,0.5680671209,0.6436918143,0.5406705167,0.6813580187,0.9233717178,0.3238394572,0.5844412202,0.9236779967,0.2737147608,0.5797183521,0.8608876099,0.8776531208,0.2443616646,0.2432832436,0.6981052044,0.7365806326,0.8849672999,0.4853381920,0.5449085427,0.8669738255,0.4942614299,0.9243413096,0.1794794516,0.3754306738,0.6883994963,0.5418054187,0.1381584327,0.6953644182,0.7411244428,0.7460892559,0.2731044050,0.0488576868,0.5011982922,0.6577869877,0.7627640630,0.0236888060,0.7711321849,0.3902818810,0.4297669264,0.1559308341,0.5210048554,0.3863513316,0.6484974532,0.0608827656,0.7043687252,0.6244241684,0.1403175246,0.5562529312,0.2631591787,0.9759852611,0.2841610499,0.6501125291,0.1502811159,0.3001988607,0.9586796160,0.4451140123,0.0647737177,0.6377006297,0.1423613841,0.1523039597,0.9474527435,0.9598131562,0.9461015512,0.0085723544,0.6874726999,0.3356614353,,,
0.8125000000,0.8750000000,0.4951484718,0.4137571189,0.0569000966,0.4288186433,0.7854072719,0.4143841334,0.0244760385,0.6809264892,0.6102338028,0.3421895124,0.0523749369,0.7298694055,0.4134743935,0.9069422120,0.0255988901,0.0171017484,0.8945272362,0.8478161518,0.7934845393,0.2360887395,0.1801714411,0.0021404293,0.9694124160,0.3984161261,0.8861893385,0.7274739528,0.1838548863,0.8699946168,0.9781448101,0.7100307504,0.6141936865,0.7610268604,0.4235622173,0.9017294946,0.1870069781,0.8541975934,0.6132133221,0.8906224929,0.6807086817,0.1879235532,0.8673600175,0.6300860762,0.5366717121,0.0550985967,0.5221361807,0.1448409907,0.4561040732,0.2083544936,0.0413183626,0.4696824565,0.0332377399,0.4693293732,0.1898895621,0.9431418541,0.8067416335,0.2638124076,0.6924453792,0.2537440723,0.4020697493,0.4863762164,0.1145292672,0.2213524713,0.3857528327,0.0674968564,0.8121729761,0.2750603121,0.0802166942,0.7938963389,0.9176716192,0.4196322735,0.2388986130,0.9978474600,0.9629005950,0.0735100827,0.9331875124,0.3795208391,0.3922109492,0.5588367411,0.7617001452,0.4730127715,0.9087597590,0.1599815958,0.8977322627,0.7852105810,0.8837358134,0.9391245898,0.5956780913,0.3008686816,0.4643168407,0.8793222804,0.3512133467,0.3835873082,0.2839328232,0.4700245983,0.9630959777,0.2224663049,0.2382329085,0.2103578080,0.0583997120,0.5361932365,0.8401390389,0.8651594589,0.9916231507,0.5314276395,0.8768030803,0.0018314875,0.5376906672,0.0867553214,0.4225539663,0.8168300600,0.2191769166,0.7114649462,0.9731043351,0.4109111931,0.5946094589,0.7635395932,0.5573117547,0.9749870342,0.6840263985,0.3520052256,0.1577927826,0.5355608661,0.0733829080,0.5503560782,0.6984678828,0.6332150383,0.1281256950,0.6934248279,,,
0.8750000000,0.9375000000,0.8262026000,0.6800406706,0.8230532890,0.3312053366,0.0791727190,0.3375838087,0.6164910560,0.0553016283,0.9159938979,0.1167176482,0.9642385286,0.4662711693,0.0860841114,0.0288988317,0.8278238336,0.0034026832,0.3953088420,0.9177478116,0.4092492419,0.8913496369,0.0257779597,0.4760923833,0.6182677727,0.3230207954,0.6945901709,0.1895992311,0.2035093841,0.4018307636,0.0753713418,0.5057941203,0.8654059754,0.9612625141,0.6113119549,0.3052270464,0.0034051070,0.8834864479,0.6637033250,0.7753436505,0.6367439146,0.5068913791,0.0499874779,0.3682553454,0.3032939732,0.8526346046,0.0017702775,0.5300046704,0.4208789961,0.9453098350,0.8475046742,0.5859889074,0.8497315217,0.5927666053,0.8303499359,0.6969741047,0.6246392576,0.7579033028,0.5919736151,0.4604226539,0.3722940462,0.3175512927,0.0381294147,0.3514439941,0.5384543089,0.2421207936,0.5818590294,0.2106211025,0.1699498768,0.8333654262,0.3050256937,0.1657615656,0.0624764247,0.4779500451,0.7039530529,0.9742760058,0.5458899166,0.3053509365,0.4714929876,0.9861352115,0.2831235216,0.5417119283,0.9501627218,0.8269119393,0.5411800570,0.5915424312,0.9224375067,0.0019667454,0.4485846600,0.5964546783,0.4705979887,0.6997977437,0.0705102577,0.3015512920,0.7767169708,0.0310898924,0.6572577641,0.0498077215,0.2139518764,0.0282647032,0.5614815420,0.1199005472,0.6160741956,0.9559962109,0.0472760913,0.2162385259,0.7890758167,0.4775436576,0.5490116121,0.6907650672,0.1988431036,0.3623787200,0.6748607692,0.5622677719,0.8651337281,0.2889742211,0.8135919487,0.8080134841,0.9803157884,0.8661532071,0.4301462041,0.9604776879,0.9575312759,0.6211291603,0.0602738846,0.6445526120,0.3997429844,0.5335842420,0.2354770997,0.5703356166,,,
0.9375000000,1.0000000000,0.1679284181,0.0116292820,0.6713393128,0.7051338786,0.5834520799,0.7177573889,0.3392238002,0.1346499354,0.5625305925,0.5137179869,0.5924138909,0.3562407838,0.2652642194,0.8141605475,0.9288930635,0.2231001314,0.1750653218,0.3136353311,0.6481592141,0.1982572724,0.9394587332,0.3204006592,0.0444805650,0.2147457984,0.1614268553,0.5942634724,0.0950823138,0.3600166386,0.8212693390,0.5074280743,0.2752121019,0.1186141570,0.8331678393,0.1588774454,0.3326816757,0.5071129550,0.6412843384,0.0316611044,0.2856399296,0.7435067382,0.7493902263,0.1525118365,0.9138491044,0.2386630971,0.0203620240,0.0533332997,0.0798282519,0.0691285226,0.3476698725,0.8917724602,0.2301328648,0.8593468245,0.4296178813,0.6222921708,0.0249198619,0.5999211350,0.6120050943,0.6154593697,0.8989983436,0.7112358140,0.8779653690,0.4389945539,0.0551658797,0.1381868846,0.9138693274,0.5621938761,0.2863271981,0.7325413090,0.5425972489,0.5751449321,0.3509974892,0.6927378860,0.7835192583,0.2844782392,0.6382476424,0.7061826356,0.7370361837,0.6226274676,0.2088809009,0.2935124915,0.3513496004,0.5787265806,0.6042397721,0.5171754735,0.4450626483,0.8866352371,0.6589918823,0.2202287668,0.0976188593,0.4164506367,0.6294516746,0.7863249348,0.6679730897,0.5078839634,0.2269497360,0.3440359347,0.7772970388,0.9805411990,0.1963203617,0.2991644875,0.0454477593,0.8594248760,0.8639521245,0.0693449832,0.2472545162,0.8444152090,0.9585070037,0.0225089605,0.4990623794,0.7584918430,0.2985699803,0.4827716728,0.9824672064,0.0915980614,0.5346251470,0.8658588289,0.5071282431,0.4654764065,0.6182458180,0.6156599661,0.6460136580,0.1110876829,0.8671845864,0.4022050030,0.3074841262,0.6642128383,0.0014574521,0.6935462605,,,
1.0000000000,1.0625000000,0.2137309904,0.4544911664,0.6798921563,0.4921943266,0.3362297001,0.2847381542,0.6437950153,0.9383269558,0.1397160820,0.4575725703,0.7571243041,0.6186974405,0.8074270575,0.3774803712,0.1769097759,0.4871998692,0.9569660802,0.6593258211,0.0758621178,0.1879452108,0.4906961091,0.3218933593,0.2431967803,0.8575711269,0.2750979303,0.2216316864,0.4766704070,0.4577354111,0.2064776726,0.2724582830,0.0749704337,0.3832853076,0.8018044159,0.6921387615,0.9921656852,0.4057687074,0.0617558532,0.2327312671,0.5771559153,0.2284900285,0.0590479346,0.2758173042,0.9457325011,0.6647606222,0.0981595817,0.2590912562,0.8130702917,0.6360369716,0.9462671543,0.0010640700,0.1375384575,0.3707128139,0.3092900361,0.9429778690,0.6217287686,0.4192660332,0.6812241087,0.7129155374,0.9818436850,0.6350809271,0.2476287666,0.9715665514,0.1205336715,0.0928393225,0.0088279590,0.6031203971,0.6596260488,0.1443080404,0.1546425293,0.9326476485,0.5288438348,0.0169140310,0.8668725954,0.4123998375,0.3775879829,0.5326866286,0.9242688494,0.4422083166,0.3069048850,0.1539458423,0.4144589426,0.7776402466,0.8601672621,0.7430550803,0.8074781313,0.0557779926,0.5821805752,0.2611693509,0.4422279357,0.3827645087,0.9467565422,0.2880943024,0.2826895297,0.5138747173,0.9742166633,0.3376196956,0.3516322491,0.2682236054,0.0347050410,0.8784039379,0.2282802360,0.5318389740,0.6525104714,0.3306392352,0.0701013329,0.6777035065,0.5854775421,0.8512900607,0.0913615956,0.2934230366,0.4679984997,0.2476933554,0.3031436063,0.9276851357,0.4689371770,0.7340950945,0.1723134439,0.7710931241,0.9103395792,0.9875814451,0.6239819005,0.5243784036,0.2998705199,0.7308793671,0.6511168599,0.2998312942,0.4789863380,0.2999395356,,,
1.0625000000,1.1250000000,0.5931908898,0.7309124726,0.1353090142,0.7283182526,0.0488233604,0.6919248875,0.5654962317,0.5891109256,0.1122994891,0.4159194189,0.3764929147,0.9494192691,0.3878915668,0.1244349491,0.8175409115,0.9035466295,0.2931364391,0.8594305085,0.1912104939,0.5639044710,0.7228399697,0.1977252481,0.1863250257,0.1408073560,0.8027174983,0.4142429589,0.1808046964,0.0125501421,0.6471301608,0.4860138474,0.6514314555,0.5628913341,0.8644442572,0.5552712027,0.0151265447,0.2374828074,0.8766233369,0.2438984078,0.3027490238,0.5001187921,0.7108031833,0.6028569383,0.0546991809,0.4225322115,0.9588101294,0.4600294342,0.9185105995,0.8249672593,0.0892420548,0.6061045709,0.7207820001,0.0026756388,0.4786440204,0.5467939766,0.0654323131,0.7286043169,0.7861308276,0.3410324152,0.3520775896,0.1542424636,0.5819967657,0.2966403281,0.4022705988,0.5724041392,0.5939434061,0.4567232542,0.0375771916,0.2087124737,0.1880471830,0.8748202738,0.5906794223,0.2287169953,0.3570454933,0.4300619953,0.0100690452,0.1438734650,0.1549616663,0.5758979041,0.0461017075,0.7165612974,0.5656311857,0.6070347405,0.9116860381,0.3978753891,0.5053920399,0.6122428069,0.0281106522,0.7027764153,0.8615361010,0.5020784172,0.2611516425,0.4710602802,0.2577258444,0.3572090822,0.9675099622,0.1586091609,0.1901043819,0.9543702262,0.5918874820,0.8989631108,0.9625966987,0.5375990241,0.6290122089,0.1784213777,0.4204781046,0.5288314561,0.3349709855,0.9483079254,0.2088262488,0.5261074379,0.6237077352,0.0479094042,0.7611453154,0.2613925296,0.9345898028,0.8540216177,0.5429263390,0.0596870789,0.1228484851,0.9884465558,0.5994056747,0.5901793416,0.3197100651,0.8187572497,0.7597195588,0.5117904092,0.6303460039,0.6385685280,,,
1.1250000000,1.1875000000,0.0951258531,0.7277233065,0.6006643453,0.0228086452,0.8239419067,0.5155266635,0.0191960505,0.3796252070,0.5055223757,0.4020866172,0.5189295192,0.0753156706,0.9720687266,0.0484040140,0.7843413458,0.9730091204,0.9922290591,0.0851901833,0.3296290701,0.0377371099,0.6281560692,0.6815555356,0.5792539178,0.4853602059,0.6556749332,0.0062036244,0.3974684728,0.1654793920,0.3105455413,0.9249097810,0.2598673194,0.8876951223,0.2350130558,0.3901448085,0.2341265944,0.3637975010,0.5625018100,0.9029143190,0.3544837306,0.1279784262,0.8366534521,0.3101605135,0.7163888747,0.0583991115,0.2954969504,0.4429354239,0.1804037238,0.2439929745,0.9335751345,0.0057892075,0.4619030475,0.2931784280,0.1797548921,0.5020443008,0.2883011773,0.3374369312,0.9279700841,0.3887938145,0.2170151267,0.9179955407,0.6340869551,0.5557600548,0.7435555537,0.2839753202,0.2662001683,0.6706366031,0.7547104494,0.8550751107,0.7688080396,0.0586293077,0.7804771422,0.4787573102,0.6632498137,0.0741167834,0.0048650759,0.8381817841,0.4810157609,0.6855519353,0.0104576417,0.7910236670,0.6425741296,0.9244767239,0.4864446763,0.0067145957,0.9369897931,0.4404468786,0.2032674944,0.3744280310,0.9855825459,0.1193840445,0.8631986284,0.5556113927,0.9572339943,0.4989517976,0.9710160899,0.2522383390,0.4253497068,0.7571807946,0.9246740653,0.2222794134,0.1579823359,0.0243675769,0.2997759597,0.2323811688,0.0305091403,0.2917462506,0.2403668212,0.5604984399,0.4182756997,0.7232471572,0.2699862767,0.9507088428,0.6559072356,0.9839131341,0.4760734998,0.7222971332,0.7723106057,0.8132286537,0.7292613545,0.5869136585,0.8191143919,0.5913443926,0.7021092409,0.5089733775,0.6504381110,0.2708367638,0.7500082653,0.6161660077,,,
1.1875000000,1.2500000000,0.1683035602,0.1424043456,0.7668608918,0.7607295110,0.5174434430,0.1944848874,0.5707954851,0.6883187809,0.7862345560,0.3534223591,0.0046566047,0.8831072131,0.8692115010,0.8142559922,0.6493804462,0.2158862920,0.4540214015,0.1944293983,0.5699003865,0.4442949190,0.7955052461,0.0413213808,0.1306964061,0.2713446848,0.3018432979,0.2247307675,0.5835549848,0.0824868602,0.0957095684,0.9983673533,0.2957036200,0.2246049009,0.8470544151,0.8808483067,0.9845280973,0.4677556294,0.6242646559,0.2264174577,0.2684859056,0.6608157074,0.0302796764,0.1580758188,0.1085000942,0.5066947001,0.9121542578,0.8649886900,0.4107301729,0.6955318693,0.8209484203,0.4312713409,0.4673444098,0.7952723317,0.8295831063,0.8415844627,0.6199640527,0.4139429175,0.3483000207,0.0775644176,0.5936895902,0.2502907016,0.2399989681,0.4271952116,0.9239734123,0.1219773670,0.0943703118,0.6653878638,0.8019994879,0.9259957087,0.2431919265,0.9921174757,0.9230932575,0.1104911843,0.8744879481,0.1063987957,0.4028745531,0.7043685114,0.6735291812,0.0341512391,0.6810112968,0.5630981151,0.2024573432,0.1054956890,0.6937220371,0.6657904771,0.2473630700,0.0166703118,0.5132303271,0.2155902667,0.7550028116,0.4930060136,0.2008083768,0.1790083253,0.5938848599,0.0768408582,0.3858271067,0.6740172072,0.0841419913,0.9335749368,0.3200270960,0.2295888106,0.9300683755,0.4034733148,0.1734928533,0.7465751641,0.3203449501,0.0854344415,0.0025144017,0.5991113116,0.4523527375,0.6149762333,0.0270627474,0.4228744288,0.3947751317,0.0639017015,0.3141180936,0.4396834220,0.2421118172,0.1722038793,0.3533720416,0.7971124125,0.6941583254,0.5414881702,0.1323242220,0.4963991921,0.9385722023,0.7164676930,0.8498095335,0.5222759610,,,
1 Time:4x32 End Time Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 1: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 2: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 3: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Noise 4: Event Id Event Date Event Duration
2 0.0000000000 0.0625000000 0.6247178635 0.2295959410 0.3719348670 0.4369280334 0.0531824550 0.9206758752 0.0630631244 0.9434279031 0.9641877373 0.5629064767 0.2351933583 0.4779946790 0.0117267619 0.3134714761 0.8507095193 0.7466738627 0.2528587843 0.7453956793 0.9518118396 0.6991397617 0.0862911078 0.9026251871 0.3190328022 0.8531495619 0.4509243038 0.3474009284 0.5439153896 0.9377195023 0.3509305143 0.1930757496 0.5081646708 0.8641290963 0.8184129258 0.0579506208 0.1523714645 0.9367236774 0.5905248479 0.1333713469 0.3324533184 0.7861590511 0.2675358083 0.3492625176 0.7237713311 0.6417018545 0.7801114582 0.9158944124 0.2555023145 0.8683514344 0.5665258553 0.8405682158 0.3655735466 0.4453321877 0.0885207739 0.2907267923 0.5494846189 0.9413676837 0.3565037448 0.9792467812 0.8180077767 0.8491866745 0.6398501201 0.7146574361 0.2051389874 0.3130511628 0.6068926665 0.8942976822 0.1422383951 0.7328692435 0.0940591213 0.7192620132 0.4110640835 0.9548383446 0.1229668837 0.4066373212 0.9911571043 0.9388372037 0.2167346461 0.2381878479 0.0484336310 0.1247581434 0.3242327180 0.6956214425 0.5449278760 0.8073892256 0.3530212415 0.6281783741 0.1901823115 0.6940901016 0.6007994404 0.5159909043 0.7611074464 0.2833421270 0.8413109190 0.8516491721 0.2274385018 0.8590584118 0.8788193397 0.3310824526 0.8579762192 0.8918205681 0.0728651003 0.3015226352 0.8772095803 0.4444632176 0.9624061577 0.0721730283 0.4946323251 0.7401772095 0.2367268736 0.9484532140 0.4340896211 0.5580905937 0.0518348252 0.8917294324 0.4596416526 0.2177230674 0.2215679048 0.1192771688 0.5481093151 0.2777584600 0.7472654104 0.6882385919 0.3112582292 0.2858708308 0.9880663999 0.7280864029 0.6647238990 0.7279383643
3 0.0625000000 0.1250000000 0.7916842403 0.9959020347 0.8479742697 0.8989522438 0.0569855873 0.2787010295 0.0903042192 0.4555569873 0.3243730180 0.4240449432 0.5276381089 0.4003381419 0.7578766746 0.7413101839 0.7109964227 0.4883505676 0.5342749758 0.9194170183 0.4473819959 0.0906037479 0.4219422783 0.6936454615 0.6798297951 0.2889073431 0.6330675830 0.9270815263 0.0029215892 0.6466751690 0.5451060811 0.4699094773 0.5787274938 0.3730986973 0.0372371369 0.7794849603 0.5209016963 0.4896139265 0.1445874174 0.9246914214 0.5876538923 0.8034119268 0.9044315671 0.0312112283 0.0596434951 0.6761581162 0.1177141317 0.0792608382 0.8271069522 0.6915881152 0.0880144213 0.3721853753 0.5345691394 0.8434471663 0.4318685094 0.3977974739 0.0303642103 0.1931452123 0.3289877151 0.5585844652 0.9421114300 0.6584575928 0.7248723169 0.6650715556 0.2584593394 0.1747180012 0.0126640515 0.2283467592 0.8282534361 0.6398181894 0.3795885686 0.7396059586 0.6978656200 0.4282701444 0.2581869315 0.7321435078 0.2958819489 0.6788505535 0.2237252209 0.9439092700 0.0898844653 0.2602278492 0.5438064933 0.2756655097 0.7206917880 0.0267102423 0.2909259563 0.8908985397 0.1769430288 0.3332633208 0.9955168003 0.0171425024 0.9283314655 0.7482497075 0.1437444331 0.1902347549 0.1183198923 0.4744185095 0.1350478048 0.1350632310 0.8598516148 0.5988463473 0.4637926538 0.1466937549 0.7543433821 0.6176076145 0.3053986235 0.1268153002 0.7012935930 0.4252843964 0.8405439020 0.7880591662 0.0546743206 0.3462279495 0.3178489669 0.1534754725 0.9493906316 0.2995842402 0.3171853460 0.3817553150 0.6397120068 0.6786349043 0.7923960253 0.5762789019 0.8897650798 0.9889561532 0.8021054089 0.9513009533 0.0145796991 0.4025427590
4 0.1250000000 0.1875000000 0.5354316952 0.1855708270 0.5440807547 0.6109015206 0.1226905328 0.6252105983 0.2077858045 0.5892266906 0.3243331341 0.1108849917 0.1480660746 0.5993171874 0.1865899246 0.7299387951 0.8314899809 0.2654833025 0.5794565286 0.1860336550 0.0734534324 0.6825762035 0.3315890869 0.7518282416 0.0706133868 0.1740920339 0.5928672953 0.9267083497 0.4743168922 0.6156009934 0.1044082525 0.7068447114 0.3882954461 0.3883721938 0.6535663602 0.4014618485 0.9390947879 0.0562338820 0.9265076369 0.6552331559 0.2379341216 0.5922963491 0.3785556043 0.0823038181 0.6102022810 0.5501048495 0.0698941930 0.8938943979 0.8859805122 0.6422285354 0.7160914168 0.3219175423 0.4338959495 0.2321623219 0.4825337785 0.9825600425 0.6410412814 0.0748274629 0.4349746758 0.1838029455 0.0569921338 0.1673214007 0.0840652676 0.3017000062 0.5920127234 0.7209052739 0.3247833503 0.1289402258 0.9880296998 0.5507754099 0.9941914140 0.2638531718 0.7773551703 0.4608309509 0.7777520106 0.5637431627 0.7085339180 0.4620061992 0.4462312341 0.8549258211 0.9349425051 0.6220747121 0.8257583785 0.0621969569 0.2161147769 0.2578956392 0.4917265966 0.0811471439 0.5905438559 0.1570435301 0.8517347798 0.8070278002 0.6446121058 0.2738092507 0.7153216938 0.5724286975 0.3184696522 0.6106053938 0.4362556750 0.4654125476 0.0412808517 0.6872391982 0.1384921176 0.2355170180 0.6412882488 0.2836564966 0.2233175605 0.2902266199 0.5771084048 0.4444316525 0.1688995347 0.3085759818 0.5289214465 0.0736758027 0.4931861155 0.3667650295 0.5704558352 0.7444152785 0.6738597201 0.3758223464 0.4611965055 0.6219348379 0.1448997990 0.2042974252 0.3401152762 0.9085653881 0.2535903926 0.8559037887 0.1393786795 0.9670247519
5 0.1875000000 0.2500000000 0.3869905095 0.8130090968 0.4773681078 0.3658859478 0.6223253664 0.5276614192 0.6096424931 0.5782078553 0.8558362478 0.0166804376 0.1590949034 0.8950497766 0.9917305072 0.2435093392 0.1637060260 0.9037609647 0.4083003202 0.6212941776 0.9808579371 0.4297587189 0.8651543006 0.9168958084 0.4957057631 0.4137233333 0.3355745384 0.4837193002 0.8212060186 0.3309787798 0.6054222742 0.5242513437 0.2565769902 0.5782544166 0.5716569945 0.3550236323 0.8161460788 0.4898113878 0.4942002657 0.6799599768 0.1361279141 0.9733866639 0.8570520848 0.7394237784 0.2504270682 0.4261734022 0.0781164388 0.2757225072 0.7689188521 0.9729547878 0.7357179380 0.9089161807 0.2199974621 0.1972865281 0.1712700266 0.8200799860 0.2932880267 0.2365728696 0.8504637016 0.2733654731 0.9244502555 0.1964268228 0.4520225395 0.0590663212 0.1510377727 0.6105980920 0.6267644702 0.7912344737 0.9962945653 0.7146594119 0.4629627338 0.1456252465 0.0962293923 0.6451807255 0.0815258177 0.3180345790 0.7228372390 0.0919843561 0.1059558333 0.4949910282 0.2040756983 0.1003921195 0.7441948864 0.6701852798 0.5090639309 0.1593349208 0.1996188341 0.9702999496 0.8765912561 0.1788533351 0.9248315797 0.5284104259 0.7902777246 0.1973803348 0.7706196033 0.4991492617 0.6835269318 0.2194916869 0.3945134415 0.0846402352 0.3076508678 0.9030676920 0.7974082592 0.2686406809 0.9279564749 0.5067867551 0.5450436533 0.9022596013 0.0639394629 0.6020122301 0.5276013811 0.9248796261 0.5335813728 0.5468204648 0.8933275251 0.3670222436 0.0714884072 0.4467592905 0.8788097329 0.3470622129 0.3112788191 0.8507936441 0.5841831907 0.3042222930 0.9730116671 0.0189913267 0.2255214015 0.4713275090 0.7614493098 0.7445041714
6 0.2500000000 0.3125000000 0.7475165320 0.7077019608 0.4211428759 0.6337533703 0.1548015915 0.8466420209 0.8046947974 0.2090040792 0.7225930176 0.2379091252 0.2081041720 0.3097281049 0.8627588837 0.7815109899 0.2822953856 0.3766993126 0.4826091563 0.6490248260 0.5871235379 0.8408237286 0.2880355727 0.8079525568 0.7305980087 0.0446874464 0.3790445239 0.6870999713 0.3792935724 0.7203232241 0.7072606350 0.3268334912 0.3244365475 0.1609095400 0.6040282352 0.4090505685 0.8466607979 0.6078362484 0.6572325418 0.9389880754 0.2789553648 0.8288472604 0.7671234810 0.8559769762 0.8048807078 0.9781307846 0.1170271400 0.0955756006 0.7023727754 0.2710399539 0.2772281950 0.9339906632 0.0760479772 0.4311382486 0.0134554477 0.2744895851 0.8400484035 0.1349793915 0.6880048711 0.5082143673 0.0599132481 0.5983064617 0.5813180115 0.3302138741 0.1171984423 0.3598981365 0.9601493494 0.9718443754 0.8141304278 0.3168197875 0.7100818388 0.7431266517 0.6275801475 0.4796580172 0.7600127761 0.9601051835 0.4013476530 0.1069331493 0.7168725964 0.8865401975 0.4027381288 0.1773700931 0.8079308106 0.0192486329 0.1971677996 0.4108467749 0.5112684753 0.6257441242 0.0241121089 0.0773695745 0.1119003820 0.0784076694 0.7690242585 0.9973556015 0.8100359763 0.1161451868 0.3317182662 0.2262892942 0.4158308909 0.6780515991 0.0965853147 0.1125570906 0.0585444923 0.8103074192 0.6963739721 0.4617282699 0.0662594968 0.9470956312 0.3677819686 0.6243161291 0.2456642224 0.6868472262 0.5304208286 0.4996256302 0.4018244247 0.7993800575 0.7502997657 0.1295753843 0.6139282982 0.3850772083 0.7410265871 0.9505349223 0.1718049857 0.0436037309 0.7222658431 0.2623362916 0.4524845155 0.7600987547 0.0907678234 0.6501223778
7 0.3125000000 0.3750000000 0.6832152936 0.1653723242 0.2833738236 0.7051067993 0.9596694722 0.0077245780 0.9099076649 0.3307804475 0.3043593729 0.7884677316 0.5294613040 0.5603319725 0.1811365085 0.3240584144 0.6993869606 0.0559134919 0.3100979279 0.3963845437 0.4922327199 0.3384887238 0.3344349221 0.1713994979 0.8019217222 0.6949718141 0.1128475762 0.4875978495 0.9843723157 0.6184082213 0.2098921225 0.1262802815 0.0787062282 0.7506488608 0.6320486488 0.3718562960 0.8150399046 0.4523261948 0.1865352490 0.3382845216 0.3307686823 0.4420708066 0.9860612608 0.1189327538 0.5187779404 0.2537971991 0.9554295770 0.4871536223 0.8492387615 0.6820085198 0.5727664111 0.3328853692 0.0458602726 0.0990522651 0.7407473733 0.4783710605 0.6004347131 0.5108897616 0.4088872804 0.2217112738 0.0631800883 0.7484901643 0.6655623131 0.8960333257 0.3361647702 0.8936920550 0.3347082420 0.4624420691 0.6975995414 0.7440702980 0.7570610575 0.4503419686 0.0761081195 0.2094631761 0.4337339492 0.8481645458 0.1509745577 0.8273338033 0.1412401372 0.9055362893 0.5377664056 0.7276511134 0.3472308354 0.4070861489 0.8647191699 0.3776554763 0.9014279337 0.1613831620 0.1831764721 0.7570894095 0.2429209175 0.1028610284 0.4883698574 0.8601409264 0.6518152619 0.7323852156 0.6203258915 0.2670598072 0.2435945547 0.2624233742 0.5525493894 0.2394448698 0.4407361986 0.7679479290 0.7408140721 0.4260145663 0.6428195701 0.7339275440 0.3838015122 0.2047397431 0.1386463228 0.6520207217 0.6937717628 0.4803410582 0.7105179750 0.8847256717 0.6067465718 0.7352916114 0.8750882426 0.4990125778 0.8288464500 0.2335142721 0.9030272779 0.2022158357 0.9505604827 0.2209152961 0.8638066743 0.2321505924 0.3101781013 0.2061025528
8 0.3750000000 0.4375000000 0.4859413321 0.9877855547 0.1494783007 0.2767159450 0.2167581862 0.9465897263 0.5924392790 0.8611804591 0.8994583734 0.3700717301 0.7556393195 0.3908531850 0.0479475632 0.7903228519 0.3686270104 0.4355188883 0.8181044774 0.1318663671 0.2742029524 0.2670144076 0.5052552682 0.3962481907 0.3654816428 0.0745923945 0.7323264899 0.8265386631 0.0207543294 0.8574163453 0.6112360929 0.1370159427 0.0227805192 0.9560871550 0.6499585998 0.5232965087 0.9644817812 0.5052818994 0.0360487467 0.4839542890 0.1854097859 0.9884410882 0.1891570103 0.8116629547 0.9937143456 0.5141466737 0.0049897258 0.2016054441 0.2165381487 0.2584592500 0.7546079981 0.6247757524 0.0004397486 0.3211759224 0.1478310619 0.4054733154 0.6243799946 0.5384108196 0.9150172065 0.7107390857 0.4420419482 0.4309278466 0.8999328807 0.3986736122 0.7601878832 0.8841054698 0.8045254231 0.2193988021 0.6877752680 0.7365202352 0.0493166712 0.9203797234 0.1834182537 0.1521059114 0.7988404376 0.1548302495 0.5660417581 0.9886881104 0.0694611096 0.6951701064 0.6523590668 0.1372051714 0.0353963454 0.9750322802 0.3420630472 0.6143989780 0.9029343792 0.3236322112 0.3542693998 0.3545910723 0.6990753133 0.0825616445 0.8365524074 0.7571731473 0.2803697805 0.8384478281 0.8199029886 0.8515532590 0.6603102332 0.1317246074 0.5796738775 0.3141785141 0.9550146442 0.2675180803 0.7109510296 0.4312380580 0.4246354715 0.5503449372 0.8890772075 0.7285156753 0.3090131416 0.8626140449 0.1238252930 0.7100571550 0.5275217385 0.3981849195 0.4033966847 0.1773852715 0.5235586097 0.2376325615 0.1133864610 0.4032399456 0.3768389798 0.0065282723 0.0196791952 0.1548828904 0.8980673284 0.9459735046 0.4348659466 0.7464884343
9 0.4375000000 0.5000000000 0.0526652108 0.3060746153 0.4623779312 0.5353596075 0.0713174255 0.2419932550 0.1181321861 0.6044711831 0.9282540861 0.9736331881 0.9815067283 0.2351991637 0.3612387269 0.5239392833 0.6655883607 0.9938846249 0.1296747862 0.9861127972 0.1274974784 0.3710853378 0.6428858622 0.5598340665 0.3426672125 0.7328236210 0.9149753943 0.6098634449 0.4605819304 0.2784264691 0.7899020005 0.1312024286 0.4621126929 0.1965656390 0.0123895954 0.0354354742 0.7273706365 0.4492230779 0.8741791639 0.3810855432 0.1157127193 0.6245390642 0.3816144001 0.0342777544 0.0467986362 0.2774559739 0.8923492222 0.9953079084 0.1309779175 0.5961301597 0.3099202453 0.9770325006 0.5071837376 0.6934208998 0.2344275359 0.2897891670 0.5736545678 0.7122258593 0.9728836159 0.5458500413 0.6501270568 0.3591857357 0.5158132112 0.9789201000 0.8691409642 0.7656565451 0.1557542691 0.7970968222 0.2881981919 0.7726560996 0.8546606803 0.6566159525 0.5507968676 0.6179759016 0.4828415082 0.9437404326 0.6924461161 0.4658332667 0.0979719572 0.4398121240 0.1438904412 0.7496415114 0.0731318104 0.2609226620 0.3701273194 0.8512771113 0.8722216967 0.4299300862 0.1312265347 0.7606461972 0.5967305005 0.3751555358 0.5354029713 0.9570320644 0.6098493550 0.1289725823 0.7069231605 0.8694794760 0.5170092632 0.3601436892 0.7058712961 0.7469340987 0.2521892991 0.6322562329 0.1013701295 0.8491450606 0.4590498051 0.7310305673 0.8269926803 0.6074415524 0.4662977231 0.6465816682 0.8205662619 0.8832575795 0.1465387098 0.8680616487 0.4096918793 0.5852987652 0.4461445706 0.1560673094 0.0266291511 0.9622767956 0.0414263681 0.3629239164 0.0525879092 0.0779130952 0.2562843878 0.9092865977 0.7887958288 0.9093442177
10 0.5000000000 0.5625000000 0.4926652883 0.7512122414 0.1548476375 0.7650190189 0.5141945812 0.4969086542 0.9462195560 0.7683583798 0.0855614543 0.5256539939 0.2630233504 0.3742849301 0.1559279105 0.1489096042 0.6653898561 0.1138309888 0.0475025291 0.2753131604 0.0275366297 0.9809523805 0.0338368805 0.9269881379 0.0502397972 0.1016259796 0.3627047651 0.2293560563 0.4889925939 0.5114581725 0.7985794735 0.1955985704 0.5195864269 0.8491408958 0.4412451643 0.7563525841 0.4346954005 0.2490186803 0.7948655006 0.9979346998 0.7598540527 0.8762718842 0.4072918834 0.0689565034 0.8952694137 0.6424213173 0.6918975094 0.7443818732 0.2585564679 0.2019052580 0.3316509877 0.9849470311 0.1548954893 0.4391770544 0.6088130211 0.1808344808 0.1080418664 0.7036645222 0.4441828502 0.1075669783 0.3375624970 0.9895764424 0.7450129259 0.0241380876 0.6299205739 0.1611904954 0.1037065519 0.9300586721 0.4044433259 0.8433975794 0.5246419837 0.0419671247 0.2045192388 0.7056242696 0.2645084059 0.1571327578 0.5443686608 0.4002167776 0.2817252930 0.2453914813 0.4499940879 0.7328971985 0.8301240972 0.9468080746 0.1496586704 0.0148724986 0.1790443165 0.5386010327 0.5943256179 0.0723523921 0.2236518241 0.8345614863 0.4446492954 0.7731404367 0.5083364355 0.6416412974 0.6354032024 0.8889534273 0.2649519246 0.1769712633 0.4595457090 0.7192335434 0.5000948738 0.9646494845 0.6100983098 0.9575897572 0.7635886252 0.3145864322 0.6420461670 0.9808723172 0.0620559340 0.7938328192 0.3454614431 0.5953680223 0.5544510509 0.4504120026 0.8943826088 0.4842216515 0.8929886234 0.4288465122 0.1564112811 0.3252644993 0.5164954150 0.3014303297 0.7043552445 0.6696986130 0.3627545452 0.3432444541 0.4692347383 0.7377021736
11 0.5625000000 0.6250000000 0.3548387419 0.0796746763 0.6342768159 0.0296325649 0.9640529135 0.9868903607 0.1778739933 0.9019317864 0.8128735686 0.9701672052 0.8320685972 0.3162027264 0.9373291417 0.8125307872 0.8106044994 0.1962158955 0.2474939022 0.5465572993 0.7876791237 0.1753418525 0.6342823205 0.7545824184 0.4214702921 0.6403068278 0.4490981505 0.6738659109 0.0163966827 0.8634146550 0.6677360923 0.2105928650 0.8362909176 0.9620119936 0.6306045009 0.1718088784 0.0982105408 0.1162219564 0.9585239354 0.7266078151 0.1952852996 0.0108120875 0.1315755164 0.3056201264 0.5124785949 0.4017646539 0.0346933841 0.0348911523 0.7019456655 0.6033998784 0.1409685891 0.0052106034 0.8845494692 0.3171485392 0.1751754847 0.3062383870 0.2960795583 0.7197415007 0.9949374788 0.1329197420 0.7994592281 0.8946880810 0.7543501181 0.2613628868 0.6345325401 0.3764414371 0.0278432646 0.0524431348 0.3322724667 0.3718729187 0.6172496430 0.7031758174 0.6411467646 0.0481271599 0.5018861138 0.8183177102 0.7736140946 0.6019540867 0.0485901181 0.5530024043 0.0660292304 0.4661760060 0.2586283982 0.1391376588 0.0556506028 0.6547378157 0.6253326479 0.0875797574 0.5825918615 0.6969912143 0.9752079884 0.9423126262 0.2488991269 0.8252424053 0.0897458876 0.9998906860 0.7458893151 0.3179603629 0.9342312953 0.5402078901 0.8981055715 0.7352642594 0.4631935444 0.6066625286 0.3549963043 0.8298564928 0.7607265895 0.5664455881 0.1930705912 0.4323468697 0.6950631985 0.3498548246 0.4684577179 0.2220740248 0.2624253789 0.2515077996 0.8203581586 0.5385144786 0.2173937652 0.5463267793 0.4103756479 0.3151688955 0.7107384400 0.0251211780 0.5314374645 0.9966925937 0.5429001502 0.8070511126 0.1058709247 0.9967472763
12 0.6250000000 0.6875000000 0.7654441406 0.4937635777 0.2239419888 0.8162253727 0.9942743706 0.2985757273 0.9891730216 0.1941202453 0.0551401938 0.4405527723 0.7969850798 0.1563250415 0.4974447836 0.3638560434 0.2950112985 0.4749449773 0.8567663343 0.8206363397 0.4740776736 0.7806238928 0.9931304296 0.4493170793 0.0649340996 0.2380064668 0.9392203940 0.1506378159 0.5991383693 0.9228379647 0.1970598102 0.3463509476 0.6523170716 0.2806429346 0.5740959158 0.9104665206 0.4764978478 0.9612608692 0.2306956910 0.2107479912 0.1704450788 0.5974330634 0.2684311345 0.7482852761 0.2793505003 0.8886733039 0.8475405122 0.9195321889 0.7322915252 0.3557866111 0.0693242699 0.3397358772 0.1634379628 0.4213934450 0.7044839428 0.9967953137 0.9440651119 0.5700368790 0.7893532142 0.9413755247 0.0517390424 0.6595565958 0.8118670906 0.8431744357 0.4769329347 0.6804557841 0.9390716855 0.9902591412 0.3700074395 0.3475468538 0.9869502545 0.3295042466 0.6492619955 0.2637873620 0.3119304245 0.0467681880 0.2625429758 0.0213194594 0.6631090660 0.6053168913 0.3251018671 0.7144555594 0.3016037853 0.7397705205 0.8889687117 0.6712127428 0.7807400336 0.2118155160 0.5016608983 0.5795669421 0.6359361175 0.6869840925 0.4576294059 0.9030834693 0.8164589927 0.7203676675 0.0748002424 0.7592939311 0.9823745447 0.9587582562 0.7952176470 0.7251193146 0.2759674732 0.7957962712 0.2292552406 0.9370382747 0.3233199737 0.8624233501 0.9313870701 0.5996785422 0.1932367058 0.4228141136 0.5863649147 0.5264009631 0.1215832722 0.0065137360 0.2756085894 0.2840909536 0.9855480257 0.9460084406 0.5039020125 0.9574089099 0.9505582221 0.8531143751 0.5968147409 0.7671717149 0.6130312048 0.5297381685 0.2286378199 0.5605443947
13 0.6875000000 0.7500000000 0.4502677126 0.6962080926 0.9128074497 0.9560164253 0.5328638772 0.6530740836 0.5206698487 0.6608048354 0.9682086594 0.7272667042 0.7281186825 0.7904959833 0.6054920864 0.3392744095 0.9816954136 0.4714308141 0.7494125855 0.4109848249 0.5571885267 0.2632726908 0.3619709597 0.6431256575 0.1007609386 0.5941922080 0.1839554398 0.1205380186 0.6594694795 0.5689522501 0.7585891197 0.0885437687 0.8536296941 0.9312499978 0.2541364124 0.2946735977 0.8706164521 0.2156441705 0.4842425361 0.0775878394 0.2993731557 0.3703004594 0.6341408147 0.2738721366 0.7811928024 0.8346063448 0.1437354498 0.0004676401 0.6384254163 0.1001991194 0.8084309287 0.4829823931 0.6235495135 0.6840985361 0.5825826777 0.4171131444 0.9870282889 0.4105823603 0.0424702668 0.1073548275 0.4047930092 0.1203739478 0.0799161086 0.5006264041 0.8482475453 0.0656195192 0.8408296867 0.7487304423 0.4552003471 0.5083866168 0.1740615570 0.7433071290 0.5747186900 0.0638115588 0.9728865607 0.9231198416 0.7971369165 0.6765650478 0.6986605374 0.7186565769 0.1736776924 0.7956658397 0.0595004379 0.2578393670 0.1223583464 0.6965204566 0.9839389042 0.4421050667 0.9041193023 0.0998137125 0.4093976771 0.5090963494 0.7166604474 0.0551742224 0.7656437296 0.7981080476 0.7131274240 0.5406918994 0.5702210369 0.6819301986 0.2822982909 0.3520181263 0.4362103776 0.6040338485 0.5987478618 0.7429419127 0.5714071004 0.3471043196 0.8102124687 0.9587924071 0.9729605387 0.9780838832 0.8904455733 0.1768353251 0.7486089289 0.9994414682 0.5787694799 0.7188671927 0.0136518653 0.7794517821 0.6122001191 0.0007004540 0.1763693239 0.1010190644 0.1266606206 0.8490937916 0.9316227492 0.8406871033 0.6580100090 0.9750389399
14 0.7500000000 0.8125000000 0.6597400920 0.5885838564 0.7857646004 0.7503551356 0.4718447104 0.0866925118 0.9197117689 0.9950628248 0.0295223645 0.2836865839 0.1586640773 0.8000291912 0.6616069386 0.6563964463 0.4465203935 0.7396615332 0.6076592195 0.3238815712 0.9824488070 0.9728015682 0.0520980426 0.3060984754 0.2858697739 0.1975828628 0.1253559410 0.4791424333 0.2798632411 0.1617351994 0.7534016052 0.6404544087 0.7733843811 0.7188167234 0.1894933190 0.4043975784 0.6941734480 0.0172624579 0.3868409907 0.4395070625 0.5897659294 0.3081313299 0.0892954457 0.3226943829 0.7103347299 0.2233194252 0.8322126665 0.3709399267 0.8143146322 0.6909234507 0.6461562880 0.5830114598 0.4852226414 0.7865708459 0.8036368454 0.4828703813 0.5373617639 0.5900660907 0.6904538674 0.0138230971 0.2490095489 0.7393181478 0.2877402762 0.4513432579 0.5680671209 0.6436918143 0.5406705167 0.6813580187 0.9233717178 0.3238394572 0.5844412202 0.9236779967 0.2737147608 0.5797183521 0.8608876099 0.8776531208 0.2443616646 0.2432832436 0.6981052044 0.7365806326 0.8849672999 0.4853381920 0.5449085427 0.8669738255 0.4942614299 0.9243413096 0.1794794516 0.3754306738 0.6883994963 0.5418054187 0.1381584327 0.6953644182 0.7411244428 0.7460892559 0.2731044050 0.0488576868 0.5011982922 0.6577869877 0.7627640630 0.0236888060 0.7711321849 0.3902818810 0.4297669264 0.1559308341 0.5210048554 0.3863513316 0.6484974532 0.0608827656 0.7043687252 0.6244241684 0.1403175246 0.5562529312 0.2631591787 0.9759852611 0.2841610499 0.6501125291 0.1502811159 0.3001988607 0.9586796160 0.4451140123 0.0647737177 0.6377006297 0.1423613841 0.1523039597 0.9474527435 0.9598131562 0.9461015512 0.0085723544 0.6874726999 0.3356614353
15 0.8125000000 0.8750000000 0.4951484718 0.4137571189 0.0569000966 0.4288186433 0.7854072719 0.4143841334 0.0244760385 0.6809264892 0.6102338028 0.3421895124 0.0523749369 0.7298694055 0.4134743935 0.9069422120 0.0255988901 0.0171017484 0.8945272362 0.8478161518 0.7934845393 0.2360887395 0.1801714411 0.0021404293 0.9694124160 0.3984161261 0.8861893385 0.7274739528 0.1838548863 0.8699946168 0.9781448101 0.7100307504 0.6141936865 0.7610268604 0.4235622173 0.9017294946 0.1870069781 0.8541975934 0.6132133221 0.8906224929 0.6807086817 0.1879235532 0.8673600175 0.6300860762 0.5366717121 0.0550985967 0.5221361807 0.1448409907 0.4561040732 0.2083544936 0.0413183626 0.4696824565 0.0332377399 0.4693293732 0.1898895621 0.9431418541 0.8067416335 0.2638124076 0.6924453792 0.2537440723 0.4020697493 0.4863762164 0.1145292672 0.2213524713 0.3857528327 0.0674968564 0.8121729761 0.2750603121 0.0802166942 0.7938963389 0.9176716192 0.4196322735 0.2388986130 0.9978474600 0.9629005950 0.0735100827 0.9331875124 0.3795208391 0.3922109492 0.5588367411 0.7617001452 0.4730127715 0.9087597590 0.1599815958 0.8977322627 0.7852105810 0.8837358134 0.9391245898 0.5956780913 0.3008686816 0.4643168407 0.8793222804 0.3512133467 0.3835873082 0.2839328232 0.4700245983 0.9630959777 0.2224663049 0.2382329085 0.2103578080 0.0583997120 0.5361932365 0.8401390389 0.8651594589 0.9916231507 0.5314276395 0.8768030803 0.0018314875 0.5376906672 0.0867553214 0.4225539663 0.8168300600 0.2191769166 0.7114649462 0.9731043351 0.4109111931 0.5946094589 0.7635395932 0.5573117547 0.9749870342 0.6840263985 0.3520052256 0.1577927826 0.5355608661 0.0733829080 0.5503560782 0.6984678828 0.6332150383 0.1281256950 0.6934248279
16 0.8750000000 0.9375000000 0.8262026000 0.6800406706 0.8230532890 0.3312053366 0.0791727190 0.3375838087 0.6164910560 0.0553016283 0.9159938979 0.1167176482 0.9642385286 0.4662711693 0.0860841114 0.0288988317 0.8278238336 0.0034026832 0.3953088420 0.9177478116 0.4092492419 0.8913496369 0.0257779597 0.4760923833 0.6182677727 0.3230207954 0.6945901709 0.1895992311 0.2035093841 0.4018307636 0.0753713418 0.5057941203 0.8654059754 0.9612625141 0.6113119549 0.3052270464 0.0034051070 0.8834864479 0.6637033250 0.7753436505 0.6367439146 0.5068913791 0.0499874779 0.3682553454 0.3032939732 0.8526346046 0.0017702775 0.5300046704 0.4208789961 0.9453098350 0.8475046742 0.5859889074 0.8497315217 0.5927666053 0.8303499359 0.6969741047 0.6246392576 0.7579033028 0.5919736151 0.4604226539 0.3722940462 0.3175512927 0.0381294147 0.3514439941 0.5384543089 0.2421207936 0.5818590294 0.2106211025 0.1699498768 0.8333654262 0.3050256937 0.1657615656 0.0624764247 0.4779500451 0.7039530529 0.9742760058 0.5458899166 0.3053509365 0.4714929876 0.9861352115 0.2831235216 0.5417119283 0.9501627218 0.8269119393 0.5411800570 0.5915424312 0.9224375067 0.0019667454 0.4485846600 0.5964546783 0.4705979887 0.6997977437 0.0705102577 0.3015512920 0.7767169708 0.0310898924 0.6572577641 0.0498077215 0.2139518764 0.0282647032 0.5614815420 0.1199005472 0.6160741956 0.9559962109 0.0472760913 0.2162385259 0.7890758167 0.4775436576 0.5490116121 0.6907650672 0.1988431036 0.3623787200 0.6748607692 0.5622677719 0.8651337281 0.2889742211 0.8135919487 0.8080134841 0.9803157884 0.8661532071 0.4301462041 0.9604776879 0.9575312759 0.6211291603 0.0602738846 0.6445526120 0.3997429844 0.5335842420 0.2354770997 0.5703356166
17 0.9375000000 1.0000000000 0.1679284181 0.0116292820 0.6713393128 0.7051338786 0.5834520799 0.7177573889 0.3392238002 0.1346499354 0.5625305925 0.5137179869 0.5924138909 0.3562407838 0.2652642194 0.8141605475 0.9288930635 0.2231001314 0.1750653218 0.3136353311 0.6481592141 0.1982572724 0.9394587332 0.3204006592 0.0444805650 0.2147457984 0.1614268553 0.5942634724 0.0950823138 0.3600166386 0.8212693390 0.5074280743 0.2752121019 0.1186141570 0.8331678393 0.1588774454 0.3326816757 0.5071129550 0.6412843384 0.0316611044 0.2856399296 0.7435067382 0.7493902263 0.1525118365 0.9138491044 0.2386630971 0.0203620240 0.0533332997 0.0798282519 0.0691285226 0.3476698725 0.8917724602 0.2301328648 0.8593468245 0.4296178813 0.6222921708 0.0249198619 0.5999211350 0.6120050943 0.6154593697 0.8989983436 0.7112358140 0.8779653690 0.4389945539 0.0551658797 0.1381868846 0.9138693274 0.5621938761 0.2863271981 0.7325413090 0.5425972489 0.5751449321 0.3509974892 0.6927378860 0.7835192583 0.2844782392 0.6382476424 0.7061826356 0.7370361837 0.6226274676 0.2088809009 0.2935124915 0.3513496004 0.5787265806 0.6042397721 0.5171754735 0.4450626483 0.8866352371 0.6589918823 0.2202287668 0.0976188593 0.4164506367 0.6294516746 0.7863249348 0.6679730897 0.5078839634 0.2269497360 0.3440359347 0.7772970388 0.9805411990 0.1963203617 0.2991644875 0.0454477593 0.8594248760 0.8639521245 0.0693449832 0.2472545162 0.8444152090 0.9585070037 0.0225089605 0.4990623794 0.7584918430 0.2985699803 0.4827716728 0.9824672064 0.0915980614 0.5346251470 0.8658588289 0.5071282431 0.4654764065 0.6182458180 0.6156599661 0.6460136580 0.1110876829 0.8671845864 0.4022050030 0.3074841262 0.6642128383 0.0014574521 0.6935462605
18 1.0000000000 1.0625000000 0.2137309904 0.4544911664 0.6798921563 0.4921943266 0.3362297001 0.2847381542 0.6437950153 0.9383269558 0.1397160820 0.4575725703 0.7571243041 0.6186974405 0.8074270575 0.3774803712 0.1769097759 0.4871998692 0.9569660802 0.6593258211 0.0758621178 0.1879452108 0.4906961091 0.3218933593 0.2431967803 0.8575711269 0.2750979303 0.2216316864 0.4766704070 0.4577354111 0.2064776726 0.2724582830 0.0749704337 0.3832853076 0.8018044159 0.6921387615 0.9921656852 0.4057687074 0.0617558532 0.2327312671 0.5771559153 0.2284900285 0.0590479346 0.2758173042 0.9457325011 0.6647606222 0.0981595817 0.2590912562 0.8130702917 0.6360369716 0.9462671543 0.0010640700 0.1375384575 0.3707128139 0.3092900361 0.9429778690 0.6217287686 0.4192660332 0.6812241087 0.7129155374 0.9818436850 0.6350809271 0.2476287666 0.9715665514 0.1205336715 0.0928393225 0.0088279590 0.6031203971 0.6596260488 0.1443080404 0.1546425293 0.9326476485 0.5288438348 0.0169140310 0.8668725954 0.4123998375 0.3775879829 0.5326866286 0.9242688494 0.4422083166 0.3069048850 0.1539458423 0.4144589426 0.7776402466 0.8601672621 0.7430550803 0.8074781313 0.0557779926 0.5821805752 0.2611693509 0.4422279357 0.3827645087 0.9467565422 0.2880943024 0.2826895297 0.5138747173 0.9742166633 0.3376196956 0.3516322491 0.2682236054 0.0347050410 0.8784039379 0.2282802360 0.5318389740 0.6525104714 0.3306392352 0.0701013329 0.6777035065 0.5854775421 0.8512900607 0.0913615956 0.2934230366 0.4679984997 0.2476933554 0.3031436063 0.9276851357 0.4689371770 0.7340950945 0.1723134439 0.7710931241 0.9103395792 0.9875814451 0.6239819005 0.5243784036 0.2998705199 0.7308793671 0.6511168599 0.2998312942 0.4789863380 0.2999395356
19 1.0625000000 1.1250000000 0.5931908898 0.7309124726 0.1353090142 0.7283182526 0.0488233604 0.6919248875 0.5654962317 0.5891109256 0.1122994891 0.4159194189 0.3764929147 0.9494192691 0.3878915668 0.1244349491 0.8175409115 0.9035466295 0.2931364391 0.8594305085 0.1912104939 0.5639044710 0.7228399697 0.1977252481 0.1863250257 0.1408073560 0.8027174983 0.4142429589 0.1808046964 0.0125501421 0.6471301608 0.4860138474 0.6514314555 0.5628913341 0.8644442572 0.5552712027 0.0151265447 0.2374828074 0.8766233369 0.2438984078 0.3027490238 0.5001187921 0.7108031833 0.6028569383 0.0546991809 0.4225322115 0.9588101294 0.4600294342 0.9185105995 0.8249672593 0.0892420548 0.6061045709 0.7207820001 0.0026756388 0.4786440204 0.5467939766 0.0654323131 0.7286043169 0.7861308276 0.3410324152 0.3520775896 0.1542424636 0.5819967657 0.2966403281 0.4022705988 0.5724041392 0.5939434061 0.4567232542 0.0375771916 0.2087124737 0.1880471830 0.8748202738 0.5906794223 0.2287169953 0.3570454933 0.4300619953 0.0100690452 0.1438734650 0.1549616663 0.5758979041 0.0461017075 0.7165612974 0.5656311857 0.6070347405 0.9116860381 0.3978753891 0.5053920399 0.6122428069 0.0281106522 0.7027764153 0.8615361010 0.5020784172 0.2611516425 0.4710602802 0.2577258444 0.3572090822 0.9675099622 0.1586091609 0.1901043819 0.9543702262 0.5918874820 0.8989631108 0.9625966987 0.5375990241 0.6290122089 0.1784213777 0.4204781046 0.5288314561 0.3349709855 0.9483079254 0.2088262488 0.5261074379 0.6237077352 0.0479094042 0.7611453154 0.2613925296 0.9345898028 0.8540216177 0.5429263390 0.0596870789 0.1228484851 0.9884465558 0.5994056747 0.5901793416 0.3197100651 0.8187572497 0.7597195588 0.5117904092 0.6303460039 0.6385685280
20 1.1250000000 1.1875000000 0.0951258531 0.7277233065 0.6006643453 0.0228086452 0.8239419067 0.5155266635 0.0191960505 0.3796252070 0.5055223757 0.4020866172 0.5189295192 0.0753156706 0.9720687266 0.0484040140 0.7843413458 0.9730091204 0.9922290591 0.0851901833 0.3296290701 0.0377371099 0.6281560692 0.6815555356 0.5792539178 0.4853602059 0.6556749332 0.0062036244 0.3974684728 0.1654793920 0.3105455413 0.9249097810 0.2598673194 0.8876951223 0.2350130558 0.3901448085 0.2341265944 0.3637975010 0.5625018100 0.9029143190 0.3544837306 0.1279784262 0.8366534521 0.3101605135 0.7163888747 0.0583991115 0.2954969504 0.4429354239 0.1804037238 0.2439929745 0.9335751345 0.0057892075 0.4619030475 0.2931784280 0.1797548921 0.5020443008 0.2883011773 0.3374369312 0.9279700841 0.3887938145 0.2170151267 0.9179955407 0.6340869551 0.5557600548 0.7435555537 0.2839753202 0.2662001683 0.6706366031 0.7547104494 0.8550751107 0.7688080396 0.0586293077 0.7804771422 0.4787573102 0.6632498137 0.0741167834 0.0048650759 0.8381817841 0.4810157609 0.6855519353 0.0104576417 0.7910236670 0.6425741296 0.9244767239 0.4864446763 0.0067145957 0.9369897931 0.4404468786 0.2032674944 0.3744280310 0.9855825459 0.1193840445 0.8631986284 0.5556113927 0.9572339943 0.4989517976 0.9710160899 0.2522383390 0.4253497068 0.7571807946 0.9246740653 0.2222794134 0.1579823359 0.0243675769 0.2997759597 0.2323811688 0.0305091403 0.2917462506 0.2403668212 0.5604984399 0.4182756997 0.7232471572 0.2699862767 0.9507088428 0.6559072356 0.9839131341 0.4760734998 0.7222971332 0.7723106057 0.8132286537 0.7292613545 0.5869136585 0.8191143919 0.5913443926 0.7021092409 0.5089733775 0.6504381110 0.2708367638 0.7500082653 0.6161660077
21 1.1875000000 1.2500000000 0.1683035602 0.1424043456 0.7668608918 0.7607295110 0.5174434430 0.1944848874 0.5707954851 0.6883187809 0.7862345560 0.3534223591 0.0046566047 0.8831072131 0.8692115010 0.8142559922 0.6493804462 0.2158862920 0.4540214015 0.1944293983 0.5699003865 0.4442949190 0.7955052461 0.0413213808 0.1306964061 0.2713446848 0.3018432979 0.2247307675 0.5835549848 0.0824868602 0.0957095684 0.9983673533 0.2957036200 0.2246049009 0.8470544151 0.8808483067 0.9845280973 0.4677556294 0.6242646559 0.2264174577 0.2684859056 0.6608157074 0.0302796764 0.1580758188 0.1085000942 0.5066947001 0.9121542578 0.8649886900 0.4107301729 0.6955318693 0.8209484203 0.4312713409 0.4673444098 0.7952723317 0.8295831063 0.8415844627 0.6199640527 0.4139429175 0.3483000207 0.0775644176 0.5936895902 0.2502907016 0.2399989681 0.4271952116 0.9239734123 0.1219773670 0.0943703118 0.6653878638 0.8019994879 0.9259957087 0.2431919265 0.9921174757 0.9230932575 0.1104911843 0.8744879481 0.1063987957 0.4028745531 0.7043685114 0.6735291812 0.0341512391 0.6810112968 0.5630981151 0.2024573432 0.1054956890 0.6937220371 0.6657904771 0.2473630700 0.0166703118 0.5132303271 0.2155902667 0.7550028116 0.4930060136 0.2008083768 0.1790083253 0.5938848599 0.0768408582 0.3858271067 0.6740172072 0.0841419913 0.9335749368 0.3200270960 0.2295888106 0.9300683755 0.4034733148 0.1734928533 0.7465751641 0.3203449501 0.0854344415 0.0025144017 0.5991113116 0.4523527375 0.6149762333 0.0270627474 0.4228744288 0.3947751317 0.0639017015 0.3141180936 0.4396834220 0.2421118172 0.1722038793 0.3533720416 0.7971124125 0.6941583254 0.5414881702 0.1323242220 0.4963991921 0.9385722023 0.7164676930 0.8498095335 0.5222759610
@@ -0,0 +1,461 @@
<OpenViBE-Scenario>
<FormatVersion>1</FormatVersion>
<Creator>openvibe</Creator>
<CreatorVersion>2.0</CreatorVersion>
<Boxes>
<Box>
<Identifier>(0x00000202, 0x000037d1)</Identifier>
<Name>Timeout</Name>
<AlgorithmClassIdentifier>(0x24fcd292, 0x5c8f6aa8)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x544a003e, 0x6dcba5f6)</TypeIdentifier>
<Name>Input Stream</Name>
</Input>
</Inputs>
<Outputs>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Output Stimulations</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Timeout delay</Name>
<DefaultValue>5</DefaultValue>
<Value>1</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>Output Stimulation</Name>
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
<Value>OVTK_StimulationId_Label_00</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>272.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
<Value>33</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>544.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x1eaee00e, 0xdb05d34e)</Value>
</Attribute>
<Attribute>
<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
<Value>62</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00c63011)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x0000151d, 0x000049b2)</Identifier>
<Name>Player Controller</Name>
<AlgorithmClassIdentifier>(0x5f426dce, 0x08456e13)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>Stimulation name</Name>
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
<Value>OVTK_StimulationId_Label_00</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0xcc14d8d6, 0xf27ecb73)</TypeIdentifier>
<Name>Action to perform</Name>
<DefaultValue>Pause</DefaultValue>
<Value>Stop</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>352.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
<Value>23</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>560.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x568d148e, 0x650792b3)</Value>
</Attribute>
<Attribute>
<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
<Value>118</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00506ff2)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc67a01dc, 0x28ce06c1)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x0000324c, 0x0000225d)</Identifier>
<Name>Generic stream reader</Name>
<AlgorithmClassIdentifier>(0x6468099f, 0x0370095a)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x403488e7, 0x565d70b6)</TypeIdentifier>
<Name>Output stream 1</Name>
</Output>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Output stream 2</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Output stream 3</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue></DefaultValue>
<Value>${Path_Data}/scenarios/signals/bci-motor-imagery.ov</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x17ee7c08, 0x94c14893)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>160.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
<Value>33</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>384.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xf37b8e7a, 0x1bc33e4e)</Value>
</Attribute>
<Attribute>
<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
<Value>153</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x011072bc)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00006172, 0x00004577)</Identifier>
<Name>Generic stream writer</Name>
<AlgorithmClassIdentifier>(0x09c92218, 0x7c1216f8)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x403488e7, 0x565d70b6)</TypeIdentifier>
<Name>Input stream 1</Name>
</Input>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Input stream 2</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Input stream 3</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue>record-[$core{date}-$core{time}].ov</DefaultValue>
<Value>${Player_ScenarioDirectory}/output_ov.ov</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Use compression</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>271.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
<Value>33</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>368.000000</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x89a08108, 0xc8d1fac1)</Value>
</Attribute>
<Attribute>
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
<Value>149</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0067854b)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xfba64161, 0x65304e21)</Identifier>
<Value></Value>
</Attribute>
</Attributes>
</Box>
</Boxes>
<Links>
<Link>
<Identifier>(0x000023a7, 0x000067cc)</Identifier>
<Source>
<BoxIdentifier>(0x0000324c, 0x0000225d)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00006172, 0x00004577)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
<Attributes>
<Attribute>
<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
<Value>183</Value>
</Attribute>
<Attribute>
<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
<Value>369</Value>
</Attribute>
<Attribute>
<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
<Value>250</Value>
</Attribute>
<Attribute>
<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
<Value>353</Value>
</Attribute>
</Attributes>
</Link>
<Link>
<Identifier>(0x00002c67, 0x0000333d)</Identifier>
<Source>
<BoxIdentifier>(0x00000202, 0x000037d1)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x0000151d, 0x000049b2)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
<Attributes>
<Attribute>
<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
<Value>295</Value>
</Attribute>
<Attribute>
<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
<Value>544</Value>
</Attribute>
<Attribute>
<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
<Value>336</Value>
</Attribute>
<Attribute>
<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
<Value>560</Value>
</Attribute>
</Attributes>
</Link>
<Link>
<Identifier>(0x00003c24, 0x00006028)</Identifier>
<Source>
<BoxIdentifier>(0x0000324c, 0x0000225d)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00000202, 0x000037d1)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
<Attributes>
<Attribute>
<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
<Value>183</Value>
</Attribute>
<Attribute>
<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
<Value>384</Value>
</Attribute>
<Attribute>
<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
<Value>251</Value>
</Attribute>
<Attribute>
<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
<Value>544</Value>
</Attribute>
</Attributes>
</Link>
<Link>
<Identifier>(0x00003da7, 0x00003850)</Identifier>
<Source>
<BoxIdentifier>(0x0000324c, 0x0000225d)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00006172, 0x00004577)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
<Attributes>
<Attribute>
<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
<Value>183</Value>
</Attribute>
<Attribute>
<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
<Value>384</Value>
</Attribute>
<Attribute>
<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
<Value>250</Value>
</Attribute>
<Attribute>
<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
<Value>368</Value>
</Attribute>
</Attributes>
</Link>
<Link>
<Identifier>(0x000064a1, 0x00002aca)</Identifier>
<Source>
<BoxIdentifier>(0x0000324c, 0x0000225d)</BoxIdentifier>
<BoxOutputIndex>2</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00006172, 0x00004577)</BoxIdentifier>
<BoxInputIndex>2</BoxInputIndex>
</Target>
<Attributes>
<Attribute>
<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
<Value>183</Value>
</Attribute>
<Attribute>
<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
<Value>399</Value>
</Attribute>
<Attribute>
<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
<Value>250</Value>
</Attribute>
<Attribute>
<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
<Value>383</Value>
</Attribute>
</Attributes>
</Link>
</Links>
<Comments></Comments>
<Metadata>
<Entry>
<Identifier>(0x0000775c, 0x000078ff)</Identifier>
<Type>(0x3bcce5d2, 0x43f2d968)</Type>
<Data>[{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"height":320,"identifier":"(0x00005e4f, 0x0000778d)","index":0,"name":"Default window","parentIdentifier":"(0xffffffff, 0xffffffff)","type":1,"width":480},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"identifier":"(0x000002a5, 0x00000056)","index":0,"name":"Default tab","parentIdentifier":"(0x00005e4f, 0x0000778d)","type":2},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":0,"identifier":"(0x00000006, 0x0000559d)","index":0,"name":"Empty","parentIdentifier":"(0x000002a5, 0x00000056)","type":0}]</Data>
</Entry>
</Metadata>
</OpenViBE-Scenario>
@@ -0,0 +1,774 @@
<OpenViBE-Scenario>
<FormatVersion>2</FormatVersion>
<Creator>OpenViBE Designer</Creator>
<CreatorVersion>2.2.0</CreatorVersion>
<Settings></Settings>
<Inputs></Inputs>
<Outputs></Outputs>
<Boxes>
<Box>
<Identifier>(0x000010ee, 0x00000f43)</Identifier>
<Name>Time signal</Name>
<AlgorithmClassIdentifier>(0x28a5e7ff, 0x530095de)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Generated signal</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Sampling frequency</Name>
<DefaultValue>512</DefaultValue>
<Value>512</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Generated epoch sample count</Name>
<DefaultValue>32</DefaultValue>
<Value>32</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>0</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>480</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x9e5ca01e, 0x30a4d8c3)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x003e288b)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>2</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00002a9c, 0x00003199)</Identifier>
<Name>Noise generator</Name>
<AlgorithmClassIdentifier>(0x0e3929f1, 0x15af76b9)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Generated signal</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Channel count</Name>
<DefaultValue>4</DefaultValue>
<Value>1</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Sampling frequency</Name>
<DefaultValue>512</DefaultValue>
<Value>512</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Generated epoch sample count</Name>
<DefaultValue>32</DefaultValue>
<Value>32</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2e85e95e, 0x8a1a8365)</TypeIdentifier>
<Name>Noise type</Name>
<DefaultValue>Uniform</DefaultValue>
<Value>Uniform</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>0</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>624</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x0b214ed8, 0x1f9ad83a)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x003e2e6b)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>4</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00002e97, 0x00004732)</Identifier>
<Name>Player Controller</Name>
<AlgorithmClassIdentifier>(0x5f426dce, 0x08456e13)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>Stimulation name</Name>
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
<Value>OVTK_StimulationId_EndOfFile</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0xcc14d8d6, 0xf27ecb73)</TypeIdentifier>
<Name>Action to perform</Name>
<DefaultValue>Pause</DefaultValue>
<Value>Stop</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>288</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>752</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x568d148e, 0x650792b3)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0055a758)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00003129, 0x00004d80)</Identifier>
<Name>CSV File Writer</Name>
<AlgorithmClassIdentifier>(0x428375e8, 0x325f2db9)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Input stream</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations stream</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue>record-[$core{date}-$core{time}].csv</DefaultValue>
<Value>${Player_ScenarioDirectory}/output_gdf_signal_1.csv</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Precision</Name>
<DefaultValue>10</DefaultValue>
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Append data</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Only last matrix</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>272</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>592</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xee4b6d30, 0x788aed29)</Value>
</Attribute>
<Attribute>
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>4</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>2</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x0000313b, 0x000003b1)</Identifier>
<Name>Clock stimulator</Name>
<AlgorithmClassIdentifier>(0x4f756d3f, 0x29ff0b96)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Generated stimulations</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
<Name>Interstimulation interval (in sec)</Name>
<DefaultValue>1.0</DefaultValue>
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>Stimulation</Name>
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
<Value>OVTK_StimulationId_EndOfFile</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>240</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>752</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x27b3ee3c, 0xc50527e6)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00530bb1)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>2</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x000051d4, 0x00007353)</Identifier>
<Name>Simple DSP</Name>
<AlgorithmClassIdentifier>(0x00e26fa1, 0x1dbab1b2)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Input - A</Name>
</Input>
</Inputs>
<Outputs>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Output</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x79a9edeb, 0x245d83fc)</TypeIdentifier>
<Name>Equation</Name>
<DefaultValue>x</DefaultValue>
<Value>sin(2*M_PI*x)</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>64</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>480</Value>
</Attribute>
<Attribute>
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x21889dc4, 0x1126497e)</Value>
</Attribute>
<Attribute>
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0052d6f5)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xfba64161, 0x65304e21)</Identifier>
<Value></Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00005f81, 0x00000200)</Identifier>
<Name>Simple DSP</Name>
<AlgorithmClassIdentifier>(0x00e26fa1, 0x1dbab1b2)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Input - A</Name>
</Input>
</Inputs>
<Outputs>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Output</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x79a9edeb, 0x245d83fc)</TypeIdentifier>
<Name>Equation</Name>
<DefaultValue>x</DefaultValue>
<Value>x&gt;0 ? 1 : -1</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>112</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>576</Value>
</Attribute>
<Attribute>
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x21889dc4, 0x1126497e)</Value>
</Attribute>
<Attribute>
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x004d47d5)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xfba64161, 0x65304e21)</Identifier>
<Value></Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x000060ec, 0x00005ffa)</Identifier>
<Name>Sign Change Detector</Name>
<AlgorithmClassIdentifier>(0x04fa78cd, 0xafe45de7)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x544a003e, 0x6dcba5f6)</TypeIdentifier>
<Name>Signal</Name>
</Input>
</Inputs>
<Outputs>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Generated stimulations</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>Sign switch to positive stimulation</Name>
<DefaultValue>OVTK_StimulationId_Label_01</DefaultValue>
<Value>OVTK_StimulationId_Label_01</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>Sign switch to negative stimulation</Name>
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
<Value>OVTK_StimulationId_Label_00</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Channel Index</Name>
<DefaultValue>1</DefaultValue>
<Value>1</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>176</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>448</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x13bdcd99, 0x9faeff20)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x004e4978)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>3</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00006b47, 0x0000126c)</Identifier>
<Name>Stimulation listener</Name>
<AlgorithmClassIdentifier>(0x65731e1d, 0x47de5276)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulation stream 1</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0xa88b3667, 0x0871638c)</TypeIdentifier>
<Name>Log level to use</Name>
<DefaultValue>Debug</DefaultValue>
<Value>Information</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>272</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>448</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xf451ad91, 0x14c75f86)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x169d0f00)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>true</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xfba64161, 0x65304e21)</Identifier>
<Value></Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00006c41, 0x000069fe)</Identifier>
<Name>Signal Merger</Name>
<AlgorithmClassIdentifier>(0x4bf9326f, 0x75603102)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Input 1</Name>
</Input>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Input 2</Name>
</Input>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Input 3</Name>
</Input>
</Inputs>
<Outputs>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Merged</Name>
</Output>
</Outputs>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>208</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>608</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x990c5a68, 0x0d4024a3)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0078b3c2)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xfba64161, 0x65304e21)</Identifier>
<Value></Value>
</Attribute>
</Attributes>
</Box>
</Boxes>
<Links>
<Link>
<Identifier>(0x0000149c, 0x00004529)</Identifier>
<Source>
<BoxIdentifier>(0x000051d4, 0x00007353)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x000060ec, 0x00005ffa)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x000026a9, 0x00005797)</Identifier>
<Source>
<BoxIdentifier>(0x000051d4, 0x00007353)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00006c41, 0x000069fe)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00002c3a, 0x00003a7d)</Identifier>
<Source>
<BoxIdentifier>(0x000051d4, 0x00007353)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00005f81, 0x00000200)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00003eca, 0x00007fbf)</Identifier>
<Source>
<BoxIdentifier>(0x00006c41, 0x000069fe)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00003129, 0x00004d80)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x000043e3, 0x000019b2)</Identifier>
<Source>
<BoxIdentifier>(0x000010ee, 0x00000f43)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x000051d4, 0x00007353)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00004c38, 0x000032a2)</Identifier>
<Source>
<BoxIdentifier>(0x00005f81, 0x00000200)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00006c41, 0x000069fe)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x000058da, 0x000053ab)</Identifier>
<Source>
<BoxIdentifier>(0x0000313b, 0x000003b1)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00002e97, 0x00004732)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00005960, 0x00007f8c)</Identifier>
<Source>
<BoxIdentifier>(0x00002a9c, 0x00003199)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00006c41, 0x000069fe)</BoxIdentifier>
<BoxInputIndex>2</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00005a5c, 0x00001a5e)</Identifier>
<Source>
<BoxIdentifier>(0x000060ec, 0x00005ffa)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00003129, 0x00004d80)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00007b01, 0x00006958)</Identifier>
<Source>
<BoxIdentifier>(0x000060ec, 0x00005ffa)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00006b47, 0x0000126c)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
</Links>
<Comments></Comments>
<Metadata>
<Entry>
<Identifier>(0x0000775c, 0x000078ff)</Identifier>
<Type>(0x3bcce5d2, 0x43f2d968)</Type>
<Data>[{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"height":320,"identifier":"(0x000006d6, 0x000042bc)","name":"Default window","parentIdentifier":"(0xffffffff, 0xffffffff)","type":1,"width":480},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"identifier":"(0x00006d3f, 0x00004ccb)","index":0,"name":"Default tab","parentIdentifier":"(0x000006d6, 0x000042bc)","type":2},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":0,"identifier":"(0x000063d3, 0x000044f0)","index":0,"name":"Empty","parentIdentifier":"(0x00006d3f, 0x00004ccb)","type":0}]</Data>
</Entry>
</Metadata>
</OpenViBE-Scenario>
@@ -0,0 +1,361 @@
<OpenViBE-Scenario>
<FormatVersion>2</FormatVersion>
<Creator>OpenViBE Designer</Creator>
<CreatorVersion>2.2.0</CreatorVersion>
<Settings></Settings>
<Inputs></Inputs>
<Outputs></Outputs>
<Boxes>
<Box>
<Identifier>(0x00002949, 0x00002732)</Identifier>
<Name>Player Controller</Name>
<AlgorithmClassIdentifier>(0x5f426dce, 0x08456e13)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>Stimulation name</Name>
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
<Value>OVTK_StimulationId_Label_00</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0xcc14d8d6, 0xf27ecb73)</TypeIdentifier>
<Name>Action to perform</Name>
<DefaultValue>Pause</DefaultValue>
<Value>Stop</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>320</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>688</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x568d148e, 0x650792b3)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0097c514)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x0000363b, 0x0000180e)</Identifier>
<Name>GDF file writer</Name>
<AlgorithmClassIdentifier>(0x1e7b2155, 0x107289ce)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x403488e7, 0x565d70b6)</TypeIdentifier>
<Name>Experiment information</Name>
</Input>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Signal</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulation</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue>record-[$core{date}-$core{time}].gdf</DefaultValue>
<Value>${Player_ScenarioDirectory}/output_gdf_combined.gdf</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>256</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>768</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xd41e3037, 0xcc12644a)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x03a62eec)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>3</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x000048cb, 0x0000494c)</Identifier>
<Name>Timeout</Name>
<AlgorithmClassIdentifier>(0x24fcd292, 0x5c8f6aa8)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x544a003e, 0x6dcba5f6)</TypeIdentifier>
<Name>Input Stream</Name>
</Input>
</Inputs>
<Outputs>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Output Stimulations</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Timeout delay</Name>
<DefaultValue>5</DefaultValue>
<Value>5</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>Output Stimulation</Name>
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
<Value>OVTK_StimulationId_Label_00</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>256</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>688</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x1eaee00e, 0xdb05d34e)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00e10619)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00005458, 0x00003d39)</Identifier>
<Name>CSV File Reader</Name>
<AlgorithmClassIdentifier>(0x336a3d9a, 0x753f1ba4)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Output stream</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Output stimulation</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue></DefaultValue>
<Value>${Player_ScenarioDirectory}/output_gdf_signal_1.csv</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>176</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>768</Value>
</Attribute>
<Attribute>
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xa9cdc629, 0xb153eb33)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00006b47, 0x0000126c)</Identifier>
<Name>Stimulation listener</Name>
<AlgorithmClassIdentifier>(0x65731e1d, 0x47de5276)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulation stream 1</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0xa88b3667, 0x0871638c)</TypeIdentifier>
<Name>Log level to use</Name>
<DefaultValue>Debug</DefaultValue>
<Value>Information</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>256</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>880</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xf451ad91, 0x14c75f86)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00a962bf)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>true</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xfba64161, 0x65304e21)</Identifier>
<Value></Value>
</Attribute>
</Attributes>
</Box>
</Boxes>
<Links>
<Link>
<Identifier>(0x00000b3e, 0x000011ac)</Identifier>
<Source>
<BoxIdentifier>(0x00005458, 0x00003d39)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x0000363b, 0x0000180e)</BoxIdentifier>
<BoxInputIndex>2</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00001d98, 0x00006812)</Identifier>
<Source>
<BoxIdentifier>(0x00005458, 0x00003d39)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x000048cb, 0x0000494c)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x000048b0, 0x00004413)</Identifier>
<Source>
<BoxIdentifier>(0x00005458, 0x00003d39)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00006b47, 0x0000126c)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00005ab1, 0x000027de)</Identifier>
<Source>
<BoxIdentifier>(0x00005458, 0x00003d39)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x0000363b, 0x0000180e)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00007a18, 0x00002c1a)</Identifier>
<Source>
<BoxIdentifier>(0x000048cb, 0x0000494c)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00002949, 0x00002732)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
</Links>
<Comments></Comments>
<Metadata>
<Entry>
<Identifier>(0x0000775c, 0x000078ff)</Identifier>
<Type>(0x3bcce5d2, 0x43f2d968)</Type>
<Data>[{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"height":1,"identifier":"(0x00002156, 0x00001f07)","name":"Default window","parentIdentifier":"(0xffffffff, 0xffffffff)","type":1,"width":1},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"identifier":"(0x00004621, 0x0000257e)","index":0,"name":"Default tab","parentIdentifier":"(0x00002156, 0x00001f07)","type":2},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":0,"identifier":"(0x000029d1, 0x0000144d)","index":0,"name":"Empty","parentIdentifier":"(0x00004621, 0x0000257e)","type":0}]</Data>
</Entry>
</Metadata>
</OpenViBE-Scenario>
@@ -0,0 +1,506 @@
<OpenViBE-Scenario>
<FormatVersion>2</FormatVersion>
<Creator>OpenViBE Designer</Creator>
<CreatorVersion>2.2.0</CreatorVersion>
<Settings></Settings>
<Inputs></Inputs>
<Outputs></Outputs>
<Boxes>
<Box>
<Identifier>(0x000024df, 0x00004773)</Identifier>
<Name>Player Controller</Name>
<AlgorithmClassIdentifier>(0x5f426dce, 0x08456e13)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>Stimulation name</Name>
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
<Value>OVTK_StimulationId_EndOfFile</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0xcc14d8d6, 0xf27ecb73)</TypeIdentifier>
<Name>Action to perform</Name>
<DefaultValue>Pause</DefaultValue>
<Value>Stop</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>416</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>720</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x568d148e, 0x650792b3)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0094624f)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00002b18, 0x00003378)</Identifier>
<Name>CSV File Writer</Name>
<AlgorithmClassIdentifier>(0x428375e8, 0x325f2db9)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>Input stream</Name>
</Input>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations stream</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue>record-[$core{date}-$core{time}].csv</DefaultValue>
<Value>${Player_ScenarioDirectory}/output_gdf_signal_2.csv</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Precision</Name>
<DefaultValue>10</DefaultValue>
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Append data</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Only last matrix</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>352</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>816</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xee4b6d30, 0x788aed29)</Value>
</Attribute>
<Attribute>
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>4</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>2</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00005721, 0x00005795)</Identifier>
<Name>GDF file reader</Name>
<AlgorithmClassIdentifier>(0x3eeb1264, 0x4edfbd9a)</AlgorithmClassIdentifier>
<Outputs>
<Output>
<TypeIdentifier>(0x403488e7, 0x565d70b6)</TypeIdentifier>
<Name>Experiment information</Name>
</Output>
<Output>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>EEG stream</Name>
</Output>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
<Name>Filename</Name>
<DefaultValue></DefaultValue>
<Value>${Player_ScenarioDirectory}/output_gdf_combined.gdf</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Samples per buffer</Name>
<DefaultValue>32</DefaultValue>
<Value>32</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Subtract physical minimum</Name>
<DefaultValue>False</DefaultValue>
<Value>False</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>176</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>751</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x78b8b69d, 0x27afe678)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00cbd108)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>3</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>3</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00005caf, 0x000066ac)</Identifier>
<Name>Timeout</Name>
<AlgorithmClassIdentifier>(0x24fcd292, 0x5c8f6aa8)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x544a003e, 0x6dcba5f6)</TypeIdentifier>
<Name>Input Stream</Name>
</Input>
</Inputs>
<Outputs>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Output Stimulations</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Timeout delay</Name>
<DefaultValue>5</DefaultValue>
<Value>5</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>Output Stimulation</Name>
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
<Value>OVTK_StimulationId_EndOfFile</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>352</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>720</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x1eaee00e, 0xdb05d34e)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00d20fdd)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>2</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x00006b47, 0x0000126c)</Identifier>
<Name>Stimulation listener</Name>
<AlgorithmClassIdentifier>(0x65731e1d, 0x47de5276)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulation stream 1</Name>
</Input>
</Inputs>
<Settings>
<Setting>
<TypeIdentifier>(0xa88b3667, 0x0871638c)</TypeIdentifier>
<Name>Log level to use</Name>
<DefaultValue>Debug</DefaultValue>
<Value>Information</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>256</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>976</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xf451ad91, 0x14c75f86)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00a1ff06)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>true</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xfba64161, 0x65304e21)</Identifier>
<Value></Value>
</Attribute>
</Attributes>
</Box>
<Box>
<Identifier>(0x0000712e, 0x00007cc9)</Identifier>
<Name>Stimulation Filter</Name>
<AlgorithmClassIdentifier>(0x02f96101, 0x5e647cb8)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Stimulations</Name>
</Input>
</Inputs>
<Outputs>
<Output>
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
<Name>Modified Stimulations</Name>
</Output>
</Outputs>
<Settings>
<Setting>
<TypeIdentifier>(0x09e59e57, 0x8d4a553a)</TypeIdentifier>
<Name>Default action</Name>
<DefaultValue>Reject</DefaultValue>
<Value>Select</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
<Name>Time range begin</Name>
<DefaultValue>0</DefaultValue>
<Value>0</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
<Name>Time range end</Name>
<DefaultValue>0</DefaultValue>
<Value>0</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x09e59e57, 0x8d4a553a)</TypeIdentifier>
<Name>Action to perform</Name>
<DefaultValue>Select</DefaultValue>
<Value>Reject</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>Stimulation range begin</Name>
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
<Value>OVTK_StimulationId_EndOfFile</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
<Name>Stimulation range end</Name>
<DefaultValue>OVTK_StimulationId_Label_0F</DefaultValue>
<Value>OVTK_StimulationId_EndOfFile</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
<Value>256</Value>
</Attribute>
<Attribute>
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
<Value>848</Value>
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0x47859b3f, 0x1dfdf5cd)</Value>
</Attribute>
<Attribute>
<Identifier>(0x61d11811, 0x71e65362)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00a0f19a)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
<Value>false</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
<Value>1</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
<Value>6</Value>
</Attribute>
<Attribute>
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
<Value>1</Value>
</Attribute>
</Attributes>
</Box>
</Boxes>
<Links>
<Link>
<Identifier>(0x00000445, 0x00001295)</Identifier>
<Source>
<BoxIdentifier>(0x00005721, 0x00005795)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00002b18, 0x00003378)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x0000110b, 0x000036a4)</Identifier>
<Source>
<BoxIdentifier>(0x0000712e, 0x00007cc9)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00002b18, 0x00003378)</BoxIdentifier>
<BoxInputIndex>1</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00002cd6, 0x000055ea)</Identifier>
<Source>
<BoxIdentifier>(0x00005721, 0x00005795)</BoxIdentifier>
<BoxOutputIndex>2</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x0000712e, 0x00007cc9)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x000031f7, 0x0000295d)</Identifier>
<Source>
<BoxIdentifier>(0x00005721, 0x00005795)</BoxIdentifier>
<BoxOutputIndex>2</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00006b47, 0x0000126c)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x0000351e, 0x000069e9)</Identifier>
<Source>
<BoxIdentifier>(0x00005caf, 0x000066ac)</BoxIdentifier>
<BoxOutputIndex>0</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x000024df, 0x00004773)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
<Link>
<Identifier>(0x00006978, 0x00005007)</Identifier>
<Source>
<BoxIdentifier>(0x00005721, 0x00005795)</BoxIdentifier>
<BoxOutputIndex>1</BoxOutputIndex>
</Source>
<Target>
<BoxIdentifier>(0x00005caf, 0x000066ac)</BoxIdentifier>
<BoxInputIndex>0</BoxInputIndex>
</Target>
</Link>
</Links>
<Comments></Comments>
<Metadata>
<Entry>
<Identifier>(0x0000775c, 0x000078ff)</Identifier>
<Type>(0x3bcce5d2, 0x43f2d968)</Type>
<Data>[{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"height":320,"identifier":"(0x000006d6, 0x000042bc)","name":"Default window","parentIdentifier":"(0xffffffff, 0xffffffff)","type":1,"width":480},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"identifier":"(0x00006d3f, 0x00004ccb)","index":0,"name":"Default tab","parentIdentifier":"(0x000006d6, 0x000042bc)","type":2},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":0,"identifier":"(0x000063d3, 0x000044f0)","index":0,"name":"Empty","parentIdentifier":"(0x00006d3f, 0x00004ccb)","type":0}]</Data>
</Entry>
</Metadata>
</OpenViBE-Scenario>
File diff suppressed because it is too large Load Diff